Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MetaFix Orchestrator

自主决策型 AI Agent —— 企业级智能缺陷修复系统

参赛赛道:Agent 赛道
核心定位:一个具备感知、规划、行动、反思、学习能力的自主智能体,用于复杂软件项目的端到端缺陷修复。


一、智能体概述

1.1 它是什么?

MetaFix Orchestrator 是一个自主决策型 AI Agent。给它一个 Issue 链接(或问题描述),它会:

  1. 自主分析:理解项目结构、Issue 上下文、历史修复经验。
  2. 自主规划:生成修复计划(包含步骤、所需技能、风险、成本预估),并展示给用户。
  3. 自主执行:动态获取或创建所需技能(从社区拉取),调用 MCP 工具(文件、Git、GitHub),完成代码修复、测试、审查、PR 提交。
  4. 自主反思:根据执行结果更新内部知识库,优化未来决策。
  5. 自主处理异常:遇到失败时回滚、重试、请求人工审批或切换策略。

1.2 与普通工作流的区别

  • 固定工作流:A→B→C,无法适应变化。
  • 本智能体:每次根据目标、上下文、历史经验,动态生成执行路径,并具备学习能力。

1.3 人机协同模式

用户只需定义目标("修复 Issue #999"),智能体全权负责执行。仅在关键节点(如高危操作、计划确认)请求人工审批。


二、智能体核心架构(单一智能体视角)

我们把整个系统视为一个智能体,其内部包含以下模块:

模块 对应能力 实现方式
感知模块 理解 Issue、项目结构、Wiki、规则 issue-analyzer + codebase-navigator + RAG
记忆模块 短期记忆(当前会话状态)、长期记忆(技能知识库、成功组合) SharedMemory + SQLite + 向量库
规划模块 生成修复计划、动态拆解任务 五级优先级技能获取 + 自由编排引擎
行动模块 执行技能、调用 MCP 工具 临时子智能体 + 预置 MCP(filesystem, git, github, logging)
反思模块 评估执行结果、更新知识库、调整策略 反思日志 + 技能成功率更新
安全与成本控制 技能校验、人工审批、token 预算 四阶段校验 + WorkBuddy 集成 + 成本估算
可观测性 日志、追踪、故障恢复 结构化日志 + 状态快照 + 重启恢复

三、智能体的自主决策循环(Agent Loop)

