30 分钟读懂 Mastra 核心
不需要通读 16 万行代码。按照这条路径,用 30 分钟建立对 Mastra 架构的准确心智模型。 每一步都标注了文件路径、预计时间和阅读目标。
mastra/index.ts 5 min 只看 Config 接口和构造函数。11 个泛型参数告诉你整个框架由哪些子系统组成。不用读完 5870 行——先建立全局心智模型。
agent/agent.ts → 私有属性列表 3 min 跳到 class Agent 定义部分,看 20+ 个私有属性。注意 DynamicArgument 泛型——这是 multi-tenant 支持的核心。不用读方法实现。
loop/workflows/agentic-execution/index.ts 5 min 这是 Mastra 最核心的设计创新。整个文件只有 139 行,但清晰展示了 LLM → tool calls → mapping → goal 的 DAG 结构。理解为什么不用 while 循环。
loop/workflows/agentic-loop/index.ts 3 min 317 行。看 .dowhile() 如何包裹 agentic-execution 实现多轮迭代,以及循环终止条件(stopWhen、maxSteps、pending signals)。
workflows/workflow.ts → createStep() 5 min 搜索 createStep 函数(约 338 行)。Agent、Tool、Processor、StepParams 四种输入统一包装成 Step。同时注意 Workflow 类本身 implements Step——嵌套组合的基础。
processors/index.ts → ProcessorContext 4 min 看 ProcessorContext 接口和 10+ 个 lifecycle hooks 的签名。然后跳到 processors/processors/ 目录,浏览内置的 24 个 Processor 文件名——理解横切能力的广度。
llm/model/router.ts 3 min 608 行。看 ModelRouterLanguageModel 构造函数如何把 'provider/model-id' 字符串解析为具体实例。GatewayManager 做 provider 注册和认证。
storage/base.ts + storage/types.ts 前 60 行 2 min 看 StorageDomains 类型和 MastraCompositeStore 的域访问器。22+ 个子域可独立选择后端——这就是为什么 Mastra 能零配置跑也能生产级部署。
- 1. Agent.generate() 的一次调用经过了几层 Workflow、Processor 在哪些节点介入?
- 2. 为什么 Mastra 不用 while 循环做 ReAct,而是用 Workflow DAG?好处是什么?
- 3. 同一个 Tool 如何在 Agent / Workflow / MCP Server 三种环境复用?
- 4. DynamicArgument 的意义是什么?它解决了什么问题?
- 5. Storage 的 22+ 个子域设计解决了什么工程问题?