@mastra/mcp-docs-server 1.0.0-beta.13 → 1.0.0-beta.14
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/organized/changelogs/%40mastra%2Fagent-builder.md +19 -19
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +28 -28
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +98 -98
- package/.docs/organized/changelogs/%40mastra%2Fconvex.md +30 -0
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +171 -171
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +12 -12
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +22 -22
- package/.docs/organized/changelogs/%40mastra%2Frag.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Freact.md +9 -2
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +94 -94
- package/.docs/organized/changelogs/create-mastra.md +3 -3
- package/.docs/organized/changelogs/mastra.md +17 -17
- package/.docs/organized/code-examples/agent-v6.md +151 -0
- package/.docs/organized/code-examples/ai-elements.md +1 -1
- package/.docs/raw/agents/adding-voice.mdx +2 -3
- package/.docs/raw/agents/agent-approval.mdx +5 -6
- package/.docs/raw/agents/agent-memory.mdx +22 -30
- package/.docs/raw/agents/guardrails.mdx +60 -50
- package/.docs/raw/agents/networks.mdx +8 -12
- package/.docs/raw/agents/overview.mdx +39 -23
- package/.docs/raw/agents/processors.mdx +20 -19
- package/.docs/raw/agents/structured-output.mdx +11 -7
- package/.docs/raw/agents/using-tools.mdx +4 -5
- package/.docs/raw/deployment/mastra-server.mdx +3 -3
- package/.docs/raw/deployment/overview.mdx +7 -0
- package/.docs/raw/deployment/web-framework.mdx +4 -6
- package/.docs/raw/evals/custom-scorers.mdx +9 -6
- package/.docs/raw/evals/overview.mdx +3 -6
- package/.docs/raw/evals/running-in-ci.mdx +2 -2
- package/.docs/raw/getting-started/manual-install.mdx +20 -20
- package/.docs/raw/getting-started/mcp-docs-server.mdx +2 -2
- package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +4 -4
- package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +30 -30
- package/.docs/raw/guides/build-your-ui/assistant-ui.mdx +8 -8
- package/.docs/raw/guides/build-your-ui/copilotkit.mdx +11 -11
- package/.docs/raw/guides/deployment/amazon-ec2.mdx +9 -9
- package/.docs/raw/guides/deployment/aws-lambda.mdx +11 -11
- package/.docs/raw/guides/deployment/azure-app-services.mdx +2 -2
- package/.docs/raw/guides/deployment/cloudflare-deployer.mdx +5 -6
- package/.docs/raw/guides/deployment/digital-ocean.mdx +10 -10
- package/.docs/raw/guides/deployment/index.mdx +1 -1
- package/.docs/raw/guides/deployment/inngest.mdx +386 -0
- package/.docs/raw/guides/deployment/netlify-deployer.mdx +4 -4
- package/.docs/raw/guides/deployment/vercel-deployer.mdx +5 -6
- package/.docs/raw/guides/getting-started/astro.mdx +292 -451
- package/.docs/raw/guides/getting-started/express.mdx +7 -7
- package/.docs/raw/guides/getting-started/hono.mdx +18 -18
- package/.docs/raw/guides/getting-started/next-js.mdx +19 -20
- package/.docs/raw/guides/getting-started/quickstart.mdx +4 -4
- package/.docs/raw/guides/getting-started/sveltekit.mdx +238 -409
- package/.docs/raw/guides/getting-started/vite-react.mdx +21 -21
- package/.docs/raw/guides/guide/ai-recruiter.mdx +10 -10
- package/.docs/raw/guides/guide/chef-michel.mdx +9 -11
- package/.docs/raw/guides/guide/notes-mcp-server.mdx +15 -15
- package/.docs/raw/guides/guide/research-assistant.mdx +13 -13
- package/.docs/raw/guides/guide/stock-agent.mdx +5 -5
- package/.docs/raw/guides/guide/web-search.mdx +8 -8
- package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +7 -7
- package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +2 -2
- package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +1 -1
- package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +0 -2
- package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +21 -23
- package/.docs/raw/index.mdx +2 -2
- package/.docs/raw/mastra-cloud/setting-up.mdx +6 -2
- package/.docs/raw/mcp/overview.mdx +31 -13
- package/.docs/raw/mcp/publishing-mcp-server.mdx +2 -2
- package/.docs/raw/memory/memory-processors.mdx +9 -9
- package/.docs/raw/memory/message-history.mdx +69 -0
- package/.docs/raw/memory/overview.mdx +34 -76
- package/.docs/raw/memory/semantic-recall.mdx +58 -49
- package/.docs/raw/memory/storage.mdx +188 -0
- package/.docs/raw/memory/working-memory.mdx +7 -7
- package/.docs/raw/observability/logging.mdx +9 -10
- package/.docs/raw/observability/overview.mdx +0 -1
- package/.docs/raw/observability/tracing/bridges/otel.mdx +2 -2
- package/.docs/raw/observability/tracing/exporters/default.mdx +3 -3
- package/.docs/raw/observability/tracing/exporters/langfuse.mdx +1 -2
- package/.docs/raw/observability/tracing/overview.mdx +23 -25
- package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +3 -3
- package/.docs/raw/rag/chunking-and-embedding.mdx +6 -6
- package/.docs/raw/rag/graph-rag.mdx +7 -7
- package/.docs/raw/rag/overview.mdx +1 -1
- package/.docs/raw/rag/retrieval.mdx +21 -22
- package/.docs/raw/rag/vector-databases.mdx +22 -22
- package/.docs/raw/reference/agents/agent.mdx +3 -3
- package/.docs/raw/reference/agents/generate.mdx +1 -1
- package/.docs/raw/reference/agents/generateLegacy.mdx +2 -2
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +2 -2
- package/.docs/raw/reference/agents/getDefaultOptions.mdx +2 -2
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +2 -2
- package/.docs/raw/reference/agents/getDescription.mdx +1 -1
- package/.docs/raw/reference/agents/getInstructions.mdx +2 -2
- package/.docs/raw/reference/agents/getLLM.mdx +2 -2
- package/.docs/raw/reference/agents/getMemory.mdx +2 -2
- package/.docs/raw/reference/agents/getModel.mdx +2 -2
- package/.docs/raw/reference/agents/getTools.mdx +2 -2
- package/.docs/raw/reference/agents/getVoice.mdx +2 -2
- package/.docs/raw/reference/agents/listAgents.mdx +2 -2
- package/.docs/raw/reference/agents/listScorers.mdx +2 -2
- package/.docs/raw/reference/agents/listTools.mdx +2 -2
- package/.docs/raw/reference/agents/listWorkflows.mdx +2 -2
- package/.docs/raw/reference/agents/network.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/chat-route.mdx +2 -2
- package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/network-route.mdx +2 -2
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +6 -6
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-v4-messages.mdx +3 -3
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-v5-messages.mdx +3 -3
- package/.docs/raw/reference/ai-sdk/with-mastra.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/workflow-route.mdx +2 -2
- package/.docs/raw/reference/auth/auth0.mdx +1 -2
- package/.docs/raw/reference/auth/clerk.mdx +1 -2
- package/.docs/raw/reference/auth/firebase.mdx +2 -4
- package/.docs/raw/reference/auth/jwt.mdx +1 -2
- package/.docs/raw/reference/auth/supabase.mdx +1 -2
- package/.docs/raw/reference/auth/workos.mdx +1 -2
- package/.docs/raw/reference/cli/create-mastra.mdx +10 -10
- package/.docs/raw/reference/cli/mastra.mdx +9 -9
- package/.docs/raw/reference/client-js/agents.mdx +1 -2
- package/.docs/raw/reference/client-js/mastra-client.mdx +1 -1
- package/.docs/raw/reference/core/getAgent.mdx +1 -1
- package/.docs/raw/reference/core/getAgentById.mdx +1 -1
- package/.docs/raw/reference/core/getDeployer.mdx +1 -1
- package/.docs/raw/reference/core/getLogger.mdx +1 -1
- package/.docs/raw/reference/core/getMCPServer.mdx +1 -1
- package/.docs/raw/reference/core/getMCPServerById.mdx +1 -1
- package/.docs/raw/reference/core/getMemory.mdx +2 -2
- package/.docs/raw/reference/core/getServer.mdx +1 -1
- package/.docs/raw/reference/core/getStorage.mdx +2 -2
- package/.docs/raw/reference/core/getStoredAgentById.mdx +3 -3
- package/.docs/raw/reference/core/getTelemetry.mdx +1 -1
- package/.docs/raw/reference/core/getVector.mdx +1 -1
- package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
- package/.docs/raw/reference/core/listAgents.mdx +1 -1
- package/.docs/raw/reference/core/listLogs.mdx +1 -1
- package/.docs/raw/reference/core/listLogsByRunId.mdx +1 -1
- package/.docs/raw/reference/core/listMCPServers.mdx +1 -1
- package/.docs/raw/reference/core/listMemory.mdx +2 -2
- package/.docs/raw/reference/core/listStoredAgents.mdx +4 -4
- package/.docs/raw/reference/core/listVectors.mdx +1 -1
- package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
- package/.docs/raw/reference/core/setLogger.mdx +1 -1
- package/.docs/raw/reference/core/setStorage.mdx +2 -2
- package/.docs/raw/reference/core/setTelemetry.mdx +1 -1
- package/.docs/raw/reference/deployer/cloudflare.mdx +1 -2
- package/.docs/raw/reference/deployer/deployer.mdx +0 -1
- package/.docs/raw/reference/deployer/netlify.mdx +1 -1
- package/.docs/raw/reference/deployer/vercel.mdx +2 -4
- package/.docs/raw/reference/evals/answer-relevancy.mdx +1 -1
- package/.docs/raw/reference/evals/answer-similarity.mdx +1 -1
- package/.docs/raw/reference/evals/bias.mdx +1 -1
- package/.docs/raw/reference/evals/completeness.mdx +1 -1
- package/.docs/raw/reference/evals/content-similarity.mdx +1 -1
- package/.docs/raw/reference/evals/context-precision.mdx +1 -1
- package/.docs/raw/reference/evals/faithfulness.mdx +1 -1
- package/.docs/raw/reference/evals/hallucination.mdx +1 -1
- package/.docs/raw/reference/evals/keyword-coverage.mdx +1 -1
- package/.docs/raw/reference/evals/prompt-alignment.mdx +7 -7
- package/.docs/raw/reference/evals/textual-difference.mdx +1 -1
- package/.docs/raw/reference/evals/tone-consistency.mdx +1 -1
- package/.docs/raw/reference/evals/tool-call-accuracy.mdx +10 -10
- package/.docs/raw/reference/evals/toxicity.mdx +1 -1
- package/.docs/raw/reference/logging/pino-logger.mdx +6 -7
- package/.docs/raw/reference/memory/createThread.mdx +2 -2
- package/.docs/raw/reference/memory/deleteMessages.mdx +2 -2
- package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +2 -2
- package/.docs/raw/reference/memory/memory-class.mdx +3 -3
- package/.docs/raw/reference/memory/query.mdx +2 -2
- package/.docs/raw/reference/memory/recall.mdx +2 -2
- package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +1 -1
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +2 -2
- package/.docs/raw/reference/processors/language-detector.mdx +2 -2
- package/.docs/raw/reference/processors/message-history-processor.mdx +2 -2
- package/.docs/raw/reference/processors/moderation-processor.mdx +3 -3
- package/.docs/raw/reference/processors/pii-detector.mdx +3 -3
- package/.docs/raw/reference/processors/processor-interface.mdx +13 -13
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +2 -2
- package/.docs/raw/reference/processors/semantic-recall-processor.mdx +2 -2
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +2 -2
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +2 -2
- package/.docs/raw/reference/processors/tool-call-filter.mdx +3 -3
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +2 -2
- package/.docs/raw/reference/processors/working-memory-processor.mdx +3 -3
- package/.docs/raw/reference/rag/chunk.mdx +1 -1
- package/.docs/raw/reference/rag/extract-params.mdx +2 -2
- package/.docs/raw/reference/rag/metadata-filters.mdx +7 -7
- package/.docs/raw/reference/server/create-route.mdx +13 -13
- package/.docs/raw/reference/server/express-adapter.mdx +6 -7
- package/.docs/raw/reference/server/hono-adapter.mdx +6 -7
- package/.docs/raw/reference/server/mastra-server.mdx +20 -20
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +3 -3
- package/.docs/raw/reference/storage/cloudflare.mdx +2 -2
- package/.docs/raw/reference/storage/convex.mdx +6 -6
- package/.docs/raw/reference/storage/dynamodb.mdx +4 -4
- package/.docs/raw/reference/storage/lance.mdx +3 -3
- package/.docs/raw/reference/storage/libsql.mdx +69 -54
- package/.docs/raw/reference/storage/mongodb.mdx +80 -7
- package/.docs/raw/reference/storage/mssql.mdx +4 -4
- package/.docs/raw/{memory → reference}/storage/overview.mdx +12 -110
- package/.docs/raw/reference/storage/postgresql.mdx +78 -7
- package/.docs/raw/reference/storage/upstash.mdx +74 -2
- package/.docs/raw/reference/streaming/agents/stream.mdx +5 -5
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +2 -2
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/resumeStream.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/stream.mdx +2 -2
- package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +4 -4
- package/.docs/raw/reference/templates/overview.mdx +1 -2
- package/.docs/raw/reference/tools/create-tool.mdx +1 -4
- package/.docs/raw/reference/tools/vector-query-tool.mdx +1 -1
- package/.docs/raw/reference/vectors/astra.mdx +3 -3
- package/.docs/raw/reference/vectors/chroma.mdx +3 -3
- package/.docs/raw/reference/vectors/convex.mdx +12 -12
- package/.docs/raw/reference/vectors/couchbase.mdx +5 -5
- package/.docs/raw/reference/vectors/duckdb.mdx +10 -10
- package/.docs/raw/reference/vectors/elasticsearch.mdx +4 -4
- package/.docs/raw/reference/vectors/lance.mdx +4 -4
- package/.docs/raw/reference/vectors/libsql.mdx +61 -11
- package/.docs/raw/reference/vectors/mongodb.mdx +58 -5
- package/.docs/raw/reference/vectors/pg.mdx +53 -6
- package/.docs/raw/reference/vectors/pinecone.mdx +3 -3
- package/.docs/raw/reference/vectors/qdrant.mdx +3 -3
- package/.docs/raw/reference/vectors/s3vectors.mdx +6 -6
- package/.docs/raw/reference/vectors/turbopuffer.mdx +4 -4
- package/.docs/raw/reference/vectors/upstash.mdx +55 -6
- package/.docs/raw/reference/vectors/vectorize.mdx +3 -3
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/restart.mdx +1 -3
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/start.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/startAsync.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +5 -5
- package/.docs/raw/reference/workflows/run.mdx +1 -1
- package/.docs/raw/reference/workflows/step.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +6 -6
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +7 -7
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow.mdx +3 -3
- package/.docs/raw/server/auth/auth0.mdx +20 -14
- package/.docs/raw/server/auth/clerk.mdx +16 -9
- package/.docs/raw/server/auth/firebase.mdx +21 -15
- package/.docs/raw/server/auth/jwt.mdx +14 -7
- package/.docs/raw/server/auth/supabase.mdx +16 -9
- package/.docs/raw/server/auth/workos.mdx +19 -13
- package/.docs/raw/server/custom-adapters.mdx +10 -10
- package/.docs/raw/server/custom-api-routes.mdx +2 -4
- package/.docs/raw/server/mastra-client.mdx +24 -13
- package/.docs/raw/server/mastra-server.mdx +3 -3
- package/.docs/raw/server/middleware.mdx +7 -7
- package/.docs/raw/server/request-context.mdx +31 -30
- package/.docs/raw/server/server-adapters.mdx +6 -6
- package/.docs/raw/streaming/events.mdx +14 -7
- package/.docs/raw/streaming/overview.mdx +21 -10
- package/.docs/raw/streaming/tool-streaming.mdx +6 -6
- package/.docs/raw/streaming/workflow-streaming.mdx +6 -8
- package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
- package/.docs/raw/tools-mcp/mcp-overview.mdx +31 -12
- package/.docs/raw/tools-mcp/overview.mdx +9 -10
- package/.docs/raw/voice/overview.mdx +1 -1
- package/.docs/raw/workflows/agents-and-tools.mdx +28 -19
- package/.docs/raw/workflows/control-flow.mdx +27 -40
- package/.docs/raw/workflows/error-handling.mdx +15 -22
- package/.docs/raw/workflows/human-in-the-loop.mdx +6 -7
- package/.docs/raw/workflows/inngest-workflow.mdx +8 -9
- package/.docs/raw/workflows/input-data-mapping.mdx +7 -7
- package/.docs/raw/workflows/overview.mdx +33 -22
- package/.docs/raw/workflows/snapshots.mdx +14 -44
- package/.docs/raw/workflows/suspend-and-resume.mdx +7 -7
- package/.docs/raw/workflows/time-travel.mdx +16 -16
- package/.docs/raw/workflows/workflow-state.mdx +5 -8
- package/CHANGELOG.md +9 -0
- package/dist/logger.d.ts +3 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/stdio.js +53 -0
- package/package.json +4 -4
- package/.docs/raw/memory/conversation-history.mdx +0 -24
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +0 -140
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -150
- package/.docs/raw/memory/storage/memory-with-pg.mdx +0 -138
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +0 -146
- package/.docs/raw/memory/threads-and-resources.mdx +0 -95
|
@@ -13,12 +13,11 @@ When deploying to Mastra Cloud, logs are shown on the [Logs](/docs/v1/mastra-clo
|
|
|
13
13
|
|
|
14
14
|
When [initializing a new Mastra project](/guides/v1/getting-started/quickstart) using the CLI, `PinoLogger` is included by default.
|
|
15
15
|
|
|
16
|
-
```typescript title="src/mastra/index.ts"
|
|
16
|
+
```typescript title="src/mastra/index.ts"
|
|
17
17
|
import { Mastra } from "@mastra/core/mastra";
|
|
18
18
|
import { PinoLogger } from "@mastra/loggers";
|
|
19
19
|
|
|
20
20
|
export const mastra = new Mastra({
|
|
21
|
-
// ...
|
|
22
21
|
logger: new PinoLogger({
|
|
23
22
|
name: "Mastra",
|
|
24
23
|
level: "info",
|
|
@@ -26,7 +25,11 @@ export const mastra = new Mastra({
|
|
|
26
25
|
});
|
|
27
26
|
```
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
:::info
|
|
29
|
+
|
|
30
|
+
Visit [PinoLogger](/reference/v1/logging/pino-logger) for all available configuration options.
|
|
31
|
+
|
|
32
|
+
:::
|
|
30
33
|
|
|
31
34
|
## Customizing logs
|
|
32
35
|
|
|
@@ -36,14 +39,12 @@ Mastra provides access to a logger instance via the `mastra.getLogger()` method,
|
|
|
36
39
|
|
|
37
40
|
Within a workflow step, access the logger via the `mastra` parameter inside the `execute` function. This allows you to log messages relevant to the step’s execution.
|
|
38
41
|
|
|
39
|
-
```typescript {
|
|
42
|
+
```typescript {6-7} title="src/mastra/workflows/test-workflow.ts"
|
|
40
43
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
41
44
|
import { z } from "zod";
|
|
42
45
|
|
|
43
46
|
const step1 = createStep({
|
|
44
|
-
//...
|
|
45
47
|
execute: async ({ mastra }) => {
|
|
46
|
-
|
|
47
48
|
const logger = mastra.getLogger();
|
|
48
49
|
logger.info("workflow info log");
|
|
49
50
|
|
|
@@ -62,12 +63,11 @@ export const testWorkflow = createWorkflow({...})
|
|
|
62
63
|
|
|
63
64
|
Similarly, tools have access to the logger instance via the `mastra` parameter. Use this to log tool specific activity during execution.
|
|
64
65
|
|
|
65
|
-
```typescript {
|
|
66
|
+
```typescript {6-7} title="src/mastra/tools/test-tool.ts"
|
|
66
67
|
import { createTool } from "@mastra/core/tools";
|
|
67
68
|
import { z } from "zod";
|
|
68
69
|
|
|
69
70
|
export const testTool = createTool({
|
|
70
|
-
// ...
|
|
71
71
|
execute: async ({ mastra }) => {
|
|
72
72
|
const logger = mastra?.getLogger();
|
|
73
73
|
logger?.info("tool info log");
|
|
@@ -85,12 +85,11 @@ Logger methods accept an optional second argument for additional data. This can
|
|
|
85
85
|
|
|
86
86
|
In this example, the log message includes an object with a key of `agent` and a value of the `testAgent` instance.
|
|
87
87
|
|
|
88
|
-
```typescript {
|
|
88
|
+
```typescript {10} title="src/mastra/workflows/test-workflow.ts"
|
|
89
89
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
90
90
|
import { z } from "zod";
|
|
91
91
|
|
|
92
92
|
const step1 = createStep({
|
|
93
|
-
//...
|
|
94
93
|
execute: async ({ mastra }) => {
|
|
95
94
|
|
|
96
95
|
const testAgent = mastra.getAgent("testAgent");
|
|
@@ -70,7 +70,7 @@ Using the OtelBridge requires two steps:
|
|
|
70
70
|
|
|
71
71
|
Create an instrumentation file that initializes OTEL. This must run before your application code:
|
|
72
72
|
|
|
73
|
-
```typescript title="instrumentation.ts"
|
|
73
|
+
```typescript title="instrumentation.ts"
|
|
74
74
|
import { NodeSDK } from "@opentelemetry/sdk-node";
|
|
75
75
|
import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
|
|
76
76
|
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
|
|
@@ -99,7 +99,7 @@ export { sdk };
|
|
|
99
99
|
|
|
100
100
|
Add the OtelBridge to your Mastra observability config:
|
|
101
101
|
|
|
102
|
-
```typescript title="src/mastra/index.ts"
|
|
102
|
+
```typescript title="src/mastra/index.ts"
|
|
103
103
|
import { Mastra } from "@mastra/core";
|
|
104
104
|
import { Observability } from "@mastra/observability";
|
|
105
105
|
import { OtelBridge } from "@mastra/otel-bridge";
|
|
@@ -11,7 +11,7 @@ The `DefaultExporter` persists traces to your configured storage backend, making
|
|
|
11
11
|
|
|
12
12
|
### Prerequisites
|
|
13
13
|
|
|
14
|
-
1. **Storage Backend**: Configure a storage provider (
|
|
14
|
+
1. **Storage Backend**: Configure a storage provider (libSQL, PostgreSQL, etc.)
|
|
15
15
|
2. **Studio**: Install for viewing traces locally
|
|
16
16
|
|
|
17
17
|
### Basic Setup
|
|
@@ -102,7 +102,7 @@ If you set the strategy to `'auto'`, the `DefaultExporter` automatically selects
|
|
|
102
102
|
|
|
103
103
|
| Storage Provider | Preferred Strategy | Supported Strategies | Notes |
|
|
104
104
|
| ----------------------------------------------- | ------------------ | ----------------------------------------- | ------------------------------------- |
|
|
105
|
-
| **[
|
|
105
|
+
| **[libSQL](/reference/v1/storage/libsql)** | batch-with-updates | realtime, batch-with-updates, insert-only | Default storage, good for development |
|
|
106
106
|
| **[PostgreSQL](/reference/v1/storage/postgresql)** | batch-with-updates | batch-with-updates, insert-only | Recommended for production |
|
|
107
107
|
|
|
108
108
|
### Strategy Benefits
|
|
@@ -160,4 +160,4 @@ new DefaultExporter({
|
|
|
160
160
|
|
|
161
161
|
- [Tracing Overview](/docs/v1/observability/tracing/overview)
|
|
162
162
|
- [CloudExporter](/docs/v1/observability/tracing/exporters/cloud)
|
|
163
|
-
- [Storage Configuration](/docs/v1/memory/storage
|
|
163
|
+
- [Storage Configuration](/docs/v1/memory/storage)
|
|
@@ -117,7 +117,6 @@ Use `withLangfusePrompt` with `buildTracingOptions` for the cleanest API:
|
|
|
117
117
|
|
|
118
118
|
```typescript title="src/agents/support-agent.ts"
|
|
119
119
|
import { Agent } from "@mastra/core/agent";
|
|
120
|
-
import { openai } from "@ai-sdk/openai";
|
|
121
120
|
import { buildTracingOptions } from "@mastra/observability";
|
|
122
121
|
import { withLangfusePrompt } from "@mastra/langfuse";
|
|
123
122
|
import { Langfuse } from "langfuse";
|
|
@@ -133,7 +132,7 @@ const prompt = await langfuse.getPrompt("customer-support");
|
|
|
133
132
|
export const supportAgent = new Agent({
|
|
134
133
|
name: "support-agent",
|
|
135
134
|
instructions: prompt.prompt, // Use the prompt text from Langfuse
|
|
136
|
-
model: openai
|
|
135
|
+
model: "openai/gpt-4o",
|
|
137
136
|
defaultGenerateOptions: {
|
|
138
137
|
tracingOptions: buildTracingOptions(withLangfusePrompt(prompt)),
|
|
139
138
|
## Using Tags
|
|
@@ -21,12 +21,11 @@ Traces are created by:
|
|
|
21
21
|
|
|
22
22
|
### Basic Config
|
|
23
23
|
|
|
24
|
-
```ts title="src/mastra/index.ts"
|
|
24
|
+
```ts title="src/mastra/index.ts"
|
|
25
25
|
import { Mastra } from "@mastra/core";
|
|
26
26
|
import { Observability } from "@mastra/observability";
|
|
27
27
|
|
|
28
28
|
export const mastra = new Mastra({
|
|
29
|
-
// ... other config
|
|
30
29
|
observability: new Observability({
|
|
31
30
|
default: { enabled: true }, // Enables DefaultExporter and CloudExporter
|
|
32
31
|
}),
|
|
@@ -50,7 +49,7 @@ When enabled, the default configuration automatically includes:
|
|
|
50
49
|
|
|
51
50
|
This default configuration is a minimal helper that equates to this more verbose configuration:
|
|
52
51
|
|
|
53
|
-
```ts title="src/mastra/index.ts"
|
|
52
|
+
```ts title="src/mastra/index.ts"
|
|
54
53
|
import {
|
|
55
54
|
Observability,
|
|
56
55
|
CloudExporter,
|
|
@@ -59,7 +58,6 @@ import {
|
|
|
59
58
|
} from "@mastra/observability";
|
|
60
59
|
|
|
61
60
|
export const mastra = new Mastra({
|
|
62
|
-
// ... other config
|
|
63
61
|
observability: new Observability({
|
|
64
62
|
configs: {
|
|
65
63
|
default: {
|
|
@@ -174,7 +172,7 @@ sampling: {
|
|
|
174
172
|
|
|
175
173
|
### Complete Example
|
|
176
174
|
|
|
177
|
-
```ts title="src/mastra/index.ts"
|
|
175
|
+
```ts title="src/mastra/index.ts"
|
|
178
176
|
export const mastra = new Mastra({
|
|
179
177
|
observability: new Observability({
|
|
180
178
|
configs: {
|
|
@@ -214,7 +212,7 @@ Note that only a single config can be used for a specific execution. But a singl
|
|
|
214
212
|
|
|
215
213
|
Use `configSelector` to choose the appropriate tracing configuration based on request context:
|
|
216
214
|
|
|
217
|
-
```ts title="src/mastra/index.ts"
|
|
215
|
+
```ts title="src/mastra/index.ts"
|
|
218
216
|
export const mastra = new Mastra({
|
|
219
217
|
observability: new Observability({
|
|
220
218
|
configs: {
|
|
@@ -259,7 +257,7 @@ export const mastra = new Mastra({
|
|
|
259
257
|
|
|
260
258
|
A common pattern is to select configurations based on deployment environment:
|
|
261
259
|
|
|
262
|
-
```ts title="src/mastra/index.ts"
|
|
260
|
+
```ts title="src/mastra/index.ts"
|
|
263
261
|
export const mastra = new Mastra({
|
|
264
262
|
observability: new Observability({
|
|
265
263
|
configs: {
|
|
@@ -293,7 +291,7 @@ export const mastra = new Mastra({
|
|
|
293
291
|
|
|
294
292
|
Having both the default config enabled and adding custom configs is an invalid configuration of Observability. Use either the default or custom config, but not both.
|
|
295
293
|
|
|
296
|
-
```ts title="src/mastra/index.ts"
|
|
294
|
+
```ts title="src/mastra/index.ts"
|
|
297
295
|
export const mastra = new Mastra({
|
|
298
296
|
observability: new Observability({
|
|
299
297
|
default: { enabled: true }, // This will always be used!
|
|
@@ -311,7 +309,7 @@ export const mastra = new Mastra({
|
|
|
311
309
|
|
|
312
310
|
When creating a custom config with external exporters, you might lose access to Studio and Cloud. To maintain access while adding external exporters, include the default exporters in your custom config:
|
|
313
311
|
|
|
314
|
-
```ts title="src/mastra/index.ts"
|
|
312
|
+
```ts title="src/mastra/index.ts"
|
|
315
313
|
import { DefaultExporter, CloudExporter } from "@mastra/observability";
|
|
316
314
|
import { ArizeExporter } from "@mastra/arize";
|
|
317
315
|
|
|
@@ -354,7 +352,7 @@ Custom metadata allows you to attach additional context to your traces, making i
|
|
|
354
352
|
|
|
355
353
|
You can add metadata to any span using the tracing context:
|
|
356
354
|
|
|
357
|
-
```ts
|
|
355
|
+
```ts
|
|
358
356
|
execute: async ({ inputData, tracingContext }) => {
|
|
359
357
|
const startTime = Date.now();
|
|
360
358
|
const response = await fetch(inputData.endpoint);
|
|
@@ -384,7 +382,7 @@ Instead of manually adding metadata to each span, you can configure Mastra to au
|
|
|
384
382
|
|
|
385
383
|
Define which RequestContext keys to extract in your tracing configuration. These keys will be automatically included as metadata for all spans created with this configuration:
|
|
386
384
|
|
|
387
|
-
```ts title="src/mastra/index.ts"
|
|
385
|
+
```ts title="src/mastra/index.ts"
|
|
388
386
|
export const mastra = new Mastra({
|
|
389
387
|
observability: new Observability({
|
|
390
388
|
configs: {
|
|
@@ -400,7 +398,7 @@ export const mastra = new Mastra({
|
|
|
400
398
|
|
|
401
399
|
Now when you execute agents or workflows with a RequestContext, these values are automatically extracted:
|
|
402
400
|
|
|
403
|
-
```ts
|
|
401
|
+
```ts
|
|
404
402
|
const requestContext = new RequestContext();
|
|
405
403
|
requestContext.set("userId", "user-123");
|
|
406
404
|
requestContext.set("environment", "production");
|
|
@@ -417,7 +415,7 @@ const result = await agent.generate({
|
|
|
417
415
|
|
|
418
416
|
You can add trace-specific keys using `tracingOptions.requestContextKeys`. These are merged with the configuration-level keys:
|
|
419
417
|
|
|
420
|
-
```ts
|
|
418
|
+
```ts
|
|
421
419
|
const requestContext = new RequestContext();
|
|
422
420
|
requestContext.set("userId", "user-123");
|
|
423
421
|
requestContext.set("environment", "production");
|
|
@@ -438,7 +436,7 @@ const result = await agent.generate({
|
|
|
438
436
|
|
|
439
437
|
Use dot notation to extract nested values from RequestContext:
|
|
440
438
|
|
|
441
|
-
```ts
|
|
439
|
+
```ts
|
|
442
440
|
export const mastra = new Mastra({
|
|
443
441
|
observability: new Observability({
|
|
444
442
|
configs: {
|
|
@@ -470,7 +468,7 @@ Tags are string labels that help you categorize and filter traces. Unlike metada
|
|
|
470
468
|
|
|
471
469
|
Use `tracingOptions.tags` to add tags when executing agents or workflows:
|
|
472
470
|
|
|
473
|
-
```ts
|
|
471
|
+
```ts
|
|
474
472
|
// With agents
|
|
475
473
|
const result = await agent.generate({
|
|
476
474
|
messages: [{ role: "user", content: "Hello" }],
|
|
@@ -500,7 +498,7 @@ const result = await run.start({
|
|
|
500
498
|
- **OtelBridge** - `mastra.tags` span attribute
|
|
501
499
|
- **Combinable with metadata**: You can use both `tags` and `metadata` in the same `tracingOptions`
|
|
502
500
|
|
|
503
|
-
```ts
|
|
501
|
+
```ts
|
|
504
502
|
const result = await agent.generate({
|
|
505
503
|
messages: [{ role: "user", content: "Analyze this" }],
|
|
506
504
|
tracingOptions: {
|
|
@@ -522,7 +520,7 @@ const result = await agent.generate({
|
|
|
522
520
|
|
|
523
521
|
When creating child spans within tools or workflow steps, you can pass the `requestContext` parameter to enable metadata extraction:
|
|
524
522
|
|
|
525
|
-
```ts
|
|
523
|
+
```ts
|
|
526
524
|
execute: async ({ tracingContext, requestContext }) => {
|
|
527
525
|
// Create child span WITH requestContext - gets metadata extraction
|
|
528
526
|
const dbSpan = tracingContext.currentSpan?.createChildSpan({
|
|
@@ -553,7 +551,7 @@ Child spans allow you to track fine-grained operations within your workflow step
|
|
|
553
551
|
|
|
554
552
|
Create child spans inside a tool call or workflow step to track specific operations:
|
|
555
553
|
|
|
556
|
-
```ts
|
|
554
|
+
```ts
|
|
557
555
|
execute: async ({ inputData, tracingContext }) => {
|
|
558
556
|
// Create another child span for the main database operation
|
|
559
557
|
const querySpan = tracingContext.currentSpan?.createChildSpan({
|
|
@@ -598,7 +596,7 @@ Span processors allow you to transform, filter, or enrich trace data before it's
|
|
|
598
596
|
|
|
599
597
|
You can create custom span processors by implementing the `SpanOutputProcessor` interface. Here's a simple example that converts all input text in spans to lowercase:
|
|
600
598
|
|
|
601
|
-
```ts title="src/processors/lowercase-input-processor.ts"
|
|
599
|
+
```ts title="src/processors/lowercase-input-processor.ts"
|
|
602
600
|
import type { SpanOutputProcessor, AnySpan } from "@mastra/observability";
|
|
603
601
|
|
|
604
602
|
export class LowercaseInputProcessor implements SpanOutputProcessor {
|
|
@@ -643,7 +641,7 @@ When you execute agents or workflows with tracing enabled, the response includes
|
|
|
643
641
|
|
|
644
642
|
Both `generate` and `stream` methods return the trace ID in their response:
|
|
645
643
|
|
|
646
|
-
```ts
|
|
644
|
+
```ts
|
|
647
645
|
// Using generate
|
|
648
646
|
const result = await agent.generate({
|
|
649
647
|
messages: [{ role: "user", content: "Hello" }],
|
|
@@ -663,7 +661,7 @@ console.log("Trace ID:", streamResult.traceId);
|
|
|
663
661
|
|
|
664
662
|
Workflow executions also return trace IDs:
|
|
665
663
|
|
|
666
|
-
```ts
|
|
664
|
+
```ts
|
|
667
665
|
// Create a workflow run
|
|
668
666
|
const run = await mastra.getWorkflow("myWorkflow").createRun();
|
|
669
667
|
|
|
@@ -703,7 +701,7 @@ When running Mastra agents or workflows within applications that have existing d
|
|
|
703
701
|
|
|
704
702
|
Use the `tracingOptions` parameter to specify the trace context from your parent system:
|
|
705
703
|
|
|
706
|
-
```ts
|
|
704
|
+
```ts
|
|
707
705
|
// Get trace context from your existing tracing system
|
|
708
706
|
const parentTraceId = getCurrentTraceId(); // Your tracing system
|
|
709
707
|
const parentSpanId = getCurrentSpanId(); // Your tracing system
|
|
@@ -723,7 +721,7 @@ const result = await agent.generate("Analyze this data", {
|
|
|
723
721
|
|
|
724
722
|
Integration with OpenTelemetry allows Mastra traces to appear seamlessly in your existing observability platform:
|
|
725
723
|
|
|
726
|
-
```ts
|
|
724
|
+
```ts
|
|
727
725
|
import { trace } from "@opentelemetry/api";
|
|
728
726
|
|
|
729
727
|
// Get the current OpenTelemetry span
|
|
@@ -744,7 +742,7 @@ if (spanContext) {
|
|
|
744
742
|
|
|
745
743
|
Workflows support the same pattern for trace propagation:
|
|
746
744
|
|
|
747
|
-
```ts
|
|
745
|
+
```ts
|
|
748
746
|
const workflow = mastra.getWorkflow("data-pipeline");
|
|
749
747
|
const run = await workflow.createRun();
|
|
750
748
|
|
|
@@ -775,7 +773,7 @@ This ensures tracing never crashes your application, even with malformed input.
|
|
|
775
773
|
|
|
776
774
|
Here's a complete example showing trace propagation in an Express application:
|
|
777
775
|
|
|
778
|
-
```ts
|
|
776
|
+
```ts
|
|
779
777
|
import { trace } from "@opentelemetry/api";
|
|
780
778
|
import express from "express";
|
|
781
779
|
|
|
@@ -11,7 +11,7 @@ The Sensitive Data Filter is a span processor that automatically redacts sensiti
|
|
|
11
11
|
|
|
12
12
|
By default, the Sensitive Data Filter is automatically enabled when you use the standard Mastra configuration:
|
|
13
13
|
|
|
14
|
-
```ts title="src/mastra/index.ts"
|
|
14
|
+
```ts title="src/mastra/index.ts"
|
|
15
15
|
export const mastra = new Mastra({
|
|
16
16
|
observability: new Observability({
|
|
17
17
|
default: { enabled: true }, // Automatically includes SensitiveDataFilter
|
|
@@ -63,7 +63,7 @@ When a sensitive field is detected, its value is replaced with `[REDACTED]` by d
|
|
|
63
63
|
|
|
64
64
|
You can customize which fields are redacted and how redaction appears:
|
|
65
65
|
|
|
66
|
-
```ts title="src/mastra/index.ts"
|
|
66
|
+
```ts title="src/mastra/index.ts"
|
|
67
67
|
import { SensitiveDataFilter, DefaultExporter, Observability } from "@mastra/observability";
|
|
68
68
|
|
|
69
69
|
export const mastra = new Mastra({
|
|
@@ -210,7 +210,7 @@ The Sensitive Data Filter is designed to be lightweight and efficient:
|
|
|
210
210
|
|
|
211
211
|
If you need to disable sensitive data filtering (not recommended for production):
|
|
212
212
|
|
|
213
|
-
```ts title="src/mastra/index.ts"
|
|
213
|
+
```ts title="src/mastra/index.ts"
|
|
214
214
|
export const mastra = new Mastra({
|
|
215
215
|
observability: new Observability({
|
|
216
216
|
configs: {
|
|
@@ -7,7 +7,7 @@ description: Guide on chunking and embedding documents in Mastra for efficient p
|
|
|
7
7
|
|
|
8
8
|
Before processing, create a MDocument instance from your content. You can initialize it from various formats:
|
|
9
9
|
|
|
10
|
-
```ts
|
|
10
|
+
```ts
|
|
11
11
|
const docFromText = MDocument.fromText("Your plain text content...");
|
|
12
12
|
const docFromHTML = MDocument.fromHTML("<html>Your HTML content...</html>");
|
|
13
13
|
const docFromMarkdown = MDocument.fromMarkdown("# Your Markdown content...");
|
|
@@ -34,7 +34,7 @@ Each strategy accepts different parameters optimized for its chunking approach.
|
|
|
34
34
|
|
|
35
35
|
Here's an example of how to use the `recursive` strategy:
|
|
36
36
|
|
|
37
|
-
```ts
|
|
37
|
+
```ts
|
|
38
38
|
const chunks = await doc.chunk({
|
|
39
39
|
strategy: "recursive",
|
|
40
40
|
maxSize: 512,
|
|
@@ -48,7 +48,7 @@ const chunks = await doc.chunk({
|
|
|
48
48
|
|
|
49
49
|
For text where preserving sentence structure is important, here's an example of how to use the `sentence` strategy:
|
|
50
50
|
|
|
51
|
-
```ts
|
|
51
|
+
```ts
|
|
52
52
|
const chunks = await doc.chunk({
|
|
53
53
|
strategy: "sentence",
|
|
54
54
|
maxSize: 450,
|
|
@@ -61,7 +61,7 @@ const chunks = await doc.chunk({
|
|
|
61
61
|
|
|
62
62
|
For markdown documents where preserving the semantic relationships between sections is important, here's an example of how to use the `semantic-markdown` strategy:
|
|
63
63
|
|
|
64
|
-
```ts
|
|
64
|
+
```ts
|
|
65
65
|
const chunks = await doc.chunk({
|
|
66
66
|
strategy: "semantic-markdown",
|
|
67
67
|
joinThreshold: 500,
|
|
@@ -83,7 +83,7 @@ Transform chunks into embeddings using your preferred provider. Mastra supports
|
|
|
83
83
|
|
|
84
84
|
The simplest way is to use Mastra's model router with `provider/model` strings:
|
|
85
85
|
|
|
86
|
-
```ts
|
|
86
|
+
```ts
|
|
87
87
|
import { ModelRouterEmbeddingModel } from "@mastra/core/llm";
|
|
88
88
|
import { embedMany } from "ai";
|
|
89
89
|
|
|
@@ -142,7 +142,7 @@ When storing embeddings, the vector database index must be configured to match t
|
|
|
142
142
|
|
|
143
143
|
Here's an example showing document processing and embedding generation with both providers:
|
|
144
144
|
|
|
145
|
-
```ts
|
|
145
|
+
```ts
|
|
146
146
|
import { embedMany } from "ai";
|
|
147
147
|
|
|
148
148
|
import { MDocument } from "@mastra/rag";
|
|
@@ -34,7 +34,7 @@ This process helps surface information that might not be semantically similar to
|
|
|
34
34
|
|
|
35
35
|
The Graph Query Tool provides agents with the ability to perform graph-based retrieval:
|
|
36
36
|
|
|
37
|
-
```ts
|
|
37
|
+
```ts
|
|
38
38
|
import { createGraphRAGTool } from "@mastra/rag";
|
|
39
39
|
import { ModelRouterEmbeddingModel } from "@mastra/core/llm";
|
|
40
40
|
|
|
@@ -55,7 +55,7 @@ The `graphOptions` parameter controls how the knowledge graph is built and trave
|
|
|
55
55
|
- `threshold`: Similarity threshold (0-1) for determining which chunks are related. Higher values create sparser graphs with stronger connections; lower values create denser graphs with more potential relationships.
|
|
56
56
|
- `dimension`: Vector embedding dimension. Must match the embedding model's output dimension (e.g., 1536 for OpenAI's text-embedding-3-small).
|
|
57
57
|
|
|
58
|
-
```ts
|
|
58
|
+
```ts
|
|
59
59
|
const graphQueryTool = createGraphRAGTool({
|
|
60
60
|
vectorStoreName: "pgVector",
|
|
61
61
|
indexName: "embeddings",
|
|
@@ -71,7 +71,7 @@ const graphQueryTool = createGraphRAGTool({
|
|
|
71
71
|
|
|
72
72
|
Integrate the graph query tool with an agent to enable graph-based retrieval:
|
|
73
73
|
|
|
74
|
-
```ts
|
|
74
|
+
```ts
|
|
75
75
|
import { Agent } from "@mastra/core/agent";
|
|
76
76
|
|
|
77
77
|
const ragAgent = new Agent({
|
|
@@ -91,7 +91,7 @@ Base your answers on the context provided by the tool, and clearly state if the
|
|
|
91
91
|
|
|
92
92
|
Before using graph-based retrieval, process documents into chunks and store their embeddings:
|
|
93
93
|
|
|
94
|
-
```ts
|
|
94
|
+
```ts
|
|
95
95
|
import { MDocument } from "@mastra/rag";
|
|
96
96
|
import { embedMany } from "ai";
|
|
97
97
|
import { ModelRouterEmbeddingModel } from "@mastra/core/llm";
|
|
@@ -129,7 +129,7 @@ await vectorStore.upsert({
|
|
|
129
129
|
|
|
130
130
|
Once configured, the agent can perform graph-based queries:
|
|
131
131
|
|
|
132
|
-
```ts
|
|
132
|
+
```ts
|
|
133
133
|
const query = "What are the effects of infrastructure changes on local businesses?";
|
|
134
134
|
const response = await ragAgent.generate(query);
|
|
135
135
|
console.log(response.text);
|
|
@@ -153,7 +153,7 @@ The threshold parameter significantly impacts retrieval quality:
|
|
|
153
153
|
|
|
154
154
|
Start with 0.7 and adjust based on your specific use case:
|
|
155
155
|
|
|
156
|
-
```ts
|
|
156
|
+
```ts
|
|
157
157
|
// Strict connections for precise answers
|
|
158
158
|
const strictGraphTool = createGraphRAGTool({
|
|
159
159
|
vectorStoreName: "pgVector",
|
|
@@ -179,7 +179,7 @@ const broadGraphTool = createGraphRAGTool({
|
|
|
179
179
|
|
|
180
180
|
GraphRAG can be used alongside other retrieval approaches:
|
|
181
181
|
|
|
182
|
-
```ts
|
|
182
|
+
```ts
|
|
183
183
|
import { createVectorQueryTool } from "@mastra/rag";
|
|
184
184
|
|
|
185
185
|
const vectorQueryTool = createVectorQueryTool({
|
|
@@ -18,7 +18,7 @@ Mastra's RAG system provides:
|
|
|
18
18
|
|
|
19
19
|
To implement RAG, you process your documents into chunks, create embeddings, store them in a vector database, and then retrieve relevant context at query time.
|
|
20
20
|
|
|
21
|
-
```ts
|
|
21
|
+
```ts
|
|
22
22
|
import { embedMany } from "ai";
|
|
23
23
|
import { PgVector } from "@mastra/pg";
|
|
24
24
|
import { MDocument } from "@mastra/rag";
|