apheli0os/deepseek-harness-orchestrate

Declarative task-DAG orchestration plugin for DeepSeek Harness

Bundle 已验证 MIT TypeScript 未知
Bundle 已验证

已收录

0

Workflow

Bundle 已验证

版本未知
语言TypeScript
许可证MIT
在 GitHub 查看

功能介绍

DSH 声明式任务 DAG 编排:校验依赖图,通过工作流子智能体并行执行拓扑任务层,并确定性传播失败。

适合

  • 能够表达为有界任务依赖图的 DSH 工作流。
  • 包含可独立执行拓扑层、适合由工作流子智能体并行处理的复杂任务。
  • 需要确定性校验、失败传播、阻塞任务报告和有序汇总结果的团队。

不适合

  • 简单的顺序任务,因为定义 DAG 和编排子智能体带来的价值有限。
  • 未提供 ctx.workflowEngine 或未配置子智能体 provider 的部署。
  • 超过默认上限的工作流,例如 64 个任务、每个任务 16 个直接依赖或 32,768 个规范化提示字符。

README

dsh-tool-orchestrate

English 中文

Declarative task-DAG orchestration for DeepSeek Harness. This optional Cordis plugin registers a model-facing orchestrate_tasks tool, validates a bounded directed acyclic task graph before anything starts, and executes it through the existing ctx.workflowEngine.

This is an independent community plugin and is not an official DeepSeek package.

The package-owned worker script executes deterministic topological layers. Model-authored ids, prompts, dependency ids, schemas, provider names, model names, and upstream results are passed only as JSON data; none is interpolated into JavaScript source.

Install

dsh plugin --profile web add dsh-tool-orchestrate

Replace web with the profile you want to extend. The package declares a DSH bundle manifest, so installation adds its tool-orchestrate Cordis row automatically. This project distributes prebuilt releases through npm; installing directly from the GitHub repository is not supported.

The plugin expects a DeepSeek Harness deployment that already provides:

  • ctx.tools
  • ctx.systemPrompt
  • ctx.workflowEngine, normally supplied by @deepseek-ai/dsh-workflow-worker-thread
  • a subagent provider selected by the workflow engine

Manual Cordis configuration

Normally no manual configuration is needed after dsh plugin add. For a custom composition, add:

- id: tool-orchestrate
  name: 'dsh-tool-orchestrate'

The standard DSH base bundle already loads workflow-worker-thread. A custom composition must provide ctx.workflowEngine; if it disables the workflow engine, re-enable it explicitly in a later patch layer.

Model input

orchestrate_tasks accepts:

  • meta: normalized name and description;
  • tasks: a non-empty array of tasks with lowercase kebab-case id, title, and normalized prompt;
  • optional dependsOn, provider, model, and object-rooted outputSchema per task.

Each completed task returns its child’s text or structured value. A failed child becomes { status: 'failed', error: 'subagent_failed' }; a task blocked by failed or skipped direct dependencies becomes skipped with deterministic blockedBy ids. Results keep the original task-array order, with aggregate counts and a top-level completed, partial, or failed status.

API key ownership

This plugin does not own or store an API key. Child tasks use the host deployment’s existing LLM route and credential source: for example DEEPSEEK_API_KEY in the process environment, a host credential provider, or another configured route. Subagents inherit the same credential configuration as the parent composition unless a task selects a different provider/model route.

Do not place API keys in prompts, cordis.yml, source code, or GitHub Actions logs. Prefer environment variables or your deployment’s credential mechanism.

Config

Key Default Meaning
toolName orchestrate_tasks Model-facing tool name.
maxTasks 64 Maximum tasks per call.
maxDependencies 16 Maximum direct dependencies per task.
maxPromptChars 32768 Maximum normalized characters per task prompt.
maxResultChars 50000 Rendered canonical-JSON ceiling.

All numeric limits must be positive safe integers; toolName must be a non-empty normalized string.

Development

pnpm install
pnpm run typecheck
pnpm run check

Publishing is performed from a clean checkout through the manually triggered Publish to npm GitHub Actions workflow. Maintainers must configure its npm environment and NPM_TOKEN secret first.

常见问题常见问题

在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:apheli0os/deepseek-harness-orchestrate。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。