前言¶
DeepSeek Harness 的核心理念是“一切皆插件”。在构建复杂的智能体工作流时,手动管理任务之间的依赖关系(DAG)往往既繁琐又容易出错。该插件旨在解决这一问题,它引入了一种声明式的任务编排方式,让模型通过工具调用直接定义任务拓扑,并自动验证和执行。
插件定位¶
该插件由社区开发者 apheli0os 维护,是一个面向 DeepSeek Harness 的声明式任务 DAG 编排工具。它基于 MIT 许可证开源,并非 DeepSeek 官方组件。
核心功能¶
- 注册模型工具:插件向模型注册了一个名为
orchestrate_tasks的工具,供模型在调用时使用。 - 图验证:在执行任何任务之前,插件会先验证任务图是有界有向无环图 (DAG),防止死循环或无效依赖。
- 确定性执行:任务通过宿主提供的
ctx.workflowEngine执行,采用确定性拓扑分层策略。 - 数据安全传递:仅传递 JSON 格式的数据,不进行 JavaScript 源码插值,避免潜在的安全风险。
安装与启用¶
安装命令如下:
dsh plugin --profile web add dsh-tool-orchestrate
请将 web 替换为你实际使用的配置文件名称。该插件声明了一个 DSH bundle manifest,安装后会自动添加其 tool-orchestrate Cordis 行。
在安装前,请确保宿主部署已提供以下组件:
- ctx.tools
- ctx.systemPrompt
- ctx.workflowEngine(通常由 @deepseek-ai/dsh-workflow-worker-thread 提供)
- workflow engine 选择的 subagent provider
对于自定义的组合,可能需要手动添加配置:
- id: tool-orchestrate
name: 'dsh-tool-orchestrate'
典型用法¶
模型调用 orchestrate_tasks 工具,传入 meta 和 tasks 参数。tasks 是一个非空数组,每个任务对象包含以下字段:
id: 小写 kebab-case 格式的字符串。title: 任务标题。prompt: 任务提示词。- 可选配置:
dependsOn(依赖的任务 ID 数组)、provider、model、outputSchema。
执行完成后,返回的结果会保持原始任务数组的顺序,包含每个任务的文本或结构化值。如果子任务失败,父任务状态将变为 { status: 'failed', error: 'subagent_failed' };如果因依赖失败而被跳过,状态为 skipped。
适用场景与注意¶
适用场景:
- 需要构建多步骤、有明确依赖关系的复杂工作流。
- 希望通过声明式配置而非编写 JavaScript 代码来编排任务。
注意事项:
- 这是一个独立社区插件,非官方 DeepSeek 包。
- 需要宿主环境已配置好 ctx.workflowEngine。
- 不支持从 GitHub 仓库直接安装,必须通过 npm 安装。
- 该插件不拥有或存储 API Key,使用宿主部署的凭证。
- 严禁将 API Key 放入 prompts、cordis.yml、源代码或 GitHub Actions 日志中。
总结¶
该插件通过声明式配置和确定性执行,简化了 DeepSeek Harness 工作流的开发流程。更多细节请参考插件目录或GitHub 仓库。