欢迎光临
我们一直在努力

基于WorkBuddy的多Agent协作框架:轻松实现GitLab代码仓库与业务系统的智能调度,收藏必备!

本文介绍了一个基于WorkBuddy Team模式的多Agent协作框架,该框架支持GitLab代码仓库与业务系统的智能调度,通过1个主控Agent和6个专业Agent,实现从代码分析到发版的自动化流程,帮助研发团队减少重复性工作,专注于真正需要判断力的地方。本文涵盖了系统架构、核心组件、快速开始、适配器开发、工作流程、消息协议、团队生命周期、错误处理与降级、GitLab代码审查、扩展开发、自动化级别评估、实践案例、写在最后等内容。

前提:基于 WorkBuddy Team 模式的多 Agent 协作框架,支持 GitLab 代码仓库与业务系统的智能调度。

一句话总结:1 个主控 Agent + 6 个专业 Agent,从代码分析到发版全自动。


适合谁看

  • 研发团队负责人:想减少重复性工作
  • 技术架构师:探索 AI Agent 在研发流程中的应用
  • 运维/ DevOps 工程师:想搭建自动化流水线

当前自动化程度:

适合处理小模块开发、小需求实现、bug 修复等杂事,以及中等复杂度项目中非核心业务部分的自动化。核心价值在于把时间从重复劳动中捞回来,专注于真正需要判断力的地方。

