使用Honcho为AI代理提供持久记忆
问题:健忘的AI代理
你是否曾经与一个AI助手交谈,在对话中途它完全忘记了之前说过的话?或者更糟糕:第二天,它对你之前一起构建的一切毫无印象?
这是AI代理在实际应用中的最大障碍之一:缺乏持久记忆。没有持久记忆,每次对话都从零开始——对于简单的问答还可以接受,但对于个人助理、生产力工具或需要长期执行任务的代理来说,这是不可行的。
解决方案是 Honcho,一个以优雅且可扩展的方式为AI代理管理持久记忆的开源平台。
什么是Honcho?
Honcho是由Plastic Labs开发的开源平台,用于管理AI代理的持久记忆。代码仓库在GitHub上,可以自托管或使用托管的API服务。
Honcho的理念很简单:与其让每个代理用向量数据库、嵌入向量和复杂查询重新发明轮子,不如让Honcho将这些复杂性抽象成一个简洁的API和明确定义的概念。
核心概念
- 会话(Session) — 代表一次对话或交互的上下文。每个用户或代理有一个或多个会话。
- 元数据(Metadata) — 标签、时间戳和结构化数据,用于精确过滤和搜索记忆。
真正的亮点是Honcho提供的三种记忆类型。
三种记忆类型
像人类一样,Honcho将记忆分为三类:
1. 情景记忆(Episodic Memory)
发生了什么。 特定事件、过去的交互、交换的消息。
例如:“昨天下午2点,用户要求创建预算表格。”
适用于:长对话上下文、恢复中断的任务、引用过去的交互。
2. 语义记忆(Semantic Memory)
代理知道什么。 从交互中提取的事实性知识——用户偏好、学到的事实、整合的信息。
例如:“用户偏好用中文交流,从事Web开发工作。”
适用于:个性化、推荐、随时间推移的适应性行为。
3. 程序记忆(Procedural Memory)
如何做事情。 技能、操作序列、代理学会执行的流程。
例如:“生成报告时,代理必须:从API获取数据 → 格式化为Markdown → 发送到Slack频道。”
适用于:工作流代理、自动化、有特定步骤的工具。
为什么这种分离很重要
- 情景记忆是易变的、上下文的(在当前对话中有用)
- 语义记忆是持久的、可泛化的(跨会话有用)
- 程序记忆是可操作的(对技能有用)
实战代码:将Honcho与Hermes Agent集成
1. 设置Honcho客户端
from honcho import Honcho
client = Honcho(
app_name="my-agent",
api_key="your-key-here",
base_url="http://localhost:8000"
)
2. 创建/恢复持久会话
session = client.create_session(user_id="user-123")
session = client.get_session(user_id="user-123", session_id="existing-uuid")
3. 在对话中存储记忆
mm = session.memory_manager
mm.create_episodic(
content="用户询问了托管价格",
metadata={"type": "inquiry", "intent": "budget"}
)
mm.create_semantic(
content="用户偏好开源解决方案",
metadata={"confidence": 0.9, "source": "inference"}
)
4. 搜索相关记忆
recent_memories = mm.get_episodic(
filter_metadata={"type": "inquiry"},
time_range="30m"
)
knowledge = mm.search_semantic(query="user preferences", top_k=5)
5. 与Hermes Agent集成
from hermes_agent import HermesAgent
agent = HermesAgent(
model="deepseek-chat",
system_prompt="你是一个记住一切的个人助理。",
session_id=session.id
)
def fetch_memory(context: str) -> str:
memories = mm.search_semantic(query=context, top_k=3)
return "\n".join([m.content for m in memories])
agent.register_tool(fetch_memory)
response = agent.run("你了解我什么?")
实际用例
个人助理
一个能随时间推移学习用户偏好、记住过去的承诺、并根据场景调整语气的助理。
技术支持
一个能记住所有历史工单的代理——已解决的问题、软件版本、尝试过的解决方案。
开发助手
一个能记住一起做的架构决策、偏好的代码风格、项目中反复出现的问题的代理。
个性化教育
一个能准确知道学生上次学到哪里、掌握了哪些概念、需要练习什么的AI导师。
结论
Honcho解决了真正有用的AI代理最基本的问题之一:持久的记忆。
将记忆分为情景、语义和程序三类不仅仅是技术细节——它反映了我们组织知识的方式。
如果你正在构建需要连续性、个性化和随时间学习的代理,Honcho + Hermes Agent是一个值得探索的强大开源组合。
下一步
喜欢这篇文章? 分享给正在构建AI代理的朋友们。