@mastra/mcp-docs-server 1.1.40-alpha.3 → 1.1.40-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/docs/agents/guardrails.md +2 -2
- package/.docs/docs/agents/processors.md +2 -2
- package/.docs/docs/agents/signals.md +38 -0
- package/.docs/docs/evals/datasets/running-experiments.md +1 -1
- package/.docs/docs/evals/overview.md +2 -2
- package/.docs/docs/mcp/mcp-apps.md +3 -3
- package/.docs/docs/memory/multi-user-threads.md +1 -1
- package/.docs/docs/memory/observational-memory.md +2 -2
- package/.docs/docs/memory/storage.md +1 -1
- package/.docs/docs/rag/retrieval.md +4 -1
- package/.docs/docs/workspace/filesystem.md +1 -1
- package/.docs/models/gateways/openrouter.md +1 -1
- package/.docs/models/gateways/vercel.md +5 -1
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/alibaba.md +2 -1
- package/.docs/models/providers/crof.md +91 -0
- package/.docs/models/providers/inceptron.md +74 -0
- package/.docs/models/providers/llmgateway.md +5 -1
- package/.docs/models/providers.md +2 -0
- package/.docs/reference/browser/stagehand-browser.md +1 -1
- package/.docs/reference/evals/noise-sensitivity.md +1 -1
- package/.docs/reference/harness/harness-class.md +6 -3
- package/.docs/reference/memory/observational-memory.md +1 -1
- package/.docs/reference/observability/tracing/exporters/sentry.md +1 -0
- package/.docs/reference/processors/cost-guard-processor.md +1 -1
- package/.docs/reference/processors/processor-interface.md +1 -1
- package/.docs/reference/processors/regex-filter-processor.md +1 -1
- package/.docs/reference/processors/skill-search-processor.md +1 -1
- package/.docs/reference/server/nestjs-adapter.md +1 -1
- package/.docs/reference/storage/dsql.md +1 -1
- package/.docs/reference/storage/redis.md +1 -1
- package/.docs/reference/workspace/google-drive-filesystem.md +1 -1
- package/CHANGELOG.md +14 -0
- package/package.json +4 -4
|
@@ -246,7 +246,7 @@ costGuard.onViolation = ({ processorId, message, detail }) => {
|
|
|
246
246
|
|
|
247
247
|
// Log moderation violations
|
|
248
248
|
const moderation = new ModerationProcessor({
|
|
249
|
-
model: '
|
|
249
|
+
model: '__OPENAI_MODEL_NANO__',
|
|
250
250
|
strategy: 'block',
|
|
251
251
|
})
|
|
252
252
|
|
|
@@ -360,7 +360,7 @@ See [workflows as processors](https://mastra.ai/docs/agents/processors) for more
|
|
|
360
360
|
Guardrail processors don't need your primary model. Use a small, fast model for classification tasks:
|
|
361
361
|
|
|
362
362
|
```typescript
|
|
363
|
-
const GUARDRAIL_MODEL = '
|
|
363
|
+
const GUARDRAIL_MODEL = '__OPENAI_MODEL_NANO__'
|
|
364
364
|
|
|
365
365
|
new ModerationProcessor({ model: GUARDRAIL_MODEL })
|
|
366
366
|
new PIIDetector({ model: GUARDRAIL_MODEL })
|
|
@@ -97,9 +97,9 @@ const agent = new Agent({
|
|
|
97
97
|
instructions: '...',
|
|
98
98
|
inputProcessors: [
|
|
99
99
|
new TokenLimiter(4000),
|
|
100
|
-
new ModerationProcessor({ model: 'openai/gpt-
|
|
100
|
+
new ModerationProcessor({ model: 'openai/gpt-5-nano' }),
|
|
101
101
|
],
|
|
102
|
-
outputProcessors: [new ModerationProcessor({ model: 'openai/gpt-
|
|
102
|
+
outputProcessors: [new ModerationProcessor({ model: 'openai/gpt-5-nano' })],
|
|
103
103
|
errorProcessors: [new PrefillErrorHandler()],
|
|
104
104
|
})
|
|
105
105
|
```
|
|
@@ -141,6 +141,44 @@ The model receives the custom signal as context like this:
|
|
|
141
141
|
|
|
142
142
|
Use XML-safe signal type names and attribute names. Signal type names and attribute names can contain letters, numbers, underscores, periods, and hyphens. They must start with a letter or underscore.
|
|
143
143
|
|
|
144
|
+
## Delivery attributes
|
|
145
|
+
|
|
146
|
+
Use `ifActive.attributes` and `ifIdle.attributes` to tag a signal with context that depends on whether the agent is active or idle at delivery time. Mastra resolves the correct branch when the signal is accepted.
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
agent.sendSignal(
|
|
150
|
+
{
|
|
151
|
+
type: 'user-message',
|
|
152
|
+
contents: 'Also cover the edge cases.',
|
|
153
|
+
attributes: { source: 'chat' },
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
resourceId: 'user_123',
|
|
157
|
+
threadId: 'thread_456',
|
|
158
|
+
ifActive: { attributes: { delivery: 'while-active' } },
|
|
159
|
+
ifIdle: { attributes: { delivery: 'message' } },
|
|
160
|
+
},
|
|
161
|
+
)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
When the agent is working, the model sees:
|
|
165
|
+
|
|
166
|
+
```xml
|
|
167
|
+
<user-message source="chat" delivery="while-active">Also cover the edge cases.</user-message>
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
When the agent is idle:
|
|
171
|
+
|
|
172
|
+
```xml
|
|
173
|
+
<user-message source="chat" delivery="message">Also cover the edge cases.</user-message>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Top-level `attributes` always apply. The selected branch's `attributes` are merged into them at delivery time. The `ifActive.attributes` branch merges when the signal is delivered to a running agent loop. The `ifIdle.attributes` branch merges when the signal wakes an idle thread. If the selected branch or its `attributes` field is `undefined`, no extra attributes are added.
|
|
177
|
+
|
|
178
|
+
Delivery attributes work with any signal type and can carry any key-value pairs. The `delivery` name shown above is not a special Mastra API field. It is a custom attribute name used for this example; you can use any attribute names that fit your application.
|
|
179
|
+
|
|
180
|
+
> **Note:** Visit [Agent.sendSignal() reference](https://mastra.ai/reference/agents/agent) for the full signal input and options types.
|
|
181
|
+
|
|
144
182
|
## Use the client SDK
|
|
145
183
|
|
|
146
184
|
The JavaScript client exposes the same thread signal APIs. Use `subscribeToThread()` before `sendSignal()` so the client can render the stream that wakes from, or receives, the signal.
|
|
@@ -104,7 +104,7 @@ const summary = await dataset.startExperiment({
|
|
|
104
104
|
```typescript
|
|
105
105
|
import { createAnswerRelevancyScorer } from '@mastra/evals/scorers/prebuilt'
|
|
106
106
|
|
|
107
|
-
const relevancy = createAnswerRelevancyScorer({ model: '
|
|
107
|
+
const relevancy = createAnswerRelevancyScorer({ model: '__OPENAI_MODEL_MINI__' })
|
|
108
108
|
|
|
109
109
|
const summary = await dataset.startExperiment({
|
|
110
110
|
name: 'with-scorer-instances',
|
|
@@ -57,11 +57,11 @@ import { createAnswerRelevancyScorer, createToxicityScorer } from '@mastra/evals
|
|
|
57
57
|
export const evaluatedAgent = new Agent({
|
|
58
58
|
scorers: {
|
|
59
59
|
relevancy: {
|
|
60
|
-
scorer: createAnswerRelevancyScorer({ model: '
|
|
60
|
+
scorer: createAnswerRelevancyScorer({ model: '__OPENAI_MODEL_MINI__' }),
|
|
61
61
|
sampling: { type: 'ratio', rate: 0.5 },
|
|
62
62
|
},
|
|
63
63
|
safety: {
|
|
64
|
-
scorer: createToxicityScorer({ model: '
|
|
64
|
+
scorer: createToxicityScorer({ model: '__OPENAI_MODEL_MINI__' }),
|
|
65
65
|
sampling: { type: 'ratio', rate: 1 },
|
|
66
66
|
},
|
|
67
67
|
},
|
|
@@ -93,7 +93,7 @@ export const myAgent = new Agent({
|
|
|
93
93
|
id: 'my-agent',
|
|
94
94
|
name: 'My Agent',
|
|
95
95
|
instructions: 'You have access to interactive UI tools.',
|
|
96
|
-
model: '
|
|
96
|
+
model: '__OPENAI_MODEL_MINI__',
|
|
97
97
|
tools: { calculatorTool },
|
|
98
98
|
})
|
|
99
99
|
```
|
|
@@ -125,7 +125,7 @@ const mcpClient = new MCPClient({
|
|
|
125
125
|
const myAgent = new Agent({
|
|
126
126
|
id: 'my-agent',
|
|
127
127
|
name: 'My Agent',
|
|
128
|
-
model: '
|
|
128
|
+
model: '__OPENAI_MODEL_MINI__',
|
|
129
129
|
tools: await mcpClient.listTools(),
|
|
130
130
|
})
|
|
131
131
|
|
|
@@ -270,7 +270,7 @@ const mcpClient = new MCPClient({
|
|
|
270
270
|
const myAgent = new Agent({
|
|
271
271
|
id: 'my-agent',
|
|
272
272
|
name: 'My Agent',
|
|
273
|
-
model: '
|
|
273
|
+
model: '__OPENAI_MODEL_MINI__',
|
|
274
274
|
tools: await mcpClient.listTools(),
|
|
275
275
|
})
|
|
276
276
|
|
|
@@ -65,7 +65,7 @@ const memory = new Memory({
|
|
|
65
65
|
export const collabAgent = new Agent({
|
|
66
66
|
id: 'collab',
|
|
67
67
|
name: 'CollabAgent',
|
|
68
|
-
model: '
|
|
68
|
+
model: '__OPENAI_MODEL_MINI__',
|
|
69
69
|
memory,
|
|
70
70
|
instructions: `
|
|
71
71
|
You are a collaborative document assistant. Multiple users talk to you in the SAME thread.
|
|
@@ -316,7 +316,7 @@ const memory = new Memory({
|
|
|
316
316
|
// Faster, cheaper models for smaller inputs; stronger models for larger contexts
|
|
317
317
|
5_000: 'openrouter/mistralai/ministral-8b-2512',
|
|
318
318
|
20_000: 'openrouter/mistralai/mistral-small-2603',
|
|
319
|
-
40_000: 'openai/gpt-5
|
|
319
|
+
40_000: 'openai/gpt-5-mini',
|
|
320
320
|
1_000_000: 'google/gemini-3.1-flash-lite-preview',
|
|
321
321
|
},
|
|
322
322
|
}),
|
|
@@ -324,7 +324,7 @@ const memory = new Memory({
|
|
|
324
324
|
reflection: {
|
|
325
325
|
model: new ModelByInputTokens({
|
|
326
326
|
upTo: {
|
|
327
|
-
20_000: 'openai/gpt-5
|
|
327
|
+
20_000: 'openai/gpt-5-mini',
|
|
328
328
|
100_000: 'google/gemini-2.5-flash',
|
|
329
329
|
},
|
|
330
330
|
}),
|
|
@@ -472,7 +472,10 @@ const initialResults = await pgVector.query({
|
|
|
472
472
|
})
|
|
473
473
|
|
|
474
474
|
// Create a relevance scorer
|
|
475
|
-
const relevanceProvider = new MastraAgentRelevanceScorer(
|
|
475
|
+
const relevanceProvider = new MastraAgentRelevanceScorer(
|
|
476
|
+
'relevance-scorer',
|
|
477
|
+
'openai/gpt-5.4',
|
|
478
|
+
)
|
|
476
479
|
|
|
477
480
|
// Re-rank the results
|
|
478
481
|
const rerankedResults = await rerank({
|
|
@@ -72,7 +72,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
72
72
|
| `arcee-ai/coder-large` |
|
|
73
73
|
| `arcee-ai/maestro-reasoning` |
|
|
74
74
|
| `arcee-ai/spotlight` |
|
|
75
|
-
| `arcee-ai/trinity-large-preview` |
|
|
76
75
|
| `arcee-ai/trinity-large-thinking` |
|
|
77
76
|
| `arcee-ai/trinity-large-thinking:free` |
|
|
78
77
|
| `arcee-ai/trinity-mini` |
|
|
@@ -350,6 +349,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
350
349
|
| `qwen/qwen3.6-flash` |
|
|
351
350
|
| `qwen/qwen3.6-max-preview` |
|
|
352
351
|
| `qwen/qwen3.6-plus` |
|
|
352
|
+
| `qwen/qwen3.7-max` |
|
|
353
353
|
| `rekaai/reka-edge` |
|
|
354
354
|
| `rekaai/reka-flash-3` |
|
|
355
355
|
| `relace/relace-apply-3` |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Vercel
|
|
2
2
|
|
|
3
|
-
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
3
|
+
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 243 models through Mastra's model router.
|
|
4
4
|
|
|
5
5
|
Learn more in the [Vercel documentation](https://ai-sdk.dev/providers/ai-sdk-providers).
|
|
6
6
|
|
|
@@ -59,6 +59,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
59
59
|
| `alibaba/qwen3.5-plus` |
|
|
60
60
|
| `alibaba/qwen3.6-27b` |
|
|
61
61
|
| `alibaba/qwen3.6-plus` |
|
|
62
|
+
| `alibaba/qwen3.7-max` |
|
|
62
63
|
| `amazon/nova-2-lite` |
|
|
63
64
|
| `amazon/nova-lite` |
|
|
64
65
|
| `amazon/nova-micro` |
|
|
@@ -116,6 +117,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
116
117
|
| `google/gemini-3.1-flash-lite` |
|
|
117
118
|
| `google/gemini-3.1-flash-lite-preview` |
|
|
118
119
|
| `google/gemini-3.1-pro-preview` |
|
|
120
|
+
| `google/gemini-3.5-flash` |
|
|
119
121
|
| `google/gemini-embedding-001` |
|
|
120
122
|
| `google/gemini-embedding-2` |
|
|
121
123
|
| `google/gemma-4-26b-a4b-it` |
|
|
@@ -163,6 +165,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
163
165
|
| `mistral/mistral-embed` |
|
|
164
166
|
| `mistral/mistral-large-3` |
|
|
165
167
|
| `mistral/mistral-medium` |
|
|
168
|
+
| `mistral/mistral-medium-3.5` |
|
|
166
169
|
| `mistral/mistral-nemo` |
|
|
167
170
|
| `mistral/mistral-small` |
|
|
168
171
|
| `mistral/mixtral-8x22b-instruct` |
|
|
@@ -254,6 +257,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
254
257
|
| `xai/grok-4.20-reasoning` |
|
|
255
258
|
| `xai/grok-4.20-reasoning-beta` |
|
|
256
259
|
| `xai/grok-4.3` |
|
|
260
|
+
| `xai/grok-build-0.1` |
|
|
257
261
|
| `xai/grok-imagine-image` |
|
|
258
262
|
| `xai/grok-imagine-image-pro` |
|
|
259
263
|
| `xiaomi/mimo-v2-flash` |
|
package/.docs/models/index.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Model Providers
|
|
2
2
|
|
|
3
|
-
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to
|
|
3
|
+
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 4243 models from 124 providers through a single API.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Alibaba
|
|
2
2
|
|
|
3
|
-
Access
|
|
3
|
+
Access 49 Alibaba models through Mastra's model router. Authentication is handled automatically using the `DASHSCOPE_API_KEY` environment variable.
|
|
4
4
|
|
|
5
5
|
Learn more in the [Alibaba documentation](https://www.alibabacloud.com/help/en/model-studio/models).
|
|
6
6
|
|
|
@@ -81,6 +81,7 @@ for await (const chunk of stream) {
|
|
|
81
81
|
| `alibaba/qwen3.6-35b-a3b` | 262K | | | | | | $0.25 | $1 |
|
|
82
82
|
| `alibaba/qwen3.6-max-preview` | 262K | | | | | | $1 | $8 |
|
|
83
83
|
| `alibaba/qwen3.6-plus` | 1.0M | | | | | | $0.50 | $3 |
|
|
84
|
+
| `alibaba/qwen3.7-max` | 1.0M | | | | | | $3 | $8 |
|
|
84
85
|
| `alibaba/qwq-plus` | 131K | | | | | | $0.80 | $2 |
|
|
85
86
|
|
|
86
87
|
## Advanced configuration
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# CrofAI
|
|
2
|
+
|
|
3
|
+
Access 21 CrofAI models through Mastra's model router. Authentication is handled automatically using the `CROF_API_KEY` environment variable.
|
|
4
|
+
|
|
5
|
+
Learn more in the [CrofAI documentation](https://crof.ai/docs).
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
CROF_API_KEY=your-api-key
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
import { Agent } from "@mastra/core/agent";
|
|
13
|
+
|
|
14
|
+
const agent = new Agent({
|
|
15
|
+
id: "my-agent",
|
|
16
|
+
name: "My Agent",
|
|
17
|
+
instructions: "You are a helpful assistant",
|
|
18
|
+
model: "crof/deepseek-v3.2"
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Generate a response
|
|
22
|
+
const response = await agent.generate("Hello!");
|
|
23
|
+
|
|
24
|
+
// Stream a response
|
|
25
|
+
const stream = await agent.stream("Tell me a story");
|
|
26
|
+
for await (const chunk of stream) {
|
|
27
|
+
console.log(chunk);
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
> **Info:** Mastra uses the OpenAI-compatible `/chat/completions` endpoint. Some provider-specific features may not be available. Check the [CrofAI documentation](https://crof.ai/docs) for details.
|
|
32
|
+
|
|
33
|
+
## Models
|
|
34
|
+
|
|
35
|
+
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
36
|
+
| -------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
37
|
+
| `crof/deepseek-v3.2` | 164K | | | | | | $0.28 | $0.38 |
|
|
38
|
+
| `crof/deepseek-v4-flash` | 1.0M | | | | | | $0.12 | $0.21 |
|
|
39
|
+
| `crof/deepseek-v4-pro` | 1.0M | | | | | | $0.40 | $0.85 |
|
|
40
|
+
| `crof/deepseek-v4-pro-precision` | 1.0M | | | | | | $1 | $3 |
|
|
41
|
+
| `crof/gemma-4-31b-it` | 262K | | | | | | $0.10 | $0.30 |
|
|
42
|
+
| `crof/glm-4.7` | 203K | | | | | | $0.25 | $1 |
|
|
43
|
+
| `crof/glm-4.7-flash` | 200K | | | | | | $0.04 | $0.30 |
|
|
44
|
+
| `crof/glm-5` | 203K | | | | | | $0.48 | $2 |
|
|
45
|
+
| `crof/glm-5.1` | 203K | | | | | | $0.45 | $2 |
|
|
46
|
+
| `crof/glm-5.1-precision` | 203K | | | | | | $0.75 | $3 |
|
|
47
|
+
| `crof/greg` | 229K | | | | | | $0.10 | $0.20 |
|
|
48
|
+
| `crof/kimi-k2.5` | 262K | | | | | | $0.35 | $2 |
|
|
49
|
+
| `crof/kimi-k2.5-lightning` | 131K | | | | | | $1 | $3 |
|
|
50
|
+
| `crof/kimi-k2.6` | 262K | | | | | | $0.50 | $2 |
|
|
51
|
+
| `crof/kimi-k2.6-precision` | 262K | | | | | | $0.55 | $3 |
|
|
52
|
+
| `crof/mimo-v2.5-pro` | 1.0M | | | | | | $0.50 | $2 |
|
|
53
|
+
| `crof/mimo-v2.5-pro-precision` | 1.0M | | | | | | $0.80 | $3 |
|
|
54
|
+
| `crof/minimax-m2.5` | 205K | | | | | | $0.11 | $0.95 |
|
|
55
|
+
| `crof/qwen3.5-397b-a17b` | 262K | | | | | | $0.35 | $2 |
|
|
56
|
+
| `crof/qwen3.5-9b` | 262K | | | | | | $0.04 | $0.15 |
|
|
57
|
+
| `crof/qwen3.6-27b` | 262K | | | | | | $0.20 | $2 |
|
|
58
|
+
|
|
59
|
+
## Advanced configuration
|
|
60
|
+
|
|
61
|
+
### Custom headers
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
const agent = new Agent({
|
|
65
|
+
id: "custom-agent",
|
|
66
|
+
name: "custom-agent",
|
|
67
|
+
model: {
|
|
68
|
+
url: "https://crof.ai/v1",
|
|
69
|
+
id: "crof/deepseek-v3.2",
|
|
70
|
+
apiKey: process.env.CROF_API_KEY,
|
|
71
|
+
headers: {
|
|
72
|
+
"X-Custom-Header": "value"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Dynamic model selection
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
const agent = new Agent({
|
|
82
|
+
id: "dynamic-agent",
|
|
83
|
+
name: "Dynamic Agent",
|
|
84
|
+
model: ({ requestContext }) => {
|
|
85
|
+
const useAdvanced = requestContext.task === "complex";
|
|
86
|
+
return useAdvanced
|
|
87
|
+
? "crof/qwen3.6-27b"
|
|
88
|
+
: "crof/deepseek-v3.2";
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
```
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Inceptron
|
|
2
|
+
|
|
3
|
+
Access 4 Inceptron models through Mastra's model router. Authentication is handled automatically using the `INCEPTRON_API_KEY` environment variable.
|
|
4
|
+
|
|
5
|
+
Learn more in the [Inceptron documentation](https://docs.inceptron.io).
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
INCEPTRON_API_KEY=your-api-key
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
import { Agent } from "@mastra/core/agent";
|
|
13
|
+
|
|
14
|
+
const agent = new Agent({
|
|
15
|
+
id: "my-agent",
|
|
16
|
+
name: "My Agent",
|
|
17
|
+
instructions: "You are a helpful assistant",
|
|
18
|
+
model: "inceptron/MiniMaxAI/MiniMax-M2.5"
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Generate a response
|
|
22
|
+
const response = await agent.generate("Hello!");
|
|
23
|
+
|
|
24
|
+
// Stream a response
|
|
25
|
+
const stream = await agent.stream("Tell me a story");
|
|
26
|
+
for await (const chunk of stream) {
|
|
27
|
+
console.log(chunk);
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
> **Info:** Mastra uses the OpenAI-compatible `/chat/completions` endpoint. Some provider-specific features may not be available. Check the [Inceptron documentation](https://docs.inceptron.io) for details.
|
|
32
|
+
|
|
33
|
+
## Models
|
|
34
|
+
|
|
35
|
+
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
36
|
+
| --------------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
37
|
+
| `inceptron/MiniMaxAI/MiniMax-M2.5` | 197K | | | | | | $0.24 | $0.90 |
|
|
38
|
+
| `inceptron/moonshotai/Kimi-K2.6` | 262K | | | | | | $0.78 | $4 |
|
|
39
|
+
| `inceptron/nvidia/llama-3.3-70b-instruct-fp8` | 131K | | | | | | $0.12 | $0.38 |
|
|
40
|
+
| `inceptron/zai-org/GLM-5.1-FP8` | 203K | | | | | | $1 | $4 |
|
|
41
|
+
|
|
42
|
+
## Advanced configuration
|
|
43
|
+
|
|
44
|
+
### Custom headers
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
const agent = new Agent({
|
|
48
|
+
id: "custom-agent",
|
|
49
|
+
name: "custom-agent",
|
|
50
|
+
model: {
|
|
51
|
+
url: "https://api.inceptron.io/v1",
|
|
52
|
+
id: "inceptron/MiniMaxAI/MiniMax-M2.5",
|
|
53
|
+
apiKey: process.env.INCEPTRON_API_KEY,
|
|
54
|
+
headers: {
|
|
55
|
+
"X-Custom-Header": "value"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Dynamic model selection
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
const agent = new Agent({
|
|
65
|
+
id: "dynamic-agent",
|
|
66
|
+
name: "Dynamic Agent",
|
|
67
|
+
model: ({ requestContext }) => {
|
|
68
|
+
const useAdvanced = requestContext.task === "complex";
|
|
69
|
+
return useAdvanced
|
|
70
|
+
? "inceptron/zai-org/GLM-5.1-FP8"
|
|
71
|
+
: "inceptron/MiniMaxAI/MiniMax-M2.5";
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# LLM Gateway
|
|
2
2
|
|
|
3
|
-
Access
|
|
3
|
+
Access 187 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
|
|
4
4
|
|
|
5
5
|
Learn more in the [LLM Gateway documentation](https://llmgateway.io/docs).
|
|
6
6
|
|
|
@@ -68,6 +68,7 @@ for await (const chunk of stream) {
|
|
|
68
68
|
| `llmgateway/gemini-3.1-flash-lite` | 1.0M | | | | | | $0.25 | $2 |
|
|
69
69
|
| `llmgateway/gemini-3.1-flash-lite-preview` | 1.0M | | | | | | $0.25 | $2 |
|
|
70
70
|
| `llmgateway/gemini-3.1-pro-preview` | 1.0M | | | | | | $2 | $12 |
|
|
71
|
+
| `llmgateway/gemini-3.5-flash` | 1.0M | | | | | | $2 | $9 |
|
|
71
72
|
| `llmgateway/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
|
|
72
73
|
| `llmgateway/gemma-2-27b-it-together` | 8K | | | | | | $0.08 | $0.08 |
|
|
73
74
|
| `llmgateway/gemma-3-1b-it` | 1.0M | | | | | | $0.08 | $0.30 |
|
|
@@ -124,6 +125,8 @@ for await (const chunk of stream) {
|
|
|
124
125
|
| `llmgateway/grok-4-1-fast-reasoning` | 2.0M | | | | | | $0.20 | $0.50 |
|
|
125
126
|
| `llmgateway/grok-4-20-beta-0309-non-reasoning` | 2.0M | | | | | | $1 | $3 |
|
|
126
127
|
| `llmgateway/grok-4-20-beta-0309-reasoning` | 2.0M | | | | | | $1 | $3 |
|
|
128
|
+
| `llmgateway/grok-4-20-non-reasoning` | 2.0M | | | | | | $1 | $3 |
|
|
129
|
+
| `llmgateway/grok-4-20-reasoning` | 2.0M | | | | | | $1 | $3 |
|
|
127
130
|
| `llmgateway/grok-4-3` | 1.0M | | | | | | $1 | $3 |
|
|
128
131
|
| `llmgateway/grok-4-fast-reasoning` | 2.0M | | | | | | $0.20 | $0.50 |
|
|
129
132
|
| `llmgateway/hermes-2-pro-llama-3-8b` | 8K | | | | | | $0.14 | $0.14 |
|
|
@@ -209,6 +212,7 @@ for await (const chunk of stream) {
|
|
|
209
212
|
| `llmgateway/qwen3.6-max-preview` | 262K | | | | | | $1 | $8 |
|
|
210
213
|
| `llmgateway/qwen3.6-plus` | 1.0M | | | | | | $0.50 | $3 |
|
|
211
214
|
| `llmgateway/qwen35-397b-a17b` | 262K | | | | | | $0.60 | $4 |
|
|
215
|
+
| `llmgateway/qwen37-max` | 1.0M | | | | | | $3 | $8 |
|
|
212
216
|
| `llmgateway/qwq-plus` | 131K | | | | | | $0.80 | $2 |
|
|
213
217
|
| `llmgateway/seed-1-6-250615` | 256K | | | | | | $0.25 | $2 |
|
|
214
218
|
| `llmgateway/seed-1-6-250915` | 256K | | | | | | $0.25 | $2 |
|
|
@@ -29,6 +29,7 @@ Direct access to individual AI model providers. Each provider offers unique mode
|
|
|
29
29
|
- [CloudFerro Sherlock](https://mastra.ai/models/providers/cloudferro-sherlock)
|
|
30
30
|
- [Cloudflare Workers AI](https://mastra.ai/models/providers/cloudflare-workers-ai)
|
|
31
31
|
- [Cortecs](https://mastra.ai/models/providers/cortecs)
|
|
32
|
+
- [CrofAI](https://mastra.ai/models/providers/crof)
|
|
32
33
|
- [D.Run (China)](https://mastra.ai/models/providers/drun)
|
|
33
34
|
- [Databricks](https://mastra.ai/models/providers/databricks)
|
|
34
35
|
- [Deep Infra](https://mastra.ai/models/providers/deepinfra)
|
|
@@ -47,6 +48,7 @@ Direct access to individual AI model providers. Each provider offers unique mode
|
|
|
47
48
|
- [Hugging Face](https://mastra.ai/models/providers/huggingface)
|
|
48
49
|
- [iFlow](https://mastra.ai/models/providers/iflowcn)
|
|
49
50
|
- [Inception](https://mastra.ai/models/providers/inception)
|
|
51
|
+
- [Inceptron](https://mastra.ai/models/providers/inceptron)
|
|
50
52
|
- [Inference](https://mastra.ai/models/providers/inference)
|
|
51
53
|
- [IO.NET](https://mastra.ai/models/providers/io-net)
|
|
52
54
|
- [Jiekou.AI](https://mastra.ai/models/providers/jiekou)
|
|
@@ -39,7 +39,7 @@ Use stagehand_extract to get data from pages.`,
|
|
|
39
39
|
|
|
40
40
|
**projectId** (`string`): Browserbase project ID. Required when env is 'BROWSERBASE'.
|
|
41
41
|
|
|
42
|
-
**model** (`string | ModelConfiguration`): Model configuration for AI operations. Can be a string like '
|
|
42
|
+
**model** (`string | ModelConfiguration`): Model configuration for AI operations. Can be a string like '\_\_GATEWAY\_OPENAI\_MODEL\_\_' or an object with modelName, apiKey, and baseURL. (Default: `'openai/gpt-5.4'`)
|
|
43
43
|
|
|
44
44
|
**selfHeal** (`boolean`): Enable self-healing selectors. When enabled, Stagehand uses AI to find elements even when initial selectors fail. (Default: `true`)
|
|
45
45
|
|
|
@@ -547,7 +547,7 @@ import { createNoiseSensitivityScorerLLM } from '@mastra/evals'
|
|
|
547
547
|
async function compareModelRobustness() {
|
|
548
548
|
const models = [
|
|
549
549
|
{ name: 'GPT-5.4', model: 'openai/gpt-5.4' },
|
|
550
|
-
{ name: 'GPT-5.4-mini', model: 'openai/gpt-5
|
|
550
|
+
{ name: 'GPT-5.4-mini', model: 'openai/gpt-5-mini' },
|
|
551
551
|
{ name: 'Claude', model: 'anthropic/claude-opus-4-6' },
|
|
552
552
|
]
|
|
553
553
|
|
|
@@ -656,7 +656,7 @@ const modelId = harness.getReflectorModelId()
|
|
|
656
656
|
Switch the observer model. Persists the setting to thread metadata and emits an `om_model_changed` event.
|
|
657
657
|
|
|
658
658
|
```typescript
|
|
659
|
-
await harness.switchObserverModel({ modelId: 'anthropic/claude-haiku-
|
|
659
|
+
await harness.switchObserverModel({ modelId: 'anthropic/claude-haiku-4-5' })
|
|
660
660
|
```
|
|
661
661
|
|
|
662
662
|
#### `switchReflectorModel({ modelId })`
|
|
@@ -664,7 +664,7 @@ await harness.switchObserverModel({ modelId: 'anthropic/claude-haiku-3.5' })
|
|
|
664
664
|
Switch the reflector model. Persists the setting to thread metadata and emits an `om_model_changed` event.
|
|
665
665
|
|
|
666
666
|
```typescript
|
|
667
|
-
await harness.switchReflectorModel({ modelId: 'anthropic/claude-haiku-
|
|
667
|
+
await harness.switchReflectorModel({ modelId: 'anthropic/claude-haiku-4-5' })
|
|
668
668
|
```
|
|
669
669
|
|
|
670
670
|
#### `getObservationThreshold()`
|
|
@@ -702,7 +702,10 @@ Set the subagent model ID. Pass an `agentType` to set a per-type override, or om
|
|
|
702
702
|
await harness.setSubagentModelId({ modelId: 'anthropic/claude-sonnet-4-6' })
|
|
703
703
|
|
|
704
704
|
// Set per-type model
|
|
705
|
-
await harness.setSubagentModelId({
|
|
705
|
+
await harness.setSubagentModelId({
|
|
706
|
+
modelId: 'anthropic/claude-haiku-4-5',
|
|
707
|
+
agentType: 'explore',
|
|
708
|
+
})
|
|
706
709
|
```
|
|
707
710
|
|
|
708
711
|
### Forked subagents
|
|
@@ -674,7 +674,7 @@ import { ModelByInputTokens } from '@mastra/memory'
|
|
|
674
674
|
const selector = new ModelByInputTokens({
|
|
675
675
|
upTo: {
|
|
676
676
|
10_000: 'google/gemini-2.5-flash', // Fast for small inputs
|
|
677
|
-
40_000: 'openai/gpt-5
|
|
677
|
+
40_000: 'openai/gpt-5-mini', // Stronger for medium inputs
|
|
678
678
|
1_000_000: 'openai/gpt-5.4', // Most capable for large inputs
|
|
679
679
|
},
|
|
680
680
|
})
|
|
@@ -146,6 +146,7 @@ The exporter sets these standard OpenTelemetry attributes:
|
|
|
146
146
|
|
|
147
147
|
- `sentry.origin`: `auto.ai.mastra` (identifies spans from Mastra)
|
|
148
148
|
- `ai.span.type`: Mastra span type
|
|
149
|
+
- `gen_ai.conversation.id`: Chat thread identifier, set from `metadata.threadId` to group spans in Sentry's Conversations view
|
|
149
150
|
|
|
150
151
|
**MODEL\_GENERATION spans:**
|
|
151
152
|
|
|
@@ -318,7 +318,7 @@ processInputStep?<TTripwireMetadata = unknown>(
|
|
|
318
318
|
|
|
319
319
|
The object form can return any combination of these properties:
|
|
320
320
|
|
|
321
|
-
**model** (`LanguageModelV2 | string`): Change the model for this step. Can be a model instance or router ID like '
|
|
321
|
+
**model** (`LanguageModelV2 | string`): Change the model for this step. Can be a model instance or router ID like '\_\_GATEWAY\_OPENAI\_MODEL\_\_'.
|
|
322
322
|
|
|
323
323
|
**toolChoice** (`ToolChoice`): Change tool selection behavior for this step.
|
|
324
324
|
|
|
@@ -74,7 +74,7 @@ const agent = new Agent({
|
|
|
74
74
|
name: 'skill-agent',
|
|
75
75
|
instructions:
|
|
76
76
|
'You are a helpful assistant. Use search_skills to find relevant skills, then load_skill to load their instructions.',
|
|
77
|
-
model: 'openai/gpt-
|
|
77
|
+
model: 'openai/gpt-5.4',
|
|
78
78
|
workspace,
|
|
79
79
|
inputProcessors: [skillSearch],
|
|
80
80
|
})
|
|
@@ -114,7 +114,7 @@ import { Mastra } from '@mastra/core/mastra'
|
|
|
114
114
|
greeter: {
|
|
115
115
|
name: 'greeter',
|
|
116
116
|
description: 'Greets the user',
|
|
117
|
-
model: config.get('MASTRA_MODEL', '
|
|
117
|
+
model: config.get('MASTRA_MODEL', '__OPENAI_MODEL_MINI__'),
|
|
118
118
|
},
|
|
119
119
|
},
|
|
120
120
|
}),
|
|
@@ -241,7 +241,7 @@ export const dsqlAgent = new Agent({
|
|
|
241
241
|
name: 'DSQL Agent',
|
|
242
242
|
instructions:
|
|
243
243
|
'You are an AI agent with the ability to automatically recall memories from previous interactions.',
|
|
244
|
-
model: 'openai/gpt-5.
|
|
244
|
+
model: 'openai/gpt-5.4',
|
|
245
245
|
memory: new Memory({
|
|
246
246
|
storage: new DSQLStore({
|
|
247
247
|
id: 'dsql-agent-storage',
|
|
@@ -181,7 +181,7 @@ export const redisAgent = new Agent({
|
|
|
181
181
|
name: 'Redis Agent',
|
|
182
182
|
instructions:
|
|
183
183
|
'You are an AI agent with the ability to automatically recall memories from previous interactions.',
|
|
184
|
-
model: 'openai/gpt-
|
|
184
|
+
model: 'openai/gpt-5.4',
|
|
185
185
|
memory: new Memory({
|
|
186
186
|
storage: new RedisStore({
|
|
187
187
|
id: 'redis-agent-storage',
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @mastra/mcp-docs-server
|
|
2
2
|
|
|
3
|
+
## 1.1.40-alpha.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`ac442a4`](https://github.com/mastra-ai/mastra/commit/ac442a42fda0354ac2bcea772bf6691cb3e9dbb3), [`1e5c067`](https://github.com/mastra-ai/mastra/commit/1e5c067d2e20a781af670578180d1ee249806d41), [`008baaf`](https://github.com/mastra-ai/mastra/commit/008baafd8d851f831407045aebead5a2e3342eff), [`8116436`](https://github.com/mastra-ai/mastra/commit/81164363eb225d774e41ff27da6a5ea611406688), [`c27c4b9`](https://github.com/mastra-ai/mastra/commit/c27c4b9f137df5414fca4e45896aceccff6b0ed5), [`08b3b59`](https://github.com/mastra-ai/mastra/commit/08b3b590dd960dee6c9a6e39272f8927d803db6e)]:
|
|
8
|
+
- @mastra/core@1.37.0-alpha.3
|
|
9
|
+
|
|
10
|
+
## 1.1.40-alpha.4
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [[`df1947a`](https://github.com/mastra-ai/mastra/commit/df1947affa40f742067542251fac7ca759492ef4), [`ee59b74`](https://github.com/mastra-ai/mastra/commit/ee59b743ce73ad11784b4d9c6fbba8568edee1c8), [`a97b1a0`](https://github.com/mastra-ai/mastra/commit/a97b1a0abaed83946c3519d1e0f680d0815b8a67)]:
|
|
15
|
+
- @mastra/core@1.37.0-alpha.2
|
|
16
|
+
|
|
3
17
|
## 1.1.40-alpha.2
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/mcp-docs-server",
|
|
3
|
-
"version": "1.1.40-alpha.
|
|
3
|
+
"version": "1.1.40-alpha.7",
|
|
4
4
|
"description": "MCP server for accessing Mastra.ai documentation, changelogs, and news.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"jsdom": "^26.1.0",
|
|
30
30
|
"local-pkg": "^1.1.2",
|
|
31
31
|
"zod": "^4.3.6",
|
|
32
|
-
"@mastra/core": "1.37.0-alpha.
|
|
32
|
+
"@mastra/core": "1.37.0-alpha.3",
|
|
33
33
|
"@mastra/mcp": "^1.8.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
"tsx": "^4.21.0",
|
|
47
47
|
"typescript": "^6.0.3",
|
|
48
48
|
"vitest": "4.1.5",
|
|
49
|
-
"@internal/lint": "0.0.97",
|
|
50
49
|
"@internal/types-builder": "0.0.72",
|
|
51
|
-
"@
|
|
50
|
+
"@internal/lint": "0.0.97",
|
|
51
|
+
"@mastra/core": "1.37.0-alpha.3"
|
|
52
52
|
},
|
|
53
53
|
"homepage": "https://mastra.ai",
|
|
54
54
|
"repository": {
|