关于 opc-architecture
OPC Architecture Understanding 是介绍 Orchestrated Parallel Claude(OPC)如何扩展 Claude Code 的技能,面向需要理解其 Agent 协调机制的开发者。内容说明 OPC 如何通过钩子、技能、脚本和数据库协调独立运行的 Claude Code 实例。
主要功能
- 01说明 OPC 与 Claude Code 的关系
- 02介绍钩子和技能的作用
- 03描述子进程 Agent 的启动方式
- 04解释文件与 PostgreSQL 协调流程
- 05列出 OPC 关键文件结构
适用场景
- 01了解 OPC 的架构组成
- 02追踪 Agent 的启动与执行过程
- 03排查跨 Claude Code 实例的协调流程
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ parcadei/ continuous-claude-v3 --skill opc-architecture安装后在 Claude Code 中输入/opc-architecture确认已加载。
详细介绍
OPC 架构理解
OPC(Orchestrated Parallel Claude)扩展了 Claude Code,并不会取代它。
核心概念
Claude Code CLI 是执行引擎。OPC 通过以下方式添加编排功能:
- 钩子 - 拦截 Claude Code 事件(PreToolUse、PostToolUse、SessionStart 等)
- 技能 - 将提示词加载到 Claude Code
- 脚本 - 由钩子/技能调用以进行协调
- 数据库 - 在 Claude Code 实例之间存储状态
Agent 如何工作
启动 Agent 时:
- 主 Claude Code 实例(你的终端)在 Task 工具上运行钩子
- 钩子调用
subprocess.Popen(["claude", "-p", "prompt"]) - 一个新的 Claude Code 实例作为子进程启动
- 子进程独立运行,并读取/写入协调数据库
- 父进程通过数据库中的 PID 跟踪子进程
$ claude ← Main Claude Code (your terminal)
↓ Task tool triggers hook
↓ subprocess.Popen(["claude", "-p", "..."])
├── claude -p "research..." ← Child agent 1
├── claude -p "implement..." ← Child agent 2
└── claude -p "test..." ← Child agent 3
OPC 不是什么
- OPC 不是独立应用程序
- OPC 不会脱离 Claude Code 运行
- OPC 不会直接拦截 Claude API 调用
- OPC 不会修改 Claude Code 的内部行为
OPC 是什么
- OPC 是 Claude Code 从
.claude/hooks/加载的钩子 - OPC 是 Claude Code 从
.claude/skills/加载的技能 - OPC 是钩子/技能调用以进行协调的脚本
- OPC 是用于在 Claude Code 实例之间存储状态的数据库后端
关键文件
.claude/
├── hooks/ ← TypeScript hooks that Claude Code runs
├── skills/ ← SKILL.md prompts that Claude Code loads
├── settings.json ← Hook registration, Claude Code reads this
└── cache/ ← State files, agent outputs
opc/
├── scripts/ ← Python scripts called by hooks
├── docker-compose.yml ← PostgreSQL, Redis, PgBouncer
└── init-db.sql ← Database schema
协调流程
- 用户在终端中运行
claude - Claude Code 从
.claude/settings.json加载钩子 - 用户说“启动一个研究 Agent”
- Claude 使用 Task 工具
- PreToolUse 钩子触发并检查资源
- 钩子将
claude -p "research..."作为子进程启动 - 钩子将 PID 存储到 PostgreSQL
- 子 Agent 运行,并将输出写入
.claude/cache/agents/<id>/ - 子 Agent 完成后,向 PostgreSQL 广播“完成”
- 父进程检查数据库并读取子进程的输出文件
请记住
- 每个“Agent”都只是另一个
claude -p进程 - 钩子会拦截事件,但不会创建新功能
- 所有协调都通过文件和 PostgreSQL 完成
- Claude Code 始终是执行引擎
评论
支持 Markdown