Skip to content

源码阅读路线

不要从所有文件开始读

Mastra 是完整框架,源码量不小。学习时不要试图逐文件读完。更有效的方式是围绕“运行链路”读:

  1. Agent 如何定义。
  2. Tool 如何注册和执行。
  3. Workflow 如何定义步骤。
  4. Memory 如何接入 storage。
  5. CLI 如何启动 Studio 和 server。

对照官方入口

你要理解的能力官方入口
Agent 定义@mastra/core/agent
Tool 定义@mastra/core/tools
Workflow 定义@mastra/core/workflows
Memory@mastra/memory
本地存储@mastra/libsql
MCP@mastra/mcp
CLImastra dev

建议阅读顺序

mermaid
flowchart TD
  A[官方 Quickstart] --> B[Agent reference]
  B --> C[createTool reference]
  C --> D[Workflow overview]
  D --> E[Memory overview]
  E --> F[Storage overview]
  F --> G[MCP overview]
  G --> H[回到本教程最终项目]

读源码时问的三个问题

1. 这个模块的输入输出是什么?

比如 Tool 的输入输出由 schema 描述。你先看 schema,再看 execute。

2. 这个模块由谁调用?

Tool 可以被 Agent 调用,也可以被 Workflow step 调用。调用者不同,错误定位方式也不同。

3. 这个模块是否需要持久化?

Memory、workflow snapshot、trace 都可能进入 storage。普通纯函数工具通常不需要。

小练习

打开最终项目里的这三个文件:

text
apps/study-agent/src/mastra/index.ts
apps/study-agent/src/mastra/agents/study-agent.ts
apps/study-agent/src/mastra/tools/course-search-tool.ts

回答:

  1. 哪个文件负责注册?
  2. 哪个文件负责告诉模型“你是谁”?
  3. 哪个文件负责搜索课程资料?
  4. 如果 Studio 看不到 Agent,应该先查哪个文件?
  5. 如果搜索结果为空,应该先查哪个文件?