Back to home

ghost616

module_agent_deepseek

DeepSeek Harness 多智能体协同开发插件,内置七级智能体(岐伯、隶首、风后、夔、力牧、皋陶、离朱),覆盖项目初始化、代码归类、计划编排、批量执行、代码审查与测试验证的完整开发闭环。基于 @deepseek-ai/cordis 插件体系,为 dsh 提供“风后力牧”式多智能体协作能力。

Stars
0
Language
TypeScript
Created
Aug 14, 2026
Updated
Aug 16, 2026

Introduction

DeepSeek Harness Module Agent Plugin

多模块协同开发插件,内置岐伯、隶首、风后、夔、力牧、皋陶、离朱七级智能体,覆盖从项目初始化、代码归类、计划编排、批量执行、代码审查到测试验证的完整开发闭环。

本插件为 opencode 版「风后力牧」多智能体协同框架的 DeepSeek Harness(dsh)移植,基于 @deepseek-ai/cordis 插件体系实现。

安装与加载

将本插件源码放入 dsh 的 profile 目录,并在 profile 的 cordis.patch.yml 中声明加载。

  1. 将本项目的 src/ 复制到 profile 目录下的 module-agent/ 子目录,例如 ~/.dsh/profiles/web/module-agent/

  2. 在 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
    
  3. 启动 dsh web,插件自动加载。

快速开始

在 dsh 会话中直接输入以下任一指令:

启动岐伯    (项目初始化)
启动隶首    (代码归类)
启动风后力牧 (开发编排)

七级智能体

智能体角色职责
岐伯项目设置向导引导生成需求设计、代码规范、模块设计
隶首代码归类专家扫描已有代码,自动分类文件、绑定模块、提取代码规范
风后编排总指挥评估变更、生成计划、调度力牧/夔/皋陶/离朱、汇总报告、Git 提交
批量编排器接受风后委托,自动逐模块启动力牧执行 + 皋陶审查,完成后汇总
力牧计划执行者按开发计划编写代码,自动备份文件、写入执行记录
皋陶代码审查员对力牧提交的代码进行质量审查,输出问题列表和审查结论
离朱测试执行者根据测试说明执行编译检查、单元测试、端到端测试

架构总览

岐伯(项目设置)与风后力牧(开发编排)互斥,同一会话只能激活其一。

┌─────────────────────────────────────────┐
│              岐伯 (qibo)                  │
│        项目设置向导                        │
│  需求设计 → 代码规范 → 模块设计            │
└─────────────────────────────────────────┘

┌─────────────────────────────────────────────┐
│              隶首 (lishou)                    │
│        代码自归类与模块补全                     │
│  扫描项目 → 文件分类 → 绑定模块 → 更新模块设计  │
└─────────────────────────────────────────────┘

┌──────────────────────────────────────────┐
│              夔 (kui)                      │
│            批量编排                         │
│  风后委托 → 逐模块确认 → 启动力牧/皋陶       │
│  → 等待完成 → 汇总报告                      │
└──────────────────────────────────────────┘

┌──────────────────────────────────────────┐
│              风后 (fengzhou)                │
│            计划编排中枢                      │
│  初始化工件 → 检查规范 → 评估变更            │
│  → 生成计划 → 调度执行 → 汇总 → Git 提交     │
│                                            │
│            禁止直接写/改代码                  │
└──┬──────────┬────────┬─────────┐
   │          │        │         │
   ▼          ▼        ▼         ▼
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│ 力牧  │ │ 夔    │ │ 皋陶  │ │ 离朱  │
│ limu │ │ kui  │ │gaotao│ │lizhu │
│      │ │      │ │      │ │      │
│计划  │ │批量  │ │代码  │ │测试  │
│执行  │ │编排  │ │审查  │ │执行  │
│      │ │      │ │      │ │      │
│可绑定│ │子代理│ │      │ │      │
│→离朱 │ │启动  │ │      │ │      │
│      │ │力牧& │ │      │ │      │
│      │ │皋陶  │ │      │ │      │
└──┬───┘ └──┬───┘ └──────┘ └──────┘
   │        │
   ▼        ├──────────┐
┌──────┐    ▼          ▼
│ 离朱  │ ┌──────┐ ┌──────┐
│(绑定) │ │力牧* │ │皋陶* │
└──────┘ │(夔启)│ │(夔启)│
         └──────┘ └──────┘

新手模式

新手模式是一个可选的需求引导机制,帮助将模糊需求逐维度明确后再进入开发。

开启 / 关闭

  1. 风后绑定工作空间后自动检测开发模式
  2. 若未设置,风后引导选择「新手模式」或「老手模式」
  3. 用户随时可告诉风后切换模式

5 维需求评估

