DeepSeek Harness 人机命令与交互技巧
人类命令 vs 模型工具
dsh 有一个很多人用不上的能力:人类命令。
| 人类命令 | 模型工具 | |
|---|---|---|
| 触发 | 你手动打/xxx |
模型自己决定调用 |
| 面向 | 人 | 模型 |
| 进日志 | 不会成为模型消息 | 会进日志 |
| 平面 | 命令平面(UI 适配器 + 命令插件) | 工具注册表 |
官方定义:
人类命令:以斜杠开头的指令,由面向人类的适配器通过
ctx.commands解释并执行,不会成为模型消息。它既不同于面向模型的工具,也不同于通过ctx.shell执行 shell 命令。命令平面:由 UI 适配器和命令插件负责的发现、解析、分发、取消与结果渲染机制。除非处理器另行改变持久领域,否则命令输出属于 UI 状态。
关键理解:命令输出是 UI 状态,不是会话内容。所以一条命令的结果不会污染模型上下文——这正是它该有的行为。
内置的人类命令
| 命令 | 作用 |
|---|---|
/goal |
观察或更改当前目标(由dsh-command-goal 提供) |
/plan |
计划模式相关 |
plugin(子命令形式) |
插件管理(用--profile plugin 选择) |
命令平面带来的好处
- 零上下文成本:你手动触发,不占模型 token;
- 可取消:命令平面负责取消;
- 结果只到 UI:不污染会话。
交互技巧清单
| 技巧 | 效果 |
|---|---|
先/plan 再开工 |
少返工 |
| 用 restriction 收窄工具集 | Agent 不会尝试被禁操作 |
用@ 引用会话(若客户端支持) |
找回历史结论 |
| 长任务放后台 | 不阻塞 |
| 完成后归档会话 | 列表可扫读 |
事件层的拦截能力
除了命令,dsh 还有更底层的拦截点(如果你写插件):
| 想拦截 | 用什么 |
|---|---|
| 请求 | agent/request(waterfall,须next()) |
| 工具执行 | tools/pre-execute、tools/post-execute |
| 轮次 | agent/turn-stopping(serial,无next()) |
| 输入接纳 | agent/pre-step(可改写或拒绝已领取消息) |
不用插件也能受益的思路:让懂 dsh 的人写一个小插件做审计日志,你就有了完整的 Agent 行为审计能力。
本文来自博客园,作者:半抹灯芯,转载请注明原文链接:https://www.cnblogs.com/wanxiangsucai/p/23464091

浙公网安备 33010602011771号