feat(channelbridge): 群聊公域呈现块与判定器去人格(M62)

P0-3 受限车道(群聊/陌生人)的系统框架行并列注入【公域呈现】
(publicPresencePrompt):它是呈现层投影(AGENTS §9 行为模式=呈现),
不是人格切换也不是权限门——不称第三方「亲爱的」等主人专属称呼、
不做只对主人的亲近动作、主人的住址/姓名/作息/行程/健康/家人/关系
即使记忆里读到也不外说;主人私聊与 Web 主会话不注入。

P0-4 纵深防御:第三方边界提示词与 loop 受限前导片段各补两条硬规则
(不用主人专属亲昵称呼指代第三方 + 不外说主人私事)。

P1-2 判定器去人格:模型输入只吃「角色名 + 偏好摘要」,整份人格指令
不再进模型(审计 2026-10-30 §2.4 的 reason 亲昵口吻即由此而来)。

P1-3 测试补真:受限期呈现块存在性 + 主人车道不注入 + 判定器输入/
模型请求均不含人格正文;并纠正 memory_filter 的错误注释
(作用域 ≠ 敏感度,审计 §6 R1)。
This commit is contained in:
AskaEth committed 2026-10-30 08:37:40 +08:00
1 parent 9d28477e3a
commit c34b9d195d
10 files changed
+469 -30

No files matched your search

+5 -3
View File
@@ -58,9 +58,11 @@ type LightInput struct {
// 群上下文与角色提示词,绝不会按每条聊天消息投喂。旧的
// (design/12 §6)无结论判定会使它为 false。
Engage bool
// PersonaPrompt 是当前角色的身份/系统提示词块,使判定器
// 能权衡角色的语气而不涉身份判定。它不含
// 主人敏感信息(项目红线)。
// PersonaPrompt 是当前角色的身份/系统提示词块。它由装配方传入,
// 但 LLM 判定器**不把它透传进模型输入**:判定器只吃由它折算出的
// 「角色名 + 偏好摘要」(engagejudge.go 的 judgePersonaBrief)。
// 理由见 engageJudgePreferenceDigest 的注释 —— 整份人格指令里的称呼与
// 关系设定会被判定器搬进 reason 去指代第三方(审计 2026-10-30 §2.4)。
PersonaPrompt string
// RecentContext 是群会话最近 N 条消息(带各发送者
// 显示名)加上触发消息的渲染文本,使判定器能判断