Honcho Memory Skill:为 Zo Computer 构建持久记忆的实战指南
发布时间:2026/9/28 2:32:10来源:尧图网络
人工智能AI AgentAgent 记忆RAG后端MCP 服务【免费下载链接】honchoMemory library for building stateful agents项目地址https://gitcode.com/gh_mirrors/hon/honcho点击查看免费下载本篇技术指南围绕开源仓库 honcho 中的 examples/zo/SKILL.md 展开介绍如何通过 Honcho 的内存 API 为 AI Agent以 Zo Computer 平台为例赋予跨会话的持久记忆。你将掌握save_memory、query_memory、get_context三个核心工具的用法与底层实现原理学会配置环境变量、组织会话与 Peer 概念、注入 LLM 上下文以及通过测试验证整套记忆链路。一、Skill 是什么一个开箱即用的记忆层Honcho 是一个给有状态 Agent 用的记忆库Memory library for building stateful agents而honcho-memory这个 Skill 是其官方示例之一定位是让 AI Agent 在每一次对话、每一个会话之间都能记住用户的历史、偏好和事实。该 Skill 以 Zo Computer一种面向 AI Agent 的计算机平台为集成载体由三个工具构成完整闭环save_memory把每一轮对话用户或助手消息写入 Honcho持续积累用户记忆query_memory用自然语言向 Honcho 的 Dialectic API 提问从长期记忆中检索答案get_context把最近的会话历史取回并格式化为可直接注入 LLM API 调用的消息列表。Skill 的元信息位于 examples/zo/SKILL.md 的 frontmatter标明了使用前提需要 Python 3.9、honcho-ai2.1.0以及来自 honcho.dev 的 API Key环境变量需要设置HONCHO_API_KEY可选设置HONCHO_WORKSPACE_ID。二、Setup三分钟完成环境准备1. 获取 API Key 并配置环境变量在 honcho.dev 注册并获取 API Key 后设置如下环境变量examples/zo/SKILL.mdHONCHO_API_KEYyour-api-key HONCHO_WORKSPACE_IDdefault # optional, defaults to defaultHONCHO_WORKSPACE_ID用于划分独立的记忆空间不同 workspace 之间数据相互隔离默认值为default。在生产环境中建议为每个用户组分配独立的 workspace 值以避免跨用户的数据泄漏这一点在 README 中有专门强调见 examples/zo/README.md。2. 安装依赖pip install honcho-ai python-dotenv或者使用 uvexamples/zo/README.mduv add honcho-ai python-dotenv依赖声明位于 examples/zo/pyproject.tomlhoncho-ai2.1.0与python-dotenv1.0.0开发环境额外需要pytest8.0.0。项目通过 hatchling 构建tools包被打包进 wheel。3. 客户端初始化的底层逻辑所有工具共享同一个客户端初始化函数实现在 examples/zo/tools/client.pyimport os from dotenv import load_dotenv from honcho import Honcho load_dotenv() def get_client(workspace_id: str | None None) - Honcho: api_key os.getenv(HONCHO_API_KEY) if not api_key: raise ValueError( HONCHO_API_KEY is required. Set it in your environment or .env file. ) env_workspace os.getenv(HONCHO_WORKSPACE_ID) resolved_workspace workspace_id or env_workspace or default return Honcho(api_keyapi_key, workspace_idresolved_workspace)注意两个设计细节load_dotenv()会读取项目根目录的.env文件方便本地开发workspace 解析优先级为函数入参 环境变量HONCHO_WORKSPACE_ID 默认值default这让同一套代码在不同租户场景下可以灵活切换记忆空间。三、三个核心工具详解三个工具统一从tools包导出见 examples/zo/tools/init.py可直接from tools.save_memory import save_memory等方式导入。1.save_memory写入每一轮对话from tools.save_memory import save_memory save_memory( user_idalice, # unique user identifier contentI love hiking, # message text roleuser, # user or assistant session_idchat-1, # conversation session ID assistant_idassistant # optional: assistant peer ID (default: assistant) )何时使用每一轮消息交换之后调用持续构建用户记忆。参数说明完整签名来自 examples/zo/tools/save_memory.py参数类型说明user_idstr唯一用户标识对应 Honcho 中的 Peercontentstr消息文本不能为空否则抛出ValueErrorrolestruser或assistant除assistant外的任意值都会被当作user处理session_idstr会话Session标识assistant_idstr助手的 Peer ID默认为assistant源码级原理该函数首先通过honcho.peer(user_id)与honcho.peer(assistant_id)获取或创建两个 Peer 对象再通过honcho.session(session_id)获取 Session调用session.add_peers([user_peer, assistant_peer])把双方注册进会话最后根据role选择发送者并调用session.add_messages([sender.message(content)])持久化消息返回形如Saved user message to session chat-1 for user alice.的确认字符串。从源码可以看到Peer 和 Session 都是不存在即自动创建因此首次调用时无需任何前置建表操作。2.query_memory自然语言检索记忆from tools.query_memory import query_memory answer query_memory( user_idalice, queryWhat are Alices hobbies?, session_idchat-1 # optional: scope to a session ) # Returns: Alice enjoys hiking.何时使用用户问你还记得……吗或需要在回复前回忆关于用户的事实。参数说明完整签名来自 examples/zo/tools/query_memory.py参数类型说明user_idstr唯一用户标识querystr自然语言问题不能为空session_idstr \| None可选传参会把查询范围限定到某个会话不传则检索该用户的全局记忆默认None源码级原理该函数调用 SDK 的peer.chat(queryquery, sessionsession_id)走 Honcho 的Dialectic API答案基于该 Peer 的长期表征representation和存储的观察事实生成对应 sdks/python/src/honcho/peer.py 中chat的实现——它对 Peer 的全局表征或对某个目标 Peer 的局部表征发起自然语言查询。若返回结果为空则回退返回No relevant information found in memory.。3.get_context为 LLM 调用准备上下文from tools.get_context import get_context messages get_context( user_idalice, session_idchat-1, assistant_idassistant, tokens4000 # max tokens to include ) # Returns: [{role: user, content: ...}, ...]何时使用每次 LLM 调用开始时把过往对话相关的上下文注入提示词。参数说明完整签名来自 examples/zo/tools/get_context.py参数类型说明user_idstr用户 Peer 标识用于确保 Peer 已注册进会话session_idstr会话标识assistant_idstr助手 Peer ID决定输出中哪些消息被标记为assistanttokensint上下文窗口的 token 上限默认 4000源码级原理该函数先注册双方 Peer 到会话然后调用session.context(tokenstokens)获取SessionContext最后调用context.to_openai(assistantassistant_id)转换为 OpenAI 消息格式。其底层实现见 sdks/python/src/honcho/session_context.py消息列表按message.peer_id assistant_id判定角色相等标为assistant否则为user并附带name字段同时会把 Peer 表征peer_representation、Peer 卡片peer_card和会话摘要summary作为system消息前置从而让注入的上下文既包含近期对话也包含 Honcho 长期沉淀的高层记忆。同一SessionContext还提供to_anthropic()方法可转换为 Claude API 兼容格式。四、概念映射Zo Computer 与 Honcho 的术语对照Skill 文档中给出了两组概念的对应关系examples/zo/SKILL.md、examples/zo/README.mdZo ComputerHonchoAccountWorkspaceUserPeerConversationSessionMessageMessage理解这张表是正确传参的关键user_id对应的是 Honcho 的Peer而非 Workspacesession_id对应Session会话而 Account 级别的隔离由HONCHO_WORKSPACE_ID完成。五、示例完整的对话记忆流程把三个工具串起来就是一个完整的记忆写入 → 记忆检索 → 上下文注入闭环examples/zo/SKILL.mdfrom tools.save_memory import save_memory from tools.query_memory import query_memory from tools.get_context import get_context user_id alice session_id session-1 # 1. Save user message save_memory(user_id, Im learning Rust and love rock climbing, user, session_id) # 2. Save assistant reply save_memory(user_id, Thats great! Both require patience., assistant, session_id) # 3. In a later session, recall what you know print(query_memory(user_id, What does Alice do in her free time?)) # → Alice is learning Rust and enjoys rock climbing. # 4. Get context window for next LLM call messages get_context(user_id, session_id, assistant, tokens4000)流程说明写入用户消息与助手回复各调用一次save_memory并归入同一个session_id跨会话检索query_memory不传session_id时检索的是该用户全局记忆因此即使在新的会话中也能回答Alice 空闲时间做什么这类跨会话问题上下文注入get_context返回的messages列表可以直接作为 LLM API 的messages参数传入无需二次加工。六、测试与验证如何确认记忆链路可用仓库提供了两套测试位于 examples/zo/tests/1. 无需服务的结构测试tests/test_basic.py验证包结构与导入契约三个工具均可导入且为可调用对象tools.__all__恰好包含[get_context, query_memory, save_memory]save_memory对空content抛出ValueError消息为content must not be emptyquery_memory对空query同样抛出ValueError。这些测试不需要 Honcho 服务器即可运行。2. 需要 API Key 的功能测试tests/test_tools.py该测试文件在未设置HONCHO_API_KEY时会自动跳过pytest.mark.skipif运行对象是 Honcho 云 APIhoncho.dev。覆盖的关键行为包括save_memory返回非空确认字符串human等非assistant角色被当作user处理角色回退逻辑自定义assistant_id可用query_memory对未知用户仍返回非空字符串触发 fallback 消息get_context返回 OpenAI 格式的{role, content}字典列表role属于user/assistant/system三值之一tokens越大返回消息越多token 预算生效空会话返回空列表三工具联动test_save_query_roundtrip验证保存 → 查询往返test_save_then_get_context验证保存的消息能出现在上下文中。运行方式需要先启动 Honcho 服务服务端部署可参考主仓库 README.md 与 docker-compose.yml.exampleuv run pytest tests/ -v测试中还内置了 0.5 秒的限速延迟rate_limit_delayfixture以保持在 Honcho API 的 5 请求/秒限速之下同时使用uuid生成唯一 ID 避免测试状态串扰。七、发布到 Zo Skill Marketplace若要在 Zo 生态中分享该 Skillexamples/zo/README.md发布流程为Forkzocomputer/skills仓库将本目录复制到 fork 的/Community文件夹下命名为honcho-memory目录结构如下Community/ └── honcho-memory/ ├── SKILL.md ├── README.md ├── client.py ├── pyproject.toml └── tools/运行校验命令bun validate向上游 registry 仓库提交 Pull Request。合并后Skill 会自动加入 Zo marketplace 的manifest.json。八、生产实践注意事项综合 SKILL.md、README 与源码实现以下几个要点对落地尤为重要Workspace 隔离是数据安全的边界README 明确警告——在共享 workspace 中当被查询用户尚无记忆时Dialectic API 会以 workspace 级上下文作为回退query_memory可能返回其他 Peer 的数据。因此生产环境务必为每个用户组使用独立的HONCHO_WORKSPACE_ID防止跨 Peer 数据泄漏。每次 LLM 调用前注入上下文get_context的定位是每次调用开始时的固定动作而非偶发操作其返回的 system 消息表征、卡片、摘要与历史消息共同构成完整上下文。显式传入assistant_id在有多助手或多 Bot 的场景下assistant_id决定了角色归属与 Peer 区分使用默认值assistant前需确认不会与用户 Peer 冲突。空内容校验save_memory与query_memory都会对空输入抛ValueError接入方应在上层做好非空校验以避免异常中断。限速感知Honcho API 默认约 5 请求/秒批量写入或测试时需加入节流逻辑可参考测试中的time.sleep(0.5)模式。九、延伸阅读Skill 定义与用法examples/zo/SKILL.md、examples/zo/README.md三个工具的实现examples/zo/tools/client.py、examples/zo/tools/save_memory.py、examples/zo/tools/query_memory.py、examples/zo/tools/get_context.py测试用例examples/zo/tests/test_basic.py、examples/zo/tests/test_tools.pyPython SDK 底层实现sdks/python/src/honcho/peer.pychat方法、sdks/python/src/honcho/session_context.pyto_openai/to_anthropic方法更多集成示例LangGraph、CrewAI 等集成位于 examples/ 目录如 examples/langgraph/python/main.py、examples/crewai/python/赞分享人工智能AI AgentAgent 记忆RAG后端MCP 服务【免费下载链接】honchoMemory library for building stateful agents项目地址https://gitcode.com/gh_mirrors/hon/honcho点击查看免费下载相关推荐Clean-Me最佳实践如何定期维护你的macOS系统Clean Me最佳实践如何定期维护你的macOS系统 Clean Me是一款专业的macOS系统分析器和清理工具能帮助你定期维护和优化Mac电脑性能。这款人工智能AI AgentAgent 记忆RAG后端MCP 服务Active Record 关联进阶实战class_name、foreign_key、source、多态关联与自关联cu/curriculum 课程精讲Active Record 关联进阶实战class_name、foreign_key、source、多态关联与自关联cu/curriculum 课程精讲人工智能AI AgentAgent 记忆RAG后端MCP 服务Honcho实战为CrewAI和LangGraph Agent系统注入持久化记忆能力Honcho实战为CrewAI和LangGraph Agent系统注入持久化记忆能力 Honcho 是一款为 Agent 提供 持久化记忆 的基础设施mem人工智能AI AgentAgent 记忆RAG后端MCP 服务上一篇如何用3分钟配置大麦自动抢票神器告别手速焦虑下一篇告别滚动卡顿Mos如何智能适配不同macOS版本创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网