honchoaiagentsmemoryhermes

使用Honcho为AI代理提供持久记忆

8 min 2026/5/26

问题:健忘的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代理的朋友们。