2.6 KiB
2.6 KiB
Execution and Persistence
目标
给 memabra 补上两块真正让系统“落地”的骨头:
- execution:让路由决策进入可执行动作层
- persistence:让 trajectory 和 memory record 能落到磁盘
当前实现
execution.py
提供:
ActionResultMemoryExecutorSkillExecutorToolExecutor(原 MockToolExecutor,现已升级为可接真实后端)ExecutionEngineToolBackend协议(支持params传参)LocalFunctionToolAdapter— 将工具映射到本地 Python 函数SubprocessToolAdapter— 将工具映射到 shell 命令ToolRegistry— 按tool_id注册、查找和执行工具
当前行为:
inject_memory会产出memory_injected事件,并在有 memory store 时标记last_used_atload_skill会产出skill_loaded事件call_tool会通过ToolBackend协议调用真实后端,产出tool_called和tool_result事件RouteDecision现在携带selected_payloads,可以将候选参数经由ToolExecutor传递给后端- 其他 decision_type 先走 noop
这一步的意义是: memabra 第一次有了 execution stage,而不是只有 policy stage。 并且 tool 层现在可以接入真实的本地函数或子进程后端,不再是纯 mock。
persistence.py
提供:
PersistenceStore
当前能力:
- 保存 trajectory 到
artifacts/trajectories/ - 读取 trajectory
- 列出 trajectory 文件
- 保存 memory record 到
artifacts/memories/ - 读取 memory record
- 列出 memory 文件
这意味着 prototype artifacts 已经不再只是内存态漂浮物。
runner writeback integration
runner 现在支持:
- 挂 execution engine
- 挂 persistence store
- 挂 memory store
- 执行后扩展 execution events
- 可选把 trajectory 落盘
- 对 memory inject 决策进行基本 writeback / mark_used
当前闭环
现在的最小系统流程已经变成: 任务 -> retrieval -> router -> execution -> trajectory -> validation -> persistence -> replay
这就真正有点 agent runtime 的味儿了。
当前限制
tool 执行还是 mock 的已升级为可插拔式真实后端- skill 执行只是事件层,不是真加载技能
- writeback 逻辑还很粗糙
- persistence 目前是 JSON 文件,没有索引层
下一步建议
做真实tool adapter 已完成ToolExecutor/SkillExecutoradapter 协议- 做真实
SkillExecutoradapter(从文件系统加载 skill payload) - 把 persistence 接到 replay 默认数据源
- 给 runner 增加 outcome / reward 的真实更新逻辑
- 做 richer telemetry 和失败事件归因