DeepSeek Harness: 四种运行模式
最后更新:2026-08-31
DSH 的四种运行模式就像汽车的不同驾驶模式——经济、运动、越野、赛道——同辆车,不同性格。选对模式,Agent 的行为与你期望的完全一致;选错模式,要么过于保守,要么失控跑偏。
💡 提示:标准模式是默认选择,适合 80% 的场景。PTC 模式适合需要精确控制的任务。极简模式适合纯问答。创造模式适合探索性工作。不确定时用标准模式。
📋 前置知识:已完成 04-model-config.md,模型已配置可用
1. 你将学到
- 四种运行模式的设计哲学与行为差异
- 标准模式的自主决策机制
- PTC 模式的 Plan-then-Code 流程
- 极简模式的最少工具调用策略
- 创造模式的探索性输出特点
- 各模式的适用场景与切换方式
2. 模式总览
(1) ▶ 示例 1
graph TB
INPUT[用户输入] --> MODE{选择模式}
MODE --> STD[标准模式<br/>Agent 自主决策]
MODE --> PTC[PTC 模式<br/>先规划再执行]
MODE --> MIN[极简模式<br/>最少工具调用]
MODE --> CRE[创造模式<br/>探索性输出]
STD --> ACTION1[自主选择工具<br/>自主决定步骤]
PTC --> ACTION2[先输出计划<br/>用户确认后执行]
MIN --> ACTION3[优先用自身知识<br/>仅在必要时调用工具]
CRE --> ACTION4[自由联想<br/>鼓励创意和探索]
(2) 一张对比表看懂四种模式
| 维度 | 标准 | PTC | 极简 | 创造 |
|---|---|---|---|---|
| 工具调用 | Agent 自主决定 | 计划中声明 | 最少化 | 自由使用 |
| 用户控制 | 中等(审批) | 高(确认计划) | 高(少操作) | 低(自由发挥) |
| 输出确定性 | 中等 | 高 | 高 | 低 |
| 速度 | 中等 | 较慢(两步) | 最快 | 不确定 |
| 适用场景 | 通用编程 | 复杂任务 | 简单问答 | 创意写作 |
| Temperature | 0.7 | 0.3 | 0.2 | 1.0+ |
| token 消耗 | 中等 | 较高 | 最低 | 较高 |
3. 标准模式(Standard)
(1) 工作原理
标准模式是 DSH 的默认模式。Agent 收到用户指令后,自主分析需要哪些工具、执行什么操作,按最佳判断执行:

TEXT
📖 仅展示
👤 Alice: 帮我重构 src/utils/format.ts,提取日期格式化函数到单独文件
🤖 Agent:
🔍 Using tool: search
→ Searching for src/utils/format.ts
🔍 Using tool: file_edit (read)
→ Reading src/utils/format.ts
📝 Using tool: file_edit (create)
→ Creating src/utils/date-format.ts
📝 Using tool: file_edit (edit)
→ Updating src/utils/format.ts (removing date functions)
📝 Using tool: file_edit (edit)
→ Updating imports in src/index.ts
✅ 完成!日期格式化函数已提取到 src/utils/date-format.ts
(2) 自主决策逻辑
标准模式下,Agent 的决策链:
graph TD
INPUT[用户指令] --> ANALYZE[分析意图]
ANALYZE --> PLAN[内部规划步骤]
PLAN --> DECIDE{需要工具吗?}
DECIDE -->|是| EXEC[调用工具]
DECIDE -->|否| RESPOND[直接回复]
EXEC --> CHECK{完成了吗?}
CHECK -->|否| PLAN
CHECK -->|是| RESPOND
(3) 何时使用标准模式
- 日常编程任务(写代码、修 Bug、重构)
- 不确定需要多少步骤的任务
- 希望 Agent 自主处理细节
- 大部分常规工作
4. PTC 模式(Plan-then-Code)
(1) 工作原理
PTC 模式将 Agent 行为分为两步:

