
module_agent_deepseek
☆ 0DeepSeek Harness 多智能体协同开发插件,内置七级智能体(岐伯、隶首、风后、夔、力牧、皋陶、离朱),覆盖项目初始化、代码归类、计划编排、批量执行、代码审查与测试验证的完整开发闭环。基于 @deepseek-ai/cordis 插件体系,为 dsh 提供“风后力牧”式多智能体协作能力。
Get this plugin
Review the source, then continue to the publisher.
About this plugin
Source snapshot 8/16/2026DeepSeek Harness Module Agent Plugin
多模块协同开发插件,内置岐伯、隶首、风后、夔、力牧、皋陶、离朱七级智能体,覆盖从项目初始化、代码归类、计划编排、批量执行、代码审查到测试验证的完整开发闭环。
本插件为 opencode 版「风后力牧」多智能体协同框架的 DeepSeek Harness(dsh)移植,基于 @deepseek-ai/cordis 插件体系实现。
安装与加载
将本插件源码放入 dsh 的 profile 目录,并在 profile 的 cordis.patch.yml 中声明加载。
-
将本项目的
src/复制到 profile 目录下的module-agent/子目录,例如~/.dsh/profiles/web/module-agent/。 -
在 profile 目录的
cordis.patch.yml(~/.dsh/profiles/web/cordis.patch.yml)中新增:- insert: - id: module-agent name: './module-agent/src/index.ts' config: # 项目根目录兜底(agent 会话无 cwd 时作为 .module_agent 数据目录的解析根) dataDir: . # 启动力牧/皋陶/离朱/夔子智能体使用的 subagent provider,默认 'spawn' subagentProvider: spawn -
启动
dsh web,插件自动加载。
快速开始
在 dsh 会话中直接输入以下任一指令:
启动岐伯 (项目初始化)
启动隶首 (代码归类)
启动风后力牧 (开发编排)
七级智能体
| 智能体 | 角色 | 职责 |
|---|---|---|
| 岐伯 | 项目设置向导 | 引导生成需求设计、代码规范、模块设计 |
| 隶首 | 代码归类专家 | 扫描已有代码,自动分类文件、绑定模块、提取代码规范 |
| 风后 | 编排总指挥 | 评估变更、生成计划、调度力牧/夔/皋陶/离朱、汇总报告、Git 提交 |
| 夔 | 批量编排器 | 接受风后委托,自动逐模块启动力牧执行 + 皋陶审查,完成后汇总 |
| 力牧 | 计划执行者 | 按开发计划编写代码,自动备份文件、写入执行记录 |
| 皋陶 | 代码审查员 | 对力牧提交的代码进行质量审查,输出问题列表和审查结论 |
| 离朱 | 测试执行者 | 根据测试说明执行编译检查、单元测试、端到端测试 |
架构总览
岐伯(项目设置)与风后力牧(开发编排)互斥,同一会话只能激活其一。
┌─────────────────────────────────────────┐
│ 岐伯 (qibo) │
│ 项目设置向导 │
│ 需求设计 → 代码规范 → 模块设计 │
└─────────────────────────────────────────┘
┌─────────────────────────────────────────────┐
│ 隶首 (lishou) │
│ 代码自归类与模块补全 │
│ 扫描项目 → 文件分类 → 绑定模块 → 更新模块设计 │
└─────────────────────────────────────────────┘
┌──────────────────────────────────────────┐
│ 夔 (kui) │
│ 批量编排 │
│ 风后委托 → 逐模块确认 → 启动力牧/皋陶 │
│ → 等待完成 → 汇总报告 │
└──────────────────────────────────────────┘
┌──────────────────────────────────────────┐
│ 风后 (fengzhou) │
│ 计划编排中枢 │
│ 初始化工件 → 检查规范 → 评估变更 │
│ → 生成计划 → 调度执行 → 汇总 → Git 提交 │
│ │
│ 禁止直接写/改代码 │
└──┬──────────┬────────┬─────────┐
│ │ │ │
▼ ▼ ▼ ▼
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│ 力牧 │ │ 夔 │ │ 皋陶 │ │ 离朱 │
│ limu │ │ kui │ │gaotao│ │lizhu │
│ │ │ │ │ │ │ │
│计划 │ │批量 │ │代码 │ │测试 │
│执行 │ │编排 │ │审查 │ │执行 │
│ │ │ │ │ │ │ │
│可绑定│ │子代理│ │ │ │ │
│→离朱 │ │启动 │ │ │ │ │
│ │ │力牧& │ │ │ │ │
│ │ │皋陶 │ │ │ │ │
└──┬───┘ └──┬───┘ └──────┘ └──────┘
│ │
▼ ├──────────┐
┌──────┐ ▼ ▼
│ 离朱 │ ┌──────┐ ┌──────┐
│(绑定) │ │力牧* │ │皋陶* │
└──────┘ │(夔启)│ │(夔启)│
└──────┘ └──────┘
新手模式
新手模式是一个可选的需求引导机制,帮助将模糊需求逐维度明确后再进入开发。
开启 / 关闭
- 风后绑定工作空间后自动检测开发模式
- 若未设置,风后引导选择「新手模式」或「老手模式」
- 用户随时可告诉风后切换模式
5 维需求评估
| 维度 | 核心问题 |
|---|---|
| 角色与场景(Who/Where) | 操作者的身份与权限?入口页面? |
| 动作原子性(What) | 核心操作可拆为哪些具体步骤? |
| 数据与范围(Which) | 数据来源、字段列表、排序与分页规则? |
| 边界与异常(What if) | 空状态、加载态、网络超时、并发冲突、极限输入? |
| 可量化验收(Measure) | 性能指标、可观测结果、状态变化? |
任一维度不通过则判定为需求模糊,进入引导流程。
引导流程
- 前置探索:搜索工程已有角色/权限定义和页面/路由入口
- 逐轮引导(每次 1-2 维度):提问 → 用户确认 → 对照现有代码进行可行性校验
- 可行性校验:每轮确认后查看相关模块文件,判断现有代码能否支撑该需求,不可行则立即告知冲突点
- 汇总确认:五轮完成后汇总所有需求要点 + 可行性校验结果,用户最终确认后进入正常开发流程
工作流程
代码归类(隶首)
- 输入"启动隶首"启动代码归类
- 隶首递归扫描项目目录,找到未归入模块的文件
- 提取导出符号和依赖关系,从物理边界、依赖关系、功能语义三维度归类
- 绑定模块并写入模块定义,更新模块设计,提取代码规范
项目初始化(岐伯)
- 输入"启动岐伯"启动项目设置向导
- 按 Phase 1→2→3 依次引导完成需求设计、代码规范、模块设计
- 完成后在新会话中输入"启动风后力牧"进入开发模式
开发编排(风后力牧 / 夔)
- 工作空间初始化:创建或绑定工作空间,配置各智能体的默认模型
- 规范检查:检查代码规范和模块设计是否存在,不存在则引导先用岐伯生成
- 模块树建立:读取或创建模块结构,默认生成
framework框架模块 - 评估变更:读取模块信息 + 直接分析代码,生成开发计划
- 执行模式选择:
- 逐模块确认:风后逐个展示计划,用户确认后启动执行
- 批量编排:多模块并行时委托夔自动管理
- 计划确认与执行(支持并行):
- 展示计划 → 用户确认 → 启动力牧编写代码
- 力牧自动备份原文件,写入执行记录
- 支持会话重用:同模块计划复用已有力牧会话
- 离朱测试:
- 力牧路径:力牧完成代码后自动启动离朱测试
- 风后路径:风后独立编写测试说明,启动离朱测试
- 皋陶审查:检查皋陶状态 → 启动代码审查 → 获取审查结果
- 汇总报告:收集所有执行结果、测试结果和审查结论
- Git 提交:确认后执行
git add/git commit/git push - 收尾清理:关闭各智能体会话,清理已完成计划
纠正与反馈
风后在生成计划前自动读取历史纠正记录,避免重复犯错。用户指正后风后先核实再记录:
- 计划前自动读取历史纠正
- 用户指正 → 风后核实 → 记录纠正
- 支持按索引删除指定纠正记录
批量编排(夔)
多模块并行开发时,风后委托夔自动管理全流程:
- 风后将多模块计划委托给夔
- 夔逐模块确认计划 → 启动力牧执行 → 等待完成
- 计划完成后自动启动皋陶审查
- 全部完成后通知风后,风后获取汇总报告
知识库
风后可配置工作空间的知识库目录,作为子代理(夔/力牧/皋陶/离朱)执行时的外部参考资料。
- 风后通过
knowledge_base工具设置知识库目录及说明 - 工作空间初始化时自动读取知识库列表
- 子代理启动后自动获得知识库信息,并可直接读取知识库目录(无需审批)
与 opencode 版实现方案差异
下表为 opencode 版(@opencode-ai/plugin)与本 dsh 版关键机制的映射,参照 src/index.ts、src/config.ts 的实际实现:
| 机制 | opencode 版 | dsh 版(本插件) |
|---|---|---|
| 插件入口 | Plugin(ctx) => tool,函数返回工具对象 | Cordis 插件 apply(ctx, config) + inject(['tools','systemPrompt','agents','subagents','llm','sessions'])(src/index.ts) |
| 工具定义 | tool({...}) 声明工具 | defineTool + ctx.tools.register()(src/tools/index.ts 的 registerModuleAgentTools) |
| 子智能体调度 | client.session.create / promptAsync | ctx.subagents.startContinuable() / followup() |
| 身份标记 | setAgentMode 持久化到 session_modes.json | subagent persona/descriptor:module-agent:role=<mode> marker 或 module-agent:<mode> provider 命名(src/lib/session_state.ts) |
| 权限拦截 | permission.ask / tool.execute.before | tools/pre-execute 事件 + ctx.tools.guard()(src/index.ts registerGuards) |
| 系统提示词注入 | chat.system.transform | ctx.systemPrompt.section()(src/index.ts registerPromptInjection) |
| 完成通知 | session.idle 事件 | agent/pre-step 拦截 dsh 的 subagent-settled 消息并替换为框架完成通知(src/index.ts registerCompletionNotification) |
| 模型能力 | opencode sdk client | ctx.llm(ModelCatalog 抽象:listProviders / listModels,src/index.ts) |
| 数据存储 | .module_agent/*.json 文件存储 | 两版一致,沿用 .module_agent/*.json 文件存储 |