DeepSeek Harness 任务 DAG 编排插件介绍

前言

DeepSeek Harness 的核心理念是“一切皆插件”。在构建复杂的智能体工作流时,手动管理任务之间的依赖关系(DAG)往往既繁琐又容易出错。该插件旨在解决这一问题,它引入了一种声明式的任务编排方式,让模型通过工具调用直接定义任务拓扑,并自动验证和执行。

插件定位

该插件由社区开发者 apheli0os 维护,是一个面向 DeepSeek Harness 的声明式任务 DAG 编排工具。它基于 MIT 许可证开源,并非 DeepSeek 官方组件。

核心功能

  1. 注册模型工具:插件向模型注册了一个名为 orchestrate_tasks 的工具,供模型在调用时使用。
  2. 图验证:在执行任何任务之前,插件会先验证任务图是有界有向无环图 (DAG),防止死循环或无效依赖。
  3. 确定性执行:任务通过宿主提供的 ctx.workflowEngine 执行,采用确定性拓扑分层策略。
  4. 数据安全传递:仅传递 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 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