AI 简明手册
DeepSeek Harness 源码解读 · 工具系统一次工具调用要经过哪些关卡

一次工具调用要经过哪些关卡

先盯住一个动作

工具执行分 pre-execute、execute、post-execute 三段瀑布。顺序敏感的扩展放瀑布,否决权交给无 allow 的 Guard。拒绝成为错误结果,循环不卡死。

沿执行轨迹走

  1. pre-execute 只返回 allow、deny、ask

    pre-execute 只返回 allow、deny、ask。ask 需审批通过才继续,无审批则当 deny。瀑布短路,顺序敏感。execute 做超时重试等包装。post-execute 检查结果,可接受、换内容、换值或 block。参数不可改写。

    [repo]

  2. Guard 只返回拒绝理由或弃权

    Guard 只返回拒绝理由或弃权,无法表达同意。全局先问,再沿作用域链问,结论只会更严。被拒调用物化成错误结果,继续走后续流程。DSH 默认 fail-closed,pre-execute 抛异常即归一化为错误。

    [repo]

每一步改变了什么

  • pre-execute 中 allow 和 ask 同时出现,结果取决于什么: 取决于注册顺序。瀑布短路,先执行且直接返回决定的监听器定案。

  • 恶意插件能把 Guard 拒绝的调用放行吗: 不能。Guard 类型里没有 allow,只能拒绝或弃权,顺序无法翻案。

这条轨迹没有说明什么

  • 本页结论对应 revision 0a53fb55bea101816fa226bb964ae2bed71c343b。文件位置、命名和默认行为可能随版本变化,引用实现细节时应同时记录 commit。

来源与核验

  1. [repo] DeepSeek Harness 官方源码(固定 revision)
  2. [official] DeepSeek Harness 官方介绍

Revision:0a53fb55bea101816fa226bb964ae2bed71c343b · 核验日期:2026-08-31