前言¶
DeepSeek Harness(DSH)采用“一切皆插件”的架构。在构建涉及多 Agent、依赖链和定时任务的复杂工作流时,直接管理 Session 和工作树容易出错,且难以保证状态持久化。dsh-factory 作为一个控制平面,在 DSH 原生能力之上构建了持久化的依赖图任务工厂。
核心能力¶
该插件提供以下功能:
- 依赖图:支持在单一命名流程中定义并行分支、顺序链、Join 和终结器。
- 原生 Agent 运行:每个分配任务都作为普通的持久化 DSH Session 运行,使用选定的模型和预设。
- 安全 checkout lanes:基于 Git 工作树的隔离写入通道,包含脏工作保护和 Live Session 保护。
- 调度:支持一次性(延迟)和定期(基于 Cron)调度。
- 自动失败重试:失败的运行会重新排队,带有指数退避(默认三次重试,间隔三十秒起步)。
- 项目范围标识符:每个工作区生成独立的大写 Key,避免跨项目依赖错误。
- 一流的讨论与 Triage:提供可排序的队列、讨论流、Artifacts 和审核结果。
- White-glove intake:扩展 New Session,提供紧凑的任务/流程选择器。
安装与启用¶
Factory 作为一种控制平面运行,不会替代 DSH 本身。安装后需要重启 profile 才能生效。
dsh plugin --profile web add dsh-factory@latest
安装完成后,Factory 将作为一个侧边栏应用出现,其 SQLite 数据库存储在 DSH home 目录中。
使用流程¶
- 捕获:正常发送提示以创建 Live Session,选择“Run later”创建草稿任务,或将提示放入新/现有流程中。
- 组合:添加可搜索的依赖、并行分支、标签、优先级、调度和模型覆盖。
- 运行:调度器获取就绪任务,分配安全 checkout lane,启动 DSH Agent,并记录带有依赖和 mutation-ledger 上下文的分配。
- 协作:通过 Agent 收件箱发布队列和引导消息;待处理行保持可编辑和可重新排序,直到被获取。
- 完成:在
factory_finish之后,会生成一个简洁的用户可见结果,只有在 Session 日志刷新后才结算。 - 回顾:Triage 保留每个终端事件,包括定期运行、收据、摘要、失败和媒体文件。
注意事项¶
- Factory 是 DSH 的控制平面,并非替代品。Factory SQLite 拥有项目、任务、流程、调度、运行和审核状态。DSH 保留 Agent 执行、模型可见消息、待处理提示顺序、工具、附件、Session 和工作树安全的权威性。
- Checkout 是一个序列化写入通道。
- Factory 永不强制移除工作树,永不删除脏工作,也永不释放 lane(当共享存在报告 Live Session 时)。
- 定期任务在每次出现后返回到 Scheduled 状态,并在 Triage 中保留每次成功或失败。
- 调度器接管仅恢复调度器拥有的分派,因此观察外部 Session 不会创建重复运行。
总结¶
dsh-factory 为 DeepSeek Harness 提供了结构化的任务编排能力,适合需要持久化调度、依赖管理和安全并发执行的场景。