隐私、历史与记忆
了解对话历史、人物档案、长期记忆和个人化模式的范围与删除限制。
Hanori 把“当前对话”“共享群历史”“人物档案”和“长期记忆”分成不同的数据用途。个人化模式只控制与用户直接关联的读取和写入行为,不能改变 Telegram 群聊本身是共享空间这一事实。
三种个人化模式
在私聊中发送 /privacy 或 /privacy status 查看当前模式:
| 模式 | 作用 |
|---|---|
normal | 启用个人化,可以参考你在其他聊天中的近期发言和个人信息。 |
isolated | 启用当前聊天的个人化,但不读取其他聊天。 |
off | 关闭个人化和被动触发。共享群历史仍可能被保存和用于群功能。 |
切换模式:
/privacy normal
/privacy isolated
/privacy off如果你不确定当前实例如何配置,先用 status 查看,再在测试聊天中验证。模式变化影响后续行为,不会凭空重写已经生成的摘要或外部平台消息。
Bot 可能保存什么
在功能和权限允许时,Bot 可能保存:
- 对话消息和群历史,用于上下文、搜索或总结;
- 人物档案,例如显示名、备注、兴趣、特征和关系;
- AI 主动保存的长期记忆;
- Telegram 媒体缓存、图片生成记录、工具和运行日志;
- 管理员配置的 RSS、总结、定时器和治理数据。
具体保留期由实例配置决定。日志、图片和生成记录通常有独立清理策略;面板中的导出、备份和删除操作也可能受角色限制。
在面板查看与清理对话
进入 Bot 工作区的 对话,可以输入完整 Chat ID 或历史参与者名称的片段,按 Enter 或点击 搜索对话。搜索覆盖当前 Bot 的全部会话,并按最近活动排序;数字 ID 精确匹配,名称忽略大小写,%、_ 和反斜杠按普通字符处理。
名称来自保存的聊天记录,可能是历史显示名或当时保存的 username;搜索不会另行查询群名称、Telegram 当前 username 或人物档案,也不搜索消息正文。命中一个参与者后,仍会展示该会话完整的消息数量、参与者、最近消息和摘要。
搜索后会回到第一页。页头显示已提交的条件;继续输入不会自动更新结果,需再次提交。使用 清除搜索 回到全部会话;搜索条件和页码只保存在当前页面,刷新网页或切换 Bot 后重置。选择会话后查看消息或压缩摘要,手机上用详情左上角的返回按钮回到列表。
清空此 Bot 的全部对话 会删除整个 Bot 的会话,包括搜索结果之外的记录。仅清理某条会话时,使用该行的删除按钮。
- 对话列表、消息和摘要分别加载。失败时会显示错误和 重试,只有成功读取后才会显示“没有消息”等空态;刷新失败时保留同一页已加载的内容,并提示可能已过期。
- 列表和详情都有刷新按钮。切换 Bot、搜索条件、会话或页码后,较早返回的请求不会覆盖当前页面。
- 单条消息和非活动摘要仍需点击两次确认删除;删除整会话或全部会话仍需在确认框中确认。正在使用的摘要不能单独删除。
- 无法确认删除结果时,页面会保留记录并提供 刷新并核对。它只重新读取列表和当前详情;如果已经切换搜索条件、会话、页码或标签,也会检查原删除所在的范围。不会再次发送删除请求,必要读取全部成功后才能重新发起删除。
- 已收到删除成功结果但刷新失败时,会显示 已删除,但未能刷新页面数据。此时可继续核对,避免根据旧内容重复删除。
- 删除和核对请求进行中,搜索、相关会话切换、翻页和删除操作暂时禁用。普通读取失败时仍可切换会话;删除结果未确认的提示会保留,需先核对才能继续删除。
这些页面内的恢复状态只保留到离开或刷新网页,不改变服务端权限和数据保留规则。系统、工具 两个可见性开关仍只作用于当前已加载的消息页。
管理压缩摘要
摘要是某个会话在一次压缩时得到的上下文快照,不是每条消息各自的摘要。当前使用的版本会进入后续对话;其他版本只是历史记录。管理员可以编辑当前摘要:保存时会生成一个新版本,并保留旧版本供核对。若同时发生自动压缩或另一人编辑,页面会刷新并提示冲突,不会覆盖对方的新版本。
新产生的摘要只保留当前版本和最近几个历史版本。升级前积累的大量历史摘要不会在升级时自动删除:在会话的 摘要 页先查看只读清理预览,再确认每一批清理;每批最多删除 100 个可清理的旧版本。预览会说明保留哪些版本,当前使用的摘要始终受保护。清理摘要版本不会删除原始聊天消息,也不会自动重写已经保存的长期记忆。编辑和批量清理仅限实例所有者或管理员。
在面板维护档案与记忆
进入 Bot 工作区的 人物档案 或 记忆 页面,可以查看、创建、编辑和删除当前 Bot 的记录。
- 人物档案搜索使用服务端分页,并显示全部匹配记录的真实总数;超过一页时可继续翻页,不再只显示前 10 条。这个变化只适用于管理页面,AI 工具内部的人物搜索仍最多返回 10 条,避免扩大单次模型上下文。
- 每张人物卡都提供 查看记忆,会打开同一 Bot 的记忆页并选中该人物的 Telegram ID。
- 列表加载失败时会显示错误和 重试,不会把失败显示为没有记录。相同筛选下刷新失败,会保留上次加载的内容并提示可能不是最新结果。
- 创建或保存结果无法确认时,当前表单和输入会保留;删除结果无法确认时,不会直接从界面移除记录。错误旁的 刷新列表 会重新加载列表,帮助先确认结果,再决定是否重新提交。
- 提交期间会暂时禁用表单和相关操作,避免重复点击;收到成功结果后才关闭表单。如果随后刷新失败,页面会分别显示操作成功和刷新错误。
- 切换 Bot 或筛选条件后,较早返回的请求不会覆盖当前列表。切换 Bot 会重置表单;这里的草稿只保留在当前页面,离开或刷新网页不会自动保存。
这些提示不改变记录权限或个人化模式。网络中断时,请先检查列表,避免把一次未收到确认的操作重复提交。
筛选记忆
记忆页可以组合以下条件:
- 范围:全部记忆、仅通用记忆,或指定 Telegram 用户 ID。用户 ID 必须是整数;
- 分类:选择已有分类;
- 搜索:按记忆内容搜索。
修改筛选表单后,点击 搜索 才会应用条件。当前已应用的范围会显示在列表上方,并同步到页面 URL;刷新页面、复制链接或使用浏览器前进/后退时会恢复这些条件。点击 清除筛选 会移除筛选并回到第 1 页。
从人物卡进入记忆页时,指定用户范围会自动填入该人物 ID。此时打开 添加记忆,新建表单也会预填该 ID,但仍可在提交前修改或清空;清空后创建的是通用记忆。
记忆编辑会核对打开表单时的版本。若期间发生其他编辑或 Bot 再次确认同一条记忆,旧版本不能覆盖更新后的记录;出现冲突时先刷新并核对最新内容。
编辑现有记忆时,需要先保存或取消,才能应用另一组筛选。创建、保存或删除的结果尚待确认刷新时,筛选和浏览器历史中的新地址会延后应用;确认请求成功后再切换,避免在不确定状态下重复写入。如果写入或确认刷新失败,页面会显示错误并保留草稿,先刷新列表确认服务端结果,再决定是否重新提交。
这些恢复规则只适用于当前已打开的页面。关闭页面、离开页面或刷新浏览器时,不承诺继续保留尚未提交的表单内容。
修改和整理长期记忆
记忆现在可以标明事实、偏好、经历、约定或关系,以及适用的聊天、来源和有效期。面板可修改内容、分类、类型、聊天范围和有效期,也可以将一条记忆停用。停用后 Bot 不再使用它,管理员仍能在列表中查看并按需删除;永久删除会移除该记录。过期记忆也不会被 Bot 召回。未设置有效期的旧记忆不会因为升级而自动过期,旧记录缺少的新字段会显示为空。
Bot 可以在对话中保存有后续价值的记忆,并在有新证据时修改或停用过时的记录。经历、关系和未完成约定限定在当前聊天;当前用户的偏好和事实仍遵循个人化模式。isolated 模式不会读取升级前没有聊天范围的个人记忆,因为系统无法判断它最初属于哪个聊天;管理员可在面板核对后为旧记录补充范围。Bot 只有在当前用户明确要求忘记自己的记忆时,才会开放个人记忆的永久删除工具;群聊共同记忆可由 Bot 停用或由管理员删除。/privacy forget 的整套删除流程见下文。
升级前保存的记忆不会自动合并或重新归属。管理员可在记忆页预览完全相同的活动记录:内容、用户、聊天范围、类型、分类及有效时间都相同才列为重复。预览只读;确认后每批最多停用 50 条重复记录,并优先保留有向量的记录;其余情况下保留创建时间较新的记录,精确创建时间相同时保留 ID 较大的记录。预览与执行使用相同的完整时间精度比较。被停用的记录仍可在历史中查看。它不会猜测意思相近的两句话是否相同,也不会自动清理生产数据。若预览后记录被别人修改,整理请求会拒绝执行,需重新预览。
来源聊天、消息和用户 ID 用于管理员核对记忆从哪里产生。Bot 自动整理旧记忆时也可能停用重复或过时的记录;核对历史记录前不要仅凭生成内容判断事实是否仍然有效。管理界面的编辑不自动改写原始对话或过去的压缩摘要。
启用 AI 和记忆后,后台会分批查看已完成、仍有来源可核对的用户消息,尝试提炼少量长期记忆,也可能选择忽略。多人群聊只会产生限定在该聊天的共同经历、关系或未完成约定,不会把共同对话推断成某个人的档案事实。Bot 关闭 AI 或记忆、参与者关闭个人化时,不会继续为相关消息生成个人记忆。旧记录没有来源或聊天范围时,系统不会凭文字猜测归属;管理员仍可在记忆页逐条核对、修改或停用。
后台整理按游标逐批处理,所以升级前仍保留的历史消息可能需要一段时间才会被考虑;已经按保留规则删除的原消息不能重新提取。普通原始消息到期不会连带删除已提炼的长期记忆;记忆仍受自身有效期、停用和个人数据删除规则约束。群聊中的共同记忆涉及多人,参与者的隐私模式变化会让相关自动记忆停止召回,供管理员核对。
实例所有者和管理员可通过 GET /api/bots/{botId}/memories/consolidation-preview 查看历史消息批次及有限摘录;返回的 nextAfterMessageId 可用于下一次请求的 afterMessageId,为 null 时已到达末尾。limit 每次最多 5 批。此接口只负责预览,不会调用模型、推进整理游标或写入记忆;后台会自动整理符合条件的批次,目前不能手动触发指定批次。管理员仍可在记忆页新增、编辑、停用或删除整理后的记忆。
删除个人数据
删除前先发送:
/privacy forget确认后发送:
/privacy forget confirm确认流程会删除数据库中可直接归属于你的对话消息、个人档案、头像文件和个人长期记忆,并把个人化模式切换为 off。它不会撤回 Telegram 群内已经发送的原消息,也不能从已经发布的共享群总结中选择性删除内容;你以后继续在群里发言时,新消息仍可能进入共享群历史。
原创角色和人物角色绑定也受个人化权限控制:关闭个人化后不新建或使用个人绑定;isolated 用户的个人关联不向其他用户的查询提供。管理员仍可在面板维护库中的记录。
forget 同时删除你创建的原创角色及其所有绑定(包括其他人对这些角色的绑定)。独立的 Bot 角色、Danbooru 角色和共享提示词资产保留。已生成图片和历史任务中的素材快照遵循生成记录的保留策略,不会因删除当前角色记录而重写。
管理员与诊断日志
这是一个由实例维护者负责的管理系统。管理员可能在面板中查看受权限保护的日志、会话、档案、记忆或生成记录。日志为了诊断可以保存有界的消息和工具内容,但凭据、授权头、Token、Cookie 和过大的二进制内容应被脱敏或摘要化。
在公开 issue、群聊或截图中反馈问题时,只提供时间、功能、错误类别和脱敏后的短片段。不要复制整段 Bot 更新、完整日志或导出的数据库。
数据边界
外部模型、搜索、图片和集成服务会按照各自的服务条款处理发送给它们的数据。启用工具前,管理员应确认目标聊天中的参与者理解这一点;对敏感话题可以关闭个人化、避免调用外部工具,或使用专门的隔离聊天。
AI 读取缓存头像
get_profile_avatar 仅在明确请求分析指定人物头像时使用,读取当前 Bot 已有档案中的缓存图片,不生成公开链接,也不读取其他 Bot 的资料。请求者为 off 时禁用;目标为 off 时拒绝读取,目标为 isolated 时仅本人可读,目标为 normal 时可由同一 Bot 的其他用户请求读取。
权限在读取时检查,已经授权读取的图像快照保留至本轮结束,后续请求重新检查隐私设置。允许读取的图片会发给当前配置的视觉模型用于本次分析;因此启用此能力时,应同时考虑所选模型服务的资料处理规则。图片不作为工具二进制结果写入日志或持久对话历史,但模型生成的外貌描述仍按原有对话和角色保存规则处理。读取不改变角色编辑权限。使用示例与失败状态见从缓存头像整理外貌。