diff --git a/config.yaml.example b/config.yaml.example index 28de676..27daf18 100644 --- a/config.yaml.example +++ b/config.yaml.example @@ -115,6 +115,14 @@ tools: # 环境变量: TOOLS_PASSTHROUGH=true|false # passthrough: true + # ★ 禁用模式(极致省上下文) + # true: 完全不注入工具定义和 few-shot 示例,节省大量上下文空间 + # 模型凭自身训练记忆处理工具调用(适合已内化工具格式的场景) + # 响应中的 ```json action``` 块仍会被正常解析 + # false: [默认] 正常注入工具定义 + # 环境变量: TOOLS_DISABLED=true|false + # disabled: true + # ==================== 响应内容清洗(可选,默认关闭) ==================== # 开启后,会将响应中 Cursor 相关的身份引用替换为 Claude # 例如 "I am Cursor's support assistant" → "I am Claude, an AI assistant by Anthropic" diff --git a/docker-compose.yml b/docker-compose.yml index e15752b..9704127 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -55,6 +55,10 @@ services: # 开启后跳过 few-shot 注入,直接嵌入工具定义,减少身份冲突 # - TOOLS_PASSTHROUGH=true + # ── 工具禁用模式(极致省上下文) ── + # 完全不注入工具定义和 few-shot,模型凭训练记忆调用工具 + # - TOOLS_DISABLED=true + # ── 响应内容清洗 ── # 开启后会将响应中 Cursor 身份引用替换为 Claude(默认关闭) # - SANITIZE_RESPONSE=true diff --git a/src/config.ts b/src/config.ts index bbad0d1..2e0b658 100644 --- a/src/config.ts +++ b/src/config.ts @@ -90,6 +90,7 @@ function parseYamlConfig(defaults: AppConfig): { config: AppConfig; raw: Record< includeOnly: Array.isArray(t.include_only) ? t.include_only.map(String) : undefined, exclude: Array.isArray(t.exclude) ? t.exclude.map(String) : undefined, passthrough: t.passthrough === true, + disabled: t.disabled === true, }; } // ★ 响应内容清洗开关(默认关闭) @@ -150,6 +151,11 @@ function applyEnvOverrides(cfg: AppConfig): void { 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.TOOLS_DISABLED !== undefined) { + if (!cfg.tools) cfg.tools = { schemaMode: 'full', descriptionMaxLength: 0 }; + cfg.tools.disabled = process.env.TOOLS_DISABLED === 'true' || process.env.TOOLS_DISABLED === '1'; + } // 响应内容清洗环境变量覆盖 if (process.env.SANITIZE_RESPONSE !== undefined) { diff --git a/src/converter.ts b/src/converter.ts index fb6fd18..7eb478f 100644 --- a/src/converter.ts +++ b/src/converter.ts @@ -258,9 +258,33 @@ export async function convertToCursorRequest(req: AnthropicRequest): Promise