Paperclip 多智能体平台
多智能体”虚拟公司”平台,通过 OpenCode 本地适配器运行 Agent,支持心跳调度和层级管理。
概述
Paperclip 是一个多智能体编排平台,模拟公司组织架构(CEO、员工等角色),通过 opencode_local 适配器在本地运行 Agent。部署在独立服务器 paperclip(IP: 4.193.219.191)上,用户为 resley。
架构
Agent 结构
| 属性 | 值 |
|---|---|
| Agent 示例 | CEO(角色 ceo) |
| 适配器类型 | opencode_local |
| 模型 | github-copilot/claude-opus-4.6 |
| 心跳间隔 | 3600 秒(1 小时) |
| 工作目录 | ~/.paperclip/instances/default/workspaces/<uuid>/ |
核心组件
Paperclip Server
├── Agent Manager (心跳调度)
├── Company Model (CEO → 员工层级)
├── Adapter: opencode_local
│ └── 调用 OpenCode CLI(Claude Code 兼容)
└── API: /api/agents/me
Instructions 体系
Agent 通过三个核心文件获取指令:
AGENTS.md— Agent 配置和角色说明HEARTBEAT.md— 心跳任务定义SOUL.md— Agent 人格/行为准则TOOLS.md— 可用工具说明
关键问题:OpenCode 沙箱权限
问题描述
OpenCode 在非交互模式下自动拒绝 external_directory 权限请求。即使文件就在工作目录内,Agent 仍无法读取 HEARTBEAT.md、SOUL.md 等文件。
报错示例
permission requested: external_directory
(/home/resley/.paperclip/instances/default/workspaces/<uuid>/*); auto-rejecting
排查过程
- 修改
instructionsRootPath指向工作目录 → 无效 - 复制文件到工作目录(而非软链接) → 仍被沙箱拦截
- Claude settings.json 配置
Read **、Write **、Bash(**)→ 部分生效 - 更换工作目录到
/home/resley/workspace-ceo(脱离.paperclip路径) → 仍有问题 - 根因:OpenCode 使用 Claude Code 的权限系统,
external_directory由 Claude API 端检查
最终解决方案
// ~/.claude/settings.json
{
"permissions": {
"Read **": true,
"Write **": true,
"Bash(**)": true
}
}同时为三个工具设置管理员权限:
- OpenCode:Claude settings.json 全通
- Codex:
CODEX_UNSAFE_ALLOW_ALL=1+CODEX_SANDBOX_TYPE=none - Paperclip:注入相同环境变量到 systemd service
DNS 配置
- 泛解析
*.com.openclaws.co.uk→4.193.219.191(Paperclip 服务器)
相关页面
- ottor-pc-cloud-bot — 主要调试和配置者
- openclaw-config — OpenClaw 配置体系