零人类公司编排框架Paperclip的安装

简介

Paperclip 是一个开源的 AI 智能体编排系统,专门用于构建「零人工公司」。它由 Node.js 服务器和 React UI 组成,可以协调多个 AI 智能体(Agent)来运行你的业务。你可以带入自己的 AI 代理,分配目标,并从一个仪表板跟踪所有智能体的工作和成本。

Paperclip 看起来像一个任务管理器——但底层包含了组织架构图、预算管理、治理规则、目标对齐和智能体协调功能。

核心特性

特性 说明
🤖 多智能体编排 支持 OpenClawClaude CodeCodexCursor 等多种 AI 代理
🎯 目标对齐 每个任务都能追溯到公司使命,智能体始终知道「做什么」和「为什么」
💓 心跳机制 智能体按计划唤醒、检查工作并执行任务
💰 成本控制 每个智能体每月预算限制,超支自动停止
🏢 多公司支持 一个部署运行多个公司,数据完全隔离
🎫 工单系统 完整对话追踪、决策解释、工具调用追踪和审计日志
🛡️ 治理功能 审批招聘、覆盖策略、暂停或终止任何智能体

适用场景

  • ✅ 想构建自治 AI 公司
  • ✅ 需要协调多个不同智能体完成共同目标
  • ✅ 希望 7×24 小时运行智能体,但仍想审核工作
  • ✅ 想要监控成本并强制执行预算
  • ✅ 想用任务管理器的流程来管理智能体

Paperclip 提供了高效的代理管理和协作机制,使得用户能够专注于业务目标而非单个代理的操作

安装

本教程使用 docker-compose 方式部署,适用于群晖 NAS 或任何支持 DockerLinux 服务器。

前置要求

  • DockerDocker Compose 已安装
  • 群晖 NASLinux 服务器

目录结构

首先创建项目目录:

1
2
3
4
5
6
7
8
# 新建文件夹 paperclip 和 子目录
mkdir -p /volume1/docker/paperclip/{data,pgdata}

# 进入 paperclip 目录
cd /volume1/docker/paperclip

# 修改目录权限
chmod a+rw data

docker-compose.yml

创建 docker-compose.yml 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
services:
db:
image: postgres:17-alpine
container_name: paperclip-db
restart: unless-stopped
# ports:
# - "5432:5432"
volumes:
- ./pgdata:/var/lib/postgresql/data
environment:
POSTGRES_USER: paperclip
POSTGRES_PASSWORD: paperclip
POSTGRES_DB: paperclip
healthcheck:
test: ["CMD-SHELL", "pg_isready -U paperclip -d paperclip"]
interval: 2s
timeout: 5s
retries: 30

server:
image: tuyenvd/paperclip:latest
container_name: paperclip-web
restart: unless-stopped
ports:
- "3198:3100"
volumes:
- ./data:/paperclip
environment:
DATABASE_URL: postgres://paperclip:paperclip@db:5432/paperclip
PORT: "3100"
SERVE_UI: "true"
PAPERCLIP_DEPLOYMENT_MODE: "authenticated"
PAPERCLIP_DEPLOYMENT_EXPOSURE: "private"
PAPERCLIP_PUBLIC_URL: "http://你的IP:3198"
BETTER_AUTH_SECRET: "请替换为你的密钥"
depends_on:
db:
condition: service_healthy

配置说明

配置项 说明 默认值
端口
ports 映射端口 3198:3100
./pgdata PostgreSQL 数据持久化目录 -
./data Paperclip 应用数据目录 -
环境变量
POSTGRES_USER 数据库用户名 paperclip
POSTGRES_PASSWORD 数据库密码 paperclip
POSTGRES_DB 数据库库名 paperclip
DATABASE_URL PostgreSQL 完整连接字符串 postgres://paperclip:paperclip@db:5432/paperclip
PORT Paperclip 服务监听的内部端口 3100
SERVE_UI 是否启用 Web 界面 true
PAPERCLIP_PUBLIC_URL 公共访问地址 必填,修改为你的实际 IP
BETTER_AUTH_SECRET 认证密钥 请务必替换为随机字符串
PAPERCLIP_DEPLOYMENT_MODE 部署认证模式 authenticated(需要登录)
PAPERCLIP_DEPLOYMENT_EXPOSURE 部署模式 private(私有部署,限制访问)

安全建议:

  1. 修改认证密钥BETTER_AUTH_SECRET 请使用随机字符串生成,例如:

    1
    openssl rand -base64 32
  2. 限制访问PAPERCLIP_DEPLOYMENT_EXPOSURE 设置为 private 仅支持内网访问

  3. 定期备份:建议定期备份 ./pgdata./data 目录

启动服务

1
2
3
4
5
# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

运行

首次启动时,数据库会自动初始化

访问地址

服务启动后,访问以下地址:

1
http://<你的服务器IP>:3198

例如:http://192.168.0.197:3198

首次登录

  1. 打开浏览器访问上述地址
  2. 系统会需要创建管理员账号
  3. 根据界面提示完成初始配置

一开始会告诉你,需要生成一个管理员账号

1
2
# 进入容器
docker exec -it paperclip-web /bin/bash

在容器内执行

1
2
# 初始化实例
pnpm paperclipai onboard

用了默认的 Quickstart ,会生成一个管理员的邀请链接

复制到浏览器中打开,点 Create account

Create one 创建账号

密码有要求,否则 Create Account 不会点亮

Accept bootstrap invite

现在完成了管理员设置

接下来给设置公司

设置第一个 agent

More Agent Adapter Types 可以选择更多适配器

  • Adapter type:老苏选了 OpenCode
  • Model:可以选择 OpenCode 中的免费模型
  • Working directory:指定了 /data/project,对应容器内就是 /paperclip/project

需要先创建,不然会报错的

开始创建 Task,保持默认的就行

可以执行了

主界面刚开始会看到一些错误,应该是还没执行完成

稍等一会儿就正常了

参考文档

paperclipai/paperclip: Open-source orchestration for zero-human companies
地址:https://github.com/paperclipai/paperclip

Paperclip — Open-source orchestration for zero-human companies
地址:https://paperclip.ing/