空间、记忆与本体
WopalSpace 的模型可以拆成两样「结构」和一套「协作系统」:空间(运行态) 与 本体(能力基因) 是结构支柱;引擎与智能体、技能、记忆、守则 是让协作发生的系统。
💡 一句话记忆:Space 是 Agent 的房间,Ontology 是房间的家具与规则说明书,Engine + Agents 是住在里面并干活的伙伴。
空间(Space)
空间是 Agent 的工作上下文与运行态,本质是一个目录。标准结构:
<space>/
├── .wopal/ # 本体 worktree(本地叠加层)
│ ├── agents/ # Agent 灵魂定义
│ ├── skills/ # 技能
│ ├── commands/ # 自定义 slash 命令
│ ├── rules/ # 行为规则
│ ├── plugins/ # 运行时插件(wopal-plugin)
│ └── .env # 空间级环境变量
├── .wopal-space/ # 运行态
│ ├── STRUCTURE.md # 空间结构真相源
│ ├── REGULATIONS.md # 空间守则与安全红线
│ ├── memory/ # 记忆(USER.md / MEMORY.md / diary/)
│ ├── logs/ # 运行日志
│ ├── INBOX/ # 外部技能暂存
│ ├── backup/ # 空间内容备份
│ └── .tmp/ # 临时缓冲(验证隔离区)
├── AGENTS.md # 启动入口
├── .gitignore
└── projects/ contents/ docs/ labs/ … # 你的实际工作
空间之间完全隔离:配置、依赖、记忆、权限互不影响。
STRUCTURE.md —— 结构真相源
每个空间有一份 STRUCTURE.md 记录「我在哪、什么归我管、哪里不能乱动」。它带 frontmatter 索引,正文是一张 MANAGED(由工具维护)与 USER(你维护)的组件表:
---
version: 1
space: my-space
space-component-type: [ontology-worktree, space-runtime, projects, docs]
ontology-worktree: { path: .wopal, repo: wopal-space-ontology@space/my-space }
space-runtime: { path: .wopal-space, dirs: [.tmp, INBOX, backup, logs, memory] }
---
# my-space Space Structure
<!-- MANAGED:START -->
| path | type | level | description |
| ...由 /init 自动维护的组件清单... |
<!-- MANAGED:END -->
<!-- USER:START -->
| path | type | level | description |
| ...你手动登记的项目/模块... |
<!-- USER:END -->
/init 会消费 wopal space scan 的结果来校准这份文件,所有写入先展示方案并等你确认。
REGULATIONS.md —— 守则与安全红线
REGULATIONS.md 是 Agent 必须严格遵守的行为规范,分三部分:
- 安全红线:删除保护(未获明确授权不删文件、
external/受保护、Git 历史不可篡改等) - 工作标准:核心技能路由、Git 工作流、子 Agent 委派规范、验证隔离、记忆写入规则
- 工程细节:时间获取、路径确认、历史文档不回改等
引擎启动时会自动把 REGULATIONS.md 注入 Agent 上下文。
本体(Ontology)
本体是空间的「能力基因」——一套分层、版本化、可分发的能力体系,而不是静态模板库。
分层结构
本体 (Ontology)
├── main(common) 通用基线,所有空间共享
└── type/* coding / content / finance … 在 main 之上叠加类型能力
▼
空间实例 (Space) 基于某个 type 创建,再叠加空间私有定制
- main(common):通用能力基线。
- type/*:类型超集,在 main 基础上叠加特定场景能力(如
type/coding叠加编码能力)。 - space/*:空间超集,在所选 type 基础上再叠加本空间私有定制。
落地方式
- 本体 source 位于
$WOPAL_HOME/ontologies/<source>(默认wopal-space-ontology)。 - 基础能力层物化到
$WOPAL_HOME/{agents,skills,commands,rules,plugins}(macOS / Linux 用符号链接,Windows 用受控拷贝)。 - 每个空间在
<space>/.wopal/持有自己的 worktree 叠加层。
去中心化分发
任何人都可以 fork 本体、自主演化,成为他人的 source——GitHub 就是 registry,没有中心化权威:
wopal ontology install <github-url> # 从任意仓库安装
wopal ontology update # 版本驱动拉取
wopal ontology contribute --type coding # 向 source 发 PR 回流
wopal ontology promote # 将通用变更从 type 回流到 main
本体的质量靠社区 star / fork 数自然涌现;你想换 source 时,
wopal ontology install另一个 fork 即可,没有锁定。
引擎与智能体(Engine & Agents)
ellamaka 是 WopalSpace 的执行引擎(OpenCode 的 fork),以 --wopal-space 模式加载 .wopal/ 下的能力。它承载 Agent 会话、工具调用、PTY 与 Web 运行时。你通过 wopal start 启动它并在浏览器使用 Web Workbench。
🧠 Wopal(主 Agent)
空间的主智能体,理解你的指令、加载技能、调用工具、汇报结果并沉淀进化。
🤝 Fae / Rook(子 Agent)
Wopal 可以委派的子智能体:Fae 负责具体执行,Rook 负责审查。委派前会加载 agents-collab 协议。
🌐 Translator
负责跨语言协作的辅助智能体。
技能(Skills)
技能是 Agent 的「执行规范」:定义工作流程、行为约束与工具使用指引。它们放在 skills/ 里,由 Agent 按场景按需加载,不存放空间事实。
本体内置的核心技能:
| 技能 | 职责 | 触发场景 |
|---|---|---|
space-master | 空间工作规范总纲、流程路由入口 | 意图不明、空间运维、本体协作、技能管理 |
dev-flow | Issue / Plan 驱动的开发状态机 | 开发、修复、重构(以 GitHub Issue 或 Plan 为载体) |
agents-collab | 子 Agent 委派协议 | 任何把工作交给 Fae / Rook 的场景 |
skill-creator | 创建与改进技能 | 沉淀可复用工作流 |
git-worktrees | 并行工作树管理 | 多分支并行开发 |
mac-reminder / youtube-master | 系统提醒 / 视频摘要等专用能力 | 对应场景 |
除了内置技能,你还能通过 wopal skills 系列命令发现、下载、扫描与安装外部技能(外部技能会先进入 INBOX/ 并经过安全扫描再安装)。
记忆(Memory)
WopalSpace 不把所有东西塞进长期记忆,而是分层保存,并且「可从代码直接得到的信息不污染记忆」:
- 用户偏好(
memory/USER.md):沟通方式与稳定偏好 - 长期经验(
memory/MEMORY.md):可复用的避坑知识与项目经验 - 会话日记(
memory/diary/):会话暂存池 - 语义记忆:由
wopal-plugin维护(LanceDB + MEMORY.md),会话中按需检索注入
记忆的写入遵循「先去重 → 展示全文 → 等你明确确认 → 再执行」的纪律,由 /wopal:evolve、/wopal:memo、/wopal:memory 等 slash 命令驱动。
⚠️ WopalSpace 没有 wopal memory 这类命令。记忆的检索与沉淀都在 Workbench 内通过 slash 命令完成,而不是 CLI 子命令。
三者如何协同
你(自然语言 / slash 命令)
│
▼
ellamaka 引擎 ── 启动时加载 ──▶ 本体能力(Agents 灵魂 / 守则 / 规则 / 记忆)
│ │
▼ ▼
Wopal 主 Agent ── 按需加载 ──▶ 技能(space-master → dev-flow → agents-collab …)
│
▼
调用 CLI 等工具操作空间资产 ──▶ 汇报结果 ──▶ /wopal:evolve 沉淀进化
进化粒度:私人经验留在记忆层,空间规则留在守则层,通用能力提升到本体层版本化分发。