Mastra + Ertas
使用 Mastra 以 TypeScript 建構正式上線等級的 AI 代理——這是建構於 Vercel AI SDK 之上的框架,負責處理工作流程、記憶體、評估與部署,並對微調本地模型提供一流支援。
Overview
Mastra 是建構於 Vercel AI SDK 之上的 TypeScript 優先代理框架。它瞄準的是 LangGraph 與 CrewAI 等框架在 Python 生態中所填補的「正式上線代理開發落差」——工作流程編排、持久化記憶體、結構化評估、可觀測性以及部署模式——但採用 TypeScript 的人因設計,並與 JavaScript/edge 生態系緊密整合。自 2026 年 1 月發佈 1.0 版以來,Mastra 已累積超過 22K 個 GitHub 星標,每週 npm 下載量超過 30 萬次,使其成為 TypeScript 生態系中佔主導地位的正式上線代理框架。
Mastra 的設計哲學強調「漸進式複雜度」:你可以從單一代理開始,隨著需求成長再加入工具與工作流程,並在不重構程式碼庫的情況下整合記憶體與評估。框架為代理狀態機(工作流程)、對話記憶體(支援多種儲存後端)、結構化工具使用以及人類介入檢查點提供一流的基本元件。由於建構於 Vercel AI SDK 之上,Mastra 繼承了與 94 家供應商超過 3,300 個模型的相容性——包括任何提供 Ertas 訓練模型的 OpenAI 相容端點。
How Ertas Integrates
Ertas 訓練的模型透過 Vercel AI SDK 的 provider 抽象層接入 Mastra 代理。在 Ertas Studio 微調模型並部署至 Ollama、vLLM 或 Ertas Cloud(任何 OpenAI 相容端點)後,你只需配置一個 Mastra 代理使用該端點——通常只需要兩行 provider 設定。從這時起,Mastra 所有的框架功能(工具、工作流程、記憶體、評估)都會像對接前沿 API 模型一樣,透明地與你的微調模型協同運作。
TypeScript 原生的設計對於要將 AI 功能導入既有 JavaScript 產品 的團隊特別有價值。Web 應用程式、edge 函式、行動應用後端以及 Node.js 服務都可以直接使用 Mastra 代理,不需要橋接到 Python 服務。再結合部署於相同 edge 基礎設施上的 Ertas 訓練模型(例如,透過自託管伺服器上的 Ollama 或 Ertas Cloud),就能實現完全自包含、跨語言邊界的 TypeScript 代理部署——這正是跨語言代理架構中常見的痛點。
Getting Started
- 1
於 Ertas Studio 微調模型
透過 Ertas Studio 以 JSONL 資料訓練你的特定領域模型。微調後的模型會擷取你的領域詞彙、推理模式與工具使用慣例。
- 2
部署至 OpenAI 相容端點
匯出為 GGUF 並透過 Ollama、vLLM 或 Ertas Cloud 提供服務。Mastra 可與任何提供標準 /v1/chat/completions API 的端點協同運作。
- 3
安裝 Mastra 並設定模型 provider
安裝 @mastra/core 並設定一個指向你的推論端點的自訂 OpenAI 相容 provider。Vercel AI SDK 的 createOpenAI 輔助函式可直接處理此設定。
- 4
以工具與工作流程定義你的代理
建立一個包含角色說明、工具(函式呼叫、RAG 檢索器)以及工作流程步驟的 Mastra 代理。若使用情境跨越多次會話,可加入持久化記憶體。
- 5
加入評估並上線
設定 Mastra 評估,在你迭代時於代表性測試集上追蹤代理品質。部署至 Vercel、自有基礎設施或任何 Node.js 主機。
import { createOpenAI } from "@ai-sdk/openai";
import { Agent } from "@mastra/core";
// Point Mastra at your Ertas-trained model served via Ollama
const ertas = createOpenAI({
baseURL: "http://localhost:11434/v1",
apiKey: "not-needed",
});
const supportAgent = new Agent({
name: "support-agent",
instructions: "You are a customer support agent for an enterprise SaaS platform.",
model: ertas("ertas-support-7b"),
tools: {
lookupCustomer: {
description: "Look up customer details by ID",
parameters: z.object({ customerId: z.string() }),
execute: async ({ customerId }) => {
return await db.customers.findById(customerId);
},
},
},
});
const result = await supportAgent.generate({
messages: [{ role: "user", content: "What's the status of my account?" }],
});
console.log(result.text);Benefits
- TypeScript 原生——可直接將代理出貨至 web 應用、edge 函式與 Node.js 服務
- 一流的 Vercel AI SDK 整合,支援 3,300 個以上模型,包括本地 Ertas 訓練模型
- 內建工作流程編排、持久化記憶體與結構化評估
- 正式上線等級的日誌、可觀測性與人類介入檢查點
- 可部署至 Vercel edge 或任何 Node.js 基礎設施,沒有語言邊界
- 活躍且持續成長的 TypeScript 代理生態系,擁有強大的開源社群
Related Resources
Fine-Tuning
GGUF
Inference
LoRA
Getting Started with Ertas: Fine-Tune and Deploy Custom AI Models
Fine-Tune AI Models Without Writing Code
Running AI Models Locally: The Complete Guide to Local LLM Inference
LangChain
Ollama
vLLM
Ertas for Customer Support
Ertas for Data Extraction
Ertas for AI Automation Agencies
Ship AI that runs on your users' devices.
Free plan with 30 credits/mo, no card required. Paid plans from $25/mo USD.