前言¶
DeepSeek Harness 将智能体开发分为宿主平面(沙盒、模型路由、持久化)和智能体平面(工具、人设、提示词)。一旦会话的预设被锁定,就无法在不中断日志记录的情况下热切换工作智能体的工具集。dsh-generation 插件通过记录血统,允许复制已知良好的预设,使用常规 fs/bash 工具编辑该副本,然后在其上启动一个新的工作会话。
它是什么¶
这是一个 DeepSeek Harness 插件,用于分叉智能体预设并在下一代运行任务。它由 goecho 维护,属于工作流分类,许可证为 MIT。
核心功能¶
插件提供以下核心能力:
1. 分叉智能体预设:复制现有的智能体预设(如 standard、minimal 或 ptc)。
2. 在下一代运行任务:在分叉后的预设上执行任务。
3. 记录血统:通过 meta session 的日志记录工具调用和结果。
4. 创建新的工作会话:建立独立的工作环境。
5. 工具注册:在宿主配置文件中全局注册工具。
安装与启用¶
通过命令行安装插件到宿主配置文件:
dsh plugin --profile web add github:goecho/dsh-generation
安装后,需要重启 dsh --profile web 以使宿主配置文件重新加载。
典型用法¶
插件提供了两个主要工具:generation_fork 和 generation_run。
generation_fork¶
该工具用于复制预设。它调用 agentPresets.copy(from, id) 并将目的写入新预设的 preset.yml 描述中。
参数说明:
* from (必填):要复制的预设 ID。建议使用 standard、minimal 或 ptc。
* id (必填):新预设 ID,格式需符合 /^[a-z0-9][a-z0-9-]*$/,且不能已存在。
* purpose (必填):写入新预设描述的一句话。
返回值:
{ "ok": true, "id": "...", "from": "...", "purpose": "...", "path": "...", "compositionPath": "..." }
generation_run¶
该工具用于在分叉的预设上执行任务。它会在批准后创建一个代理,挂载该预设,执行 followup(task),等待直到空闲或超时,然后清理。
参数说明:
* preset (必填):挂载到新工作会话的预设 ID。不能是 cordis。
* task (必填):传递给 Worker 的自包含后续任务。Worker 无法看到 meta 会话的历史。
返回值:
{ "ok": true, "sessionId": "...", "presetId": "...", "stopReason": "...", "toolsUsed": [...], "lastAssistantText": "..." }
适用场景与注意事项¶
适用场景¶
适合需要基于现有可靠预设进行迭代开发、修改配置或尝试新行为的场景。通过链式调用,可以在元会话中不断分叉、编辑并运行新会话。
限制与注意事项¶
- 非替代品:它不是 Creator 模式(cordis 预设)或
cordis_define/cordis_run的替代品,也不用于重排当前会话或给子代理更换预设。 - 无依赖:插件不依赖
@deepseek-ai/dsh-tools或@deepseek-ai/dsh-llm。工具以原始定义注册,避免模块身份分裂。 - 全局注册:工具在宿主配置文件中全局注册,并会从非 Creator 会话中隐藏。
- 重启要求:安装后必须重启
dsh --profile web。 - Worker 限制:Worker 预设不能是
cordis,且不能包含@deepseek-ai/dsh-tool-cordis插件行。 - 安全性:将一个可以分叉和运行的 Creator 会话视为 Shell 访问。每个 fork 和 run 都需要人工批准。
总结¶
dsh-generation 旨在通过“Make,而非 Compiler”的哲学,为智能体开发提供一种基于副本迭代的构建方式,而非对正在运行的会话进行修补。