一段代码怎样完成多轮工具调用
它要解决什么
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。
来源与核验
- [repo] DeepSeek Harness 官方源码(固定 revision)
- [official] DeepSeek Harness 官方介绍
Revision:0a53fb55bea101816fa226bb964ae2bed71c343b · 核验日期:2026-08-31