给你的智能体一份记忆
教程 · 阅读时间 5 分钟
智能体 memory 是附加在你的 Skilnu 账户上的简短私人笔记——一个偏好、一个约束、一个不值得再解释一遍的事实——你连接的任何 MCP 客户端都可以保存,之后连接的任何 MCP 客户端都可以重新找到。它们既不是记录,也不是 skill:除非有东西明确保存它,否则什么都不会被记住,你在这里保存的内容也不会被版本化、组合或发布。这是 Pro/Team 功能;免费账户会收到一个明确的升级提示,而不是悄无声息地失败。
1. 保存一条值得记住的内容
在应用里,打开账户菜单并点击Memories。写下你希望任何智能体都已经知道的事——「部署通过 GitHub Actions 在 main 上进行,绝不手动操作」是有用的;「周二聊了很久 CI」不是,因为没有任何可执行的内容。如果以后想按主题找到它,可以加一些逗号分隔的标签,然后保存它。
内容上限为 4,000 个字符——这是一条笔记,不是一份文档。如果你要保存的内容比这还长,它大概是一个 skill,不是一条 memory:不如直接发布它,这样就能被版本化和共享,而不是被悄悄截断。
2. 重新找到它
只要可能,搜索就会做语义排序:搜索「这个人喜欢怎样的审查」可能会找到你写成「请别在变量命名上吹毛求疵」的那条 memory,因为两句话意思相同,即使几乎没有共同的词。当没有语义匹配达到阈值时,搜索会回退到对内容和标签的普通关键词匹配,所以不会因为 embedding 这一步没跑而让搜索空手而归。
把搜索框留空,就能浏览全部内容,按最新到最旧排列。
3. 当它错了或过时了,就删掉它
在任意一条 memory 上点击「忘记」并确认。没有撤销,就像在这个平台上删除其他任何东西一样——一条已经变得不对的 memory(一个你已不再持有的偏好、一个已不再成立的事实)值得删除,而不是留着让智能体日后继续信任它。
从智能体那边来做
同样的四个操作对应四个 MCP 工具,这样智能体就能在对话中途保存和取回 memory,完全不需要你打开应用:
save_memory(content="Deploys happen via GitHub Actions on main.", tags=["ci", "deploy"])
-> { memory_id, content, tags, created_at }
search_memories(query="how are deploys triggered")
-> { items: [...], total, limit, offset }
list_memories(limit=20)
-> { items: [...], total, limit, offset }
forget_memory(memory_id="...")
-> { deleted: true, memory_id }
这四个工具都接受一个可选的 publisher_id,只有当你的连接关联着多个 publisher 时才需要——大多数连接都不是这样,所以大多数调用者都可以省略它。
某件事是否值得保存,这个判断应该交给智能体做好,就像你自己填写网页表单时所做的判断一样——一个在每一句顺口提到的话上都调用 save_memory 的工具,会像一个什么都往里粘贴的笔记文件一样,堆出同样没用的一堆东西。
费用
保存、列出、搜索和忘记 memory 不需要任何额外费用,Pro 或 Team 订阅本身之外没有别的开销——不像编译 skill 那样有按调用计算的配额。唯一的限制是每个账户最多 2,000 条 memory;超过之后,save_memory 会返回一个明确说明限制的错误,而不是悄悄删除最旧的条目。
该保存什么,不该保存什么
好的 memory 读起来像是给下一次的指示:一个稳定的偏好、一个固定的约束、一个不会随会话变化的事实。差的 memory 读起来像是关于这次会话的日记——一份发生了什么的总结,而不是该做什么的指引。如果你不会在新同事入职第一天对他们重复这句话,那大概也不值得保存在这里。