DeepSeek Harness 系统提示词:Persona 与变量机制
2026-08-16 13:11:34阅读 2
每次 agent 开口前,它先"读"一段看不见的文本——系统提示词。这段文本决定 agent 是谁、会什么、什么风格。DSH 把系统提示词做成了可拼装的:像搭积木一样,不同插件各贡献一段,最后拼成完整的人设。
系统提示词是"拼"出来的
DSH 的系统提示词不是一段写死的长文本,而是一个有序段(section)集合。每个插件可以贡献自己的段落,按声明顺序拼装。典型构成:
[固定开场白] → 你是 DeepSeek Harness 的 agent
[部署人设] → 你是一个编码助手(persona,见下)
[工具说明] → 你能用这些工具:read、write、bash……
[上下文段] → 当前工作目录、运行时信息好处:加一个插件,它就自动往提示词里插自己那段说明——能力和"能力说明"永远不会脱节。这就是"一切皆插件"在循环层面就是这个意思。
Persona:agent 的"人设"
Persona 是部署层面的一段自定义文本,专门用来定调:
- 全局 persona:写在配置里,整个部署通用(如"你是一位严谨的软件工程师")
- 会话 persona:单个 agent 可以覆盖全局值(某个会话换成别的风格)
在 Agent Preset:内置预设与自定义切换 里提到的预设差异,很大程度就是 persona 和工具集的不同。
提示词变量:让同一段文本适配不同场景
提示词段落支持 {{变量}} 占位符,组装时替换成实际值。最常用的两个:
| 变量 | 值 |
|---|---|
{{model}} | 当前会话使用的模型名 |
{{cwd}} | 当前工作目录 |
所以你写 persona 时可以这么写:"你是一个编码代理,工作在 {{cwd}} 目录,使用 {{model}} 模型。"——每个会话自动替换成真实值。
工具的"出场顺序"也可以控
agent 看到的工具列表顺序,默认按名称排列;也可以用 toolOrder 配置显式指定。这影响模型的注意力分配——排前面的工具更容易被想到。
实用建议:把最想让 agent 用的工具排在前面。这块与 配置层与 patch:叠加规则详解 的机制相同,都是改配置行。
你可以动什么、不该动什么
| 可动 | 说明 |
|---|---|
| persona 文本 | 随时改,下一个会话生效 |
| 提示词段 | 通过插件贡献(进阶,见插件机制与 Cordis 入门) |
| 变量值 | 用现成的{{model}}/{{cwd}} |
不该动:固定开场白和 harness 身份段是部署自带的基础,一般通过配置开关(includeHarnessIdentity)控制而非手改——除非你明确知道自己在做什么。
常见疑问
| 疑问 | 解答 |
|---|---|
| 改 persona 后当前会话没变? | 会话在创建时定人设,改动对新会话生效 |
| 为什么 agent 有时"忘记"人设? | 超长会话被压缩后,早期人设强调可能被摘要化;关键规则放 AGENTS.md 更稳 |
| 想看完整的系统提示词? | 会话日志里记录了组装后的完整请求(见会话与记忆) |
接下来读什么
- 跨会话的长期规则写在哪 → AGENTS.md:项目指令文件怎么写
- agent 能用的工具有哪些 → 工具清单:内置工具与执行流水线
← 上一篇:3.2 会话与记忆:持久化与会话恢复 | 下一篇:3.4 AGENTS.md:项目指令文件怎么写 →
↑ 返回 教程总目录



.jpg)