Sidecar Context
Sidecar Context(旁路上下文)是 profile 声明的旁路 run。它会在 Agent 主运行前或运行后从当前 session tree fork 一条旁路 leaf,完成检索、反思、记忆维护或状态整理,再把结果合并回主线,并把 active leaf 恢复到主 run 原位置。
它的目标是让主 Agent 任务上下文保持纯净和精简。比如 RP actor 主 run 应该专心扮演角色,不应该一边扮演一边翻完整世界书;检索和记忆维护可以放到 sidecar。sidecar transcript 会作为旁路分支持久化,便于审计,但不会成为主 active path;主路只消费 merge() 结果。
适合什么
Sidecar 适合这些场景:
- actor 主 run 前加载角色可知设定。
- actor 主 run 后更新
events.jsonl、memory.jsonl、mind.md。 - writer 写作前检索相关 lorebook。
- simulator leader 推进前做规则或状态审计。
Sidecar 不适合确定性上下文注入。确定性内容应优先用 profile TSX、input schema、variables 或 <Import />。
当前 RP actor 模式
simulator.actor 已接入两个典型 sidecar:
actor.context-load:主 run 前读取小型 subject 文件,调用subject_rag_search检索当前 subject 的events.jsonl/memory.jsonl,再整理 actor-safe context。actor.memory-save:主 run 后通过subject_event_append追加events.jsonl,通过subject_memory_update维护memory.jsonl,并更新mind.md。
主 run 仍保持角色扮演纯度。actor 不直接读取完整 simulation/、lorebook/、reference/ 或其他 subject。
actor.context-load 的结果会以 <actor-sidecar-context> 写入 actor session 主 active path。它不是一次性的隐藏注入;后续 run 和 compaction 都可以看到这条由 Harness 持久化的 actor-safe context。若注入后上下文超过模型窗口,父 invocation 会失败。
Subject RAG 只检索当前 subject 自己的记忆,不检索 lorebook 或 Project 全局文件。详细机制见 Subject RAG 记忆。
工具权限
Sidecar 的 toolKeys 必须是当前 profile 根 tools 的 key 子集。provider-visible tools 和 schema 保持 profile 最大集合,以保护工具 schema 缓存;进入 sidecar 时,执行层和 reminder 再限制本段 run 可用工具。主路结构化结果通过 report_result.data 返回;旁路结构化结果通过 report_sidecar_result.data 返回。report_sidecar_result.data 的模型可见 schema 来自当前 profile 全部 sidecarDataSchema 的稳定 union,运行期再按 active sidecar 精确校验;校验失败会生成模型可见 tool error,让同一 run 可以自我修正。