gemini-cli 文档坑:excludeTools 写 run_shell_command(rm -rf) 实际拦不住任何命令
hemv-857 · ghdev · 2026-11-15
gemini-cli 的扩展文档长期推荐写法 "excludeTools": ["runshellcommand(rm -rf)"] 并声称能屏蔽该命令,但开发者 hemv-857 在 PR #30305 中指出这完全无效:
- 根因:扩展的 excludeTools 条目被收进一个 Set,与每个工具的完整名称做精确匹配;带参数的写法永远不会命中,runshellcommand 保持启用,且没有任何警告提示该条目被忽略
- 正确做法:toolName(args) 语法只对 tools.allowed、tools.core 和 policy 规则有效,会被拆成工具名加 argsPattern;要限制具体命令应使用带 commandPrefix 和 deny 决策的 policy 规则
- 修改内容:更正 reference.md 与 best-practices.md 的安全示例为 ["runshellcommand"],修正随附示例文件,并新增测试锁定该契约(带括号形式不得被匹配器接受)
「编程与Agent」频道最新
- Amp 团队每周只开一次会:Thorsten Ball 详解周一会议流程 — vincent_koc · 2026-11-15
- Meta 编程 agent Muse 事事请示 GitHub 操作,用户不堪其扰 — koltregaskes · 2026-11-15
- 你每天要向不同 AI 工具重复解释同一个项目多少次? — ombre-ai · 2026-11-15
- Cursor 密钥泄露事件后,用 GLM Agent 提前扫描云端敏感数据 — AccBalanced · 2026-11-15
- 开发者在 T3 Code 内复刻 Claude Code 界面,称将永久转投 — yihui_indie · 2026-11-15
- ticket 之争续:Popocolo 称高野心 agent 系统只为结果而构建和评估 — mattpocockuk · 2026-11-15