paperclip

应用程序

paperclipai/paperclip

开源 AI Agent 管理与编排平台。

项目简介

Paperclip 是自托管编排平台,协调多个 AI 代理完成业务目标,提供组织架构、预算、治理、任务跟踪与成本控制,支持接入 OpenClaw、Claude Code、Codex 等代理。

README 预览

\n  \n\n\n\n  Quickstart ·\n  Docs ·\n  GitHub ·\n  Discord ·\n  Twitter ·\n  Website\n\n\n\n  \n  \n  \n  \n\n\n\n\n\n  \n\n\n\n\n# Paperclip is the app people use to manage AI agents for work.\n\nOpen-source orchestration for teams of AI agents.\n\n**If OpenClaw is an _employee_, Paperclip is the _company_.**\n\nPaperclip is a Node.js server and React UI that orchestrates a team of AI agents to run a business. Bring your own agents, assign goals, and track work and costs from one dashboard.\n\nIt looks like a task manager. Under the hood: org charts, budgets, governance, goal alignment, and agent coordination.\n\n**Manage business goals, not pull requests.**\n\n|        | Step            | Example                                                            |\n| ------ | --------------- | ------------------------------------------------------------------ |\n| **01** | Define the goal | _"Build the #1 AI note-taking app to $1M MRR."_                    |\n| **02** | Hire the team   | CEO, CTO, engineers, designers, marketers — any bot, any provider. |\n| **03** | Approve and run | Review strategy. Set budgets. Hit go. Monitor from the dashboard.  |\n\n\n\n\n\n  \n    Workswith\n    OpenClaw\n    Claude Code\n    Codex\n    Cursor\n    Bash\n    HTTP\n  \n\n\nIf it can receive a heartbeat, it's hired.\n\n\n\n\n\n## Paperclip is right for you if\n\n- ✅ You want to build **autonomous AI companies**\n- ✅ You **coordinate many different agents** (OpenClaw, Codex, Claude, Cursor) toward a common goal\n- ✅ You have **20 simultaneous Claude Code terminals** open and lose track of what everyone is doing\n- ✅ You want agents running **autonomously 24/7**, but still want to audit work and chime in when needed\n- ✅ You want to **monitor costs** and enforce budgets\n- ✅ You want a process for managing agents that **feels like using a task manager**\n- ✅ You want to manage your autonomous businesses **from your phone**\n\n\n\n## The four pillars\

常见问题 (5)

故障排除
如何修复将 Paperclip 升级到 v2026.1005.0 后 Claude CLI 会话无法恢复的问题?

出现此回归的原因是,每次运行的 agent 工作副本路径(file-sync/runs/<runId>/live/AGENTS.md)被包含在了 Claude 的提示文本中。由于 <runId> 每次运行都会变化,buildClaudePromptBundleKey 会生成不同的哈希值,因此 hasMatchingPromptBundle 会拒绝已保存的会话并启动新会话。

修复方法:升级到包含 PR #15437 的 Paperclip 版本。该修复在指令和 skills 未发生变化时保持 prompt bundle 稳定,同时将当前工作副本位置单独提供给每次运行。

临时解决方案:降级到 v2026.1001.0,该版本中会话恢复功能正常。受此回归影响的版本包括 v2026.1005.0 和 v2026.1006.0-canary.19。

来源 Issue #15373
故障排除
如何修复 Paperclip 适配器更新后由悬空的 skill 符号链接引起的 Codex 'failed to stat skills entry … No such file or directory' 错误?

当适配器更新移除了某个技能,但其旧的符号链接仍保留在 ~/.codex/skills 或 ~/.claude/skills 中时,就会出现这些错误。首先预览已损坏的符号链接:

find "${CODEX_HOME:-$HOME/.codex}/skills" -maxdepth 1 -type l -xtype l -print
find "$HOME/.claude/skills" -maxdepth 1 -type l -xtype l -print

如果列出的路径是失效的适配器符号链接,请将其删除:

find "${CODEX_HOME:-$HOME/.codex}/skills" -maxdepth 1 -type l -xtype l -delete
find "$HOME/.claude/skills" -maxdepth 1 -type l -xtype l -delete

