# yiagent **Repository Path**: yimind/yiagent ## Basic Information - **Project Name**: yiagent - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-22 - **Last Updated**: 2026-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Multi-Agent Development Pipeline 基于 **LangGraph + OpenSpec + Claude Code + GStack角色** 的多Agent协同开发管线。 当需求PR发生变更时,自动触发: 设计 → 开发 → 测试 → 部署 的全流程pipeline。 ``` PR (requirement) ──▶ Design Agent ──▶ Dev Agent ──▶ Test Agent ──▶ Deploy Agent (OpenSpec) (Claude Code) (Claude Code) (GitHub Actions) ▲ │ └── retry ◀────┘ ``` ## 前置依赖 - Python 3.12+ - [uv](https://docs.astral.sh/uv/) — Python package manager - [Claude Code](https://claude.ai/code) — AI coding agent - [OpenSpec](https://openspec.app/) — Spec-driven development - [gh](https://cli.github.com/) — GitHub CLI - Anthropic API key ## 快速开始 ```bash # 1. 克隆项目 git clone cd multi-agent # 2. 安装依赖 uv sync --all-extras # 3. 配置环境变量 cp .env.example .env # 编辑 .env 填入 API keys # 4. 运行测试 uv run pytest -v # 5. 执行pipeline (手动) uv run multi-agent run \ --repo /path/to/target/repo \ --pr 42 \ --requirement "添加用户注册功能,支持邮箱和手机号注册" # 6. 或启动webhook服务器 (自动监听PR) uv run multi-agent serve --port 8000 ``` ## 项目结构 ``` multi-agent/ ├── pyproject.toml # 项目配置 + 依赖声明 ├── Makefile # 常用命令快捷方式 ├── .env.example # 环境变量模板 │ ├── src/multi_agent/ │ ├── __init__.py │ ├── cli.py # CLI入口 (run / serve) │ ├── pipeline.py # LangGraph工作流图 │ ├── server.py # FastAPI webhook服务器 │ ├── state.py # Pipeline共享状态 │ ├── roles.py # GStack角色定义 │ │ │ ├── agents/ # 4个Agent节点 │ │ ├── design.py # 设计Agent (OpenSpec) │ │ ├── dev.py # 开发Agent (Claude Code) │ │ ├── test.py # 测试Agent (Claude Code) │ │ └── deploy.py # 部署Agent (GitHub Actions) │ │ │ └── tools/ # 外部工具集成 │ ├── openspec.py # OpenSpec CLI封装 │ ├── opencode.py # Claude Code CLI封装 │ └── github.py # GitHub/Git操作 │ ├── tests/ # 测试 │ ├── test_state.py │ ├── test_roles.py │ └── test_tools.py │ └── .github/workflows/ └── agent-pipeline.yml # GitHub Actions触发方案 ``` ## 使用方式 ### 方式A: CLI直接运行 ```bash uv run multi-agent run \ --repo /path/to/repo \ --pr 42 \ --requirement "需求描述" ``` ### 方式B: Webhook服务器 ```bash # 启动服务器 uv run multi-agent serve --port 8000 # 暴露到公网 (用于GitHub Webhook回调) ngrok http 8000 # 或 cloudflared tunnel --url http://localhost:8000 # 在GitHub仓库 Settings > Webhooks 中配置: # Payload URL: https://your-url.ngrok.io/webhook # Content type: application/json # Events: Pull requests ``` ### 方式C: GitHub Actions 将 `.github/workflows/agent-pipeline.yml` 复制到目标仓库,在 Settings > Secrets 中配置 `ANTHROPIC_API_KEY`。 给PR打上 `requirement` 标签即可自动触发。 ## 开发 ```bash # 安装所有依赖 (包括 dev + server) make dev # 运行测试 make test # 代码检查 make lint # 格式化 make format ``` ## 架构说明 | 层级 | 组件 | 作用 | |------|------|------| | 编排层 | LangGraph | 有状态工作流、条件路由、checkpoint恢复 | | 规格层 | OpenSpec | 结构化设计文档 (propose/apply/archive) | | 执行层 | Claude Code | 代码编写和测试 (provider-agnostic) | | 角色层 | GStack Roles | Agent认知边界约束 (防止越界) | | 事件层 | GitHub Webhook/Actions | PR事件触发 | ## 环境变量 | 变量 | 必填 | 说明 | |------|------|------| | `ANTHROPIC_API_KEY` | 是 | Anthropic API密钥 | | `GITHUB_TOKEN` | 是 | GitHub Token (PR评论/部署) | | `GITHUB_WEBHOOK_SECRET` | 否 | Webhook签名验证密钥 | | `WORKSPACE_DIR` | 否 | 仓库克隆工作目录 (默认 /tmp/agent-workspace) |