Paperclip是一个开源的AI智能体编排系统,它能够将多个AI智能体组织起来,形成一个完整的"零人工公司"运作体系。这个框架特别适合那些希望用AI自动化运行整个业务流程的用户。
我第一次接触Paperclip时就被它的设计理念吸引了。它不仅仅是一个任务管理器,更像是一个完整的公司管理系统 - 有组织架构、预算控制、工作流程和审计追踪。想象一下,你可以像管理真实员工一样管理一群AI智能体,给它们分配任务、设定预算、监控工作进度,而这一切都在一个统一的仪表板中完成。
Paperclip由两个主要组件构成:
这种前后端分离的设计使得系统既保持了灵活性,又能提供良好的用户体验。后端使用PostgreSQL作为数据库,确保数据的安全性和可靠性。
Paperclip最核心的功能是它的智能体协调系统。它通过以下几种机制确保智能体高效协作:
Paperclip可以运行在多种环境中:
建议配置:
在开始安装前,请确保已安装:
可以通过以下命令检查版本:
bash复制docker --version
docker-compose --version
首先需要为Paperclip创建专用的工作目录。这一步非常重要,因为后续所有数据都会存储在这些目录中。
bash复制# 创建主目录和子目录
mkdir -p /volume1/docker/paperclip/{data,pgdata}
# 进入paperclip目录
cd /volume1/docker/paperclip
# 设置目录权限
chmod a+rw data
注意:如果你使用的是群晖NAS,/volume1/docker是推荐的Docker应用存储位置。在其他Linux系统上,你可以选择任何合适的路径。
创建docker-compose.yml文件是安装的核心步骤。这个文件定义了所有服务容器及其配置。
yaml复制version: '3.8'
services:
db:
image: postgres:17-alpine
container_name: paperclip-db
restart: unless-stopped
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_PASSWORD | 数据库密码 | 建议修改为更强密码 |
| PAPERCLIP_PUBLIC_URL | 访问地址 | 替换为实际IP或域名 |
| BETTER_AUTH_SECRET | 认证密钥 | 使用openssl rand -base64 32生成 |
bash复制openssl rand -base64 32
将生成的随机字符串作为BETTER_AUTH_SECRET的值。
使用以下命令启动Paperclip:
bash复制docker-compose up -d
启动后,可以通过以下命令查看日志:
bash复制docker-compose logs -f
首次启动时,系统会自动初始化数据库。这个过程可能需要几分钟时间。你可以通过以下命令检查数据库状态:
bash复制docker exec -it paperclip-db psql -U paperclip -c "\l"
服务启动后,在浏览器中访问:
code复制http://<你的服务器IP>:3198
首次访问时需要进行系统初始化:
bash复制docker exec -it paperclip-web /bin/bash
pnpm paperclipai onboard
选择"Quickstart"选项生成管理员邀请链接
在浏览器中打开邀请链接,创建管理员账号
注意:密码必须包含大小写字母、数字和特殊字符,长度至少8位。
创建账号后,需要设置第一个公司:
添加第一个AI智能体:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 容器启动失败 | 端口冲突 | 检查3198端口是否被占用 |
| 数据库连接超时 | PostgreSQL未就绪 | 等待更长时间或检查db容器日志 |
| 页面无法访问 | 防火墙阻止 | 检查防火墙设置 |
bash复制docker exec -it paperclip-web mkdir -p /paperclip/project
Paperclip支持同时管理多个独立公司:
除了内置的智能体类型,你还可以:
建议配置:
可以通过以下命令查看系统资源使用情况:
bash复制docker stats paperclip-web paperclip-db
bash复制docker-compose logs --tail=100 -f
bash复制tar -czvf paperclip_backup_$(date +%Y%m%d).tar.gz /volume1/docker/paperclip
bash复制docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
bash复制docker-compose down
备份数据目录
拉取最新镜像:
bash复制docker-compose pull
bash复制docker-compose up -d
在实际使用Paperclip几个月后,我总结了一些实用技巧:
智能体分组:按功能或部门对智能体进行分组管理,可以提高效率。
任务优先级:合理设置任务优先级,确保关键任务优先执行。
预算分配:初期可以给每个智能体设置较低的预算限制,根据实际使用情况逐步调整。
工作目录规划:为不同类型的项目创建独立的工作目录,避免混乱。
定期审查:每周检查智能体的工作日志和成本报告,及时调整策略。
一个特别有用的技巧是使用"心跳间隔"来控制智能体的活跃程度。对于不需要实时响应的任务,可以适当延长心跳间隔来节省成本。