一次工具调用要经过哪些关卡
先盯住一个动作
工具执行分 pre-execute、execute、post-execute 三段瀑布。顺序敏感的扩展放瀑布,否决权交给无 allow 的 Guard。拒绝成为错误结果,循环不卡死。
沿执行轨迹走
pre-execute 只返回 allow、deny、ask
pre-execute 只返回 allow、deny、ask。ask 需审批通过才继续,无审批则当 deny。瀑布短路,顺序敏感。execute 做超时重试等包装。post-execute 检查结果,可接受、换内容、换值或 block。参数不可改写。
[repo]
Guard 只返回拒绝理由或弃权
Guard 只返回拒绝理由或弃权,无法表达同意。全局先问,再沿作用域链问,结论只会更严。被拒调用物化成错误结果,继续走后续流程。DSH 默认 fail-closed,pre-execute 抛异常即归一化为错误。
[repo]
每一步改变了什么
pre-execute 中 allow 和 ask 同时出现,结果取决于什么: 取决于注册顺序。瀑布短路,先执行且直接返回决定的监听器定案。
恶意插件能把 Guard 拒绝的调用放行吗: 不能。Guard 类型里没有 allow,只能拒绝或弃权,顺序无法翻案。
这条轨迹没有说明什么
本页结论对应 revision
0a53fb55bea101816fa226bb964ae2bed71c343b。文件位置、命名和默认行为可能随版本变化,引用实现细节时应同时记录 commit。
来源与核验
- [repo] DeepSeek Harness 官方源码(固定 revision)
- [official] DeepSeek Harness 官方介绍
Revision:0a53fb55bea101816fa226bb964ae2bed71c343b · 核验日期:2026-08-31