Mastra为智能体加上共享知识库:页面按组织、用户、会话分权,智能体可读也可写
核心概要
Mastra 发布 Knowledge,把公司文档、政策和决策整理成带作用域的命名 Markdown 页面,作为智能体共享的知识存储。此前智能体只能靠指令、检索增强生成、技能或查询接口的工具获得上下文,这些途径通常只读,信息一变就要人工更新。Knowledge 与 Mastra 的上下文工程原语 signals 配合,把相关内容带入智能体上下文并在运行中保持更新,智能体还能在有权访问的作用域内搜索、读取和写入页面。
深度剖析
智能体现在可以拿到覆盖整个组织的共享上下文,来源是一组按页面组织的文档、政策或决策,而不是只靠模型训练数据或一次性注入的指令。 此前给智能体补充上下文可以用指令、检索增强生成、技能,或查询 API 与数据库的工具,但这些途径通常只读,信息变化时需要人工介入更新。 Knowledge 与 signals 直接配合,signals 是 Mastra 的上下文工程原语,负责把合适的知识带进智能体上下文并在智能体运行期间保持其最新。
知识以命名的 Markdown 文档形式存放,每个页面属于一个作用域,作用域决定哪些组织、用户或会话拥有读写权限。 knowledgeMemoryScopes() 声明三个作用域:org 对组织内所有人共享,resource 只对单个用户可见,thread 限于单个会话。 设置 tools: true 后智能体获得五个工具:knowledge_search 按查询查找页面和笔记,knowledge_list 列出作用域内页面,knowledge_read 读取页面,knowledge_page 创建或编辑页面,knowledge_note 给页面添加笔记。
写入让知识库可以随使用而更新,智能体按请求把页面写到匹配的作用域,例如“把这个留给团队”写入 org。 读取时智能体在一次调用中跨 org、resource 和 thread 三个作用域搜索并读取页面。 Knowledge 存放在已配置的存储提供方中,首次使用时建立自己的 mastra_knowledge_* 表,包括保存页面名称、描述和 Markdown 正文的 mastra_knowledge_pages,保存页面笔记的 mastra_knowledge_notes,记录页面间链接的 mastra_knowledge_mentions,以及保存置顶页面的 mastra_knowledge_pins。
启示与展望
Knowledge 目前处于 alpha 阶段,其 API 可能在不同版本之间变化。智能体只能依据 Knowledge 中的内容作答,因此通常需要在智能体启动前先把内容放进去,可以通过现有文档或 Mastra 平台的 Mastra Connect 完成。
Knowledge 处于 alpha,API 可能随版本改变。导入器计划在下一个版本推出,届时可更方便地连接 Notion、Confluence、Linear、Zendesk 和 Fireflies 等数据源,目前尚未提供。
