feat(cyrene,config,loop): 护栏/压缩/身份知识三条落地(P0-5/P0-10/P0-11)+ 身份注入收窄到主人会话
- P0-5 护栏不再是空壳:挂 WithSensitiveInfo(阻断) + 长度上限(输入 262144 / 输出 65536 字符,依据=
组装完成的请求体量级与「不误伤正常对话」) + 关键词**仅在配置时**挂;正常对话有用例证明放行
- P0-11 上下文压缩默认启用:CONTEXT_MAX_TOKENS 默认 32768(=loop.DefaultMaxContextTokens,两常量由测试锁死),
0/负 = 关闭(行为退回接线前);长对话真压缩且摘要消息进请求首位、最近一轮保留
- P0-10 身份说明书(owner.yaml identityFile)注入人格上下文,并且**收窄为仅主人会话**:
· 新增最小钩子 loop.Options.PersonaKnowledgeFor(env):**按该轮会话环境**解析(不看提示词、不看会话 id),
块只进每轮视图、**不进 messages**(不进 checkpoint、不进记忆提取面)
· 开关 OWNER_IDENTITY_INJECTION:owner_only(默认) / always(仅自测) / off;非法值与读不动 → WARN + 回退默认(不静默)
· **顺手关掉第二条同型泄漏**:channelbridge 群聊参与度判定器的 PersonaPrompt 此前带身份正文 ⇒ 现改为纯人格指令
· 回归:缺文件/目录/未配置逐字节等于旧输出;静态指令与角色池 Instructions() 全不含正文;
文件里点名的陌生账号仍 IsOwner==false(身份知识绝不参与权限判定)
- 复核:build/vet 绿 + cmd/config/loop 包测试绿;四类断言(主人含 / **群聊与陌生人不含** / always·off 两档 /
回归不变)+ 4 条变异反证(含把判定改成恒真 → 提示词里真的出现身份说明书)均已还原
- 未做(登记):knowledge 块启动时读一次(改文件需重启);`.env.example` 的 OWNER_IDENTITY_INJECTION 行随后补;
`internal/user/owner.go` 注释与 design/01 §2.2、design/11 §0 待同步
This commit is contained in:
1 parent
19f296a2ab
commit
da3a386daf
18 files changed
+1758
-81
No files matched your search
@@ -165,6 +165,19 @@ CAPACITY_L3_CACHE_TTL=5m
|
||||
# 可配置);模型派发时可用 subagent_spawn 的 timeout_seconds 参数按调用覆盖。
|
||||
SUBAGENT_TIMEOUT_SEC=600
|
||||
|
||||
# ---- 护栏与上下文预算(design/04 §1.3 / §5) ----
|
||||
# 上下文溢出压缩预算(token,离线估算值)。默认启用:会话估算上下文超过它时,
|
||||
# 更早的轮次被摘要成一条前导摘要消息,近期尾部(含尾部工具结果)原样保留。
|
||||
# 默认 32768 = loop.DefaultMaxContextTokens:默认模型(gpt-4o)窗口 128K,
|
||||
# 它只占四分之一,给系统提示词/工具 schema/本轮输出留足余量,且远高于日常对话
|
||||
# 体量(正常聊天几乎不触发压缩)。设 0(或负数)= 关闭压缩,行为与接线前一致。
|
||||
CONTEXT_MAX_TOKENS=32768
|
||||
# 内容策略关键词表(逗号分隔,大小写不敏感的子串匹配)。留空 = 不挂关键词护栏
|
||||
# (项目不内置任何词表,只有你显式声明过的词才会被拦)。敏感信息(API key /
|
||||
# bearer token / 密码 / 私钥)为阻断档、请求与响应各有长度上限,这两项是代码
|
||||
# 内定的安全默认值,不对外开放配置(见 cmd/cyrene/wire_guardrail.go)。
|
||||
# GUARDRAIL_KEYWORDS=
|
||||
|
||||
# ---- 推送出口(D1,主动推送的两级投递)----
|
||||
# 主动消息在 WS/IM 投递之外,异步镜像到「主人自建统一推送服务」(主通道)。
|
||||
# 该服务不可达/未配时,日志注明「个推(Getui)回退待接入」——当前无 Getui SDK,不伪造投递。
|
||||
|
||||
Reference in new issue
Block a user