三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Paperclip_Agent编排平台

Paperclip_Agent编排平台

一、项目定位

Paperclip 是一个 AI Agent 公司的运营控制平面(Control Plane)。

用一句话概括:如果 OpenClaw/Claude Code 是"员工",Paperclip 就是"公司"。

它不是 Agent 框架,不是聊天机器人,不是工作流引擎——它是一个让你像管理公司一样管理一组 AI Agent 的操作系统:组织架构、任务分配、预算控制、审批治理、成本追踪,全部在一个 Dashboard 里完成。


二、解决什么问题

痛点

Paperclip 的解法

20 个 Claude Code 终端同时开,分不清谁在干什么

任务工单化,会话线程化,跨重启持久化

手动拼凑上下文提醒 Agent 做什么

上下文从任务→项目→公司目标自动向上流动

Agent 配置散落各处,重复造轮子

组织架构、工单、委派、治理开箱即用

Agent 跑飞了,几百美元 token 费用没了

成本追踪 + 预算硬止损 + 超支自动暂停

定期任务要手动触发

Heartbeat 定时唤醒 + 定例调度

没有审批,Agent 直接上线

审批门控 + 治理流程 + 变更审计


三、四大支柱

支柱

服务对象

覆盖范围

Agentic Task Manager

— 声明意图,Agent 执行,你验收

所有人,日常使用

任务、审批与评审门控 · 主动 Agent 协作 · 可审计的例行工作流 · 通过 diff/截图/测试验证产出

Org Chart for Agents

— 角色、权限与边界

管理者

人+Agent 混合组织架构 · 职责划分与委派 · 治理:谁能做什么 · 限定范围的密钥与公司边界

Agent Employee Training

— 设计、训练与评估 AI 员工

赋能者

Skill Studio 与组织级共享技能 · 评估与测试运行 · 主动学习循环与质量指标 · Agent 绩效评审

Agentic OS

— 让工作运转的基础设施

IT 与平台

跨 Provider 运行时 · 沙箱、集成与 MCP 服务器 · SSO/GRC/RBAC 与成本控制 · 数据隐私与追溯


四、技术架构

4.1 技术栈

技术

后端

Node.js + Express + TypeScript

数据库

Drizzle ORM + PostgreSQL(开发用嵌入式 PGlite)

前端

React 19 + Vite + Tailwind v4(CSS 自定义属性 Token 体系)

测试

Vitest(单元)+ Playwright(E2E)+ Storybook(视觉回归)

包管理

pnpm monorepo

部署

Docker / 本地自托管

4.2 Monorepo 结构

paperclip-master/ ├── server/ # Express REST API + 编排服务 │ └── src/routes/ # 58 个路由模块(agents, issues, goals, costs...) ├── ui/ # React + Vite 前端 │ └── src/pages/ # 133 个页面组件 ├── packages/ │ ├── db/ # Drizzle schema + 迁移(111 张表) │ ├── shared/ # 共享类型、常量、校验器 │ ├── adapters/ # Agent 适配器实现 │ │ ├── claude-local/ # Claude Code 本地适配 │ │ ├── codex-local/ # Codex 本地适配 │ │ ├── cursor-local/ # Cursor 本地适配 │ │ ├── cursor-cloud/ # Cursor 云端适配 │ │ ├── gemini-local/ # Gemini 本地适配 │ │ ├── grok-local/ # Grok 本地适配 │ │ ├── hermes/ # Hermes 适配 │ │ ├── hermes-gateway/ # Hermes Gateway 适配 │ │ ├── openclaw-gateway/# OpenClaw Gateway 适配 │ │ ├── opencode-local/ # OpenCode 本地适配 │ │ └── pi-local/ # Pi 本地适配 │ ├── adapter-utils/ # 适配器共享工具 │ ├── plugins/ # 插件系统 │ ├── skills-catalog/ # 应用内置技能目录 │ └── teams-catalog/ # 应用内置团队目录 ├── cli/ # paperclipai CLI 包 ├── skills/ # 运行时/运维技能 ├── .agents/skills/ # 20 个 Agent 技能 └── doc/ # 产品与运维文档

