feat(skills): 渐进披露接线(L2)—— 清单投影 + 命中才展开 + 工具面只收不放
- 清单只给 name+description(+when-to-use),单条 ≤1536 字符 + 全局条数上限,超限如实标 truncated - 命中才把正文作为一条消息注入:跨回合保留、按内容指纹缓存不重复读盘、注入 ≤16 KiB 标 .truncated - invocation 三态与清单逐格对齐(model-only 清单不含 description;user-only 清单有但模型不可调) - 激活轮的工具面 = allowed-tools ∩ 安全闸 ∩ 注册表 再减 disallowed-tools(owner 也看不见未允许的工具) - 激活状态进程内按会话(不落库);注入量已界化(压缩器估值未含,超我文件面) 裁定(DECISIONS #3/#4/#5):删掉 paths 启发式(只认显式挂载);多技能并集;收缩作用域=激活的那个回合。
This commit is contained in:
1 parent
2e1c3ed3fd
commit
6475eb875d
10 files changed
+1448
-3
No files matched your search
@@ -133,7 +133,12 @@ type Loop struct {
|
||||
imageResolver ImageResolver
|
||||
documentResolver DocumentResolver
|
||||
documentInjectChars int
|
||||
log *slog.Logger
|
||||
// skillFace 是 SK-5 的技能面(清单投影 + 命中才展开的正文 + 技能轮次的工具面
|
||||
// 收缩,见 assemble_skill.go)。为 nil(SetSkillFace 未调用)时模型面与接线前
|
||||
// 逐字节一致。它由装配期一次性挂上,之后只读;每会话的状态在 SkillFace 内部
|
||||
// 按会话分桶并自带锁,因此循环的并发 Run 契约不变。
|
||||
skillFace *SkillFace
|
||||
log *slog.Logger
|
||||
}
|
||||
|
||||
// New 由 opts 构建 Loop 并应用默认值。MaxRounds 非正时
|
||||
|
||||
Reference in new issue
Block a user