04 四种运行模式#
DeepSeek Harness 提供四种预设运行模式,每种模式对应不同的插件树与工具集,面向不同的使用场景。本章详细介绍这四种模式的能力差异与适用场景。
模式总览对比#
模式 |
核心能力 |
适用场景 |
启动方式 |
|---|---|---|---|
Standard(标准模式) |
完整编程 Agent 能力:文件编辑、Shell 执行、文件与网页搜索、Skills、计划管理、目标追踪、子 Agent 委派、工作流编排 |
日常写代码、通用编程任务、默认使用场景 |
Web UI 默认模式,或 |
Code(代码模式 / PTC) |
Standard 全部能力 + 程序化工具调用(Programmatic Tool Calling),模型通过 TypeScript 编排多步操作 |
多步操作密集场景,希望减少轮次往返、提升执行效率 |
Web UI 模式切换,或启动时指定 |
Minimal(极简模式) |
仅保留两个工具:持久化 |
模型基准评测、需要极简可控环境的研究场景 |
|
Creator(创造模式) |
Standard 全部能力 + 运行时自省、内存中试验插件、Preset编写指导(源码层称Cordis模式) |
定制 Agent 形态、开发插件、自定义 Profile |
Web UI 模式切换,或 |
每种模式本质上是不同的 Profile 配置,对应不同的 Bundle 组合与补丁叠加,切换模式不需要修改代码,仅需切换配置。
Standard 模式:完整编程 Agent#
Standard 模式是 dsh 的默认模式,提供开箱即用的完整编程 Agent 能力清单。
完整能力清单#
能力类别 |
具体功能 |
|---|---|
文件操作 |
文件读取、写入、编辑、目录遍历、文件搜索(grep/find)、str_replace_editor 精确替换 |
Shell 执行 |
持久化 Bash 终端、命令执行、PTY 伪终端支持、工作目录切换 |
搜索能力 |
代码库内全文搜索、网页搜索、内容检索 |
Skills 系统 |
可复用技能模块、技能调用、技能组合 |
计划管理 |
任务拆解、步骤规划、进度追踪、计划调整 |
目标追踪 |
长期目标维护、子目标分解、目标完成状态管理 |
子 Agent 委派 |
将子任务委派给独立的子 Agent 执行、子任务结果回收 |
工作流编排 |
多步骤工作流定义、条件分支、循环执行 |
权限控制 |
敏感操作审批、操作权限分级、会话级权限配置 |
何时使用 Standard 模式#
日常软件开发任务(写代码、改 Bug、重构)
代码库分析与理解
文档生成与维护
通用自动化任务
大多数常规使用场景
Standard 模式平衡了能力完整性与使用便捷性,是首次使用 dsh 时的推荐起点。
Code 模式(PTC - 程序化工具调用)#
Code 模式(又称 PTC 模式,Programmatic Tool Calling)是 dsh 针对多步密集操作场景优化的特殊模式。
核心机制#
在传统 ReAct 模式下,Agent 每调用一次工具就需要一次完整的模型请求往返:
模型思考要做什么
输出一个工具调用
等待工具执行
拿到结果后再次思考下一步
重复…
一个包含 5 次工具调用的序列需要 5 轮模型请求,产生大量往返开销。
Code 模式下,模型不再逐个输出工具调用,而是编写一段 TypeScript 代码,将多个工具调用编排进一次程序中。这段代码由 dsh 运行时执行,可以:
顺序调用多个工具
使用变量传递中间结果
进行条件判断与循环
处理错误与异常
原本需要 5 轮往返的操作序列,在 Code 模式下只需要 1 次模型请求生成代码,随后一次性执行完成。
典型场景示例#
例如「找出所有测试文件并运行失败的测试」这一任务:
传统模式流程(N 轮往返):
调用
find查找测试文件 → 拿到文件列表逐个读取测试文件内容 → 分析哪些测试可能失败
运行测试命令 → 拿到失败结果
分析失败日志 → 定位问题
修改代码 → 再次运行测试验证
Code 模式流程(1 轮生成代码 + 批量执行): 模型直接生成一段 TypeScript:
const testFiles = await fs.glob('**/*.test.ts');
const results = [];
for (const file of testFiles) {
const { exitCode, stdout } = await shell.exec(`npx jest ${file}`);
if (exitCode !== 0) {
results.push({ file, error: stdout });
}
}
return results;
运行时一次性执行完所有步骤,最后将结果返回给模型做总结。
适用场景#
批量文件处理(批量重命名、批量格式转换)
多步骤数据处理流水线
重复执行相似操作的场景
需要复杂控制流(条件、循环)的任务
对延迟敏感、希望减少轮次开销的场景
Minimal 模式:极简评测环境#
Minimal 模式是为模型基准测试与研究场景设计的极简配置。
能力说明#
Minimal 模式仅暴露两个核心工具:
持久化
bash:一个持续存在的 Shell 会话,可以执行任意命令str_replace_editor:基于字符串替换的文件编辑器,支持查看、创建、精确修改文件
除此之外,不加载任何其他插件:
无 Skills 系统
无子 Agent 委派
无网页搜索
无计划管理
无工作流编排
无高级权限审批
为什么需要 Minimal 模式#
在模型评测(Benchmark)场景下,过多的工具和复杂的循环逻辑会引入额外变量,导致:
不同模型在不同工具集下表现不可比
复杂插件逻辑可能干扰模型本身能力的测量
难以复现实验结果
Minimal 模式提供了一个最小且标准化的工具面:
任何能使用工具调用的模型都可以在这个环境下运行
工具数量固定且简单,便于控制变量
环境干净,易于复现
与主流基准评测框架(如 SWE-bench)的工具设置对齐
启动方式#
Minimal 模式通常用于无头(Headless)批量评测:
npx @deepseek-ai/dsh --profile minimal "你的评测任务"
Creator 模式:定制与插件开发#
Creator模式(架构层名称:Cordis模式)是为希望自定义 Agent 形态、开发插件的高级用户设计的模式。在Web UI面向用户时称为"Creator(创造模式)",在源码和CLI架构层面则称为"Cordis模式",这两个名称指的是同一个运行模式——用于插件开发、运行时自省和热重载。
额外能力#
在 Standard 模式全部能力的基础上,Creator 模式额外提供:
能力 |
说明 |
|---|---|
运行时自省 |
可以查看当前加载的插件树、事件流、服务注册表,实时观察内部状态 |
内存试插件 |
不需要重启,可以在内存中临时加载、卸载、试验插件代码,立即看到效果 |
Preset 编写指导 |
模型会主动帮助你编写 Profile 配置、Bundle 定义、补丁文件,给出定制建议 |
插件调试工具 |
提供插件开发辅助工具、事件监听、服务调用追踪 |
典型使用流程#
使用 Creator 模式定制新形态 Agent 的流程:
启动 Creator/Cordis 模式:
npx @deepseek-ai/dsh web --profile creator(部分版本可能使用--profile cordis,两者本质都是启用动态插件加载能力)在对话中描述你想要的 Agent 形态(如「我想要一个专门做代码审查的 Agent,不需要文件写入权限,但要能调用静态分析工具」)
模型会帮你生成对应的 Profile 配置和补丁
在内存中试验加载这些配置,实时调整
满意后将配置保存到
~/.dsh/profiles/下,成为一个新的可用模式
适用场景#
开发新的 dsh 插件
定制团队内部使用的专用 Agent 形态
调试插件与配置问题
学习理解 dsh 的内部机制
探索新的 Agent 交互模式
模式切换方法#
Web UI 中切换#
在 Web UI 界面中:
找到输入框附近的模式选择器(通常显示当前模式名称,如「Standard」)
点击下拉菜单,选择想要切换的模式
模式切换立即生效,后续对话将在新模式下运行
注意:切换模式不会丢失当前会话历史,但会话中已发生的工具调用不受影响。
命令行指定 Profile#
启动时通过 --profile 参数指定模式:
# 启动 Standard 模式(Web UI)
npx @deepseek-ai/dsh web --profile web
# 启动 Minimal 模式(无头)
npx @deepseek-ai/dsh --profile minimal "任务描述"
# 启动 Creator/Cordis 模式(插件开发)
npx @deepseek-ai/dsh web --profile creator
# 或在部分源码版本中:
npx @deepseek-ai/dsh web --profile cordis
# 两者本质都是启用动态插件加载与运行时自省能力
实际上,四种内置模式本质上就是四个预置的 Profile 名称。你也可以创建自己的自定义 Profile,实现第五种、第六种模式。自定义 Profile 的方法将在后续章节介绍。
如何选择合适的模式#
你的需求 |
选择模式 |
|---|---|
日常写代码、完成通用编程任务 |
Standard(默认) |
需要大量批量操作、重复步骤,觉得轮次太慢 |
Code |
做模型评测、需要干净可控的基准环境 |
Minimal |
想开发插件、定制自己的 Agent 形态 |
Creator |
如果不确定用什么,从 Standard 模式开始就好——它覆盖了 90% 以上的日常使用场景。当你明确感受到某个场景的痛点时,再尝试对应模式。