源码深度学习 · 零基础友好 · 20 天

Mastra 源码学习

面向 TypeScript 的全栈 AI Agent 应用框架:Agent、工具、工作流、记忆、RAG、部署与可观测。这不是 API 速查表,而是一条可以重复走的源码路线:每天用 30 分钟,从一个真实相对路径出发,先用类比建立直觉,再把它接回整条运行链路。

00

开篇 · 这是个什么项目

Mastra 可以先想成一间AI 应用装配厂。它的代码不是一堆孤立文件:入口接到需求,核心对象做判断,工具或模型完成工作,状态把结果交给下一个环节。

💡 20 天的主线先找入口和地图,再跟一次真实任务穿过核心循环;随后研究状态、模型、工具与扩展;最后用复盘把全部概念连成一张可迁移的地图。不要背目录名,要不断问「谁创建它、它把什么交给谁」。
大白话读源码像参观工厂:第一天先看门牌和楼层,不急着拆机器。后面每节课只打开一个焦点路径,但始终知道它属于哪层、服务哪个业务动作。
01

架构全景(动起来看)

发光扫过的每一层都是一次任务可能经过的站点。不同仓库命名不同,但「接入 → 编排 → 核心能力 → 资源」的责任边界很相似。

L4 · 应用层
CLI本层职责
Playground本层职责
模板本层职责
L3 · 编排层
Mastra本层职责
Agent本层职责
Workflow本层职责
Tool本层职责
L2 · 上下文层
Memory本层职责
RAG本层职责
MCP本层职责
L1 · 基础设施
Storage本层职责
Server本层职责
Evals本层职责
输入用户任务组织对象 / 流程执行模型 / 工具沉淀状态 / 记忆
设计取舍分层会增加跳转文件的次数,却让每层只承担一种职责:入口容易替换,核心逻辑能测试,模型与外部工具可插拔。读代码时先沿箭头追「数据」而不是追每一个类。
02

怎么使用这份教程

⏱️

每天 30 分钟

6 讲,每讲先问问题,再给本质和大白话。

📍

真实相对路径

所有路径都从项目根目录算,不把你的机器路径写进源码引用。

🧪

先验证再推理

每页都有可复制 bash 命令;文件版本变化时以本地实际内容为准。

🧭

可迁移方法

学会从入口、数据结构、循环和扩展点读任何 AI 项目。

S1

阶段 1 · 仓库与最小 Agent

D01-D03 · 包边界与最小 Agent
01

认识 Mastra 单仓库

package.json:理解 pnpm、Turbo 与 packages、stores 的分工。

≈30 min · 6 讲开始学 →
02

从公共出口进入核心

packages/core/src/index.ts:追踪 @mastra/core 对外导出的主要能力。

≈30 min · 6 讲开始学 →
03

Mastra 应用容器

packages/core/src/mastra:理解 Agent、Workflow、存储等组件如何被统一注册。

≈30 min · 6 讲开始学 →
S2

阶段 2 · 消息、模型与工具

D04-D06 · 消息、模型调用、工具循环
04

Agent 基础对象

packages/core/src/agent/agent.ts:阅读模型、指令、工具与生成接口如何组合。

≈30 min · 6 讲开始学 →
05

消息与会话状态

packages/core/src/agent/message-list:理解消息怎样组织、追加与提供给模型。

≈30 min · 6 讲开始学 →
06

流式回答和工具循环

packages/core/src/tool-loop-agent:理解模型发起 tool call 后的迭代执行。

≈30 min · 6 讲开始学 →
S3

阶段 3 · 工作流与可暂停执行

D07-D10 · 工作流与可暂停执行
07

定义 Tool

packages/core/src/tools:学习输入 schema、执行函数与工具结果。

≈30 min · 6 讲开始学 →
08

模型与供应商抽象

packages/core/src/llm:理解统一模型接口与 provider 适配。

≈30 min · 6 讲开始学 →
09

创建工作流

packages/core/src/workflows/create.ts:学习步骤、输入输出与 workflow 声明。

≈30 min · 6 讲开始学 →
10

工作流执行引擎

packages/core/src/workflows/execution-engine.ts:理解步骤调度、状态推进与执行结果。

≈30 min · 6 讲开始学 →
S4

阶段 4 · 记忆、检索与存储

D11-D13 · 记忆、检索与存储
11

分支与并行

packages/core/src/workflows:阅读 branch、parallel、foreach 等控制流。

≈30 min · 6 讲开始学 →
12

暂停和恢复

packages/core/src/agent/durable:理解持久化状态、人工介入与继续执行。

≈30 min · 6 讲开始学 →
13

短期与长期记忆

packages/memory/src:学习记忆处理器、线程与上下文压缩。

≈30 min · 6 讲开始学 →
S5

阶段 5 · MCP、服务与集成

D14-D17 · MCP、服务接口与集成
14

文档与 RAG

packages/rag/src/document:理解文档切分与可检索内容的形成。

≈30 min · 6 讲开始学 →
15

检索与 Graph RAG

packages/rag/src/graph-rag:学习结构化关系辅助检索的思路。

≈30 min · 6 讲开始学 →
16

存储适配器

stores:比较 PG、Qdrant、Redis 等实现的统一接口。

≈30 min · 6 讲开始学 →
17

MCP 客户端和服务端

packages/mcp/src:理解 MCP 资源、工具和传输层。

≈30 min · 6 讲开始学 →
S6

阶段 6 · 评测与生产化

D18-D20 · 评测、观测与生产化阅读
18

HTTP 服务封装

packages/server/src/server:学习 Agent 与 Workflow 如何成为 API。

≈30 min · 6 讲开始学 →
19

评测与可观测性

packages/core/src/evals:理解 trace、评分与回归评测入口。

≈30 min · 6 讲开始学 →
20

端到端项目复盘

templates/weather-agent:从模板回看 Agent、Tool、服务与运行配置如何落地。

≈30 min · 6 讲开始学 →