┌─────────────────────────────────────────────────────────────┐
│                    用户输入目标(Issue #999)                 │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│ 1. 感知:加载项目 Wiki、预定义规则,分析 Issue 根因          │
│    - 调用 codebase-navigator 理解代码结构                    │
│    - 结合历史记忆(类似 Issue 的修复经验)                    │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│ 2. 规划:生成修复计划                                        │
│    - 列出需要修改的文件、预计步骤、所需技能                  │
│    - 预估 token 成本、风险点                                │
│    - 展示给用户,等待确认                                    │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼(用户确认)
┌─────────────────────────────────────────────────────────────┐
│ 3. 行动:按计划执行                                          │
│    - 对于每个步骤:                                          │
│        a. 从本地/远程获取技能(若缺失则自动创建)            │
│        b. 安全校验技能                                       │
│        c. 创建临时子智能体运行技能(通过 MCP 工具操作)       │
│        d. 观察结果,记录日志                                 │
│    - 若某步失败:                                           │
│        * 尝试重试(最多 3 次)                              │
│        * 若仍失败,触发回滚并重新规划                       │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│ 4. 反思:评估整体结果                                        │
│    - 比较预期与实际                                          │
│    - 更新技能知识库(成功率、耗时)                          │
│    - 若发现更优的技能组合,存入组合知识库                    │
│    - 生成反思日志供用户审阅                                  │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│ 5. 交付:提交 PR 并通知用户                                  │
└─────────────────────────────────────────────────────────────┘

关键点:每一步都是智能体自主决策的结果,而非硬编码流程。


四、智能体的核心能力详解

4.1 感知能力:多源信息融合

  • 项目 Wiki.meta-fix/wiki/ 下的 Markdown 文档(架构、常见问题)。
  • 预定义规则.meta-fix/rules/ 下的 YAML 文件(编码规范、安全策略、模块偏好)。
  • 历史记忆:技能知识库 + 组合知识库(从以往修复中学习)。
  • 实时分析:调用 CodeBuddy API 增强根因定位。

4.2 规划能力:从目标到计划的生成

智能体不依赖预置工作流,而是动态生成计划。例如 Issue #999(C++ 空指针):

  • 感知到项目主要是 C++/Python 混合,根因在 C++ 层。
  • 记忆库显示类似问题常用技能序列:cpp-debug-skillcpp-fix-skilltest-writer
  • 计划输出(见 4.3 示例)。

4.3 行动能力:技能与 MCP 工具的自主调用

  • 技能获取:按照优先级(预制子智能体 → 本地缓存 → 远程拉取 → 自动创建 → 组合)自主决策。
  • MCP 集成:预置 filesystem, git, github, logging;技能可声明额外 MCP,智能体自动连接。
  • 执行隔离:每个技能在临时子智能体中运行,避免相互污染。

4.4 反思能力:经验沉淀与策略进化

  • 每次修复后,智能体生成反思日志,包含:
    • 哪些技能有效、哪些无效。
    • 实际耗时与预估的偏差。
    • 是否遇到意外情况(如依赖缺失)。
  • 反思结果更新知识库,影响下次规划。例如:cpp-fix-skill 成功率从 0.8 降至 0.6,则未来会优先尝试其他技能。

4.5 安全与成本意识

  • 安全:技能拉取时四阶段校验;高危操作触发人工审批。
  • 成本:每次 LLM 调用前估算 token,累计超预算时暂停并请求用户干预。

五、为什么这是一个真正的 AI Agent?

标准 本智能体实现
自主决策 动态规划执行路径,而非固定工作流
环境交互 通过 MCP 读写文件、执行 Git、操作 GitHub
目标驱动 给定 Issue,自动分解子目标
学习能力 反思机制更新知识库,优化未来决策
不确定性处理 失败时回滚、重试、重新规划
人机协同 关键节点请求审批,而非全自动

对比常见工作流引擎:工作流引擎是"如果 A 则 B",而本智能体是"我理解目标是 X,根据当前情况,我决定做 Y,因为之前 Z 成功了"。


六、与比赛要求的直接对应

6.1 平台集成

  • CodeBuddy:作为代码分析 API,增强感知层。
  • WorkBuddy:计划确认、人工审批、日志通知。
  • ClawPro:Agent 运行时底座,管理内部子智能体生命周期。

6.2 评审维度

维度 本智能体得分点
场景价值与市场潜力 面向千亿级软件工程市场,任何有代码仓库的企业都需要自动化缺陷修复。
效能提升与价值可见度 模拟数据:4 小时 → 8 分钟;用户可对比前后耗时。
功能完整性与可用性 九层模块全覆盖,Demo 流畅(可模拟展示计划生成、技能拉取、审批、PR)。
创新性与技术深度 自主规划、反思学习、技能社区动态拉取、全链路安全与成本控制。

七、Demo 示例(文本模拟)

用户:/fix https://github.com/vllm-project/vllm/issues/999

智能体思考(内部日志)

[感知] 加载项目 Wiki... 发现 vLLM 使用 Ascend CANN 后端。
[感知] Issue #999 描述:运行 long sequence 时随机 NaN。
[感知] 调用 CodeBuddy 分析代码,定位到 flash_attention.cpp:342 可能存在 FP16 溢出。
[记忆] 历史类似问题曾使用 cpp-debug-skill → cpp-fix-skill → test-writer 组合,成功率 0.92。
[规划] 生成计划:
  - 步骤1:cpp-debug-skill 确认溢出点
  - 步骤2:cpp-fix-skill 修改为高精度累加
  - 步骤3:test-writer 生成 long_sequence_nan_test.py
  - 步骤4:regression-guard 运行回归测试
  - 风险:需修改 CMakeLists.txt(触发人工审批)
  - 预估 token:1200,成本:$0.002
[行动] 展示计划给用户,等待确认...
用户确认。
[行动] 拉取 cpp-debug-skill(从 GitHub 社区)→ 安全校验通过 → 执行 → 定位到准确行号。
[行动] 拉取 cpp-fix-skill → 需要 filesystem MCP → 写补丁 → 需要 git MCP → 创建分支 → 提交。
[行动] 调用 test-writer(预制子智能体)→ 编写测试。
[行动] 调用 regression-guard → 全部通过。
[行动] 调用 pr-creator → 通过 github MCP 创建 PR。
[反思] 本次修复成功,cpp-fix-skill 成功率升至 0.93,记录组合。
[完成] 输出 PR 链接。

八、总结

MetaFix Orchestrator 是一个自主决策型 AI Agent,而非简单的工作流编排。它具备感知、规划、行动、反思、学习、安全、成本等完整智能体特征,能够端到端解决复杂软件项目中的缺陷修复问题,完美契合 Agent 赛道要求。


🚀 开箱即用

方式一:Docker 一键启动(推荐)

git clone https://github.com/libra-sys/MetaFix-Orchestrator.git
cd MetaFix-Orchestrator
cp .env.example .env
# 编辑 .env 填写配置
docker-compose up -d
# 访问 http://localhost:3000

方式二:Windows 便携版(双击即用)

下载 MetaFix-Orchestrator-Portable.zip 解压,双击 MetaFix-Orchestrator.exe 即可。

方式三:本地手动启动

npm install --legacy-peer-deps
npm run build
npm start
# 访问 http://localhost:3000

项目结构

MetaFix Orchestrator/
├── cli/                  # CLI 命令行工具
├── server/               # 后端服务(Express + TypeScript)
│   ├── index.ts          # 主入口
│   ├── agents/           # Agent 核心模块(感知/规划/执行/反思)
│   ├── skills/           # 技能管理系统
│   ├── knowledge/        # RAG 知识库
│   ├── mcp/              # MCP 服务器管理
│   ├── cost/             # 成本控制
│   └── security/         # 安全与审批
├── src/                  # 前端(React + TypeScript)
├── data/                 # 数据目录(SQLite + 向量数据库)
├── Dockerfile
├── docker-compose.yml
└── start.bat / start.sh

📊 实现状态

✅ 已完成(约 75%)

模块 状态 说明
核心基础设施 ✅ 100% Controller、Perception、Planner、Executor、Reflector 完整实现
调度器 ✅ 100% orchestrator.ts 独立模块,完整实现感知→规划→执行→反思流程
数据库 ✅ 100% SQLite 完整 schema,包含 sessions、messages、skills、reflection_logs、fix_plans、agent_snapshots
MCP 集成 ✅ 100% filesystem、git、github、logging 全部可用
API 服务器 ✅ 100% Express 完整实现,包含聊天、Agent、技能、反思日志等所有 API
子智能体(8个) ✅ 100% issue-analyzer、codebase-navigator、upstream-tracker、test-writer、regression-guard、quality-gate、build-system-expert、pr-creator 全部实现
技能(12个) ✅ 100% receiving-code-review、deep-research、analytics-data-analysis、agent-browser、find-skills、create-skill、install-skill-dependency、docx、pdf、pptx、xlsx、content-research-writer 全部实现
预制数据初始化 ✅ 100% 自动初始化所有预制技能和子智能体到数据库

🚧 进行中(约 20%)

模块 状态 说明
前端 UI 🚧 60% React + TypeScript 基础框架存在,但需要完善 Agent 状态展示、技能管理界面
测试 🚧 0% 缺少单元测试和集成测试
文档 🚧 70% README 完整,但缺少 API 文档和开发者指南

📝 待完成(约 5%)

模块 状态 说明
部署脚本 ⏳ 待完成 Docker 和 Windows 便携版需要完善
性能优化 ⏳ 待完成 需要添加缓存、并发控制等
安全加固 ⏳ 待完成 需要完善输入验证、权限控制

🎯 快速验证

1. 启动服务器

cd server
npm install
npm run build
npm start

2. 检查 API 健康状态

curl http://localhost:3000/api/health
# 预期输出: {"status":"ok","timestamp":"..."}

3. 检查 Agent 状态

curl http://localhost:3000/api/agent/health
# 预期输出: {"status":"ok","activeAgents":0,"totalSessions":0}

4. 检查技能和子智能体初始化

# 查看数据库
sqlite3 data/chat.db "SELECT name, version FROM skills;"
# 预期输出: 12 个预制技能

sqlite3 data/chat.db "SELECT name, type FROM sub_agents;"
# 预期输出: 8 个子智能体

License

MIT

About

端到端自动化修复代码缺陷

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages