内容
# 舒适-金钱桥梁
将 [舒适-温馨](https://github.com/JosephOIbrahim/Comfy-Cozy) 的自主舒适UI代理连接到 [金钱](https://github.com/JosephOIbrahim/Moneta) 的认知基质。用于生成工作流的跨会话内存。
## 架构
桥梁是一个薄的文件监视器+写入器。它不修改舒适-温馨或金钱的源代码;两者都作为法律冻结。
```mermaid
%%{init: {'theme':'base', 'themeVariables': {
'primaryColor': '#4A6FA5',
'primaryTextColor': '#E8E8E8',
'primaryBorderColor': '#4A6FA5',
'secondaryColor': '#C25B3F',
'secondaryTextColor': '#E8E8E8',
'secondaryBorderColor': '#C25B3F',
'tertiaryColor': '#888888',
'tertiaryTextColor': '#E8E8E8',
'tertiaryBorderColor': '#888888',
'background': '#0D0D0D',
'mainBkg': '#4A6FA5',
'lineColor': '#888888',
'textColor': '#E8E8E8'
}}}%%
%% 吸收:舒适-温馨结果 → 金钱
flowchart TD
结果[outcomes.jsonl<br/>追加]
尾部[tail.py<br/>打开-读取-关闭]
矢量[vector.py<br/>合成矢量 会话]
吸收[ingest.py<br/>json.dumps 有效载荷]
金钱1[金钱上下文管理器<br/>m.deposit 有效载荷, 嵌入]
睡眠[m.run_sleep_pass<br/>硬规则 §12]
快照[snapshot.json<br/>+ wal.jsonl 在磁盘上]
光标[state.py<br/>原子光标 + fsync]
结果 -->|监视文件事件| 尾部
尾部 --> 矢量
矢量 --> 吸收
吸收 -->|进入with块| 金钱1
金钱1 --> 睡眠
睡眠 -->|持久化在磁盘上| 快照
快照 -->|退出with块| 光标
classDef 基质 fill:#4A6FA5,stroke:#4A6FA5,color:#E8E8E8
classDef 消费者 fill:#C25B3F,stroke:#C25B3F,color:#E8E8E8
classDef 桥梁 fill:#888888,stroke:#888888,color:#E8E8E8
class 结果 消费者
class 尾部,矢量,吸收,光标 桥梁
class 金钱1,睡眠,快照 基质
```
吸收路径:舒适-温馨结果通过桥梁流入金钱的基质。硬规则§12(`run_sleep_pass()`)在光标推进之前使每次存款持久化。
```mermaid
%%{init: {'theme':'base', 'themeVariables': {
'primaryColor': '#4A6FA5',
'primaryTextColor': '#E8E8E8',
'primaryBorderColor': '#4A6FA5',
'secondaryColor': '#C25B3F',
'secondaryTextColor': '#E8E8E8',
'secondaryBorderColor': '#C25B3F',
'tertiaryColor': '#888888',
'tertiaryTextColor': '#E8E8E8',
'tertiaryBorderColor': '#888888',
'background': '#0D0D0D',
'mainBkg': '#4A6FA5',
'lineColor': '#888888',
'textColor': '#E8E8E8'
}}}%%
%% 补充:金钱状态 → 舒适-温馨会话胶囊
flowchart TD
命令行[bridge hydrate session_name]
矢量2[vector.py<br/>与吸收相同的会话矢量]
金钱2[金钱上下文管理器<br/>m.query 嵌入, limit=1000]
记忆[匹配的记忆列表]
胶囊[capsule.py<br/>按会话过滤<br/>按时间顺序排序<br/>转换为 schema_v2]
胶囊_文件[sessions/name.json<br/>原子临时+重命名]
启动[舒适-温馨<br/>AUTO_LOAD_SESSION 环境变量]
命令行 --> 矢量2
矢量2 -->|进入with块| 金钱2
金钱2 -->|只读查询| 记忆
记忆 --> 胶囊
胶囊 --> 胶囊_文件
胶囊_文件 -->|可选 --launch 标志| 启动
classDef 基质 fill:#4A6FA5,stroke:#4A6FA5,color:#E8E8E8
classDef 消费者 fill:#C25B3F,stroke:#C25B3F,color:#E8E8E8
classDef 桥梁 fill:#888888,stroke:#888888,color:#E8E8E8
class 命令行,矢量2,胶囊 桥梁
class 金钱2,记忆 基质
class 胶囊_文件,启动 消费者
```
补充路径:从金钱状态重建会话胶囊,并写入舒适-温馨的会话文件夹。可选地,桥梁使用`AUTO_LOAD_SESSION`启动舒适-温馨。
```mermaid
flowchart LR
L1[基质 · 金钱]:::基质
L2[桥梁]:::桥梁
L3[消费者 · 舒适-温馨]:::消费者
classDef 基质 fill:#4A6FA5,stroke:#4A6FA5,color:#E8E8E8
classDef 桥梁 fill:#888888,stroke:#888888,color:#E8E8E8
classDef 消费者 fill:#C25B3F,stroke:#C25B3F,color:#E8E8E8
```
基质(金钱)· 桥梁 · 消费者(舒适-温馨)
## 快速入门
```sh
pip install -e .
# 在一个终端中:
bridge tail
# 在另一个终端中,生成一些结果后:
bridge hydrate default --launch
```
默认值:
- `--comfy-cozy-root`: `G:/Comfy-Cozy`
- `--moneta-storage`: `~/.comfy-moneta-bridge/moneta/`
- `--state-dir`: `~/.comfy-moneta-bridge/`
## 桥梁的作用
### 吸收路径
`bridge tail`:
1. **监视** `{comfy-cozy-root}/sessions/*_outcomes.jsonl` 通过 `watchfiles`。
2. **在每个文件系统事件上,** 打开文件为二进制模式,寻找光标偏移,读取,关闭 — 永远不会持久地保持文件句柄。
3. **解码** 每个行明确为 utf-8,解析 JSON,验证 `schema_version == 1`。
4. **合成** 从结果的 `session` 字符串的确定性 384-dim 单位矢量(sha256 -> 种子 `random.Random` -> 高斯绘制 -> L2 归一化)。仅限标准库。
5. **打开** 一个短暂的 `金钱(...)`句柄,调用 `deposit(payload, embedding)` 然后 `run_sleep_pass()` — 后者对于持久性是强制性的(硬规则 §12);如果没有它,存款将在句柄关闭时静默丢失。
6. **在with块干净退出后,** 原子地推进光标文件(临时 + fsync + os.replace)。
### 补充路径
`bridge hydrate <session>`:
1. **合成** 相同的会话矢量。
2. **打开** 一个短暂的句柄,调用 `m.query(embedding, limit=1000)`。
3. **过滤** 按 `payload["session"] == <session>` (PRNG 碰撞保护)。
4. **按时间顺序排序** 按 `timestamp`。
5. **转换为** 舒适-温馨 `schema_version=2`:`vision_notes` -> 笔记类型=`observation`;`key_params` + `quality_score` -> 笔记类型=`preference`。
6. **原子写入** 到 `{comfy-cozy-root}/sessions/{name}.json`。
胶囊在舒适-温馨启动时加载,如果设置了 `AUTO_LOAD_SESSION=<name>`。`bridge hydrate --launch` 使用该环境变量启动舒适-温馨。
## 代理编排(v0.2,选配)
`v0.2` 添加了一个可选的子包,使代理能够通过桥梁操纵舒适UI工作流。v0 管道(尾部 / 补充 / 回忆)保持不变;代理生活在新的 `comfy_moneta_bridge/agents/` 子包中,位于 `[agents]` 额外功能之后。
```sh
pip install "comfy-moneta-bridge[agents]"
```
两个新的入口点:
- `bridge orchestrate <goal>` — 在本地舒适UI上运行具有五个角色(规划者 → 变异者 → 执行者 → 批评者 → 记忆者)的内部克劳德循环。默认模型:`claude-opus-4-7`。使用 `--interactive` 需要规划者和执行者之间的手动确认(硬规则 §16)。
- `bridge mcp` — 运行_stdio MCP服务器,向任何外部代理(克劳德代码,克劳德桌面,自定义)公开相同的工具表面。
两者共享一个在 `agents/tools.py` 中定义的工具层,并通过 `dispatch()` 路由。工具涵盖工作流加载/变异/连接/删除/验证/提交/中断,以及 `recall_memory`,`deposit_outcome`(具有 `_kind` 区分结果与工作流快照与阻止器),和 `capsule_write`。
宪法层是两层的:
- `AGENT_COMMANDMENTS.md` — 构建桥梁的任何LLM的构建时治理(从v0开始保持不变)。
- `AGENTS.md` — 代理调用工具表面的运行时宪法。在每次编排时重新读取,以便操作员编辑在下一次调用时生效。定义角色工具允许列表,拒绝案例,幂等性合同,金钱持久性纪律,模型身份和故障升级。
范围由 `BRIDGE_BUILD_MISSION_v3_2.md` 正式修订,该文件添加了四条新的硬规则:
| # | 规则 |
|---|---|
| §13 | `bridge tail` 和 `bridge orchestrate`/`bridge mcp` 是互斥的(PID文件互斥锁)。它们共享金钱URI锁。 |
| §14 | `workflow_submit` 在提交前对 `/object_info` 运行 `workflow_validate`。验证错误阻止提交。 |
| §15 | 舒适UI默认为 `http://127.0.0.1:8188`。非本地主机需要 `BRIDGE_ALLOW_REMOTE_COMFY=1`。 |
| §16 | 执行者在没有新的规划者/变异者检查点的情况下拒绝。 `--interactive` 在相同点添加手动确认步骤。 |
工作流通过现有的 `bridge hydrate` 路径流回:代理通过 `ingest_outcome` 发出 `_kind=workflow_snapshot` 存款,并且 `write_capsule` 提取最新的每个会话的快照以填充胶囊的工作流块(当存在快照时替换v0空存根)。`write_capsule` 的签名保持不变。
参见 `BRIDGE_BUILD_MISSION_v3_2.md` 以获取完整的范围修订版和 `AGENTS.md` 以获取运行时宪法。
## v0 限制
这些是记录的故障模式;每个都有一个具体的 v1 补救措施。
### 生存偏差
只有舒适-温馨的 `record_outcome` 路径捕获成功的结果。失败的管道运行和被放弃的目标可能不会在 v0 中持久化。 *v1 候选。*
### 光标丢失幂等性
如果 `~/.comfy-moneta-bridge/cursor.json` 被删除,则重放 JSONL 会产生重复的金钱存款。光标持久性是 v0 的幂等性机制;丢失 = 一些重复。 *v1 候选。*
### 合成向量
v0 使用会话键控确定性向量;在不同会话之间没有语义相似性。相同会话检索其所有记忆;跨会话学习不可用。 *v1 候选:真实嵌入(句子转换器或远程API)。*
### 性能上限 ≈ 1000
每个摄取调用在 `run_sleep_pass()` 内将整个ECS快照到磁盘。平均每个循环延迟,在Phase 0.5b的基准测试中测量:
| ECS 大小 | 平均值 | p99 | 注释 |
| --- | --- | --- | --- |
| 0 | 28 毫秒 | 47 毫秒 | 演示条件 |
| 100 | 76 毫秒 | 109 毫秒 | 演示上限 |
| 1,000 | **685 毫秒** | 736 毫秒 | 任务停止阈值 |
| 10,000 | 4,518 毫秒 | 6,505 毫秒 | 不可用 |
v0 适用于演示工作负载(~100个结果/会话)。超过~1,000个结果/会话的生产需要 *v1批量存款层*。
## 仓库布局
```
comfy_moneta_bridge/
vector.py 确定性合成嵌入器 + 可选 BGE
state.py 具有原子写入 + fsync 的光标存储
tail.py 旋转感知 JSONL 尾部
ingest.py 存款 + run_sleep_pass 管道
capsule.py 金钱查询 -> schema_v2 胶囊写入器
recall.py 跨会话语义回忆
launch.py 舒适-温馨启动,带有 AUTO_LOAD_SESSION
moneta_config.py 共享金钱配置构建器
cli.py typer 命令行界面:bridge tail / hydrate / recall / orchestrate / mcp
agents/ v0.2 代理层(通过 [agents] 额外功能)
client.py 舒适UI HTTP+WS 客户端(默认仅限本地主机)
workflow.py 类型化图模型 + 变更基元
tools.py Anthropic+MCP 工具的单一源
constitution.py AGENTS.md 加载器 + 角色允许列表注册
roles.py 规划者/变异者/执行者/批评者/记忆者
harness.py 检查点存储 + PID 文件互斥锁(§13, §16)
orchestrator.py 单目标驱动程序
mcp_server.py 标准输入输出 MCP 服务器
loop.py 内部 Anthropic-SDK 克劳德循环
tests/ 250 测试(模拟 + 真实金钱集成)
scripts/ 阶段 0.5b 探针(维度,持久性,基准测试)
docs/architecture.md 较长形式的架构说明
demo/ workflow.json + shot_list.md 用于演示弧线
```
## 构建来源
- 预飞行:`MONETA_API_SCOUT.md`(第 0.5a + 0.5b 附录)
- 宪法:`AGENT_COMMANDMENTS.md`
- 任务规范:`BRIDGE_BUILD_MISSION_v3_1.md`(活动),`BRIDGE_BUILD_MISSION_v3.md`(已过时,保留用于来源)
## 许可证
专有。匹配金钱和舒适-温馨的许可姿态。
连接信息
猜你喜欢
暂无推荐服务器