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

排查过程

  1. 修改 instructionsRootPath 指向工作目录 → 无效
  2. 复制文件到工作目录(而非软链接) → 仍被沙箱拦截
  3. Claude settings.json 配置 Read **Write **Bash(**) → 部分生效
  4. 更换工作目录到 /home/resley/workspace-ceo(脱离 .paperclip 路径) → 仍有问题
  5. 根因:OpenCode 使用 Claude Code 的权限系统,external_directory 由 Claude API 端检查

最终解决方案

// ~/.claude/settings.json
{
  "permissions": {
    "Read **": true,
    "Write **": true,
    "Bash(**)": true
  }
}

同时为三个工具设置管理员权限:

  • OpenCode:Claude settings.json 全通
  • CodexCODEX_UNSAFE_ALLOW_ALL=1 + CODEX_SANDBOX_TYPE=none
  • Paperclip:注入相同环境变量到 systemd service

DNS 配置

  • 泛解析 *.com.openclaws.co.uk4.193.219.191(Paperclip 服务器)

相关页面