多代理系统集成工具

一个集成Jira、GitHub和Claude的多代理系统,用于自动化开发流程和任务管理。

  • by patrickschlueer
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 patrickschlueer/ai_mcp_test

使用说明

🚀 代理团队设置指南

使用 Jira、GitHub 和 Claude 设置多代理系统的完整指南。


📋 目录

  1. 条件
  2. API密钥和代币beschaffen
  3. 设置环境文件
  4. 安装和启动
  5. 故障排除

🔧 条件

软件

  • Node.js v18+和npm
  • Git (Github集成)
  • 结束 Jira工作区 (云版本)
  • 结束 GitHub存储库
  • 结束 无烟煤API密钥 (Claude)

账户

  • Jira Cloud 帐户(推荐使用管理员权限)
  • GitHub 帐户与存储库访问
  • API-Zugang的人类账户

🔑 API密钥和代币beschaffen

1.无烟煤API密钥(Claude)

是: Claude AI Model 的 API 访问

沃: Anthropic 控制台

步骤:

  1. 葛和祖https://console.anthropic.com/
  2. 登录 / 创建帐户
  3. 导航: Settings → API Keys
  4. 点击 Create Key
  5. 复制密钥(看起来像 sk-ant-api03-...)

费用:

  • 现收现付:每百万代币约3-15美元(克劳德·索内特4)
  • 可用于新账户的积分

重要 : ⚠️ Git提交中的关键NIEMALS!


2.Jira API代币

是: Jira REST API 认证

沃: Atlassian帐户设置

步骤:

  1. 葛和祖https://id.atlassian.com/manage-profile/security/api-tokens
  2. 点击 Create API token
  3. 输入名称(例如“代理团队”)
  4. 复制生成的令牌(仅显示一次!)

格式: Base64编码 email:token

重要 :

  • 令牌是个人的(如果可能,请使用服务帐户)
  • 代币不会过期,但可以随时撤销

3.GitHub个人访问令牌(PAT)

是: GitHub API 身份验证

沃: GitHub设置→ 开发人员设置

步骤:

  1. 葛和祖https://github.com/settings/tokens
  2. 点击 Generate new token → Generate new token (classic)
  3. 重要 : 选择以下范围:
    • ✅ repo (完全控制私有存储库)
      • repo:status
      • repo_deployment
      • public_repo
      • repo:invite
    • ✅ workflow (更新GitHub Action工作流)
    • ✅ write:packages (将包上传到GitHub包注册表)
    • ✅ read:org (阅读组织和团队成员)
  4. 设置到期日期(推荐:90天,生产:无到期)
  5. 克里克 Generate token
  6. 复制令牌(从 ghp_... 或 github_pat_...)

重要 :

  • 令牌只显示一次 - 立即备份!
  • 使用机器人帐户进行生产

4.Jira工作区详细信息

