dinesh2648/claude_managed_agents

GitHub: dinesh2648/claude_managed_agents

一个基于 Anthropic 托管代理的自动化值班事件处理框架,解决告警与修复的闭环与人工审批问题。

Stars: 1 | Forks: 0

# 🤖 Claude 托管代理 [![Claude](https://img.shields.io/badge/Powered%20by-Claude%20(Anthropic)-blueviolet?logo=anthropic)](https://www.anthropic.com) [![Beta](https://img.shields.io/badge/API%20Beta-managed--agents--2026--04--01-orange)](https://docs.anthropic.com) [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue?logo=typescript)](https://www.typescriptlang.org/) [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) ## 🌐 这是什么? 本仓库包含 **Claude 托管代理** — 使用 Anthropic 的 `managed-agents` API 试用版运行的长期自治 AI 代理,可作为持久化、事件驱动的工作器使用。与一次性提示不同,这些代理运行在 **持续会话循环** 中,能够响应真实世界事件(Sentry 告警、Jira 工单、PR 评论),并在关键操作上由人工审批后自主采取行动。 每个代理由以下部分定义: - **系统提示**(`.MD` 文件):描述代理的角色、决策逻辑和工具使用规则 - **调度器**(`scheduler.ts`):每 60 分钟创建一个新的会话并触发轮询周期 - **MCP 工具集成**(Sentry、Jira、GitHub、Slack):在会话创建时通过 Vault/环境配置注入 ## 🚀 工作原理 ``` ┌──────────────┐ every 60 min ┌────────────────────┐ │ scheduler │ ──────────────────── ▶ │ sessions.create() │ │ (cron job) │ │ (Managed Agent) │ └──────────────┘ └────────┬───────────┘ │ trigger: "Run your polling cycle now." ▼ ┌────────────────────┐ │ Agent reasons │ │ + uses MCP tools │ │ (Sentry/Jira/GH) │ └────────┬───────────┘ │ ┌──────────────────┼──────────────────┐ ▼ ▼ ▼ Jira ticket GitHub PR Slack alert created opened posted ``` 1. **调度器**(`scheduler.ts`)按 cron 计划触发 2. 通过 `client.beta.sessions.create()` 创建一个新的 **托管代理会话** 3. 发送触发消息:`"Run your polling cycle now."` 4. 流式接收代理事件 — 代理自主调查、编码并采取行动 5. 周期完成后归档会话 ## 🤖 代理 ### 🚨 值班事件管理器 **`OnCallIncidentManager.MD`** 一个端到端处理完整事件生命周期的自治值班事件指挥官: - **Sentry → Jira**:自动检测新的 Sentry 错误并创建对应的 Jira 工单 - **根因分析**:检查堆栈跟踪,将文件路径映射到 GitHub 仓库并定位引发问题的代码 - **关键事件审批门控**:对于严重级别为 Critical 的事件,先将结构化方案发布到 `#ai-agent` Slack 频道,等待人类 ✅ 审批后再执行任何代码操作 - **自动修复与 PR**:创建以 Jira 工单 ID 命名的特性分支,实现针对性修复,运行 lint/prettier,并打开 PR - **PR 评审响应**:读取评审者评论,解决所有反馈,推送至同一分支,并在 GitHub 上回复每条评论 - **持续队列**:当前事件修复完成后,自动按优先级获取下一个未解决的工单 - **始终保持同步**:在全过程保持 Jira 工单、GitHub PR 和 `#ai-agent` Slack 频道的同步 **集成:** Sentry · Jira · GitHub · Slack ## 📁 仓库结构 ``` claude_managed_agents/ ├── OnCallIncidentManager.MD # Agent system prompt — incident commander ├── scheduler.ts # Cron runner: creates sessions & streams events ├── setup.ts # One-time environment/vault setup ├── package.json ├── tsconfig.json ├── .env.sample # Required environment variables └── README.md ``` ## ⚡ 快速开始 ### 前置条件 - Node.js 18+ - 一个拥有 `managed-agents-2026-04-01` 试用版访问权限的 [Anthropic API 密钥](https://console.anthropic.com) - 已配置的 Anthropic **Agent**,并为 Sentry、Jira、GitHub、Slack 设置好 MCP Vault ### 安装 ``` git clone https://github.com/dinesh2648/claude_managed_agents.git cd claude_managed_agents npm install ``` ### 环境配置 将 `.env.sample` 复制为 `.env` 并填入你的配置: ``` cp .env.sample .env ``` ``` ANTHROPIC_API_KEY=sk-ant-... AGENT_ID=ag_... ENVIRONMENT_ID=env_... VAULT_IDS=vault_abc,vault_def # comma-separated MCP vault IDs ``` ### 运行调度器 ``` npx ts-node scheduler.ts ``` 调度器在启动时立即触发,然后每 60 分钟运行一次。每次运行都会创建新会话、触发代理轮询周期、流式输出到控制台,并在完成后归档会话。 ## 🔌 使用的 API 本项目使用 Anthropic 的 **托管代理试用版 API**: ``` // Create a session tied to an agent const session = await client.beta.sessions.create({ agent: AGENT_ID, environment_id: ENVIRONMENT_ID, vault_ids: VAULT_IDS, title: `Polling cycle – ${runAt}`, }, { headers: { "anthropic-beta": "managed-agents-2026-04-01" } }); // Trigger the agent await client.beta.sessions.events.send(session.id, { events: [{ type: "user.message", content: [{ type: "text", text: "Run your polling cycle now." }] }] }, { headers: { "anthropic-beta": "managed-agents-2026-04-01" } }); // Stream agent output const stream = await client.beta.sessions.events.stream(session.id, ...); ``` ## 🧠 代理系统提示设计 本仓库中的每个 `.MD` 文件都是一个 Claude 托管代理的 **系统提示**。设计原则如下: - **以工作流为先**:提示以命名工作流(`### When a Sentry issue is raised`)组织,使 Claude 能将当前场景匹配到正确的执行方案 - **明确的审批门控**:关键操作(如修复 Critical 严重级别事件)需要在执行前通过 Slack 进行结构化的人工审批 - **幂等操作**:分支存在性检查防止重复创建分支;会话归档在每轮结束后释放资源 - **有意见的输出格式**:PR 标题格式、Slack 消息结构和 Jira 评论模板均被精确定义,以确保输出一致且机器可读 ## 🛡️ 人工在环 值班事件管理器在未获得批准前绝不会触碰 Critical 级别的代码: ``` 🚨 *Critical Incident Plan — [TICKET-ID]: [Title]* *Root cause:* *Affected file(s):* *Proposed fix:* *Awaiting approval to proceed. Reply ✅ to approve or ❌ to reject with feedback.* ``` 代理会在 Slack 线程中等待 `✅` 或 `"approved"` 后再继续执行。此模式可适用于任何需要人工检查点的代理。 ## 🗺️ 路线图 - [ ] `PRReviewMonitor.MD` — 专注于 PR 评审指派与提醒的独立代理 - [ ] `EngineeringHealthMonitor.MD` — 冲刺健康与瓶颈检测代理 - [ ] 多代理编排(可相互移交任务的代理) - [ ] 用于会话历史与代理活动日志的 Web 仪表板 ## 📄 许可证 Apache 2.0 — 详见 [LICENSE](LICENSE) ## 🔗 资源 - [Anthropic API 文档](https://docs.anthropic.com) - [Anthropic Claude](https://www.anthropic.com/claude) - [模型上下文协议 (MCP)](https://modelcontextprotocol.io) - [Anthropic Node.js SDK](https://github.com/anthropic-ai/anthropic-node) *关键词:Anthropic 托管代理、Claude 自治代理、managed-agents API 试用版、Claude 会话 API、值班 AI 代理、Sentry 事件自动化、Jira 自动化 Claude、AI DevOps 代理、自主事件响应、Claude MCP 工具、代理化 AI 工程、LLM 驱动的值班、AI SRE 代理、自愈系统*
标签:24/7运行, Anthropic, API集成, API集成, CIS基准, Claude, Cron任务, CVE检测, DevOps自动化, GitHub集成, GNU通用公共许可证, Jira同步, Managed Agents, MCP工具集成, MITM代理, Node.js, On-call, PR修复, Sentry告警处理, Slack审批, TypeScript, 事件驱动, 云端代理, 人机协同, 人类审批门, 会话轮询, 可观测性, 可观测性, 告警 triage, 安全插件, 定时调度, 工作流自动化, 工具注入, 托管代理, 持续会话, 持续运行, 环境配置, 系统提示, 自主智能体, 自动修复, 自动化攻击, 自动化运维, 长周期运行