- Plan 阶段:Agent 分析任务,输出详细计划,不执行任何操作
- Code 阶段:用户确认计划后,Agent 按计划逐步执行
TEXT
📖 仅展示
👤 Bob: 给项目添加用户认证系统,支持 JWT
🤖 Agent (Plan 阶段):
📋 执行计划:
1. 安装依赖:jsonwebtoken、bcryptjs
2. 创建 src/auth/jwt.ts — JWT 签发与验证
3. 创建 src/auth/middleware.ts — 认证中间件
4. 创建 src/routes/auth.ts — 登录/注册路由
5. 修改 src/app.ts — 注册路由和中间件
6. 添加环境变量 JWT_SECRET
预计修改 5 个文件,新建 3 个文件。
是否执行此计划?
👤 Bob: 执行,但跳过第 1 步,依赖已经安装了
🤖 Agent (Code 阶段):
📝 Step 2: Creating src/auth/jwt.ts...
📝 Step 3: Creating src/auth/middleware.ts...
📝 Step 4: Creating src/routes/auth.ts...
📝 Step 5: Editing src/app.ts...
📝 Step 6: Adding JWT_SECRET to .env.example...
✅ 认证系统添加完成!
(2) PTC 的计划格式
PTC 模式输出的计划包含:
TYPESCRIPT
interface PTCPlan {
steps: PlanStep[];
estimatedFiles: { created: number; modified: number; deleted: number };
riskLevel: 'low' | 'medium' | 'high';
reversible: boolean;
}
interface PlanStep {
id: number;
description: string;
tool: string; // 使用的工具
files: string[]; // 涉及的文件
dependsOn: number[]; // 依赖的前置步骤
}
(3) ▶ 示例 3
graph TD
INPUT[用户指令] --> PLAN[Agent 输出计划]
PLAN --> REVIEW[用户审阅计划]
REVIEW -->|确认| EXEC[Agent 执行]
REVIEW -->|修改| MODIFY[用户修改计划]
MODIFY --> EXEC
REVIEW -->|拒绝| CANCEL[取消执行]
EXEC --> STEP[逐步执行]
STEP --> DONE{全部完成?}
DONE -->|否| STEP
DONE -->|是| RESULT[输出结果]
(4) 何时使用 PTC 模式
- 复杂任务(5 步以上)
- 修改关键代码(数据库、认证、支付)
- 不确定 Agent 理解是否正确,想先看计划
- 代码重构、架构变更
- 需要可审计的操作记录
5. 极简模式(Minimal)
(1) 工作原理
极简模式下,Agent 尽量减少工具调用,优先使用自身知识回答问题:

