diff --git a/src/gateway/session.rs b/src/gateway/session.rs index e55868c..431c4a4 100644 --- a/src/gateway/session.rs +++ b/src/gateway/session.rs @@ -7,7 +7,10 @@ use crate::bus::ChatMessage; use crate::config::LLMProviderConfig; use crate::agent::{AgentLoop, AgentError}; use crate::protocol::WsOutbound; -use crate::tools::{CalculatorTool, ToolRegistry}; +use crate::tools::{ + BashTool, CalculatorTool, FileEditTool, FileReadTool, FileWriteTool, + HttpRequestTool, ToolRegistry, WebFetchTool, +}; /// Session 按 channel 隔离,每个 channel 一个 Session /// History 按 chat_id 隔离,由 Session 统一管理 @@ -114,6 +117,17 @@ struct SessionManagerInner { fn default_tools() -> ToolRegistry { let mut registry = ToolRegistry::new(); registry.register(CalculatorTool::new()); + registry.register(FileReadTool::new()); + registry.register(FileWriteTool::new()); + registry.register(FileEditTool::new()); + registry.register(BashTool::new()); + registry.register(HttpRequestTool::new( + vec!["*".to_string()], // 允许所有域名,实际使用时建议限制 + 1_000_000, // max_response_size + 30, // timeout_secs + false, // allow_private_hosts + )); + registry.register(WebFetchTool::new(50_000, 30)); // max_chars, timeout_secs registry }