新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/13 8:02:50来源:尧图网络
在 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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

数据库三大范式全解析:从函数依赖到反范式实践 2026/9/13 13:48:17

数据库三大范式全解析:从函数依赖到反范式实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
CentOS 7上OpenStack Train私有云部署与运维实战 2026/9/13 13:48:17

CentOS 7上OpenStack Train私有云部署与运维实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Vitest TestSuite 深入解析:主线程中的 Suite 任务对象与完整属性/方法指南 2026/9/13 13:48:17

Vitest TestSuite 深入解析:主线程中的 Suite 任务对象与完整属性/方法指南

Vitest TestSuite 深入解析:主线程中的 Suite 任务对象与完整属性/方法指南 【免费下载链接】vitest Next generation testing framework powered by Vite. 项目地址: https://gitcode.com/GitHub_Trending/vi/vitest TestSuite 是 Vitest 中代表单个 descri…

阅读更多 →
ARM信创桌面高效开发工具选型指南 2026/9/13 13:48:17

ARM信创桌面高效开发工具选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Hermes WebUI 的 Sprint 工程方法论:从活跃队列到发布闸门(SPRINTS.md 深度解读) 2026/9/13 13:48:17

Hermes WebUI 的 Sprint 工程方法论:从活跃队列到发布闸门(SPRINTS.md 深度解读)

Hermes WebUI 的 Sprint 工程方法论:从活跃队列到发布闸门(SPRINTS.md 深度解读) 【免费下载链接】hermes-webui Hermes WebUI: The best way to use Hermes Agent from the web or from your phone! 项目地址: https://gitcode.com/GitHub…

阅读更多 →
RAP开发实战:CDS + Fiori Elements实现主明细显示 2026/9/13 13:45:16

RAP开发实战:CDS + Fiori Elements实现主明细显示

做SAP S/4HANA扩展开发的人应该都碰到过这种需求:业务方拿着一张纸质单据过来,说“我要在这个页面上,上面显示抬头信息,下面能够维护明细行,还能增删改”。以前遇到这种主明细(Master-Detail)场…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