在 Mastra 中注册记忆 Agent:更新 `src/mastra/index.ts` 的 mastra 导出

发布时间:2026/9/13 8:02:57
在 Mastra 中注册记忆 Agent:更新 `src/mastra/index.ts` 的 mastra 导出 在 Mastra 中注册记忆 Agent更新src/mastra/index.ts的 mastra 导出【免费下载链接】mastraMastra is the modern TypeScript framework for AI-powered applications and agents.项目地址: https://gitcode.com/GitHub_Trending/ma/mastra本篇技术指南聚焦 Mastra 框架应用组装中的关键一步——将带有 Memory 能力的 Agent 注册进mastra实例导出。文章以官方课程Agent Memory第五步05-updating-mastra-export.md为核心结合mastra/core的源码实现讲解src/mastra/index.ts的配置写法、Mastra 构造器的 Agent 注册机制以及如何在 Playground 中验证注册结果。读完你将掌握 Mastra 应用入口文件的规范写法并能独立排查Agent 没有出现在 Playground 里这类问题。为什么需要更新 mastra 导出在上一课04-creating-basic-memory-agent.md中我们在src/mastra/agents/index.ts里创建了一个带记忆能力的memoryAgent——它通过Memory实例默认配置即可记忆对话历史与memory属性将记忆能力挂载到 Agent 上import { Agent } from mastra/core/agent import { Memory } from mastra/memory import { LibSQLStore } from mastra/libsql const memory new Memory({ storage: new LibSQLStore({ id: learning-memory-storage, url: file:../../memory.db, }), }) export const memoryAgent new Agent({ name: MemoryAgent, instructions: ..., model: openai/gpt-5.4, memory: memory, })但仅仅创建 Agent 还不够。Mastra 应用需要一个总装配点——src/mastra/index.ts中的mastra导出。它是整个 Mastra 应用的主入口只有被注册到这里的 Agent 才会被 Mastra 系统认识才能在 Playground 等界面中使用。更新src/mastra/index.ts注册记忆 Agent编辑应用的入口文件src/mastra/index.ts将memoryAgent加入Mastra实例的agents对象import { Mastra } from mastra/core import { memoryAgent } from ./agents export const mastra: Mastra new Mastra({ agents: { memoryAgent, }, })这段代码做了三件事从mastra/core导入Mastra类——它是 Mastra 应用的中央编排器从./agents导入上一步创建的memoryAgent在agents对象中以memoryAgent为键注册该 Agent并将其作为默认导出mastra暴露给应用。这一步对于让 Agent 出现在 Mastra Playground 中至关重要。mastra导出是 Mastra 应用的主入口需要包含所有你想使用的 Agent。通过把memoryAgent加入agents对象你就把它注册进了 Mastra 系统使它可以在 Playground 和应用的其余部分中使用。源码视角Mastra 构造器如何注册 Agent从源码看Mastra类的职责定义非常明确——它是 The central orchestrator for Mastra applications, managing agents, workflows, storage, logging, observability, and more见 packages/core/src/mastra/index.ts。它的构造器接收一个Config其中agents是可选配置项agents?: { [K in keyof TAgents]: TAgents[K] | ToolLoopAgentLike | DurableAgentLike };当构造器执行到config?.agents时会遍历agents对象中的每一个键值对并调用内部的addAgent方法完成注册见 packages/core/src/mastra/index.ts#L1816-L1822if (config?.agents) { Object.entries(config.agents).forEach(([key, agent]) { if (agent ! null) { this.addAgent(agent, key); } }); }因此agents对象中的属性名key就是该 Agent 在 Mastra 系统中的注册名而addAgent是支持按任意键名注册的统一入口packages/core/src/mastra/index.ts#L2570。注册完成后可以通过以下方式取回 Agentmastra.getAgent(memoryAgent)——按注册名精确获取packages/core/src/mastra/index.ts#L2255mastra.getAgents()——获取全部已注册 Agent 的字典packages/core/src/mastra/index.ts#L2451。这也解释了为什么 key 的命名很重要它既是 Playground 里展示的 Agent 标识也是运行时getAgent的查询键。使用memoryAgent作为键与导出变量同名是最直白、最不易出错的约定。在 Playground 中验证注册结果注册完成后按照下一课06-testing-memory-agent.md的流程验证确保开发服务器已启动运行npm run dev打开 Playgroundhttp://localhost:4111/从 Agent 列表中选择MemoryAgent尝试一轮测试记忆能力的对话My name is AlexWhats my name?I live in SeattleWhere do I live?I prefer dark mode in my appsWhat are my UI preferences?如果 Agent 能在这些交互中记住信息说明注册成功且 Playground 已自动为记忆功能处理了所需的 resource 与 thread ID。反之如果列表中看不到 MemoryAgent请优先检查src/mastra/index.ts是否已正确导出mastra实例、memoryAgent是否已放入agents对象。常见问题与最佳实践忘记注册创建了 Agent 却忘了更新src/mastra/index.tsPlayground 中不会出现该 Agent。注册动作是进入应用的必要条件而不是可选项。注册名不一致agents对象的 key 是运行时的查找键getAgent时传入的必须是同一个名字。建议保持 key 与变量名一致如memoryAgent。多 Agent 场景后续课程中如 26-updating-mastra-export-comprehensive.md会展示更完整的导出但核心机制相同——把所有要使用的 Agent 都放进agents对象即可。源码中Object.entries的遍历方式保证了多个 Agent 会按顺序逐个注册互不影响。小结src/mastra/index.ts的mastra导出是 Mastra 应用的主入口把带记忆的memoryAgent加入agents对象即完成注册。从源码看这一步本质上是触发Mastra构造器对agents配置的遍历与addAgent注册注册后即可通过getAgent在运行时取用并立即可在 Playgroundhttp://localhost:4111/中体验对话记忆能力。它是衔接创建 Agent与测试 Agent两步之间不可或缺的装配环节。【免费下载链接】mastraMastra is the modern TypeScript framework for AI-powered applications and agents.项目地址: https://gitcode.com/GitHub_Trending/ma/mastra创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考