您需要:

  • 工作区URL (z.B。 https://yourcompany.atlassian.net)
  • 项目密钥 (z.B。 AT, PROJ等等)

在哪里找到:

  1. 前往您的 Jira Board
  2. 工作空间 URL 在浏览器地址中
  3. 您可以在每张票中找到项目密钥(例如: AT-123 → 密钥列表 AT)

5.GitHub存储库详细信息

您需要:

  • 存储库所有者 (GitHub 用户名或组织)
  • 仓库名称

例如:

  • 网址: https://github.com/microsoft/vscode
  • 业主: microsoft
  • 代表: vscode

📁 设置环境文件

结构

该项目需要 4单独 .env 文件:

AITest/
├── agents/
│   ├── coder/.env          # Coder Agent
│   ├── reviewer/.env       # Review Agent
│   └── tpo/.env           # TPO Agent
├── mcp-servers/
│   ├── github/.env        # GitHub MCP Server
│   └── jira/.env          # Jira MCP Server
└── event-hub/.env         # Event Hub

1.活动中心(.env)

路径 : AITest/event-hub/.env

# Server Configuration
PORT=3000
NODE_ENV=development

# CORS (falls Frontend auf anderem Port läuft)
ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000

解释:

  • PORT事件中心运行的端口(默认:3000)
  • ALLOWED_ORIGINS逗号分隔的允许前端 URL 列表

2.Jira MCP服务器(.env)

路径 : AITest/mcp-servers/jira/.env

# Jira Configuration
JIRA_DOMAIN=yourcompany.atlassian.net
JIRA_EMAIL=your-email@company.com
JIRA_API_TOKEN=your_jira_api_token_here

# MCP Server Configuration
PORT=3001
NODE_ENV=development

# Optional: Default Project
DEFAULT_PROJECT_KEY=AT

我从哪里得到价值:

变量 在哪里找到 例子
JIRA_DOMAIN Jira 的浏览器 URL yourcompany.atlassian.net
JIRA_EMAIL 您的 Jira 电子邮件地址 patrick@company.com
JIRA_API_TOKEN 查看 Jira API代币 ATATT3xFf...
DEFAULT_PROJECT_KEY 门票前缀在 Jira AT (AT-123号)

测试它是否工作:

cd mcp-servers/jira
npm start
# Öffne http://localhost:3001/health

3.GitHub MCP服务器(.env)

路径 : AITest/mcp-servers/github/.env

# GitHub Configuration
GITHUB_TOKEN=your_github_personal_access_token
GITHUB_OWNER=your-github-username
GITHUB_REPO=your-repository-name

# MCP Server Configuration
PORT=3002
NODE_ENV=development

# Optional: Default Branch
DEFAULT_BRANCH=main

我从哪里得到价值:

变量 在哪里找到 例子
GITHUB_TOKEN 查看 GitHub PAT ghp_abc123...
GITHUB_OWNER GitHub用户名/组织 patrickschlueer
GITHUB_REPO 存储库名称 agent-test
DEFAULT_BRANCH Haupt分行名称 main 或 master

测试它是否工作:

cd mcp-servers/github
npm start
# Öffne http://localhost:3002/health

4.TPO代理(.env)

路径 : AITest/agents/tpo/.env

# Anthropic API
ANTHROPIC_API_KEY=sk-ant-api03-your-key-here

# Agent Identity
AGENT_NAME=TPO Agent
AGENT_EMOJI=🎯

# Service URLs
JIRA_MCP_SERVER_URL=http://localhost:3001
EVENT_HUB_URL=http://localhost:3000

# Jira Project
JIRA_PROJECT_KEY=AT

解释:

  • ANTHROPIC_API_KEY: 查看 无烟煤API密钥
  • AGENT_NAME代理的显示名称(可自定义)
  • AGENT_EMOJI用户界面表情符号(可选自定义)
  • JIRA_MCP_SERVER_URL:Jira MCP服务器的URL(标准:本地主机:3001)
  • EVENT_HUB_URL:事件中心URL(标准:本地主机:3000)
  • JIRA_PROJECT_KEY:Dein Jira项目密钥

5.编码代理(.env)

路径 : AITest/agents/coder/.env

# Anthropic API
ANTHROPIC_API_KEY=sk-ant-api03-your-key-here

# Agent Identity
AGENT_NAME=Coder Agent
AGENT_EMOJI=👨‍💻

# Service URLs
JIRA_MCP_SERVER_URL=http://localhost:3001
GITHUB_MCP_SERVER_URL=http://localhost:3002
EVENT_HUB_URL=http://localhost:3000

# Jira Project
JIRA_PROJECT_KEY=AT

与TPO代理相同的键,加上:

  • GITHUB_MCP_SERVER_URLGitHub MCP 服务器的 URL

6.审查代理(.env)

路径 : AITest/agents/reviewer/.env

# Anthropic API
ANTHROPIC_API_KEY=sk-ant-api03-your-key-here

# Agent Identity
AGENT_NAME=Review Agent
AGENT_EMOJI=🔍

# Service URLs
JIRA_MCP_SERVER_URL=http://localhost:3001
GITHUB_MCP_SERVER_URL=http://localhost:3002
EVENT_HUB_URL=http://localhost:3000

# Jira Project (optional, falls benötigt)
JIRA_PROJECT_KEY=AT

📦 安装和启动

1、安装依赖关系

# Root-Level
cd AITest
npm install

# Event Hub
cd event-hub
npm install

# MCP Servers
cd ../mcp-servers/jira
npm install

cd ../github
npm install

# Agents
cd ../../agents/tpo
npm install

cd ../coder
npm install

cd ../reviewer
npm install

2.环境文件有效

检查表:

  • []共6个 .env 已创建文件
  • 注册所有API密钥
  • [ ] URL中没有输入错误
  • [ ] 端口是免费的 (3000, 3001, 3002)

快速测试脚本:

# Erstelle test-env.js im Root
node test-env.js
📄 test-env.js Code
// test-env.js
import dotenv from 'dotenv';
import { existsSync } from 'fs';
import { resolve } from 'path';

const envFiles = [
  'event-hub/.env',
  'mcp-servers/jira/.env',
  'mcp-servers/github/.env',
  'agents/tpo/.env',
  'agents/coder/.env',
  'agents/reviewer/.env'
];

console.log('🔍 Checking .env files...\n');

let allGood = true;

for (const file of envFiles) {
  const path = resolve(file);
  const exists = existsSync(path);
  
  console.log(`${exists ? '✅' : '❌'} ${file}`);
  
  if (exists) {
    dotenv.config({ path });
    // Check for critical keys
    if (file.includes('agent')) {
      if (!process.env.ANTHROPIC_API_KEY) {
        console.log(`   ⚠️  Missing ANTHROPIC_API_KEY`);
        allGood = false;
      }
    }
  } else {
    allGood = false;
  }
}

console.log(`\n${allGood ? '✅ All good!' : '❌ Some files missing or incomplete'}`);

3.服务开始

选项A:Manuell在单独的码头

# Terminal 1 - Event Hub
cd event-hub
npm start

# Terminal 2 - Jira MCP Server
cd mcp-servers/jira
npm start

# Terminal 3 - GitHub MCP Server
cd mcp-servers/github
npm start

# Terminal 4 - TPO Agent
cd agents/tpo
npm start

# Terminal 5 - Coder Agent
cd agents/coder
npm start

# Terminal 6 - Review Agent
cd agents/reviewer
npm start

选项 B:使用过程管理器(推荐)

# Installiere PM2
npm install -g pm2

# Starte alle Services
pm2 start ecosystem.config.cjs

# Status prüfen
pm2 status

# Logs anschauen
pm2 logs

# Stoppen
pm2 stop all
📄 ecosystem.config.cjs
module.exports = {
  apps: [
    {
      name: 'event-hub',
      cwd: './event-hub',
      script: 'server.js',
      watch: false
    },
    {
      name: 'jira-mcp',
      cwd: './mcp-servers/jira',
      script: 'server.js',
      watch: false
    },
    {
      name: 'github-mcp',
      cwd: './mcp-servers/github',
      script: 'server.js',
      watch: false
    },
    {
      name: 'tpo-agent',
      cwd: './agents/tpo',
      script: 'agent.js',
      watch: false
    },
    {
      name: 'coder-agent',
      cwd: './agents/coder',
      script: 'agent.js',
      watch: false
    },
    {
      name: 'review-agent',
      cwd: './agents/reviewer',
      script: 'agent.js',
      watch: false
    }
  ]
};

4.健康检查

检查所有服务是否正在运行:

# Event Hub
curl http://localhost:3000/health

# Jira MCP
curl http://localhost:3001/health

# GitHub MCP
curl http://localhost:3002/health

预期响应:

{
  "status": "ok",
  "service": "..."
}

🔥 故障排除

问题:“未设置ANTHROPIC_API_KEY”

解决方案:

  1. PRüFe ob .env 文件已存在
  2. 检查拼写 : ANTHROPIC_API_KEY (不 ANTHROPIC_KEY)
  3. 钥匙必须戴上 sk-ant-api03- 开始
  4. 关键周围没有引号
# Richtig:
ANTHROPIC_API_KEY=sk-ant-api03-abc123...

# Falsch:
ANTHROPIC_API_KEY="sk-ant-api03-abc123..."

问题:“无法连接到Jira”

可能的原因:

  1. 错误的域名 : 曼联足球学校 yourcompany.atlassian.net (无) https://)
  2. 电子邮件错误: 必须是登录Jira的电子邮件
  3. API令牌过期/错误: 创建新令牌

测试:

# Test Jira Connection
curl -u your-email@company.com:your_api_token \
  https://yourcompany.atlassian.net/rest/api/3/myself

问题:“超过了GitHub API速率限制”

乌尔萨奇: GitHub 每小时只允许 60 个请求

解决方案:

  1. PRüFe ob GITHUB_TOKEN 已设置
  2. 令牌的作用域 repo 有
  3. 使用机器人帐户获得更高的限额

问题:“端口3000已在使用中”

解决方案:

# Finde Prozess auf Port 3000
# Windows:
netstat -ano | findstr :3000
taskkill /PID <PID> /F

# Mac/Linux:
lsof -ti:3000 | xargs kill -9

或者更改端口 .env:

PORT=3010

问题:“找不到模块”

解决方案:

# Dependencies neu installieren
rm -rf node_modules package-lock.json
npm install

问题:代理正在运行,但什么也不做

检查表:

  1. 门票状态正确吗? (TPO:“开放”,编码器:“要做”)
  2. 代理人有正确的 Jira 项目密钥吗?
  3. Event Hub + MCP 服务器是否可用?
  4. 检查代理日志错误

启用调试模式 :

# In Agent .env
NODE_ENV=development
DEBUG=true

🔒 安全最佳实践

API 密钥保护

  1. 从不提交:
# .gitignore überprüfen
cat .gitignore

# Sollte enthalten:
.env
.env.*
*.env
  1. 使用 Production: Secrets Manager

    • AWS Secrets Manager
    • Azure密钥库
    • GitHub 秘密(GitHub Actions)
  2. 定期旋转键

    • 人类:每90天
    • GitHub PAT: 每90天
    • Jira:涉嫌妥协
  3. 最小特权原理

    • GitHub Token:只有必要的范围
    • Jira:具有最低权限的服务帐户

📚 更多资源


🆘 支持

遇到问题:

  1. 检查模具日志: pm2 logs 或终端输出
  2. Prüfe健康终点
  3. 有效期 .env 文件
  4. 在 GitHub 上创建问题

代理团队合作愉快! 🤖🤝