然后重新运行 Codex。这些错误应该会消失,因为加载器将不再遇到指向已从适配器包中删除的文件的符号链接。PR #1711 中曾提出过一个永久性的清理流程,但该 PR 被关闭且未合并,因此需要手动删除,或等待未来维护者的修复。

来源 Issue #1618
故障排除
如何修复 Paperclip 智能体因 `scripts/paperclip-issue-update.sh` 在其工作目录中缺失或执行失败,而运行全文件系统范围的 `find /` 的问题?

出现这种情况是因为 server/skills/paperclip/SKILL.md 中的第 8 步使用裸相对路径调用该辅助脚本,这只有在 shell 的当前目录为 skill 目录时才有效。在 v2026.916.1 和 2026.1001.0 等 npm 安装中,该辅助脚本也可能完全缺失,因为 scripts/release.sh 只复制 skills/,而 paperclip-issue-update.sh 位于仓库根目录的 scripts/ 目录中。

临时解决方法:修改 SKILL.md,使智能体在辅助脚本缺失时不得搜索文件系统。告知它们改用文档中记录的原始 API 请求:

curl -X PATCH "https://<paperclip-host>/api/issues/$PAPERCLIP_TASK_ID" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  --data '{"status":"done"}'

使用第 8 步中已记录的身份验证和请求体字段;如有需要,在其中包含 comment/markdown 负载。

打包修复:更新 scripts/release.sh,将 scripts/paperclip-issue-update.sh 复制到 @paperclipai/server、@paperclipai/adapter-claude-local 和 @paperclipai/adapter-codex-local 的 skills/paperclip/scripts/ 中,然后验证:

ls -l skills/paperclip/scripts/paperclip-issue-update.sh

永久路径修复:让 adapter 导出一个绝对的 skill 目录变量,例如 PAPERCLIP_SKILL_ROOT,并将第 8 步改为调用:

"$PAPERCLIP_SKILL_ROOT/scripts/paperclip-issue-update.sh" \
  --issue-id "$PAPERCLIP_TASK_ID" \
  --status done

在该变量可用之前,可靠的规则是:如果辅助脚本未出现在文档记录的绝对位置,则直接调用 PATCH /api/issues/{issueId},并且绝不要运行 find / -iname paperclip-issue-update.sh。

来源 Issue #9527
故障排除
如何修复 Paperclip 在根据重复的 'Bounded retry exhausted' 事件构建 attention feed 时因 'JavaScript heap out of memory' 导致的启动崩溃问题?

将 Paperclip 升级到包含上游修复 #13451(提交 667c79ded21e49b2a56b302093591c63a6f4e971)的版本。该修复可防止重复的 retry-exhaustion 生命周期事件在 attention-feed 查询中使每次运行的完整 context_snapshot 成倍累积。受影响的提交为 9a5a364170cb68a939ef972fab60f389f6664fd2;已验证该修复存在于 master 分支的 1477d1ecea0d4fce0a906ac47ad1fc4eea9d3428。

部署步骤:

cd paperclip
git fetch origin
git checkout 667c79ded21e49b2a56b302093591c63a6f4e971   # 或包含该修复的更新版本
pnpm install
pnpm build
systemctl restart paperclip

如果无法立即升级,一个临时解决方法是提高 V8 堆内存限制,例如在 systemd 服务中添加 Environment=NODE_OPTIONS=--max-old-space-size=24576,然后运行 systemctl daemon-reload 并重启服务。这可能需要超过 24 GB 的内存,因为该有缺陷的查询可能返回约 20 GB 的重复上下文数据;升级或归档重复的生命周期事件才是正确的解决方案。

来源 Issue #15308
故障排除
如何阻止 Paperclip hermes_local 在每次恢复的心跳中重复托管指令?

将 Paperclip 升级到包含 PR #15439 的构建版本(已在 master 分支修复)。该修复通过 Hermes 的原生系统覆盖层传递托管指令,而不是将完整的指令包前置拼接到每个恢复的 -q 用户消息之前。修复还包含针对全新运行、恢复运行、指令变更和会话重置的回归测试。受影响的版本包括 @paperclipai/hermes-paperclip-adapter 2026.1001.0 附近的版本以及提交 582911ba。quiet: true/-Q 或自定义的 promptTemplate 无法移除重复的前缀。作为临时变通方案,可以禁用 persistSession,使每次运行都启动全新会话,但这会失去会话的连续性。

来源 Issue #15385