问题
ToolRegistry::check_permission() 的逻辑:
- mode=
"auto" → 所有工具通过
- mode=
"ask" → safe 和 ask 级别都通过(实际上等于 auto)
- mode=
"deny" → 仅 safe 通过
"ask" 模式名称有误导性,它从未实际发起询问。询问逻辑在 AgentLoop::Callbacks::on_permission_ask,独立于 mode 检查。
修复
- 明确 mode 语义:auto=全通过, ask=仅 safe 通过(其他走回调), deny=无工具可用
- 或在 registry 层面整合回调逻辑
涉及文件
libs/tools/src/tool_registry.cpp
问题
ToolRegistry::check_permission()的逻辑:"auto"→ 所有工具通过"ask"→ safe 和 ask 级别都通过(实际上等于 auto)"deny"→ 仅 safe 通过"ask"模式名称有误导性,它从未实际发起询问。询问逻辑在AgentLoop::Callbacks::on_permission_ask,独立于 mode 检查。修复
涉及文件
libs/tools/src/tool_registry.cpp