维度核心问题
角色与场景(Who/Where)操作者的身份与权限?入口页面?
动作原子性(What)核心操作可拆为哪些具体步骤?
数据与范围(Which)数据来源、字段列表、排序与分页规则?
边界与异常(What if)空状态、加载态、网络超时、并发冲突、极限输入?
可量化验收(Measure)性能指标、可观测结果、状态变化?

任一维度不通过则判定为需求模糊,进入引导流程。

引导流程

  1. 前置探索:搜索工程已有角色/权限定义和页面/路由入口
  2. 逐轮引导(每次 1-2 维度):提问 → 用户确认 → 对照现有代码进行可行性校验
  3. 可行性校验:每轮确认后查看相关模块文件,判断现有代码能否支撑该需求,不可行则立即告知冲突点
  4. 汇总确认:五轮完成后汇总所有需求要点 + 可行性校验结果,用户最终确认后进入正常开发流程

工作流程

代码归类(隶首)

  1. 输入"启动隶首"启动代码归类
  2. 隶首递归扫描项目目录,找到未归入模块的文件
  3. 提取导出符号和依赖关系,从物理边界、依赖关系、功能语义三维度归类
  4. 绑定模块并写入模块定义,更新模块设计,提取代码规范

项目初始化(岐伯)

  1. 输入"启动岐伯"启动项目设置向导
  2. 按 Phase 1→2→3 依次引导完成需求设计、代码规范、模块设计
  3. 完成后在新会话中输入"启动风后力牧"进入开发模式

开发编排(风后力牧 / 夔)

  1. 工作空间初始化:创建或绑定工作空间,配置各智能体的默认模型
  2. 规范检查:检查代码规范和模块设计是否存在,不存在则引导先用岐伯生成
  3. 模块树建立:读取或创建模块结构,默认生成 framework 框架模块
  4. 评估变更:读取模块信息 + 直接分析代码,生成开发计划
  5. 执行模式选择
    • 逐模块确认:风后逐个展示计划,用户确认后启动执行
    • 批量编排:多模块并行时委托夔自动管理
  6. 计划确认与执行(支持并行):
    • 展示计划 → 用户确认 → 启动力牧编写代码
    • 力牧自动备份原文件,写入执行记录
    • 支持会话重用:同模块计划复用已有力牧会话
  7. 离朱测试
    • 力牧路径:力牧完成代码后自动启动离朱测试
    • 风后路径:风后独立编写测试说明,启动离朱测试
  8. 皋陶审查:检查皋陶状态 → 启动代码审查 → 获取审查结果
  9. 汇总报告:收集所有执行结果、测试结果和审查结论
  10. Git 提交:确认后执行 git add / git commit / git push
  11. 收尾清理:关闭各智能体会话,清理已完成计划

纠正与反馈

风后在生成计划前自动读取历史纠正记录,避免重复犯错。用户指正后风后先核实再记录:

  1. 计划前自动读取历史纠正
  2. 用户指正 → 风后核实 → 记录纠正
  3. 支持按索引删除指定纠正记录

批量编排(夔)

多模块并行开发时,风后委托夔自动管理全流程:

  1. 风后将多模块计划委托给夔
  2. 夔逐模块确认计划 → 启动力牧执行 → 等待完成
  3. 计划完成后自动启动皋陶审查
  4. 全部完成后通知风后,风后获取汇总报告

知识库

风后可配置工作空间的知识库目录,作为子代理(夔/力牧/皋陶/离朱)执行时的外部参考资料。

  • 风后通过 knowledge_base 工具设置知识库目录及说明
  • 工作空间初始化时自动读取知识库列表
  • 子代理启动后自动获得知识库信息,并可直接读取知识库目录(无需审批)

与 opencode 版实现方案差异

下表为 opencode 版(@opencode-ai/plugin)与本 dsh 版关键机制的映射,参照 src/index.tssrc/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.tsregisterModuleAgentTools
子智能体调度client.session.create / promptAsyncctx.subagents.startContinuable() / followup()
身份标记setAgentMode 持久化到 session_modes.jsonsubagent persona/descriptor:module-agent:role=<mode> marker 或 module-agent:<mode> provider 命名(src/lib/session_state.ts
权限拦截permission.ask / tool.execute.beforetools/pre-execute 事件 + ctx.tools.guard()src/index.ts registerGuards
系统提示词注入chat.system.transformctx.systemPrompt.section()src/index.ts registerPromptInjection
完成通知session.idle 事件agent/pre-step 拦截 dsh 的 subagent-settled 消息并替换为框架完成通知(src/index.ts registerCompletionNotification
模型能力opencode sdk clientctx.llmModelCatalog 抽象:listProviders / listModelssrc/index.ts
数据存储.module_agent/*.json 文件存储两版一致,沿用 .module_agent/*.json 文件存储