在 DeepSeek Harness (DSH) 中进行复杂工程开发时,最大的挑战往往不在于单一模块的实现,而在于需求拆解的粒度控制、模块间的依赖管理以及变更带来的连锁反应。手动维护模块树和依赖关系容易出错,且难以追踪变更的影响范围。
phantomsuying/dsh-module-driven-develop 是一个为 DSH 提供模块驱动开发 (MDD) 能力的插件。它实现了一套完整的技能驱动软件开发协议,旨在解决上述问题。
这是什么¶
这是一个专注于工作流的 DSH 插件,维护者为 phantomSuying。它将软件开发过程形式化为:分解、设计、实现、集成、调试和变更管理。该插件的核心价值在于通过自动化流程,将任意需求拆解为模块树,并利用多 Agent 协作完成从设计到交付的全过程。
核心功能¶
该插件提供了以下主要能力:
- 技能驱动开发协议:覆盖从需求分解、架构设计、代码生成、集成测试到变更管理的全生命周期。
- 递归需求分解:将大需求逐级拆解为模块和子模块,直到每个叶子模块足够小,可由单一 Agent 独立设计和实现。
- 独立 Agent 生成代码:叶子模块由独立的子 Agent 全量生成,而包含子模块的父模块则作为下一级调度者,负责协调和集成。
- 主 Agent 调度与集成:主 Agent 负责编排流程、调度子 Agent,并在生成后进行集成、构建和调试。
- 全量代码重生成:当设计变更时,插件会触发版本号递增,归档旧代码并清空目录,强制从新的设计文档重新生成所有代码,禁止打补丁。
- 需求变更递归传播:当需求发生调整时,插件会定位受影响的模块(包括间接依赖),模块 Agent 会递归判断是否需要向下传递任务,随后重新设计和生成。
安装与启用¶
通过 DSH 的插件管理器安装该插件。安装后,该插件会注册一个名为 module-driven-dev 的技能到对应的 Profile 中。
dsh plugin --profile web add git+https://github.com/phantomSuying/dsh-module-driven-develop.git
安装完成后,重启 DSH 进程。在新的会话中,Agent 的技能目录中应包含 module-driven-dev 技能。
典型用法¶
该插件通过自然语言指令驱动工作流:
-
实现需求:
在对话中输入用模块驱动开发实现 <requirement>。Agent 将按照 P0-P5 的阶段运行:先拆解模块树,再为每个模块设计,随后分发独立子 Agent 生成代码,最后由主 Agent 进行集成、构建和调试。 -
修改设计:
输入把 <module> 的设计改成 ...。Agent 会识别为设计变更,触发版本号递增,归档旧代码,并从新的设计文档出发全量重生成该模块及相关依赖的代码。 -
调整需求:
输入需求调整:<new requirement>。Agent 会调度一个变更分析子 Agent 定位受影响的模块,模块 Agent 递归决定任务下沉范围,随后执行重新设计、重新生成和重新集成。
项目结构与数据¶
该插件要求将所有工作产物集中管理。所有文件(包括模块树、设计文档、日志等)统一存放在项目根目录下的 .mdd/ 文件夹中。
设计文档是单一真相来源。所有的代码生成都基于 .mdd/designs/ 下的文档,这保证了实现与设计的一致性。
适用场景与注意¶
该插件适合需要高度结构化开发流程、对模块解耦有较高要求的复杂项目。
注意事项:
1. 插件以当前 DSH 进程的权限运行,请确保对插件源码和许可证有审查意识。
2. 插件仓库提供的 auth-service 示例项目展示了完整的 MDD 工作流,可作为参考。
总结¶
phantomsuying/dsh-module-driven-develop 通过引入模块驱动开发协议,为 DeepSeek Harness 提供了一套严密的工程化实践。它通过递归分解、独立生成和全量回滚机制,降低了复杂系统的开发门槛和集成风险。