4.3 代码规模

指标

数值

TypeScript 源文件

1,333 个(不含 node_modules)

总代码行数

~111 万行

数据库表

111 张

API 路由模块

58 个

UI 页面组件

133 个

Agent 适配器

11 种

内置 Agent 技能

20 个


五、核心系统详解

5.1 十二大子系统

系统

职责

Identity & Access

双模式部署(可信本地/认证模式)、Board 用户、Agent API Key、短期运行 JWT、公司成员、邀请流

Org Chart & Agents

Agent 角色/职级/汇报线/权限/预算,适配多种 Agent 运行时

Work & Task System

任务带公司/项目/目标/父级链接,原子 checkout + 执行锁,阻塞依赖,评论/文档/附件/工作产出

Heartbeat Execution

数据库唤醒队列 + 合并,预算检查,工作空间解析,密钥注入,技能加载,适配器调用,孤立运行自动恢复

Workspaces & Runtime

项目工作空间,隔离执行空间(git worktree),运行时服务(dev server、preview URL)

Governance & Approvals

Board 审批流,执行策略 + 审批阶段,决策追踪,预算硬止损,Agent 暂停/恢复/终止

Budget & Cost Control

按公司/Agent/项目/目标/任务/Provider/模型追踪 Token 和成本,告警阈值 + 硬止损,超支自动暂停

Routines & Schedules

Cron/Webhook/API 触发的定例任务,并发与补赶策略,每次执行创建追踪任务并唤醒 Agent

Plugins

实例级插件系统,进程外 Worker,能力门控宿主服务,Job 调度,工具暴露,UI 贡献

Secrets & Storage

实例和公司密钥,加密本地存储,Provider 对象存储,敏感值不出现在 Prompt 中除非明确需要

Activity & Events

变更操作、Heartbeat 状态变化、成本事件、审批、评论、工作产出全部记录为持久化活动

Company Portability

导入/导出整个组织(Agent、技能、项目、定例、任务),密钥脱敏,冲突处理

5.2 Agent 适配器体系

Paperclip 的核心设计理念是"Bring Your Own Agent"——任何能接收 Heartbeat 的 Agent 都可以被雇佣:

Agent 适配器架构 ┌─────────────────────────────────────────────┐ │ Paperclip Server │ │ │ │ 统一适配器接口 │ │ ├── heartbeat() ← 定时唤醒 │ │ ├── assignTask() ← 分配任务 │ │ ├── checkStatus() ← 检查状态 │ │ └── collectResult() ← 收集结果 │ │ │ └──────────┬──────────────────────────────────┘ │ ┌─────┴─────┬──────────┬──────────┬──────────┐ │ │ │ │ │ ┌───┴───┐ ┌───┴───┐ ┌──┴───┐ ┌──┴───┐ ┌──┴───┐ │Claude │ │Codex │ │Cursor│ │Gemini│ │OpenClaw│ │Code │ │ │ │ │ │ │ │ │ └───────┘ └───────┘ └──────┘ └──────┘ └───────┘ 本地CLI 本地CLI 本地/云 本地CLI Gateway

5.3 Heartbeat 机制

Heartbeat 是 Paperclip 的核心调度模式:

  1. 数据库维护唤醒队列,按调度时间排序

  2. 到时间后唤醒 Agent,合并同一 Agent 的多个唤醒请求

  3. 检查预算 → 解析工作空间 → 注入密钥 → 加载技能 → 调用适配器

  4. 运行产生结构化日志、成本事件、会话状态、审计轨迹

  5. 孤立运行(crash 后无人认领)自动恢复


六、设计理念

