auto-sync: 2026-05-16 23:42:07

This commit is contained in:
cfdaily
2026-05-16 23:42:07 +08:00
parent 3c1e7e061e
commit 0693c9e801
+67 -108
View File
@@ -19,121 +19,80 @@
│ │ (OpenClaw Chat) │ │ React + Vite │ │
│ └────────┬─────────┘ └────────┬─────────┘ │
│ │ │ │
│ 自然语言对话 REST API + SSE │
│ │ │ │
└───────────┼───────────────────────┼────────────────────────────────────────┘
│ │ SSE
│ CLI / sessions_send │ REST API
▼ ▼
┌───────────────────────────────┐ ┌──────────────────────────────────────┐
│ Agent 执行环境(独立进程) │ │ v2 主进程(PM2: sanguo-moziplus-v2
│ │ │ asyncio event loop │
│ ┌─────────────────────────┐ │ │ │
│ │ L0 铁律 (OpenClaw Hook) │ │ │ ┌─────────────────────────────────┐ │
│ │ L1 角色 (SOUL/IDENTITY) │ │ │ │ API 层 (FastAPI + uvicorn) │ │
│ │ L2 引擎注入 (bootstrap) │ │ │ │ ┌──────┐ ┌──────┐ ┌────────┐ │ │
│ │ L3 被动参考 (Skill) │ │ │ │ │黑板API│ │项目API│ │SSE推送 │ │ │
│ └─────────────────────────┘ │ │ │ └──┬───┘ └──┬───┘ └───┬────┘ │ │
│ │ │ └─────┼────────┼─────────┼───────┘ │
│ Agent → 黑板 的交互方式: │ │ │ │ │ │
│ ① CLI (blackboard.py) ───────┼──┼──→ 直接操作黑板 DB │
│ ② Inbox JSONL ──────────────┼──┼──→ 秒级事件推送给 Daemon │
│ │ │ │
│ │ │ ┌─────────────────────────────────┐ │
│ │ │ │ Daemon 引擎层(同一 event loop)│ │
│ │ │ │ │ │
│ │ │ │ ticker (30s scan) │ │
│ │ │ │ ┌──────────┐ ┌──────────────┐ │ │
│ │ │ │ │审查流水线 │ │ 依赖推进 │ │ │
│ │ │ │ │(4级分级) │ │ 反驳权/蒸馏 │ │ │
│ │ │ │ └──────────┘ └──────────────┘ │ │
│ │ │ │ ┌──────────┐ ┌──────────────┐ │ │
│ │ │ │ │Agent调度器│ │Bootstrap拼装 │ │ │
│ ← asyncio.create_subprocess │ │ │ └────┬─────┘ └──────────────┘ │ │
│ _exec (spawn 不等返回) │←─┼──┼───────┘ │ │
│ │ │ │ ┌──────────────────────────────┐│ │
│ │ │ │ │ ActiveAgentCounter (并发控制) ││ │
│ │ │ │ └──────────────────────────────┘│ │
│ │ │ └─────────────────────────────────┘ │
│ │ │ │
│ │ │ ┌─────────────────────────────────┐ │
│ │ │ │ 黑板数据层 (per-project SQLite) │ │
│ │ │ │ ┌─────┐ ┌──────┐ ┌──────┐ │ │
│ │ │ │ │tasks│ │outputs│ │reviews│ │ │
│ │ │ │ └─────┘ └──────┘ └──────┘ │ │
│ │ │ │ ┌──────────┐ ┌───────────┐ │ │
│ │ │ │ │comments │ │experiences│ │ │
│ │ │ │ │decisions │ │events │ │ │
│ │ │ │ │observations│ │ │ │
│ │ │ │ └──────────┘ └───────────┘ │ │
│ │ │ └─────────────────────────────────┘ │
└───────────────────────────────┘ └──────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────────┐
API 层 (FastAPI)
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ │ 黑板 API │ │ Daemon │ │ SSE 推送 │ │ 项目管理 │
│ │ CRUD │ │ 控制API │ │ /events │ │ API │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘
───────────────────────────────────────────┼────────────────────────────┘
┌───────┼────────────┼────────────┼────────────┼────────────────────────────┐
Daemon 引擎层 (asyncio event loop)
│ │ │ │
│ ┌────▼────────────▼────────────▼────────────▼─────┐ │
│ │ Daemon ticker (30s) │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │
│ │ │ Inbox │ │ 审查流水线│ │ 依赖推进/反驳权 │ │ │
│ │ │ JSONL │ │ (4级分级) │ │ /蒸馏/健康自检 │ │ │
│ │ └──────────┘ └──────────┘ └──────────────────┘ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │
│ │ │ Agent │ │ Bootstrap│ │ ActiveAgent │ │ │
│ │ │ 调度器 │ │ 拼装器 │ │ Counter │ │ │
│ │ └────┬─────┘ └──────────┘ └──────────────────┘ │ │
│ └───────┼─────────────────────────────────────────┘ │
│ │ 3级调度: Daemon直接 / Full Agent / Subagent │
│ │ │
│ ┌───────▼─────────────────────────────────────────┐ │
│ │ Agent Spawn 层 │ │
│ │ asyncio.create_subprocess_exec │ │
│ │ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ Full Agent │ │ Subagent │ │ │
│ │ │ (openclaw │ │ (sessions_ │ │ │
│ │ │ agent CLI) │ │ spawn API) │ │ │
│ │ └──────┬───────┘ └──────┬───────┘ │ │
│ └─────────┼───────────────────┼───────────────────┘ │
│ │ │ │
│ ┌─────────▼───────────────────▼───────────────────┐ │
│ │ Agent 执行环境 │ │
│ │ SOUL.md + IDENTITY.md + Skills + 工具集 │ │
│ │ ┌──────────────────────────────────────┐ │ │
│ │ │ L0 铁律 (Hook注入) │ │ │
│ │ │ L1 角色 (Agent自带) │ │ │
│ │ │ L2 引擎注入 (操作规范+背景+上下文) │ │ │
│ │ │ L3 被动参考 (Skill按需加载) │ │ │
│ │ └──────────────────────────────────────┘ │ │
│ └──────────────┬──────────────────────────────────┘ │
│ │ 产出写入/评论/决策/观察 │
│ ▼ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ 黑板数据层 (per-project SQLite) │ │
│ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │
│ │ │tasks │ │comments│ │outputs│ │reviews│ │events│ │ │
│ │ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │ │
│ │ ┌──────┐ ┌──────┐ ┌──────────────┐ │ │
│ │ │decisions│ │observations│ │experiences│ │ │
│ │ └──────┘ └──────┘ └──────────────┘ │ │
│ └──────────────────────────────────────────────────┘ │
│ │ │
│ ┌──────────────▼──────────────────────────────────┐ │
│ │ 配置 & 知识层 │ │
│ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │
│ │ │ _registry │ │ guardrails │ │ review_ │ │ │
│ │ │ .yaml │ │ .yaml │ │ protocols/ │ │ │
│ │ └────────────┘ └────────────┘ └────────────┘ │ │
│ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │
│ │ │ prompt_ │ │ schemas/ │ │ skills/ │ │ │
│ │ │ templates/ │ │ (JSON) │ │ (builtin+ │ │ │
│ │ │ │ │ │ │ custom) │ │ │
│ │ └────────────┘ └────────────┘ └────────────┘ │ │
│ │ ┌────────────┐ │ │
│ │ │ project.yaml│ (per-project 覆盖) │ │
│ │ └────────────┘ │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ 全部运行在单一 asyncio event loop 中(与 FastAPI 共享) │
配置 & 知识层(文件系统)
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │_registry │ │guardrails │ │review_ │ │prompt_
│ │.yaml │ │.yaml │ │protocols/ │ │templates/ │
│ └────────────┘ └───────────┘ └────────────┘ └────────────┘ │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│schemas/ │ │skills/ project.yaml│ (per-project 覆盖)
│ │(JSON) │ │(builtin+ │ │ │ │
│ │ custom) │ │ │
└────────────┘ └────────────┘ └────────────┘
└───────────────────────────────────────────────────────────────────────────┘
```
### 1.2 核心数据流
### 1.2 交互路径详解
```
用户需求 → 庞统规划 → 任务拆解 → 写入黑板
┌───────────────┘
Daemon tick 扫描
┌───────────┼───────────┐
▼ ▼ ▼
pending任务 review任务 blocked任务
调度Agent执行 处理审查流水线 检查依赖推进
│ │
▼ ▼
Agent执行 ┌─────────────┐
(Full/Sub) │ 审查分级 │
│ │ high→辩论 │
▼ │ standard→单审│
写入产出 │ low→Guardrail│
到黑板 └──────┬──────┘
│ │
│ ┌──────┴──────┐
│ ▼ ▼
│ 通过→done 不通过→反驳权
│ │
│ max_rounds
│ │
│ 超轮次→庞统裁决
│ │
└───────────────────┘
任务完成 → 一级蒸馏 → 经验注入
```
| 路径 | 方式 | 说明 |
|------|------|------|
| 用户 → Agent | OpenClaw Chat | 自然语言对话,Agent 自带身份和工具 |
| 用户 → Dashboard | 浏览器访问 8083 | REST API 查黑板、SSE 收推送 |
| Agent → 黑板 | CLI `blackboard.py` | read/claim/output/comment/decide/observe/create/review |
| Agent → Daemon | 写 Inbox JSONL | 秒级事件推送,触发 Daemon 提前 tick |
| Agent → Agent | 黑板评论 | comments 表(handoff/rebuttal/debate),替代 Mail |
| Daemon → Agent | `asyncio.create_subprocess_exec` | spawn 不等返回,下次 tick 检查产出 |
| Daemon → Dashboard | SSE `/api/events` | 任务状态变更、审查结果、通知推送 |
| Dashboard → Daemon | REST API | 查状态、手动 tick、项目管理 |
### 1.3 组件职责矩阵