使用说明
Chiro ERP-问题管道编排器
MCP服务器,用于使用基于角色的AI代理自动向PR管道发布。
概述
此MCP服务器通过使用专门的AI代理通过多阶段管道处理GitHub问题,实现了软件开发工作流程的自动化:
- 分析师代理:分析需求并创建用户故事
- 建筑师代理:按照DDD/CQRS模式设计技术解决方案
- 开发者代理:实现C中的功能#
- 测试员代理:创建全面的测试
- 审核代理:审查代码的质量和合规性
特性
- 🤖 自动发布到PR工作流
- 🎯 具有领域专业知识的基于角色的人工智能代理
- 🏗️ 架构感知(遵循您的ADR和模式)
- 🔒 HIPAA合规性检查
- 🧪 自动测试生成
- 👀 代码审查自动化
- 🎛️ 复杂变更的人工审批门
- 📊 复杂性分析
- 🔄 重试和批准机制
设置
1.安装依赖项
cd mcp-servers/issue-pipeline-orchestrator
npm install
2.配置环境
复制 .env.example 到 .env 并填写您的凭据:
cp .env.example .env
所需的环境变量:
GITHUB_TOKEN:具有repo访问权限的GitHub个人访问令牌GITHUB_OWNER:您的GitHub用户名或组织GITHUB_REPO:存储库名称OPENAI_API_KEY:OpenAI API密钥
3.建造
npm run build
4.在VS代码中配置MCP
添加到您的VS代码设置(.vscode/settings.json):
{
"mcpServers": {
"chiro-erp-pipeline": {
"command": "node",
"args": [
"c:/Users/PC/coding/mvp/mcp-servers/issue-pipeline-orchestrator/dist/index.js"
],
"env": {
"GITHUB_TOKEN": "your_token",
"GITHUB_OWNER": "your_username",
"GITHUB_REPO": "mvp",
"OPENAI_API_KEY": "your_key"
}
}
}
}
用法
自动处理问题
// In GitHub Copilot Chat
@workspace /tools process_issue --issueNumber 42
检查管道状态
@workspace /tools get_pipeline_status --issueNumber 42
分析问题复杂性
@workspace /tools analyze_issue_complexity --issueNumber 42
批准阶段
@workspace /tools approve_pipeline_stage --issueNumber 42 --stage "architecture" --approved true
重试失败的阶段
@workspace /tools retry_pipeline_stage --issueNumber 42 --stage "implementation"
GitHub操作集成
创建 .github/workflows/auto-pipeline.yml:
name: Automated Issue Pipeline
on:
issues:
types: [labeled]
jobs:
auto-implement:
if: contains(github.event.issue.labels.*.name, 'auto-implement')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Install MCP Server
run: |
cd mcp-servers/issue-pipeline-orchestrator
npm install
npm run build
- name: Process Issue
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_OWNER: ${{ github.repository_owner }}
GITHUB_REPO: ${{ github.event.repository.name }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
node mcp-servers/issue-pipeline-orchestrator/dist/index.js << EOF
{
"method": "tools/call",
"params": {
"name": "process_issue",
"arguments": {
"issueNumber": ${{ github.event.issue.number }}
}
}
}
EOF
管道阶段
1.分析(分析师代理)
- 从问题中提取要求
- 创建用户故事
- 定义验收标准
- 识别依赖关系
2.建筑(建筑师代理)
- 设计技术方案
- 遵循DDD/CQRS模式
- 必要时更新ADR
- 定义集成点
3.实现(开发者代理)
- 生成C#代码
- 遵循项目结构
- 实现CQRS处理程序
- 创建域事件
4.测试(测试代理)
- 生成单元测试
- 创建集成测试
- 确保测试覆盖率
- 测试边缘情况
5.代码审查(审查代理)
- 审查代码质量
- 检查安全问题
- 验证HIPAA合规性
- 提供反馈
复杂性评分
系统会自动分析问题并分配复杂性分数:
- 低(0-4):简单的错误,微小的增强-自动实现
- 中等(5-9):标准功能-带审查的自动实施
- 高(10+):复杂的变化-需要人为监督
人类审批门
以下情况自动需要批准:
- 突破性变化
- 架构决策
- 安全敏感代码
- HIPAA合规影响
- 复杂性得分高
定制
添加新代理角色
编辑 src/agents/roles.ts:
export const AGENT_ROLES: Record<string, AgentRole> = {
// ... existing roles
myCustomAgent: {
name: "My Custom Agent",
description: "Does something specific",
systemPrompt: "You are...",
tools: ["tool1", "tool2"],
maxTokens: 2000,
temperature: 0.3
}
};
修改管道阶段
编辑 src/orchestrator.ts 在 initializePipeline 方法。
故障排除
管道堵塞
检查管道状态并使用重试:
@workspace /tools retry_pipeline_stage --issueNumber 42 --stage "implementation"
速率限制
该系统尊重GitHub和OpenAI的速率限制。如果你达到了极限:
- 减少并行处理
- 增加阶段之间的延迟
- 使用更高级别的OpenAI计划
代理错误
检查GitHub问题注释中的代理输出。常见问题:
- 上下文不充分
- 要求不明确
- 缺少的依赖
最佳实践
-
适当标记问题:使用以下标签
auto-implement,bug,enhancement帮助进行复杂性分析 -
清晰的问题描述:提供详细的要求和验收标准
-
审核生成的PR:即使有自动化,人工审查也很有价值
-
从小做起:从校准系统的简单问题开始
-
监控成本:跟踪OpenAI API的使用情况,因为复杂的问题可能会使用重要的令牌
安全
- 永不承诺
.env文件 - 将GitHub Secrets用于CI/CD
- 定期旋转令牌
- 手动审查安全敏感更改
许可证
麻省理工学院
