Self-Identity Accumulation
Nikola Balic (@nibzard)· emerging
问题
AI智能体在不同会话间缺乏持续记忆。每轮对话都从零开始,由此引发以下问题:
- 熟悉度缺失:智能体无法记住用户的偏好、目标或工作模式
- 重复解释负担:用户每轮会话都必须重新解释上下文与偏好
- 关系流于表面:智能体无法随时间推移深化对用户需求的理解
- 回应千篇一律:缺少积累的上下文时,智能体的行为会默认趋于泛化
尽管情景记忆系统能够存储过往的经历,但它们无法满足智能体构建动态自我身份的需求——也就是智能体相对于用户而言的角色定位。
方案
为自我身份积累实现双钩子架构:
- 会话启动钩子(SessionStart Hook):在会话开始时注入积累的身份/档案
- 会话结束钩子(SessionEnd Hook):在每次会话后提取新见解并完善档案
- 身份文档(Identity Document):一个随时间迭代演变的持久化文件(如
WHO_AM_I.md、SOUL.md)
sequenceDiagram
participant 会话启动钩子 as SessionStart
participant 身份档案 as WHO_AM_I.md
participant Agent
participant 用户
participant 会话结束钩子 as SessionEnd
Note over 会话启动钩子: 新会话开始
会话启动钩子->>身份档案: 读取档案
身份档案-->>会话启动钩子: 返回积累的身份信息
会话启动钩子->>Agent: 注入为上下文(context)
Agent->>用户: "你好!我记得……"
Note over Agent,用户: 对话进行中
用户->>Agent: 开展协作
Agent->>用户: 学习偏好
Note over 会话结束钩子: 会话终止
会话结束钩子->>Agent: 从对话中提取新见解
Agent->>身份档案: 用新见解更新档案
身份档案-->>会话结束钩子: 已保存,供下次会话使用
核心机制:
# 会话启动钩子:注入积累的身份信息
def session_start_hook():
profile = read_file("WHO_AM_I.md")
inject_context(profile) # 注入上下文
# 会话结束钩子:用新见解完善身份信息
def session_end_hook(conversation):
new_insights = extract_insights(conversation)
current_profile = read_file("WHO_AM_I.md")
updated_profile = merge_insights(current_profile, new_insights)
write_file("WHO_AM_I.md", updated_profile)
典型档案结构包含:
- 项目目标:不断迭代的优先级列表与核心关注领域
- 偏好设置:编码理念、工具选型、架构偏好
- 沟通风格:语气偏好、格式规范
- 工作流模式:研究习惯、决策模式
- 边界规则:Agent可执行/不可执行的事项
如何使用
实现步骤:
- 创建带有初始结构的身份文档
- 配置SessionStart钩子,用于读取并注入该文档
- 配置SessionEnd钩子,结合新见解优化文档内容
- 包含文档更新的时机与方式说明
SessionStart钩子示例(Claude代码):
#!/usr/bin/env python3
import json
from pathlib import Path
whoami_path = Path.cwd() / "WHO_AM_I.md"
if whoami_path.exists():
with open(whoami_path) as f:
profile = f.read()
print(json.dumps({
"hookSpecificOutput": {
"additionalContext": profile
}
}))
SessionEnd钩子示例(Claude代码):
#!/usr/bin/env python3
import subprocess
PROMPT = """
读取WHO_AM_I.md文档并根据本次对话内容更新:
1. 提取关于用户的全新见解
2. 更新每个章节(新增见解,保留原有内容)
3. 将更新后的内容写回文档
4. 更新前置元数据中的“modified”修改日期
"""
subprocess.run([
"claude", "--continue", "-p", PROMPT,
"--dangerously-skip-permissions"
])
基于提示的自优化机制:
SessionEnd钩子通过--continue参数恢复对话并传入优化prompt,使Agent能够智能地更新自身身份文档,而非通过机械解析的方式完成。
权衡
优点:
- 持续熟悉度:Agent可跨会话“记住”用户
- 深化关系:对用户的理解随时间积累
- 降低交互摩擦:减少重复解释偏好的环节
- 个性化行为:Agent能适配用户的特定风格
- 透明可操作:用户身份信息可见且支持编辑
缺点:
- 过时风险:若未及时更新,用户画像可能失效
- 过拟合问题:Agent可能过度适配单一用户
- 上下文开销:用户画像在每个会话中都会消耗token
- 提取噪声:会话结束阶段可能提取无关的“洞察”内容
- 依赖钩子机制:需要具备生命周期钩子基础设施
运营注意事项:
- 定期审核并精简用户画像
- 添加元数据(创建/修改日期)以追踪画像演变
- 考虑为画像变更引入版本控制
- 设计prompt以规避洞察提取过程中的噪声
- 在特异性(更高个性化程度)与通用性(更强灵活性)之间取得平衡
参考文献
关键词:
本内容基于个人WHO_AM_I系统,关联动态上下文注入、情景记忆检索与注入、基于文件系统的智能体状态三类技术文档。
直译:
- 基于我的个人WHO_AM_I系统
来源摘要
正在获取来源并生成中文摘要…