DevOps构建失败分析工具

通过AI代理分析Azure DevOps构建失败原因,映射到本地代码并提供修复建议的开发工具。

  • by RaimondStokkel
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 RaimondStokkel/DevOps-Investigator-Ultra

使用说明

DevOps MCP调查员

MCP服务器+AI代理,用于调查Azure DevOps构建失败,将失败映射到本地代码,并在可能的情况下提出/修复问题。

这个repo做什么

  • 通过MCP服务器公开Azure DevOps调查工具
  • 运行AI调查代理(CLI或GUI)
  • 将构建失败连接到磁盘上的本地存储库
  • 支持构建分类、日志/时间线分析和后续行动

项目结构

  • src/server/ --MCP服务器和Azure DevOps工具实现
  • src/agent/ --AI代理循环、工具执行、本地文件工具
  • src/gui/ --用于运行调查的本地web UI
  • src/tools/repo-index.ts --构建的回购扫描仪 configs/repo-index.json
  • configs/repo-index.json --代理使用的可编辑存储库查找索引

先决条件

  • Node.js 20+
  • 访问Azure DevOps项目和PAT
  • 本地源存储库可用(默认根: C:\Repo)

环境变量

必修的:

  • ADO_PAT --Azure DevOps个人访问令牌
  • AZURE_OPENAI_KEY
  • AZURE_OPENAI_BASE_URL

可选:

  • ADO_ORG (默认值: fictional-org)
  • ADO_PROJECT (默认值: FictionalProject)
  • ADO_PROJECT_URL (默认值: https://dev.azure.com/<ADO_ORG>/<ADO_PROJECT>/)
  • AZURE_OPENAI_EXPERT_URL (可选专家配置文件URL)
  • AZURE_OPENAI_DEFAULT_REASONING (base | expert,默认值: base)
  • AOAI_DIAGNOSTICS (true/false,默认值: false;记录Azure OpenAI响应元数据以进行缓存诊断)
  • AZURE_OPENAI_ENDPOINT (专家配置文件的可选回退)
  • AZURE_OPENAI_DEPLOYMENT (专家配置文件的可选回退)
  • AZURE_OPENAI_API_VERSION (默认值: 2024-05-01-preview)
  • REPO_BASE_PATH (默认值: C:\Repo)
  • REPO_INDEX_PATH (默认值: configs/repo-index.json)
  • GUI_PORT (默认值: 4230)
  • GUI_FOLLOWUP_CONTEXT_CHARS (默认值: 12000,将之前的总结包含在后续提示中)
  • AGENT_MAX_CONTEXT_CHARS (默认值: 120000)
  • AGENT_MAX_TOOL_RESULT_CHARS (默认值: 12000)
  • AGENT_MAX_ASSISTANT_CHARS (默认值: 20000)
  • AGENT_MAX_TOOL_CALL_ARGS_CHARS (默认值: 4000)
  • AGENT_BASE_MAX_CONTEXT_CHARS (选择基础时的默认值: 80000)
  • AGENT_BASE_MAX_TOOL_RESULT_CHARS (选择基础时的默认值: 8000)
  • AGENT_BASE_MAX_ASSISTANT_CHARS (选择基础时的默认值: 12000)
  • AGENT_BASE_MAX_TOOL_CALL_ARGS_CHARS (选择基础时的默认值: 2500)
  • AGENT_EXPERT_MAX_CONTEXT_CHARS (选择专家时可选择覆盖)
  • AGENT_EXPERT_MAX_TOOL_RESULT_CHARS (选择专家时可选择覆盖)
  • AGENT_EXPERT_MAX_ASSISTANT_CHARS (选择专家时可选择覆盖)
  • AGENT_EXPERT_MAX_TOOL_CALL_ARGS_CHARS (选择专家时可选择覆盖)

安装

npm install

构建

npm run build

生成/刷新回购索引

扫描 C:\Repo 并写道 configs/repo-index.json:

npm run index:repo

运行选项

1) GUI(推荐)

npm run dev:gui

打开 http://localhost:4230

截图

GUI功能:

  • 选择一个失败的构建或调查最新的失败
  • 直播调查输出
  • 停止运行调查
  • 后续选项按钮(编号,可点击)
  • 推理配置文件切换(基础/专家)
  • 回购索引状态/操作(加载信息、设置回购位置、重新扫描)

快速演示流程

  1. 启动GUI:

    npm run dev:gui
    
  2. 打开 http://localhost:4230

  3. 点击 刷新失败

  4. 从下拉列表中选择失败的构建

  5. 点击 调查所选版本

  6. 观看实时输出 结果

  7. 如果出现后续选项,请单击编号选项继续

  8. 使用 停止 取消正在进行的调查

  9. (可选)更改 回购地点 在顶部面板中

  10. 点击 重新扫描C:\Repo (或您的新路径)以在更改位置后刷新查找根

2) CLI代理

npx tsx src/agent/index.ts --latest-failure

示例:

npx tsx src/agent/index.ts --build 244683
npx tsx src/agent/index.ts --latest-failure --pipeline "ERP AL Incremental"
npx tsx src/agent/index.ts --investigate "Why did the last full build fail?"

3) 仅限MCP服务器

npm run dev:server

NPM脚本

  • build --TypeScript编译
  • start:server --运行内置MCP服务器
  • start:agent --运行内置代理
  • start:gui --运行构建的GUI
  • dev:server --从源代码运行服务器 tsx
  • dev:agent --从源代码运行代理 tsx
  • dev:gui --从源代码运行GUI tsx
  • index:repo --从本地回购根重新生成回购索引

回购查找的工作原理

代理人使用 configs/repo-index.json 确定本地工具的查找根(read, grep, search等等)。

  • 编辑 configs/repo-index.json 如果需要,直接
  • 您还可以从GUI顶部面板设置仓库位置
  • 更改仓库位置后,需要重新扫描以刷新查找路径
  • 跑 npm run index:repo 从磁盘刷新
  • 工具 local_get_repo_index 可供代理进行运行时检查

备注

  • UI和CLI旨在用于迭代调查和后续行动
  • 构建日志可能很大;时间线+摘要工具首先用于分诊
  • 在合并之前,应在源代码仓库中验证根本原因修复
  • 如果达到上下文/令牌限制,请降低 AGENT_MAX_*_CHARS 值和首选日志摘要或行范围日志调用