From 7c2422ce600b665e0fd3ca969487fab21a4d2c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= <7836246@qq.com> Date: Fri, 20 Mar 2026 09:18:13 +0800 Subject: [PATCH] feat: add TOOLS_PASSTHROUGH env var override for Docker support --- config.yaml.example | 1 + docker-compose.yml | 4 ++++ src/config.ts | 6 ++++++ 3 files changed, 11 insertions(+) diff --git a/config.yaml.example b/config.yaml.example index c04b5dd..28de676 100644 --- a/config.yaml.example +++ b/config.yaml.example @@ -112,6 +112,7 @@ tools: # 工具调用仍使用 ```json action``` 格式,响应解析不受影响 # false: [默认] 使用标准模式(buildToolInstructions + 多类别 few-shot 注入) # Claude Code 推荐此模式,兼容性和工具调用覆盖率更好 + # 环境变量: TOOLS_PASSTHROUGH=true|false # passthrough: true # ==================== 响应内容清洗(可选,默认关闭) ==================== diff --git a/docker-compose.yml b/docker-compose.yml index b6d1da8..e15752b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -51,6 +51,10 @@ services: # 默认使用本地 OCR(零配置),如需外部 Vision API 请在 config.yaml 中修改 vision.mode 为 'api' # 并配置 vision.base_url / vision.api_key / vision.model + # ── 工具透传模式(推荐 Roo Code / Cline 等非 Claude Code 客户端) ── + # 开启后跳过 few-shot 注入,直接嵌入工具定义,减少身份冲突 + # - TOOLS_PASSTHROUGH=true + # ── 响应内容清洗 ── # 开启后会将响应中 Cursor 身份引用替换为 Claude(默认关闭) # - SANITIZE_RESPONSE=true diff --git a/src/config.ts b/src/config.ts index 234175e..bbad0d1 100644 --- a/src/config.ts +++ b/src/config.ts @@ -145,6 +145,12 @@ function applyEnvOverrides(cfg: AppConfig): void { if (!cfg.logging) cfg.logging = { file_enabled: false, dir: './logs', max_days: 7 }; cfg.logging.dir = process.env.LOG_DIR; } + // 工具透传模式环境变量覆盖 + if (process.env.TOOLS_PASSTHROUGH !== undefined) { + if (!cfg.tools) cfg.tools = { schemaMode: 'full', descriptionMaxLength: 0 }; + cfg.tools.passthrough = process.env.TOOLS_PASSTHROUGH === 'true' || process.env.TOOLS_PASSTHROUGH === '1'; + } + // 响应内容清洗环境变量覆盖 if (process.env.SANITIZE_RESPONSE !== undefined) { cfg.sanitizeEnabled = process.env.SANITIZE_RESPONSE === 'true' || process.env.SANITIZE_RESPONSE === '1';