6.1 核心设计原则

  1. 原子执行

    :任务 checkout 和预算执行是原子的,不会重复工作,不会失控花费

  2. 持久化 Agent 状态

    :Agent 跨 Heartbeat 恢复同一任务上下文,而非从头开始

  3. 运行时技能注入

    :Agent 可以在运行时学习 Paperclip 工作流和项目上下文,无需重训练

  4. 治理与回滚

    :审批门控强制执行,配置变更有版本,坏变更可以安全回滚

  5. 目标感知执行

    :任务携带完整目标链,Agent 始终看到"为什么",而不仅是标题

  6. 可移植公司模板

    :导入/导出组织、Agent、技能,密钥脱敏,冲突处理

  7. 真正的多公司隔离

    :每个实体都限定在公司范围内,一个部署可运行多个公司

6.2 UI 设计系统

  • Token-only 规则

    :所有颜色、间距、圆角、字号、阴影、动效值来自ui/src/index.css的 Token 层

  • 三层 Token 体系

    :语义层(shadcn 核心)→ 品牌层(Agent 渐变/状态色)→ 领域层(匹配芯片/标注高亮)

  • 操作面板定位

    :每个屏幕回答三个问题:发生了什么?需要我吗?我该做什么?密度服务于扫描,而非美学

  • Lint 门控

    check-token-gates脚本在提交前拒绝任何硬编码值


七、与同类项目对比

维度

Paperclip

OpenClaw

Claude Code

Cursor

定位

Agent 公司运营控制平面

AI 编码 Agent

AI 编码 Agent

AI 编码 IDE

类比

公司

员工

员工

工位

管理多个 Agent

✅ 核心能力

❌ 单 Agent

❌ 单会话

❌ 单窗口

组织架构

✅ 原生支持

预算控制

✅ 原生支持

审批治理

✅ 原生支持

定时调度

✅ Heartbeat

成本追踪

✅ 多维度

Agent 框架

❌ 不是

✅ 是

✅ 是

✅ 是

编码能力

依赖接入的 Agent

✅ 核心能力

✅ 核心能力

✅ 核心能力


八、项目成熟度评估

维度

状态

说明

代码规模

⭐⭐⭐⭐⭐

111 万行 TS,111 张数据库表,工程量巨大

功能完整度

⭐⭐⭐⭐⭐

四大支柱全部实现,20+ 已完成里程碑

架构设计

⭐⭐⭐⭐⭐

Monorepo 清晰,适配器体系解耦,Token 体系规范

Agent 生态

⭐⭐⭐⭐

11 种适配器覆盖主流 Agent,可扩展

测试覆盖

⭐⭐⭐⭐

单元(Vitest) + E2E(Playwright) + 视觉回归(Storybook)

文档

⭐⭐⭐⭐⭐

SPEC/DESIGN/AGENTS/DEVELOPING/DATABASE 等齐全

社区

⭐⭐⭐

MIT 开源,Discord 社区,插件生态起步

生产就绪

⭐⭐⭐

支持 Docker 自托管,但云部署仍在进行中


九、总结

Paperclip 是目前少见的从"公司运营"视角而非"Agent 开发"视角构建的 AI Agent 编排平台。它的核心价值不是教你怎么造 Agent,而是教你怎么管 Agent 组成的公司——组织架构、任务分配、预算控制、审批治理、成本追踪、定期调度,这些是 20 个 Agent 同时运行时真正需要的东西。

技术上有三个亮点值得借鉴:

  1. 适配器体系

    :BYOA(Bring Your Own Agent)设计,任何能接收 Heartbeat 的 Agent 都可接入,11 种适配器覆盖主流 Agent

  2. Heartbeat 调度

    :数据库驱动的唤醒队列 + 原子 checkout + 预算检查 + 自动恢复,解决了多 Agent 协调的核心问题

  3. Token 设计系统

    :严格的 CSS 变量 Token 体系 + Lint 门控,确保 UI 一致性和可维护性

来自微信公众号:LLM&Agent技术分享

← 返回列表