|
|
c53d1da2a6
|
docs: 内核性能实测基线 + payload 透传/保留键设计
## docs/zh/kernel-performance.md(新增)
全部是实测数据,不是估算,每条标出测量方法与复现命令。
冷启动 15.4s(5 层 17 模块 + 22 插件),耗时分布:
第 0→1 层 3.1s 20% 内存/ONNX/文档存储初始化
第 1→4 层 2.4s 16% LLM/知识库/agent 装配
第 4→完成 9.9s 64% 22 个插件子进程建链
★ 与早期记录(1538–1709ms)的差异要说明:那是**纯内核**装配时间,
不含插件。两者口径不同,混用会得出"启动变慢 10 倍"的错误结论。
其余指标:RSS 26MB / 插件进程 12 个(13 个按需加载)/ 三层工具超时
(30s ctx → max(声明,参数) → 10m 硬上限)/ 上下文预算实测值 /
`offload_busy_after` 1m。
含三个实测踩过的性能陷阱:长工具执行期间 stop 无法生效、
同阶段重复注册静默覆盖、before_output 双触发路径。
## kernel-modularization-design.md 新增 2.7 节
注入 payload 的透传机制与保留键硬约束。
保留键必须覆盖两类:注入路径自己写入的(no_memory/context_policy/…)
与内核读取的语义键(interrupt/stop/command/…)。插件写保留键会被
跳过并记日志 —— 允许覆盖等于允许伪造"这条不记记忆"或"这条立即打断",
那是权限提升。
同时记录 output_send__* 的 stage 语义:before_output/after_output
有两条触发路径,output.go 那条才是"消息真发出去"的时刻,而它历史上
连 Extra 都没初始化(实测 extra_keys=0)。
## 设计过程中的一次返工
曾加 InjectOptions.Meta,等于把同一件事做两遍且只服务注入路径。
用户指出后改为复用 InputEvent.Payload 的扩展口,所有注入路径共用。
|
2026-10-18 18:36:26 +08:00 |
|