TEXT
📖 仅展示
👤 Alice: JavaScript 中 Promise 和 async/await 的区别是什么?
🤖 Agent:
Promise 是异步操作的对象表示,async/await 是 Promise 的语法糖:
1. Promise 用 .then() 链式调用:
fetchData().then(data => process(data)).catch(err => handle(err));
2. async/await 用同步写法:
const data = await fetchData();
process(data);
核心区别:
- Promise 是对象,async/await 是语法
- await 只能在 async 函数中使用
- async 函数总是返回 Promise
- 错误处理:.catch() vs try/catch
注意:Agent 没有调用任何工具——直接用知识回答。
(2) ▶ 示例 2
graph TD
INPUT[用户指令] --> EVAL{能用知识回答吗?}
EVAL -->|是| RESPOND[直接回复]
EVAL -->|否| TOOL[调用最少必要工具]
TOOL --> RESPOND
(3) 极简模式 vs 标准模式对比
| 场景 | 标准模式 | 极简模式 |
|---|---|---|
| "什么是闭包?" | 可能搜索项目中的闭包示例 | 直接解释概念 |
| "帮我写个排序函数" | 先搜索项目代码风格,再写 | 直接写通用实现 |
| "这个 Bug 怎么修?" | 读取文件、搜索相关代码 | 先给通用方案,用户要求才读文件 |
(4) 何时使用极简模式
- 知识问答(不需要操作文件)
- 快速获取建议或方案
- 不希望 Agent "大动干戈"
- 节省 token 消耗
6. 创造模式(Creative)
(1) 工作原理
创造模式给 Agent 最高自由度,鼓励探索性、创意性输出:
TEXT
📖 仅展示
👤 Alice: 帮我设计一个独特的 404 页面
🤖 Agent:
🎨 我来设计一个交互式 404 页面——用 Canvas 画一个小行星带,用户可以移动鼠标躲避陨石!
📝 Using tool: file_edit (create)
→ Creating src/pages/404.html
🎨 功能:
- Canvas 绘制动态星空背景
- 鼠标控制小飞船移动
- 陨石随机生成和碰撞检测
- 随时间增加难度
- 碰撞后显示"你找到了 404!"并跳转首页
🔧 额外想法:
- 加个音效用 Web Audio API
- 移动端触摸支持
- 分数排行榜(localStorage)
(2) 创造模式的特点
| 特点 | 说明 |
|---|---|
| 高 Temperature | 输出更随机、更多样 |
| 自由联想 | 主动给出额外建议和创意 |
| 不限于指令 | 超出用户要求的范围思考 |
| 鼓励探索 | 尝试非常规方案 |
| 输出较长 | 通常比其他模式输出更多内容 |
(3) 创造模式的适用场景
graph LR
A[创意写作] --> CRE[创造模式]
B[UI/UX 设计] --> CRE
C[头脑风暴] --> CRE
D[原型探索] --> CRE
E[学习新框架] --> CRE
(4) 创造模式的注意事项
- 输出不可控——可能偏离原始需求
- 不适合精确的代码修改任务
- 不适合需要确定性结果的场景
- token 消耗通常较高
7. 模式切换与组合
(1) 切换方式
Web UI 切换:
TEXT
📖 仅展示
顶部控制栏 → 模式下拉菜单 → 选择目标模式
CLI 切换:
BASH
# 启动时指定
npx @deepseek-ai/dsh cli --mode ptc
# 运行中切换
/mode creative
配置文件默认模式:
YAML
# dsh.config.yaml
default_mode: ptc
(2) 模式组合策略
实际工作中,不同阶段可以用不同模式:
TEXT
📖 仅展示
项目规划阶段 → PTC 模式(先规划)
↓
实现阶段 → 标准模式(自主执行)
↓
问题排查 → 极简模式(快速问答)
↓
UI 设计 → 创造模式(探索创意)
(3) 模式与模型的最佳搭配
| 任务 | 推荐模式 | 推荐模型 | 原因 |
|---|---|---|---|
| 代码编写 | 标准 | deepseek-coder | 代码模型 + 自主决策 |
| 复杂重构 | PTC | deepseek-reasoner | 推理模型 + 计划确认 |
| 技术问答 | 极简 | deepseek-chat | 通用模型 + 快速回答 |
| 创意设计 | 创造 | gpt-4o | 高创造性 + 多样输出 |
| Bug 调试 | 标准 | deepseek-coder | 代码理解 + 工具使用 |
8. 模式实现原理
(1) 模式配置结构
TYPESCRIPT
interface ModeConfig {
name: string;
allowTools: boolean;
requirePlan: boolean;
temperature: number;
maxToolCalls: number | null;
systemPromptExtra: string;
}
const MODES: Record<string, ModeConfig> = {
standard: {
name: 'standard',
allowTools: true,
requirePlan: false,
temperature: 0.7,
maxToolCalls: null,
systemPromptExtra: 'You have full autonomy to use tools as needed.'
},
ptc: {
name: 'ptc',
allowTools: true,
requirePlan: true,
temperature: 0.3,
maxToolCalls: null,
systemPromptExtra: 'Always create a plan first. Do not execute until the user confirms.'
},
minimal: {
name: 'minimal',
allowTools: true,
requirePlan: false,
temperature: 0.2,
maxToolCalls: 1,
systemPromptExtra: 'Minimize tool usage. Prefer answering from knowledge.'
},
creative: {
name: 'creative',
allowTools: true,
requirePlan: false,
temperature: 1.0,
maxToolCalls: null,
systemPromptExtra: 'Be creative, explore unusual approaches, think beyond the obvious.'
}
};
(2) 模式如何影响 System Prompt
每种模式在 System Prompt 末尾追加额外指令,引导 Agent 行为:
TEXT
📖 仅展示
标准模式追加:
"Use tools freely when they help accomplish the task."
PTC 模式追加:
"Before any action, output a numbered plan. Wait for user confirmation before executing."
极简模式追加:
"Answer from your knowledge first. Only use tools when absolutely necessary."
创造模式追加:
"Think creatively and explore novel approaches. Offer additional ideas beyond the request."
❓ 常见问题
Q 哪种模式最省 token?
A 极简模式——工具调用最少,输出最精简。PTC 模式最费 token(计划 + 执行两步输出)。
Q PTC 模式的计划可以修改吗?
A 可以。用户可以删除、修改、重新排序计划中的步骤,也可以告诉 Agent "跳过第 3 步"。
Q 创造模式会不会写出不安全的代码?
A 有可能。创造模式鼓励探索,可能使用非常规方案。对安全性要求高的任务不建议使用创造模式。
Q 标准模式下 Agent 的决策是否可预测?
A 基本可预测——相同输入通常产生相似的工具调用序列。但 LLM 输出有随机性,不完全确定性。
Q 可以在同一个会话中切换模式吗?
A 可以。模式切换即时生效,不影响已执行的对话历史。后续消息将按新模式的行为规则处理。
Q 极简模式会完全不使用工具吗?
A 不是完全不使用,而是最少使用。如果问题确实需要读取文件或执行命令,Agent 仍然会调用工具,但频率远低于标准模式。 ---
📖 小节
- 四种模式:标准(自主决策)、PTC(先规划再执行)、极简(最少工具)、创造(探索输出)
- 标准模式是默认选择,适合 80% 场景
- PTC 模式通过 Plan → Confirm → Execute 流程提供精确控制
- 极简模式优先用知识回答,节省 token
- 创造模式高自由度,适合创意和探索
- 实际项目可在不同阶段组合使用不同模式
- 模式通过修改 Temperature、System Prompt、工具策略影响 Agent 行为
📝 作业
1. ⭐ 基础题:分别用四种模式向 Agent 提问同一问题:"帮我写一个快速排序函数",对比四种模式的输出差异(工具调用次数、输出长度、代码风格)。
2. ⭐⭐ 进阶题:使用 PTC 模式完成一个 5 步以上的任务(如"给项目添加日志系统"),记录 Agent 的计划内容,手动修改计划(删除或调整步骤),观察执行结果。
3. ⭐⭐⭐ 挑战题:设计一个"模式组合方案"——为一个完整的 Web 开发项目(从设计到部署)的每个阶段选择最合适的模式,并用 Mermaid 流程图展示模式切换的时机和原因。