看完能收获什么:

  • 一套可直接落地的多 Agent 协作框架

  • 明确的自动化级别定位(ACMM L5)和升级路径

  • 完整的搭建思路和常见问题解决方案


  • 一、系统架构


    1.1 整体架构

    图片

    架构关系说明

    图片

    1.2 Agent 角色

    Agent角色依赖技能MCP 服务职责
    rd-manager 主控 rd-manager 任务拆解、调度编排、结果汇总、用户交互
    bp-agent 业务数据 business-platform + business-login business_platform 查系统信息、仓库地址、发版记录、项目元数据
    gitlab-query GitLab 查询 gitlab-code-query + gitlab-activity-monitor GitLab 查 MR、提交历史、文件内容、分支信息、仓库结构
    code-analyzer 代码分析 gitlab-code-analyzer GitLab 安全扫描、代码质量分析、提交审查、依赖检测、code_review
    code-fixer 代码修复 gitlab-code-modifier GitLab 创建分支、修改代码、提交 MR、自动修复
    release-mgr 发版管理 release-create + release-save-content + release-update-repository + release-update-status business_platform 发版全流程执行、版本管理、状态流转
    prd-agent 需求智能体 rd-manager core 模块 需求解析、验证、评分、澄清、生成标准化需求文档

    1.3 项目目录

    rd-manager-workspace/ # 项目根目录
    ├── .workbuddy/
    │ └── skills/ # 技能目录
    │ ├── rd-manager/ # 研发经理主控技能
    │ │ ├── SKILL.md # 主控技能定义
    │ │ ├── agents/ # 子Agent启动Prompt
    │ │ ├── core/ # Harness核心模块
    │ │ ├── protocols/ # 消息协议
    │ │ ├── templates/ # 工作流模板
    │ │ └── examples/ # 使用示例
    │ ├── business-platform/ # 业务数据技能
    │ ├── gitlab-code-query/ # GitLab代码查询
    │ ├── gitlab-code-analyzer/ # GitLab代码分析
    │ ├── gitlab-code-modifier/ # GitLab代码修改
    │ ├── gitlab-activity-monitor/ # GitLab活动监控

    └── mcp_business_platform/ # MCP 数据服务


    二、核心组件


    2.1 Harness 六层架构 + 优化模块

    图片

    2.2 核心模块文件

    <ide-config>/skills/rd-manager/core/ # 主技能核心模块
    ├── __init__.py # 导出全部核心模块
    ├── workflow_engine.py # L3: 工作流引擎 – WorkflowEngine, WorkflowTemplates, StepStatus
    ├── task_state.py # L4: 任务状态管理 – TaskStateManager, create_task
    ├── error_handler.py # L6: 错误处理 – ErrorHandler, with_retry, safe_execute
    ├── prompt_manager.py # L1: Prompt 管理 – PromptManager, get_agent_prompt
    ├── result_refiner.py # L2: 结果提炼 – ResultRefiner, refine_result
    ├── evaluator.py # L5: 评估观测 – EvaluatorOrchestrator, ResultQualityEvaluator
    ├── memory_optimizer.py # L7: Token优化 – MemoryOptimizer, LazyPromptLoader
    ├── smart_compressor.py # L7: 智能压缩 – SmartCompressor, CompressionLevel
    ├── session_memory.py # L7: 会话记忆 – SessionMemory, ConversationBuffer
    ├── result_cache.py # L7: 结果缓存 – ResultCache, PersistentCache
    ├── requirement_parser.py # PRD: 需求解析
    ├── requirement_validator.py # PRD: 需求验证
    ├── requirement_scorer.py # PRD: 需求评分
    └── requirement_clarifier.py # PRD: 需求澄清

    2.3 子 Agent Prompt 模板

    <ide-config>/skills/rd-manager/agents/
    ├── bp-agent.md # 业务数据子Agent
    │ ├── 职责:查询仓库信息、发版记录
    │ ├── MCP工具:business_platform (query_repository, query_database, execute_update)
    │ └── 技能:business-platform, business-login

    ├── gitlab-query.md # GitLab查询子Agent
    │ ├── 职责:查提交、文件、分支、MR
    │ ├── MCP工具:GitLab (list_commits, get_repository_tree, get_file_contents)
    │ └── 技能:gitlab-code-query, gitlab-activity-monitor

    ├── code-analyzer.md # 代码分析子Agent
    │ ├── 职责:安全扫描、代码质量、依赖检测
    │ └── 技能:gitlab-code-analyzer

    ├── code-fixer.md # 代码修复子Agent
    │ ├── 职责:创建分支、修改代码、提交MR
    │ └── 技能:gitlab-code-modifier

    ├── release-mgr.md # 发版管理子Agent
    │ ├── 职责:创建版本、保存内容、更新仓库、状态流转
    │ └── 技能:release-create, release-save-content, release-update-repository, release-update-status

    └── prd-agent.md # 需求智能体子Agent
    ├── 职责:需求解析、验证、评分、澄清
    └── 核心模块:requirement_parser, requirement_validator, requirement_scorer


    三、快速开始


    3.1 环境准备

    3.1.1 基础环境

    # Python 3.8+
    python –version

    # rd-manager-workspace 核心零外部依赖(仅标准库)

    3.1.2 WorkBuddy 平台依赖

    方案基于 WorkBuddy Team 模式 构建,需要以下 WorkBuddy 工具(内置):

    工具用途说明
    task 启动子 Agent team 模式启动,指定 subagent_name
    team_create 创建团队 创建协作团队容器
    team_delete 销毁团队 任务完成后清理资源
    send_message Agent 间通信 主控与子 Agent 消息传递
    wait_for_message 等待返回 监听子 Agent 响应
    3.1.3 MCP 服务依赖
    依赖类型说明
    GitLab MCP 必需 GitLab API 查询
    GitLab Code Analyzer 必需 代码安全分析、质量检查
    GitLab Code Modifier 必需 代码修改、分支创建、MR 提交
    business_platform MCP 可选 业务数据查询(可通过 data_adapter 替换)
    3.1.4 MCP 配置

    在 WorkBuddy 中配置 MCP 服务(settings.json):

    {
    "mcp.servers": {
    "business_platform": {
    "command": "python",
    "args": [
    "mcp_business_platform/server.py"
    ],
    "env": {},
    "disabled": false,
    "autoApprove": []
    },
    "gitlab": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-gitlab"],
    "env": {
    "GITLAB_PERSONAL_ACCESS_TOKEN": "${GITLAB_TOKEN}",
    "GITLAB_API_URL": "${GITLAB_API_URL}"
    },
    "disabled": false,
    "autoApprove": []
    }
    }
    }

    3.2 业务数据配置

    3.2.1 系统数据源

    系统信息、仓库信息、发版记录等数据均来自业务中台数据库,通过 business_platform MCP 服务直接连接数据库获取,无需额外配置本地数据源。

    3.2.2 数据字段说明

    主要数据实体包括:

    实体说明关键字段
    System 系统信息 系统名、项目名、产品负责人、研发负责人、当前版本
    Repository 仓库信息 仓库名称、类型、技术栈、所属组、仓库地址
    Release 发版记录 版本号、状态、发布时间、关联仓库

    3.3 GitLab 代码审查触发

    代码审查通过以下方式触发:

    手动触发:在 WorkBuddy 中直接使用 code-analyzer Agent

    3.3.1 使用技能进行审查

    # 直接告诉 rd-manager 你的意图,它会自动查询项目信息并执行分析
    分析 UAT 基础平台的代码问题
    检查生产环境用户中心的依赖漏洞
    审查XX项目工单系统的最近提交


    四、适配器开发


    4.1 适配器架构

    ┌─────────────────────────────────────────────────┐
    │ MCP 数据服务 │
    ├─────────────────────────────────────────────────┤
    │ ┌──────────────┐ ┌──────────────┐ │
    │ │query_database│ │execute_update│ │
    │ └──────────────┘ └──────────────┘ │
    │ │ │ │
    │ └──────────────────┘ │
    │ ▼ │
    │ ┌──────────────┐ │
    │ │ 数据库 │ │
    │ └──────────────┘ │
    └─────────────────────────────────────────────────┘

    4.2 MCP 数据服务

    MCP 服务通过 business_platform 提供标准的数据访问接口。

    核心工具:

    工具用途
    query_repository 查询仓库信息
    query_database 执行数据库查询
    execute_update 执行数据更新操作

    业务数据访问通过以下层级:

    图片

    访问方式:

  • MCP 方式:通过 business_platform MCP 服务直接连接数据库访问

  • 数据实体包括:System、Repository、Release、Server 等


  • 五、工作流程


    5.1 代码分析流程

    用户: "分析 [项目] 的代码问题"


    [主控] 解析项目标识,创建团队

    ├──[bp-agent] query_repository(project, system, repo_type)
    │ └── 返回: 仓库地址、分支、上次发版信息

    ▼ (获取仓库信息后)

    ├──[gitlab-query] list_commits(project_id, branch, per_page=20)
    ├──[gitlab-query] get_repository_tree(project_id, ref=branch)
    ├──[gitlab-query] get_file_contents(project_id, 依赖文件, ref=branch)

    ▼ (获取代码信息后)

    ├──[code-analyzer] 安全分析 + 依赖分析 + 代码质量
    │ └── 返回: 问题列表、修复建议

    ▼ (主控汇总)

    生成 📋 代码分析报告 → 呈现用户

    调度模式: 串行(有依赖关系)

    说明: 纯分析流程,生成详细分析报告后由用户决定是否进行修复。如需修复,进入"安全修复流程"或"代码修复流程"。

    5.2 需求分析流程

    用户: "分析这个需求" 或 "评审需求"


    [主控] 识别为需求任务,调度 prd-agent

    ├──[prd-agent] requirement_parse
    │ └── 解析需求文本(支持结构化/Markdown/自然语言)

    ├──[prd-agent] requirement_validate
    │ └── 验证必填项、格式、规则

    ├──[prd-agent] requirement_score
    │ └── 5维度评分:背景清晰度、价值定义、解决方案完整性、验收标准、影响范围

    ├──[prd-agent] requirement_clarify
    │ └── 生成澄清问题和建议

    ▼ (主控汇总)

    生成 📋 需求分析报告 → 呈现用户
    │ – 验证结果
    │ – 评分报告(总分、各维度得分)
    │ – 澄清问题(高/中/低优先级)
    │ – 改进建议

    ▼ (用户补充信息后)

    └──[prd-agent] 重新评分 → 直到通过阈值

    调度模式: 串行(4步:解析→验证→评分→澄清)

    评分维度:

    维度权重说明
    背景清晰度 15% 需求背景是否清晰说明原因和现状
    价值定义 20% 收益和衡量指标是否明确
    解决方案完整性 25% 方案描述是否足够详细
    验收标准 25% 验收标准是否明确、可测试
    影响范围 15% 是否说明涉及的系统和改动范围

    评分阈值: 80分以上通过,60-80分需评审,60分以下不通过

    5.3 发版规划流程

    用户: "规划 [项目][系统] 的 本日发版"


    [主控] 拆解任务

    ├──[bp-agent] query_repository(project, system)
    │ └── 返回: 所有仓库 + 上次发版信息

    ▼ (对每个有变更的仓库并行)

    ├──[gitlab-query] list_commits(repo1, since=上次发版日期)
    ├──[gitlab-query] list_commits(repo2, since=上次发版日期)
    ├──[gitlab-query] list_commits(repo3, since=上次发版日期)
    │ └── 返回: 各仓库新提交

    ▼ (主控汇总)

    生成 📋 发版规划报告 → 用户确认

    ▼ (用户确认后)

    └──[release-mgr] 创建版本 → 保存内容 → 更新仓库 → 更新状态

    调度模式: 串行 + 并行

    5.4 安全修复流程

    用户: "修复 [项目] 的 [依赖] 安全漏洞"


    [主控] 拆解任务,创建代码修复工作流

    ├──[bp-agent] query_repository(project, system)
    │ └── 返回: 仓库地址、分支、项目信息

    ├──[gitlab-query] 获取依赖配置文件
    │ ├── package.json (Node.js)
    │ ├── pom.xml (Java)
    │ ├── requirements.txt (Python)
    │ ├── Cargo.toml (Rust)
    │ ├── go.mod (Go)
    │ └── 其他依赖配置文件

    ├──[code-analyzer] 安全分析 → 漏洞列表
    │ └── 返回: CVE列表、风险等级、修复建议

    ▼ (主控生成修复方案)

    ├──[code-fixer] 创建fix分支 → 升级依赖 → 提交MR
    │ └── 分支命名: fix/security-{描述}-{日期}

    ▼ (修复完成后,自动进入审核)

    ├──[code-analyzer] code_review → 质量门禁检查
    │ ├── 若质量门禁通过 → 自动合并MR
    │ ├── 若审核不通过 → 返回重新生成修复方案
    │ └── 若质量门禁失败 → 阻断流程,通知用户

    ├──[gitlab-query] 自动合并MR(质量门禁通过时)

    ├──[release-mgr] 创建发版记录 → 保存修复内容

    └──[rd-manager] 生成修复报告 → 通知用户

    调度模式: 串行(含条件分支和自动回退)

    L5级自动化特性:

    • 自动获取多语言依赖文件(不限于package.json)
    • 质量门禁自动判定(critical/high问题阻断)
    • 审核通过自动合并MR,无需人工干预
    • 失败自动回退到修复步骤重试

    5.5 任务识别与调度策略

    用户意图关键词子Agent 链调度模式
    代码分析 分析代码、检查问题、代码审查 bp → gitlab → analyzer 串行
    发版规划 规划发版、本周发版、发布计划 bp → gitlab(并行) → release 串行+并行
    修复问题 修复漏洞、更新依赖、修bug bp → analyzer → fixer → analyzer(审核) → release 串行
    提交审查 审查提交、检查MR、review、审查最新提交 gitlab → analyzer 串行
    系统概览 查看系统、系统信息、最近发版 bp 单Agent
    仓库查询 查仓库、项目结构、分支信息 gitlab 单Agent
    需求分析 分析需求、评审需求、需求评分 prd 单Agent
    需求澄清 澄清需求、需求补充、需求问题 prd 单Agent
    需求到代码 需求开发、需求实现、按需求开发 prd → analyzer → fixer 串行

    5.6 发版状态机

    发版流程采用四阶段状态机(根据实际业务系统场景):

    ┌─────────────────┐
    │ 1. 草稿 │ ◄────────────────────┐
    │ (status = 1) │ │
    └────────┬────────┘ │
    │ 提交 │
    ▼ │
    ┌─────────────────┐ │
    │ 2. 待发布 │ ──────────────────────►│
    │ (status = 2) │ │
    └────────┬────────┘ │
    │ 提交(自动发工单) │ 撤回
    ▼ │
    ┌─────────────────┐ │
    │ 3. 已发工单 │ ──────────────────────►│
    │ (status = 3) │ │
    └────────┬────────┘ │
    │ 完成 │
    ▼ │
    ┌─────────────────┐ 重发(回退到状态2) │
    │ 4. 已发布 │ ◄────────────────────┘
    │ (status = 4) │
    └─────────────────┘

    状态码状态名称说明
    1 草稿 初始状态,完善版本信息
    2 待发布 审核仓库和分支信息
    3 已发工单 已发送运维工单
    4 已发布 发布完成

    release-mgr 执行步骤:

  • release-create → 获取 versionId

  • release-save-content → 保存新增/优化/修复内容

  • release-update-repository → 设置 branch/commit/serverIds

  • release-update-status → status=3 发运维工单


  • 六、消息协议


    6.1 消息格式

    # 主控 → 子Agent

    send_message(
    type="message",
    recipient="bp-agent", # 子Agent名称
    content="查询UAT基础平台前端仓库信息",
    summary="查询UAT基础平台前端仓库",
    metadata={
    "project": "UAT",
    "system": "基础平台",
    "repo_type": "前端"
    }
    )

    # 子Agent → 主控

    send_message(
    type="message",
    recipient="main", # 必须是 "main"
    content=json.dumps({"status": "success", "data": {…}}),
    summary="查询结果摘要"
    )

    6.2 关键注意事项

    Recipient 必须是 “main”

    错误写法(会导致通信失败):

    send_message(recipient="team-lead", …) # 错误!
    send_message(recipient="master", …) # 错误!
    send_message(recipient="coordinator", …) # 错误!

    正确写法:

    send_message(recipient="main", …) # 唯一正确的名称

    6.3 标准消息类型

    类型用途方向
    message 任务分配/结果返回 双向
    confirm 请求用户确认 子 Agent→ 主控
    shutdown_request 请求关闭子 Agent 主控 → 子 Agent
    shutdown_response 确认关闭 子 Agent→ 主控
    broadcast 广播消息 主控
    error 错误通知 子 Agent→ 主控
    progress 进度更新 子 Agent→ 主控

    6.4 子 Agent 错误返回格式

    所有子 Agent 必须使用 try-catch 包裹 MCP/技能调用:

    # 成功返回

    send_message(
    type="message",
    recipient="main",
    content=json.dumps({"status": "success", "data": result}),
    summary="操作成功"
    )

    # 失败返回(不能卡住)

    send_message(
    type="message",
    recipient="main",
    content=json.dumps({
    "status": "error",
    "error": {
    "type": "mcp_error",
    "message": str(e),
    "retryable": True
    }
    }),
    summary="操作失败"
    )


    七、团队生命周期


    7.1 完整执行流程

    # 1. 创建团队

    team_create(team_name="rd-team", description="研发经理多Agent协作团队")

    # 2. 按需启动子Agent(只启动任务需要的)

    task(
    name="bp-agent",
    team_name="rd-team",
    mode="acceptEdits",
    subagent_name="code-explorer",
    prompt="""
    你是业务数据子Agent (bp-agent)。

    ## 关键:recipient必须是"main"(重要!)

    不能使用"team-lead"、"master"等其他名称。

    ## 重要:所有MCP调用必须使用try-catch包裹

    ## 核心职责

    – 查询系统仓库信息(项目、系统、仓库地址)
    – 查询发版记录(历史版本、当前版本)

    ## 可用工具

    – MCP: business_platform (query_repository, query_database)
    – 技能: business-platform

    ## 工作方式

    1. **启动后立即发送就绪消息给main**

    2. **收到任务后使用try-catch执行MCP查询**

    3. **将结果通过send_message返回给main**

    4. **继续等待下一条消息**

    """
    )

    # 3. 等待子Agent就绪消息

    # 子Agent启动后会自动发送: "bp-agent 已启动,等待任务"

    # 4. 收到就绪消息后,发送实际任务

    send_message(
    type="message",
    recipient="bp-agent",
    content="查询系统信息:项目=UAT,系统=基础平台,仓库类型=前端",
    summary="查询UAT基础平台前端仓库"
    )

    # 5. 等待结果(子Agent处理完会返回)

    # 6. 根据结果决定下一步

    # …

    # 7. 任务完成后关闭

    send_message(type="shutdown_request", recipient="bp-agent")
    send_message(type="shutdown_request", recipient="gitlab-query")

    # 等待 shutdown_response

    team_delete()

    7.2 关键执行顺序

    启动子Agent → 等待就绪消息 → 发送任务 → 等待结果 → 下一步…
    ↑ │
    └────────────── 循环直到任务完成 ──────────────┘

    重要:必须等待子 Agent 就绪消息后再发送任务,否则会卡住!

    7.3 使用 core 模块(高级用法)

    import sys
    sys.path.insert(0, "<ide-config>/skills/rd-manager")

    from core import (
    WorkflowTemplates, WorkflowStatus,
    create_task, get_agent_prompt,
    refine_result
    )

    # 1. 创建任务和工作流

    task = create_task("task-001", "code_analysis", system="基础平台")
    workflow = WorkflowTemplates.code_analysis_workflow("基础平台", "UAT")

    # 2. 启动工作流

    workflow.start()

    # 3. 驱动执行

    while workflow.status == WorkflowStatus.RUNNING:
    action = workflow.get_next_action()
    for step in action['actions']:
    prompt = get_agent_prompt(step['agent'], step['action'])
    task(name=step['agent'], prompt=prompt)
    send_message(recipient=step['agent'], content=step['params'])
    result = wait_for_message()
    refined = refine_result(step['action'], result)
    workflow.execute_step(step['step_id'], result=refined)

    注意:<ide-config> 替换为实际 IDE 配置目录名,如 .trae、.cursor 等


    八、错误处理与降级


    8.1 子 Agent 异常处理

    异常类型处理策略
    MCP 连接失败 重试 1 次,仍失败则跳过并报告用户
    查询无结果 报告用户,提供替代建议
    子 Agent 超时 30 秒状态查询,60 秒标记失败
    数据不一致 多源交叉验证,以业务数据为准

    8.2 降级策略

    不可用 Agent降级方案
    bp-agent 直接使用 GitLab MCP 搜索(缺少发版信息)
    gitlab-query 无法继续,报告用户
    code-analyzer 主控自行执行基础分析
    code-fixer 生成修复方案,用户手动执行
    release-mgr 生成发版配置文件,用户手动提交

    8.3 子 Agent Prompt 错误处理规范

    所有子 Agent 的 Prompt 必须包含:

    # 1. try-catch 强制要求

    try:
    result = mcp_call("business_platform", "query_repository", params)
    send_message(
    type="message",
    recipient="main",
    content=json.dumps({"status": "success", "data": result}),
    summary="查询成功"
    )
    except Exception as e:
    send_message(
    type="message",
    recipient="main",
    content=json.dumps({
    "status": "error",
    "error": {"type": "mcp_error", "message": str(e), "retryable": True}
    }),
    summary="查询失败"
    )

    # 2. 关闭处理

    收到 shutdown_request 后:
    send_message(type="shutdown_response", recipient="main", approve=true)
    然后退出


    九、GitLab 代码审查


    代码审查功能已集成到 code-analyzer Agent 中,统一提供代码分析、安全扫描、依赖检测和提交审查能力。

    9.1 审查方式

    代码审查通过直接调用 code-analyzer Agent 进行。

    9.2 手动审查

    # 审查指定项目的最新提交

    审查 UAT 基础平台的最新提交

    # 审查指定分支

    审查测试环境订单系统的 release 分支

    # 审查指定提交范围

    检查生产环境用户中心从 abc123 提交以来的变更

    9.3 审查内容

    • 安全扫描:依赖漏洞、敏感信息泄露、不安全代码模式
    • 代码质量:代码规范、复杂度、重复代码
    • 提交规范:提交信息格式、分支命名规范

    9.4 审查示例

    以下是一个实际的代码审查案例,用户要求审查活动管理后端的提交,研发经理发现导出数据只导出一页、状态被无条件覆盖等问题:

    图片

    审查发现的问题:

    问题优先级影响
    exportActivities 只导出一页数据 P0 用户以为数据丢失
    h5AdminPage 无条件覆盖 status P1 可能导致状态错误
    缺少导出数量限制/异步机制 P1 数据量大时 OOM

    十、扩展开发


    10.1 自定义子 Agent

    基于模板创建新的子 Agent:

    # custom-agent.md

    ## 启动确认(必须)

    启动后立即执行:
    send_message(
    type="message",
    recipient="main",
    content="custom-agent 已启动,等待任务",
    summary="custom-agent 就绪"
    )

    ## 关键:recipient 必须是"main"

    不能使用其他名称,否则主 Agent 收不到消息!

    ## 核心职责

    – 职责 1: xxx
    – 职责 2: xxx

    ## 可用工具

    – MCP: xxx_service (tool1, tool2)
    – 技能: xxx_skill

    ## 错误处理(必须)

    所有调用必须使用 try-catch 包裹,无论成败都返回。

    ## 任务处理流程

    收到任务后:

    1. **解析参数**

    2. **执行操作(try-catch 包裹)**

    3. **发送结果给 main(recipient="main")**

    4. **继续等待(不要退出)**

    ## 关闭处理

    收到 shutdown_request 后发送 shutdown_response 并退出

    10.2 自定义工作流模板

    {
    "name": "security-audit",
    "description": "安全审计工作流",
    "steps": [
    {
    "step_id": "1",
    "agent": "bp-agent",
    "action": "query_repositories",
    "description": "获取项目仓库列表"
    },
    {
    "step_id": "2",
    "agent": "gitlab-query",
    "action": "list_commits",
    "description": "获取最近提交",
    "depends_on": ["1"],
    "parallel": true
    },
    {
    "step_id": "3",
    "agent": "code-analyzer",
    "action": "security_scan",
    "description": "执行安全扫描",
    "depends_on": ["2"]
    },
    {
    "step_id": "4",
    "agent": "code-analyzer",
    "action": "dependency_check",
    "description": "检查依赖漏洞",
    "depends_on": ["2"],
    "parallel": true
    }
    ]
    }

    十一、自动化级别评估


    11.1 分级标准:AI Codebase Maturity Model (ACMM)

    本文采用 ACMM(AI Codebase Maturity Model)作为分级标准。该模型由 IBM Research 提出,基于 CMMI 框架,以反馈循环拓扑定义成熟度,每级依赖前级基础设施,不可跳过。

    级别名称核心特征关键反馈机制典型场景
    L1 Assisted 辅助级 行级补全,人类逐行审核 Copilot 逐行建议
    L2 Augmented 增强级 函数级生成,人类审查后集成 人工审查反馈 AI 生成函数,人审核
    L3 Structured 结构级 文件/模块级生成,上下文感知 上下文文件约束 AI 生成完整文件
    L4 Agentic 智能体级 多文件规划,自动测试验证 自动化测试反馈 AI 规划跨文件变更
    L5 Automated 自动级 半自动执行,人类审批合并 PR 审查门禁 AI 执行,人点合并
    L6 Fully Autonomous 完全自治 完全自主,自动合并与回滚 全链路闭环反馈 AI 端到端自治

    11.2 本方案 ACMM 级别评估

    当前级别:L5(Automated – 自动化级)

    本方案已实现多 Agent 协作和跨文件规划,达到 L5 阶段:

    ACMM 维度要求本方案实现评估
    多文件规划 AI 能规划跨文件变更 rd-manager 拆解任务,调度多 Agent 跨仓库执行 ✅ 满足
    自动测试 变更后自动运行测试 代码分析(code-analyzer)自动检测问题 ⚠️ 部分满足
    上下文感知 基于项目上下文决策 data_adapter 提供业务上下文,Agent 基于上下文查询 ✅ 满足
    反馈闭环 测试结果反馈给 AI 分析结果返回给主控,code-fixer 可自动修复 ✅ 满足

    L5 核心能力 checklist:

    • Agent 协作:1 个主控 + 6 个专业 Agent 分工
    • 任务拆解:rd-manager 自动拆解为子任务链
    • 跨文件/仓库:支持多仓库并行查询和分析
    • 上下文传递:前序 Agent 输出作为后续输入
    • 自动测试验证:无自动化测试 MCP(L5 完整版需补充)
    • 自动修复闭环:code-fixer 支持自动修复,分析出问题后可自动创建分支、修改代码、提交 MR

    11.3 与 L5/L6 的差距

    级别关键要求本方案现状差距
    L5 半自动执行,人类仅审批合并 代码修复、发版已实现自动化 ✅ L5 已达成(除自动测试验证)
    L6 完全自治,自动合并与回滚 MCP 故障需人工处理,无自愈 需增加故障自愈、自动回滚能力

    11.4 升级路径

    ✅ L5(Automated)已达成:

  • 减少人工确认:code-fixer 支持分支询问,用户指定分支直接修改不提交 MR;无指定自动提交 MR

  • 质量门禁自动化:code-analyzer 返回 quality_gate,达标自动合并,不达标自动阻断

  • 无人值守发版:release-mgr 自动完成 4 步发版流程,人类只需监控

  • 到 L6(Fully Autonomous)需要补充:

  • 自愈能力:MCP 服务故障时自动切换备用方案

  • 自动回滚:发版后监控异常,自动回滚到上一版本

  • 闭环优化:基于历史数据自动优化 Agent 策略

  • 11.5 企业内部定位建议

    场景建议目标级别当前适用性
    代码审查辅助 L5 ✅ 已满足
    自动化发版 L5 ✅ 已满足
    故障自愈 L6 ❌ 需补充监控和回滚能力
    端到端交付 L5 ⚠️ 需接入自动化测试

    总结:本方案已达到 L5(Automated 自动化级),实现代码修复自动化、质量门禁自动阻断/合并、无人值守发版。距离 L6 约需 3-4 个月迭代,主要补充故障自愈和自动回滚能力。


    十二、常见问题


    12.1 通信卡住

    问题原因解决
    发送任务后卡住 子 Agent 未就绪或名称不匹配 等待子 Agent 就绪消息,检查 name/recipient 一致性
    子 Agent 不返回 执行出错未捕获或忘记 send_message 子 Agent 必须用 try-catch,无论成败都返回
    子 Agent 执行一次退出 没有进入等待循环 prompt 必须说明"继续等待"
    recipient 错误 用了 main 以外的名称 所有子 Agent 发往主控必须用 “main”

    12.2 业务数据连接

    问题排查步骤
    无法连接业务系统 1. 检查 MCP 服务状态 curl localhost:8080/health 2. 验证 business-platform-server 连通性 3. 确认 MCP 配置正确
    数据格式不匹配 1. 检查 MCP 返回字段 2. 查看业务中台 API 文档 3. 确认字段映射正确
    查询结果为空 1. 检查过滤条件 2. 确认业务中台有数据 3. 验证 bp-agent 查询参数

    12.3 检查清单

    • 子 Agent Prompt 包含启动确认消息
    • 子 Agent Prompt 包含错误处理(try-catch)
    • 子 Agent Prompt 包含关闭处理
    • send_message 的 recipient 是 “main”
    • task 的 name 和 send_message 的 recipient 一致
    • 等待子 Agent 就绪消息后再发送任务
    • MCP 调用使用 try-catch 包裹
    • business_platform MCP 已配置
    • MCP 服务(mcp_business_platform)已启动
    • GitLab Token 已正确配置

    十三、实践案例:新增系统配置管理接口


    为 UAT 基础平台后端新增系统配置管理接口。该案例覆盖从需求分析、代码实现、数据模型确认、代码提交到发版部署的全流程。

    13.1 需求分析与方案设计

    用户向研发经理主控 Agent 提出需求:

    “让研发经理安排下,为 UAT 项目基础平台后端新增一个接口用于获取系统配置,请分析代码后给出实现方案。”

    主控 Agent 调度 code-analyzer 分析现有代码结构,自动生成实现方案:

    图片

    方案要点:

    • 路由位置:放在 middleware.Auth() 之后,需登录才能访问
    • 响应格式:与现有 GetPlatformInfo 等接口保持一致
    • 数据模型:复用已有的 SystemSetting 表,键值对结构
    • 权限控制:只需登录,POST 写入可考虑加 AdminAuth()
    • 向上兼容:不修改现有接口,只新增

    13.2 代码修复与提交

    主控 Agent 调度 code-fixer 自动创建分支、修改代码、提交并创建 MR:

    图片

    执行摘要:

    • 创建分支:feat/add-system-config-api
    • 新增文件:models/setting/setting.go(数据访问层)
    • 修改文件:controllers/setting/setting.go(新增 GET/POST 接口)
    • 提交记录:3 个 commit 完整实现接口功能
    • 创建 MR:指向 master 分支,等待合并

    13.3 发版部署

    代码合并后,主控 Agent 调度 release-mgr 自动完成发版全流程:

    图片

    发版状态流转:

    步骤状态详情
    登录 用户认证通过
    创建版本 v3.21.0,versionId=1546
    同步仓库 PUT /system/version/syn/repository/1546
    更新仓库 basic-platform-service,branch=uat-new,commit=7787e2ff
    保存内容 新增系统配置管理接口
    推进 1→2 状态变为待发布
    推进 2→3 运维工单已发送

    13.4 接口验证

    发版完成后,通过接口测试工具验证新接口可正常访问:

    图片

    验证结果:

    • GET /api/setting/system_config 返回系统配置列表
    • 包含 login_lock、captcha_check、multi_device_login 等配置项
    • JSON 响应格式正确,数据完整

    13.5 数据确认

    人工查询业务中台数据库,对比接口返回数据,确认两者一致:

    图片

    验证结果:

    • 接口返回的 login_lock、captcha_check、multi_device_login 等配置项与数据库记录完全一致
    • 数据模型设计合理,复用 variables + values(JSON)键值对结构

    13.6 案例总结

    本案例展示了多 Agent 协作框架的实际应用:

    阶段负责 Agent关键动作
    需求分析 rd-manager + code-analyzer 分析代码,生成实现方案
    代码实现 code-fixer 创建分支、编码、提交 MR
    发版部署 release-mgr 创建版本、保存内容、发运维工单
    接口验证 人工/测试工具 确认接口可用
    数据确认 人工/bp-agent 查询并确认数据库表结构

    从需求提出到接口可用,全程由 Agent 自动驱动,人类仅在关键节点确认。


    十四、写在最后


    这套框架的灵感,来自制造业的"黑暗工厂"概念——不需要灯光的工厂,因为里面没有工人。 最初我在腾讯电脑管家的 QClaw 上尝试这个思路,做了一个"小程序黑暗工厂":需求丢进去,代码吐出来,人只负责验收。实践证明,把 AI 当作"更高效的外包"是条死路,但把它当作"不知疲倦的助手"却意外地管用。

    后来把类似的思想搬到业务平台的研发场景,有了现在这套基于 WorkBuddy 的多 Agent 协作框架。核心没有变:机器处理 80% 的常规工作,人专注于 20% 真正需要判断力的部分。

    几个感受

    人终于可以专注思考了

    以前写代码,最费时的不是写本身,而是反复确认"这个需求到底要什么"、等设计评审、等代码审查。引入 Agent 协作后,这些环节可以流水线跑了。人的角色从"执行者"慢慢变成"验收者"和"决策者"。

    约束比能力更重要

    这套框架借鉴了 Harness Engineering 的思想——不是依赖人的自觉,而是用流程和约束卡住每一个可能出错的点。PM 不能自己写代码、每个阶段必须有 RTM 更新、QA 门禁不过不能合并。听起来死板,但只有这样 Agent 才能真正自动化,否则人会忍不住"帮 Agent 写一下"然后流程就乱了。

    自动化是有代价的

    L5 到 L6 之间,隔着故障自愈和自动回滚。这不是技术问题,是投入产出比的问题。深夜三点服务挂了,要不要让 AI 自动回滚?回滚错了算谁的?这些问题没有标准答案,不同团队有不同的取舍。

    未来会怎样

    很难说。但有一点可以确定:软件研发的工作方式正在发生变化,而且变化得比我们想象的要快。

    三年前觉得 AI 写代码是噱头,两年前觉得多 Agent 协作是实验室玩具,去年觉得自动化研发是巨头的专利。现在回头看,每一步都比想象中来得更快。

    也许再过两年,国内也会出现真正意义的"研发黑暗工厂"——需求一句话,代码自动跑,人只负责最终验收。到那时候,研发团队的角色可能会从"写代码的人"变成"设计工厂的人"。这个转变不一定很快,但它在发生。

    与其焦虑被替代,不如早点学会和 Agent 协作。这才是未来研发团队的核心竞争力。

    最后

    2026 年一晃已经过半,AI 大模型的热潮不仅没有降温,反而持续升温!

    金融行业用大模型做风控、医疗依靠 AI 解析影像,电商、制造、教育各行各业,都在把 AI 融入日常业务。曾经热闹的 “百模大战”,早就告别单纯比拼模型参数,正式进入落地应用时代。

    现在企业疯狂紧缺一类人才:懂业务、懂 AI、能做出可上线项目的大模型开发工程师,岗位缺口大,薪资待遇十分可观。

    在这里插入图片描述

    风口再好,不如手握高薪 offer 实在。行情火热,普通人、程序员该怎样从零入门大模型,抓住这波机会?

    今天整理好【2026 最新版】AI 大模型全套免费学习资源,覆盖零基础入门、项目实战、理论知识、大厂面试,从基础一路进阶。所有资料分类归档,没有多余杂料,无套路免费分享给想要入局 AI 赛道的程序员与零基础小白!

    👇👇扫码免费领取全部内容👇👇

    在这里插入图片描述

    1、大模型系统化完整学习路线

    在这里插入图片描述

    2、大模型经典书籍&文档

    在这里插入图片描述

    3、AI 大模型最新行业研究报告

    在这里插入图片描述

    4、企业级实战项目 + 完整配套源码

    img

    5、大厂大模型面试真题汇总

    img

    6、这些资料真的有用吗?

    这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

    资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。 在这里插入图片描述 在这里插入图片描述

    这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

    在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » 基于WorkBuddy的多Agent协作框架:轻松实现GitLab代码仓库与业务系统的智能调度,收藏必备!
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址