MetaGPT 源码学习
把软件公司 SOP 抽象为多角色 AI 协作,自动从需求推进到设计、编码与测试。这不是 API 速查表,而是一条可以重复走的源码路线:每天用 30 分钟,从一个真实相对路径出发,先用类比建立直觉,再把它接回整条运行链路。
开篇 · 这是个什么项目
MetaGPT 可以先想成一间微型软件公司。它的代码不是一堆孤立文件:入口接到需求,核心对象做判断,工具或模型完成工作,状态把结果交给下一个环节。
架构全景(动起来看)
发光扫过的每一层都是一次任务可能经过的站点。不同仓库命名不同,但「接入 → 编排 → 核心能力 → 资源」的责任边界很相似。
怎么使用这份教程
每天 30 分钟
6 讲,每讲先问问题,再给本质和大白话。
真实相对路径
所有路径都从项目根目录算,不把你的机器路径写进源码引用。
先验证再推理
每页都有可复制 bash 命令;文件版本变化时以本地实际内容为准。
可迁移方法
学会从入口、数据结构、循环和扩展点读任何 AI 项目。
从 Team.run 进入软件公司
metagpt/team.py:跟踪需求发布、回合循环、预算检查与归档。
Context 如何集中管理依赖
metagpt/context.py:认识配置、LLM、成本和工作空间如何被统一传递。
Message 与共享 Schema
metagpt/schema.py:理解角色之间传递什么数据。
Role 基类的运行循环
metagpt/roles/role.py:阅读 observe、think、act 的核心职责。
产品经理如何产出 PRD
metagpt/roles/product_manager.py:连接角色提示词与需求动作。
工程师如何消费设计并写代码
metagpt/roles/engineer.py:观察代码任务的选择与执行。
Action 抽象与输出注册
metagpt/actions/action.py:理解 Action 输入、提示词和结构化产出。
需求分析动作
metagpt/actions/analyze_requirements.py:学习需求从自然语言走向结构化信息。
PRD 生成动作
metagpt/actions/write_prd.py:理解文档生成与仓库落盘。
设计 API 与代码生成
metagpt/actions/design_api.py:对照 design_api 与 write_code 的衔接。
Environment 的消息路由
metagpt/environment/base_env.py:理解消息如何投递给可响应的角色。
软件研发专用环境
metagpt/environment/software/software_env.py:理解环境如何附加领域行为。
角色记忆管理
metagpt/memory:区分长期上下文、历史消息和检索范围。
LLM Provider 统一入口
metagpt/provider/llm_provider_registry.py:理解模型实现的注册与选择机制。
OpenAI Provider 调用链
metagpt/provider/openai_api.py:跟踪请求、流式响应和结果处理。
成本控制
metagpt/utils/cost_manager.py:理解 token 成本累计与预算熔断。
RAG 检索流水线
metagpt/rag:串起解析、索引、检索和重排。