dinesh2648/claude_managed_agents
GitHub: dinesh2648/claude_managed_agents
一个基于 Anthropic 托管代理的自动化值班事件处理框架,解决告警与修复的闭环与人工审批问题。
Stars: 1 | Forks: 0
# 🤖 Claude 托管代理
[-blueviolet?logo=anthropic)](https://www.anthropic.com)
[](https://docs.anthropic.com)
[](https://www.typescriptlang.org/)
[](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, 安全插件, 定时调度, 工作流自动化, 工具注入, 托管代理, 持续会话, 持续运行, 环境配置, 系统提示, 自主智能体, 自动修复, 自动化攻击, 自动化运维, 长周期运行