Coding Agent 最痛的事
你用 Claude Code 或 Codex 写一个中型功能,通常会遇到三件事:
- 上下文炸了——聊到一半被强制 /clear,之前讨论的方案、踩过的坑全没了
- 任务串行——Agent 不会自己拆任务,你得手把手告诉它「先做什么、再做什么」
- 做完就忘——上一个会话里完成的工作,新会话完全不知道,重复劳动
Shrimp Task Manager 就是为这三个问题设计的。它不是又一个 Coding Agent,而是一个 跑在 MCP 协议上的任务管理系统——给你的 Agent 加一个「外挂大脑」,让它能记住计划、跟踪进度、反思改进。
它到底是什么
一句话:一个 MCP Server,把项目级的任务管理能力暴露给任何支持 MCP 的 AI Agent。
Shrimp 不写代码、不改文件。它做的事情是:
- 你告诉它「要做一个用户认证功能」
- 它用 chain-of-thought 分析需求,自动拆成子任务
- 建立任务依赖图——哪个先做、哪个后做
- Agent 按顺序执行,每完成一个就标记状态
- 跨会话持久化——关掉 Claude Code 再打开,任务列表还在
本质上它是 给 Agent 加了一层 project management。就像 Jira 之于人类开发者,Shrimp 之于 AI Agent。
核心能力拆解
🧠 Chain-of-Thought 任务规划
Shrimp 的 plan_task 工具不是简单地列 TODO。它会先分析需求、研究代码库、识别依赖关系,然后生成一个带思考过程的任务计划。这跟「让 Agent 直接写代码」的区别就像「先画架构图再写代码」和「上来就写」的区别。
🔄 Reflection 机制
这是 Shrimp 最有特色的能力。reflect_task 工具让 Agent 在完成任务后进行自我审查:方案对不对?有没有遗漏?代码质量如何?这不是人类 review,是 Agent 自己 review 自己——类似于 OpenAI o1 的「思考再回答」,但发生在任务级别。
📋 完整的工具矩阵
| 类别 | 工具 | 作用 |
|---|---|---|
| 规划 | plan_task | 深度分析需求,生成任务计划 |
analyze_task | 分析任务复杂度和依赖 | |
split_tasks | 把大任务拆成原子子任务 | |
research_mode | 技术调研模式,对比方案 | |
init_project_rules | 定义项目编码规范 | |
| 执行 | execute_task | 执行特定任务 |
complete_task | 标记任务完成 | |
update_task | 修改任务详情 | |
| 验证 | verify_task | 验证任务完成质量 |
reflect_task | 反思并改进执行方式 | |
query_task | 按条件搜索任务 | |
| 记忆 | get_task_detail | 获取任务详情和历史 |
clear_all_tasks | 清空任务(自动备份) |
💾 跨会话持久化
任务数据存在本地文件系统(通过 DATA_DIR 环境变量指定),不依赖任何云服务。关掉 Agent、重启电脑、换一个终端——回来后 list_tasks 一看,任务状态还在。这是解决「上下文丢失」问题的关键。
🌐 Web 可视化
Shrimp 还自带了一个 React 写的 Task Viewer,拖拽排序、实时搜索、多 profile 切换。对于复杂项目,有个可视化的任务看板比在终端里看文本列表舒服得多。
怎么接入
Shrimp 是标准的 MCP Server,接入任何支持 MCP 的 Agent 都只需要一个配置。
Claude Code
# 克隆并构建
git clone https://github.com/cjo4m06/mcp-shrimp-task-manager.git
cd mcp-shrimp-task-manager
npm install && npm run build
在项目目录创建 .mcp.json:
{
"mcpServers": {
"shrimp-task-manager": {
"command": "node",
"args": ["/path/to/mcp-shrimp-task-manager/dist/index.js"],
"env": {
"DATA_DIR": "/path/to/your/project/shrimp_data",
"TEMPLATES_USE": "en"
}
}
}
}
# 启动
claude --mcp-config .mcp.json
OpenCode
{
"mcp": {
"shrimp-task-manager": {
"type": "local",
"command": ["node", "/path/to/dist/index.js"],
"env": {
"DATA_DIR": "./shrimp_data"
},
"enabled": true
}
}
}
Cline / Cursor / 其他
只要支持 MCP 协议的客户端,配置 command + args 指向 dist/index.js 就行。Shrimp 用的是 @modelcontextprotocol/sdk 标准实现,不依赖任何特定 Agent。
日常使用流程
# 1. 初始化项目规范
"init project rules"
# 2. 规划任务
"plan task: implement user authentication with JWT"
# → Agent 分析代码库,生成带依赖的任务计划
# 3. 执行任务
"execute task"
# → 按依赖顺序逐个执行
# 4. 连续模式(自动执行所有任务)
"continuous mode"
# 5. 反思改进
"reflect task 2"
# → Agent 回顾任务 2 的执行过程,提出改进建议
# 6. 跨会话恢复
# 关掉 Claude Code,明天打开
"list tasks"
# → 看到昨天的任务状态,继续干活
跟其他方案比
| 维度 | Shrimp Task Manager | planning-with-files | Agent 内置 todo |
|---|---|---|---|
| 方法 | MCP Server + 持久化存储 | 3 个 Markdown 文件 | Agent 自带的 todo list |
| 跨会话 | ✅ 文件系统持久化 | ✅ 文件在就行 | ❌ /clear 就没了 |
| 任务依赖 | ✅ 自动管理依赖图 | ❌ 手动排序 | ❌ 平铺列表 |
| 自动拆分 | ✅ AI 驱动的子任务分解 | ❌ 手动 | ❌ 需要人指定 |
| 反思机制 | ✅ reflect_task | ❌ | ❌ |
| 可视化 | ✅ Web Task Viewer | ❌ 纯文本 | ❌ 终端内 |
| 复杂度 | 需要构建 Node.js 项目 | 零配置 | 零配置 |
| 适合场景 | 中大型项目、多人协作 | 简单脚本、快速原型 | 单次小任务 |
一句话总结:planning-with-files 是「三张便签纸」,Shrimp 是「Jira for Agent」。简单任务用便签纸够了,复杂项目你需要一个真正的任务管理系统。
踩坑实录
坑 1:Node.js 版本。Shrimp 要求 Node.js 18+,用的是 ES Modules("type": "module")。如果你的系统默认 Node 版本太老,构建会报语法错误。建议用 nvm 管理版本。
坑 2:DATA_DIR 路径。这个目录必须在启动 Agent 之前就存在,Shrimp 不会自动创建。第一次用忘了建目录,Agent 调 plan_task 直接报错。
坑 3:上下文开销。Shrimp 暴露了 15+ 个 MCP 工具,每个工具的描述都会占上下文 token。如果你同时开了好几个 MCP Server,上下文会紧张。建议只在需要任务管理的项目里启用 Shrimp。
坑 4:任务粒度。plan_task 的默认拆分粒度有时候太细——一个「加登录功能」被拆成 8 个子任务。可以在 prompt 里指定「拆成 3 个主要步骤」来控制粒度。
适合谁
- 中大型项目开发者:功能开发周期超过一天、需要跨多个会话持续工作的场景
- 多 Agent 协作:配合 Claude Squad、Orca 这类多 Agent 编排工具,Shrimp 提供共享的任务状态
- 需要复盘的团队:reflect_task 机制天然支持「Agent 做完后自我审查」,减少人类 review 负担
- MCP 生态玩家:已经用了一堆 MCP Server 的用户,加上 Shrimp 就是给整个工作流加了一层任务调度
不适合的人:写个脚本、改个 bug 这种 5 分钟搞定的事——杀鸡不用牛刀,直接跟 Agent 说就行。
总结
Shrimp Task Manager 做的事情本质上是:把「人脑中的项目管理」外化成了 Agent 可调用的结构化工具。chain-of-thought 让规划更靠谱,reflection 让执行有改进,持久化让上下文不会丢。
2.1K Star 不算多,但它解决的问题是实实在在的——每个用 Coding Agent 做过中型项目的人都踩过「上下文丢了」的坑。Shrimp 是目前 MCP 生态里最完整的任务管理方案。
# 现在就试试
git clone https://github.com/cjo4m06/mcp-shrimp-task-manager.git
cd mcp-shrimp-task-manager
npm install && npm run build
# 然后在你的 .mcp.json 里加上配置就行