From 98bc9739c60be3c2d82cbf540aafe55b68b7bc88 Mon Sep 17 00:00:00 2001 From: xiaoski Date: Wed, 8 Apr 2026 08:32:06 +0800 Subject: [PATCH] feat(gateway): register all tools in SessionManager - Register FileReadTool, FileWriteTool, FileEditTool, BashTool - Register HttpRequestTool with allow-all domains for testing - Register WebFetchTool - CalculatorTool already registered --- src/gateway/session.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 }