Token导航 LogoToken导航TokenDH.com
Agent Pool logo
开发工具未说明官方级别未说明来源级核验

Agent Pool

MCP Server

agent-pool是一个解决Claude Code内存泄漏问题的代理池管理工具,通过复用代理进程来避免内存泄漏并提高效率。

工具数

4

提示词数

0

GitHub Stars

1

资源数

0
进程管理JavaScriptClaude开发工具Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Sceat

提供方

Sceat

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🔄 代理池

Claude Code内存泄漏问题的解决方法。生成代理一次,无限期重复使用。

claude mcp add agent-pool -- npx -y github:Sceat/agent-pool

______________________________________________________________________

⚠️ 安全警告

生成的代理在绕过所有权限的情况下运行

代理是通过以下方式生成的 --dangerously-skip-permissions,这意味着他们可以:

  • 执行 任何shell命令 未经批准
  • 读/写 任何文件 在您的系统上
  • 访问 网络资源 自由地
  • 继承你的 全环境 (环境变量、凭据、SSH密钥)

这是有意为之的——编排要求代理自主工作。然而:

  • 仅使用受信任的代理定义 来自您控制的来源
  • 审查代理提示agents/*.md 跑步前
  • 从不运行不受信任的代理 或来自未知来源的代理定义

你对你的代理人所做的事情负责。

______________________________________________________________________

为什么存在

Claude Code的母语 Task 工具有 关键内存泄漏问题 这会导致进程从数百MB增长到数十GB,最终崩溃:

问题描述
#7020子代理编排:450MB→ 30GB,然后崩溃
#4953进程增长到120GB+RAM,OOM被杀死
#11315129GB虚拟内存消耗
#11155Bash输出永久存储在内存中,使用量90GB+
#8382v2.0.0:每个进程26GB

根本原因:Task 工具调用会生成一个新的子流程。记忆会累积,永远不会释放。

代理池的解决方案: 保持Claude CLI子流程的活动状态并使用 /clear 在保留热提示缓存的同时重置上下文。无新进程=无内存泄漏。

______________________________________________________________________

运作原理

Native Task Tool (leaky):              agent-pool (stable):
──────────────────────────             ──────────────────────
Task 1 → spawn → 450MB                 Warmup → spawn → 450MB
Task 2 → spawn → 900MB ↑               Task 1 → /clear → 450MB (cached)
Task 3 → spawn → 1.3GB ↑               Task 2 → /clear → 450MB (cached)
Task 4 → spawn → 1.7GB ↑               Task 3 → /clear → 450MB (cached)
...                                    ...
Task N → OOM KILLED 💀                  Task N → still 450MB ✓

奖金: 相同的进程=相同的系统提示=提示缓存命中率= 约90%的代币节省.

______________________________________________________________________

快速开始

claude mcp add agent-pool -- npx -y github:Sceat/agent-pool
// Warm up agent (optional, creates prompt cache)
mcp__agent-pool__warmup({ agent: "code-reviewer" })

// Send tasks - all reuse the same process
mcp__agent-pool__invoke({ agent: "code-reviewer", task: "Review src/auth.js" })
mcp__agent-pool__invoke({ agent: "code-reviewer", task: "Review src/api.ts" })
mcp__agent-pool__invoke({ agent: "code-reviewer", task: "Review src/db.js" })

// Check active agents
mcp__agent-pool__list()

______________________________________________________________________

api参考

工具说明
invoke(agent, task)将任务发送给代理,获取结果,自动重置上下文 /clear
warmup(agent)预生成代理用于预热提示缓存(可选)
list()显示带有PID的活动代理
reset(agent)终止代理进程(下次调用时重新启动)

______________________________________________________________________

代币节省

任务本机任务代理池节省
12,0002,0000%
36,0002,60057%
510,0003,20068%
1020,0004,70076%

*系统提示(约1500个令牌)在第一次调用后缓存。后续通话仅按任务内容付费。*

______________________________________________________________________

建筑

┌─────────────────────────────────────────────────────────────┐
│                     Claude Code                              │
└──────────────────────────┬──────────────────────────────────┘
                           │ MCP Protocol
┌──────────────────────────┴──────────────────────────────────┐
│              agent-pool MCP Server (Node.js)                 │
│  invoke() │ warmup() │ list() │ reset()                     │
└─────┬───────────┬───────────┬───────────┬───────────────────┘
      │           │           │           │
   ┌──┴──┐     ┌──┴──┐     ┌──┴──┐     ┌──┴──┐
   │Agent│     │Agent│     │Agent│     │Agent│  ← Persistent processes
   │ PID │     │ PID │     │ PID │     │ PID │    (not respawned)
   └─────┘     └─────┘     └─────┘     └─────┘
      ↑           ↑           ↑           ↑
   /clear      /clear      /clear      /clear   ← Context reset
   (cache)     (cache)     (cache)     (cache)    (cache preserved)

______________________________________________________________________

创建自定义代理

创建 agents/my-agent.md 使用YAML frontmatter:

---
name: my-agent
description: What this agent does
skills:
  - skill-name
expertise:
  - expertise-name
---

Frontmatter标题

标题描述
name代理标识符(用于 invoke({ agent: "name" }))
description代理的作用(如所示 list() 输出)
skills要注入的技能模块列表(从加载 SKILLS_DIR)
expertise要注入的专业知识模块列表(从加载 EXPERTISE_DIR)

技能和专业知识注入: 引用的技能/专业知识文件中的内容在生成时被注入到代理的系统提示符中。这允许代理功能的模块化组合。

然后调用: mcp__agent-pool__invoke({ agent: "my-agent", task: "..." })

______________________________________________________________________

💡 专业提示

禁用主编排器的MCP服务器,仅对子代理启用

使用编排器模式时,主Claude实例不需要直接访问工具——它应该只委托给专门的代理。

为什么这很重要:

  • 减少上下文污染 -主实例侧重于编排,而不是工具输出
  • 强制执行模式 -防止意外直接使用工具
  • 更清洁的分离 -编排者思考,下属行动

工具访问模式:

实例工具
主编排器mcp__agent-pool__invoke, Task, AskUserQuestion, TodoWrite
子代理完全MCP访问(Bash、读取、写入、Grep等)

如何配置:

  1. CLAUDE.md方法 -禁止在编排器的说明中直接使用工具:
   # Orchestrator Rules
   - NEVER use Bash, Read, Write, Edit, or Grep directly
   - ALWAYS delegate work to specialized agents via mcp__agent-pool__invoke
   - Only use AskUserQuestion for user clarification
  1. 选择性MCP注册 -仅注册主实例的代理池,不注册文件/外壳MCP
  1. 钩子 -使用Claude Code钩子阻止主实例的某些工具

这种模式使您的编排器保持干净,并强制进行适当的授权。

______________________________________________________________________

故障排除

问题解决方案
找不到代理检查 agents/name.md 存在和 name: 在前场比赛中
任务超时运行 reset({ agent: "name" }) 杀死卡住的进程
插件未加载验证 plugin.json 已存在,请完全重新启动Claude Code
内存使用率高请检查您使用的是代理池,而不是本机任务工具

完整指南: docs/TROUBLESHOOTING.md

______________________________________________________________________

文档

______________________________________________________________________

需求

  • Claude CLI 2.0+带 --input-format stream-json 支持
  • Node.js 18+

______________________________________________________________________

许可证

麻省理工学院

______________________________________________________________________

专为Claude Code开发人员设计,厌倦了OOM的杀戮

目录标签

目录标签

进程管理JavaScriptClaude开发工具代理池本地部署内存优化ClaudeCode

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP