问题管道编排器

Chiro ERP是一个自动化GitHub问题处理的多阶段管道编排服务,通过角色化AI代理实现从问题到PR的自动化流程,适用于软件开发团队。

  • by olwalgeorge2
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 olwalgeorge2/mcp

使用说明

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问题注释中的代理输出。常见问题:

  • 上下文不充分
  • 要求不明确
  • 缺少的依赖

最佳实践

  1. 适当标记问题:使用以下标签 auto-implement, bug, enhancement 帮助进行复杂性分析

  2. 清晰的问题描述:提供详细的要求和验收标准

  3. 审核生成的PR:即使有自动化,人工审查也很有价值

  4. 从小做起:从校准系统的简单问题开始

  5. 监控成本:跟踪OpenAI API的使用情况,因为复杂的问题可能会使用重要的令牌

安全

  • 永不承诺 .env 文件
  • 将GitHub Secrets用于CI/CD
  • 定期旋转令牌
  • 手动审查安全敏感更改

许可证

麻省理工学院