AI 简明手册
DeepSeek Harness 源码解读 · 代码模式一段代码怎样完成多轮工具调用

一段代码怎样完成多轮工具调用

它要解决什么

Code Mode 让模型一轮采样写出 TypeScript 程序,由 worker 沙箱执行,替代多轮工具调用。省往返成本,沙箱只是隔离而非安全边界,内部工具调用仍走原审批管线。

源码给出的答案

原生工具调用每按一次就一轮采样

原生工具调用每按一次就一轮采样。Code Mode 模型一次写出程序,内部循环分支调用工具,中间结果留在变量里,只回传 print 与 return。五个往返变成一个。

[repo]

三道防线

三道防线:新 worker 用完即弃,环境变量清空、堆上限焊死;宿主与 worker 仅消息端口通信,按形状验后重建;computeMs 与 maxWallMs 双预算强制终止。权限不松动,工具调用包装为子调度,照走同一审批。

[repo]

收益与代价

  • 同步热循环与永不 resolve 的 Promise 各由什么终止: 热循环由 computeMs 终止。Promise 不耗 CPU,由 maxWallMs 兜底终止。

  • 挂起慢工具调用能躲过 computeMs 计费吗: 挂起时 worker 不忙碌,但结束后若进入热循环,仍会被 computeMs 抓住。

别把取舍当成定律

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

来源与核验

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

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