@mastra/mcp-docs-server 0.13.37 → 0.13.38
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/%40internal%2Fchangeset-cli.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +2 -0
- package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +8 -8
- package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +2 -0
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +23 -23
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +69 -69
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +25 -25
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +27 -27
- package/.docs/organized/changelogs/%40mastra%2Freact.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +23 -23
- package/.docs/organized/changelogs/create-mastra.md +5 -5
- package/.docs/organized/changelogs/mastra.md +17 -17
- package/.docs/raw/agents/adding-voice.mdx +20 -9
- package/.docs/raw/agents/agent-memory.mdx +55 -39
- package/.docs/raw/agents/guardrails.mdx +68 -61
- package/.docs/raw/agents/networks.mdx +50 -46
- package/.docs/raw/agents/overview.mdx +125 -88
- package/.docs/raw/agents/using-tools.mdx +14 -15
- package/.docs/raw/auth/auth0.mdx +28 -27
- package/.docs/raw/auth/clerk.mdx +22 -20
- package/.docs/raw/auth/firebase.mdx +42 -39
- package/.docs/raw/auth/index.mdx +1 -1
- package/.docs/raw/auth/jwt.mdx +18 -16
- package/.docs/raw/auth/supabase.mdx +20 -18
- package/.docs/raw/auth/workos.mdx +32 -26
- package/.docs/raw/community/contributing-templates.mdx +7 -7
- package/.docs/raw/community/discord.mdx +2 -2
- package/.docs/raw/community/licensing.mdx +1 -1
- package/.docs/raw/course/03-agent-memory/26-updating-mastra-export-comprehensive.md +0 -32
- package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +41 -22
- package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +48 -29
- package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +52 -24
- package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +86 -55
- package/.docs/raw/deployment/cloud-providers/index.mdx +16 -13
- package/.docs/raw/deployment/monorepo.mdx +32 -42
- package/.docs/raw/deployment/overview.mdx +15 -15
- package/.docs/raw/deployment/server-deployment.mdx +18 -23
- package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +16 -17
- package/.docs/raw/deployment/serverless-platforms/index.mdx +15 -12
- package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +14 -23
- package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +16 -23
- package/.docs/raw/deployment/web-framework.mdx +14 -14
- package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +138 -145
- package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +54 -43
- package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +51 -36
- package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +161 -120
- package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +59 -48
- package/.docs/raw/frameworks/servers/express.mdx +45 -44
- package/.docs/raw/frameworks/web-frameworks/astro.mdx +245 -162
- package/.docs/raw/frameworks/web-frameworks/next-js.mdx +112 -69
- package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +189 -164
- package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +94 -81
- package/.docs/raw/getting-started/installation.mdx +164 -133
- package/.docs/raw/getting-started/mcp-docs-server.mdx +36 -39
- package/.docs/raw/getting-started/project-structure.mdx +34 -42
- package/.docs/raw/getting-started/studio.mdx +40 -58
- package/.docs/raw/getting-started/templates.mdx +22 -27
- package/.docs/raw/index.mdx +9 -9
- package/.docs/raw/mastra-cloud/dashboard.mdx +10 -10
- package/.docs/raw/mastra-cloud/observability.mdx +7 -8
- package/.docs/raw/mastra-cloud/overview.mdx +16 -22
- package/.docs/raw/mastra-cloud/setting-up.mdx +33 -20
- package/.docs/raw/memory/conversation-history.mdx +2 -2
- package/.docs/raw/memory/overview.mdx +21 -23
- package/.docs/raw/memory/semantic-recall.mdx +14 -13
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +27 -28
- package/.docs/raw/memory/storage/memory-with-pg.mdx +26 -26
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +26 -27
- package/.docs/raw/memory/threads-and-resources.mdx +23 -20
- package/.docs/raw/memory/working-memory.mdx +27 -38
- package/.docs/raw/observability/ai-tracing/exporters/arize.mdx +30 -29
- package/.docs/raw/observability/ai-tracing/exporters/braintrust.mdx +8 -9
- package/.docs/raw/observability/ai-tracing/exporters/cloud.mdx +17 -16
- package/.docs/raw/observability/ai-tracing/exporters/default.mdx +31 -32
- package/.docs/raw/observability/ai-tracing/exporters/langfuse.mdx +18 -17
- package/.docs/raw/observability/ai-tracing/exporters/langsmith.mdx +14 -14
- package/.docs/raw/observability/ai-tracing/exporters/otel.mdx +56 -46
- package/.docs/raw/observability/ai-tracing/overview.mdx +145 -122
- package/.docs/raw/observability/ai-tracing/processors/sensitive-data-filter.mdx +57 -36
- package/.docs/raw/observability/logging.mdx +14 -17
- package/.docs/raw/observability/nextjs-tracing.mdx +5 -5
- package/.docs/raw/observability/otel-tracing.mdx +17 -18
- package/.docs/raw/observability/overview.mdx +14 -10
- package/.docs/raw/rag/chunking-and-embedding.mdx +10 -8
- package/.docs/raw/rag/overview.mdx +5 -5
- package/.docs/raw/rag/retrieval.mdx +125 -107
- package/.docs/raw/rag/vector-databases.mdx +232 -223
- package/.docs/raw/reference/agents/agent.mdx +54 -41
- package/.docs/raw/reference/agents/generate.mdx +367 -261
- package/.docs/raw/reference/agents/generateLegacy.mdx +260 -178
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +7 -5
- package/.docs/raw/reference/agents/getDescription.mdx +3 -2
- package/.docs/raw/reference/agents/getInstructions.mdx +7 -5
- package/.docs/raw/reference/agents/getLLM.mdx +11 -7
- package/.docs/raw/reference/agents/getMemory.mdx +7 -5
- package/.docs/raw/reference/agents/getModel.mdx +7 -5
- package/.docs/raw/reference/agents/getScorers.mdx +7 -5
- package/.docs/raw/reference/agents/getTools.mdx +7 -5
- package/.docs/raw/reference/agents/getVoice.mdx +7 -5
- package/.docs/raw/reference/agents/getWorkflows.mdx +7 -5
- package/.docs/raw/reference/agents/listAgents.mdx +6 -4
- package/.docs/raw/reference/agents/network.mdx +171 -116
- package/.docs/raw/reference/auth/auth0.mdx +18 -14
- package/.docs/raw/reference/auth/clerk.mdx +15 -12
- package/.docs/raw/reference/auth/firebase.mdx +23 -16
- package/.docs/raw/reference/auth/jwt.mdx +7 -6
- package/.docs/raw/reference/auth/supabase.mdx +13 -10
- package/.docs/raw/reference/auth/workos.mdx +17 -13
- package/.docs/raw/reference/cli/create-mastra.mdx +61 -44
- package/.docs/raw/reference/cli/mastra.mdx +11 -11
- package/.docs/raw/reference/client-js/agents.mdx +40 -43
- package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
- package/.docs/raw/reference/client-js/logs.mdx +1 -1
- package/.docs/raw/reference/client-js/mastra-client.mdx +21 -13
- package/.docs/raw/reference/client-js/memory.mdx +6 -2
- package/.docs/raw/reference/client-js/observability.mdx +10 -9
- package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
- package/.docs/raw/reference/client-js/tools.mdx +1 -1
- package/.docs/raw/reference/client-js/vectors.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows-legacy.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows.mdx +7 -7
- package/.docs/raw/reference/core/getAgent.mdx +6 -5
- package/.docs/raw/reference/core/getAgentById.mdx +5 -4
- package/.docs/raw/reference/core/getAgents.mdx +3 -3
- package/.docs/raw/reference/core/getDeployer.mdx +4 -3
- package/.docs/raw/reference/core/getLogger.mdx +4 -3
- package/.docs/raw/reference/core/getLogs.mdx +10 -6
- package/.docs/raw/reference/core/getLogsByRunId.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServer.mdx +8 -5
- package/.docs/raw/reference/core/getMCPServers.mdx +4 -3
- package/.docs/raw/reference/core/getMemory.mdx +4 -3
- package/.docs/raw/reference/core/getScorer.mdx +15 -12
- package/.docs/raw/reference/core/getScorerByName.mdx +12 -9
- package/.docs/raw/reference/core/getScorers.mdx +3 -2
- package/.docs/raw/reference/core/getServer.mdx +4 -3
- package/.docs/raw/reference/core/getStorage.mdx +4 -3
- package/.docs/raw/reference/core/getTelemetry.mdx +4 -3
- package/.docs/raw/reference/core/getVector.mdx +6 -4
- package/.docs/raw/reference/core/getVectors.mdx +4 -3
- package/.docs/raw/reference/core/getWorkflow.mdx +7 -4
- package/.docs/raw/reference/core/getWorkflows.mdx +5 -3
- package/.docs/raw/reference/core/mastra-class.mdx +16 -16
- package/.docs/raw/reference/core/setLogger.mdx +6 -4
- package/.docs/raw/reference/core/setStorage.mdx +4 -4
- package/.docs/raw/reference/core/setTelemetry.mdx +4 -3
- package/.docs/raw/reference/deployer/cloudflare.mdx +11 -7
- package/.docs/raw/reference/deployer/deployer.mdx +2 -1
- package/.docs/raw/reference/deployer/netlify.mdx +4 -4
- package/.docs/raw/reference/deployer/vercel.mdx +6 -6
- package/.docs/raw/reference/evals/answer-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/bias.mdx +4 -5
- package/.docs/raw/reference/evals/completeness.mdx +4 -5
- package/.docs/raw/reference/evals/content-similarity.mdx +4 -5
- package/.docs/raw/reference/evals/context-position.mdx +4 -5
- package/.docs/raw/reference/evals/context-precision.mdx +4 -5
- package/.docs/raw/reference/evals/context-relevancy.mdx +4 -5
- package/.docs/raw/reference/evals/contextual-recall.mdx +4 -5
- package/.docs/raw/reference/evals/faithfulness.mdx +4 -5
- package/.docs/raw/reference/evals/hallucination.mdx +4 -6
- package/.docs/raw/reference/evals/keyword-coverage.mdx +4 -5
- package/.docs/raw/reference/evals/prompt-alignment.mdx +4 -6
- package/.docs/raw/reference/evals/summarization.mdx +4 -6
- package/.docs/raw/reference/evals/textual-difference.mdx +4 -5
- package/.docs/raw/reference/evals/tone-consistency.mdx +4 -7
- package/.docs/raw/reference/evals/toxicity.mdx +4 -5
- package/.docs/raw/reference/index.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/after.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/commit.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/createRun.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/else.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/events.mdx +7 -7
- package/.docs/raw/reference/legacyWorkflows/execute.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/if.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resume.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/start.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-class.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/step-function.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/step-options.mdx +6 -6
- package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/suspend.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/then.mdx +5 -5
- package/.docs/raw/reference/legacyWorkflows/until.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/watch.mdx +3 -3
- package/.docs/raw/reference/legacyWorkflows/while.mdx +4 -4
- package/.docs/raw/reference/legacyWorkflows/workflow.mdx +7 -7
- package/.docs/raw/reference/memory/createThread.mdx +10 -10
- package/.docs/raw/reference/memory/deleteMessages.mdx +7 -5
- package/.docs/raw/reference/memory/getThreadById.mdx +6 -5
- package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +11 -10
- package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +10 -9
- package/.docs/raw/reference/memory/{Memory.mdx → memory-class.mdx} +53 -46
- package/.docs/raw/reference/memory/query.mdx +39 -25
- package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +9 -5
- package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +26 -22
- package/.docs/raw/reference/observability/ai-tracing/exporters/arize.mdx +16 -12
- package/.docs/raw/reference/observability/ai-tracing/exporters/braintrust.mdx +14 -14
- package/.docs/raw/reference/observability/ai-tracing/exporters/cloud-exporter.mdx +16 -11
- package/.docs/raw/reference/observability/ai-tracing/exporters/console-exporter.mdx +10 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/default-exporter.mdx +23 -15
- package/.docs/raw/reference/observability/ai-tracing/exporters/langfuse.mdx +6 -6
- package/.docs/raw/reference/observability/ai-tracing/exporters/langsmith.mdx +13 -13
- package/.docs/raw/reference/observability/ai-tracing/exporters/otel.mdx +44 -36
- package/.docs/raw/reference/observability/ai-tracing/interfaces.mdx +115 -106
- package/.docs/raw/reference/observability/ai-tracing/processors/sensitive-data-filter.mdx +37 -32
- package/.docs/raw/reference/observability/ai-tracing/span.mdx +29 -26
- package/.docs/raw/reference/observability/logging/pino-logger.mdx +13 -15
- package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +2 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +12 -14
- package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +3 -3
- package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +4 -4
- package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +2 -2
- package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +1 -1
- package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +1 -1
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +13 -10
- package/.docs/raw/reference/processors/language-detector.mdx +27 -17
- package/.docs/raw/reference/processors/moderation-processor.mdx +26 -17
- package/.docs/raw/reference/processors/pii-detector.mdx +28 -18
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +25 -17
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +26 -17
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +22 -15
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +13 -12
- package/.docs/raw/reference/rag/chunk.mdx +41 -23
- package/.docs/raw/reference/rag/database-config.mdx +56 -38
- package/.docs/raw/reference/rag/document.mdx +1 -1
- package/.docs/raw/reference/rag/embeddings.mdx +1 -1
- package/.docs/raw/reference/rag/extract-params.mdx +1 -1
- package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
- package/.docs/raw/reference/rag/metadata-filters.mdx +23 -26
- package/.docs/raw/reference/rag/rerank.mdx +1 -1
- package/.docs/raw/reference/rag/rerankWithScorer.mdx +2 -2
- package/.docs/raw/reference/scorers/answer-relevancy.mdx +35 -17
- package/.docs/raw/reference/scorers/answer-similarity.mdx +84 -68
- package/.docs/raw/reference/scorers/bias.mdx +22 -19
- package/.docs/raw/reference/scorers/completeness.mdx +21 -16
- package/.docs/raw/reference/scorers/content-similarity.mdx +12 -10
- package/.docs/raw/reference/scorers/context-precision.mdx +73 -64
- package/.docs/raw/reference/scorers/context-relevance.mdx +142 -126
- package/.docs/raw/reference/scorers/create-scorer.mdx +93 -61
- package/.docs/raw/reference/scorers/faithfulness.mdx +21 -13
- package/.docs/raw/reference/scorers/hallucination.mdx +17 -12
- package/.docs/raw/reference/scorers/keyword-coverage.mdx +32 -27
- package/.docs/raw/reference/scorers/mastra-scorer.mdx +39 -33
- package/.docs/raw/reference/scorers/noise-sensitivity.mdx +203 -152
- package/.docs/raw/reference/scorers/prompt-alignment.mdx +186 -132
- package/.docs/raw/reference/scorers/run-experiment.mdx +40 -31
- package/.docs/raw/reference/scorers/textual-difference.mdx +25 -26
- package/.docs/raw/reference/scorers/tone-consistency.mdx +29 -26
- package/.docs/raw/reference/scorers/tool-call-accuracy.mdx +180 -176
- package/.docs/raw/reference/scorers/toxicity.mdx +35 -31
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +1 -1
- package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
- package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
- package/.docs/raw/reference/storage/lance.mdx +1 -1
- package/.docs/raw/reference/storage/libsql.mdx +2 -2
- package/.docs/raw/reference/storage/mongodb.mdx +4 -5
- package/.docs/raw/reference/storage/mssql.mdx +5 -4
- package/.docs/raw/reference/storage/postgresql.mdx +35 -33
- package/.docs/raw/reference/storage/upstash.mdx +6 -5
- package/.docs/raw/reference/streaming/ChunkType.mdx +788 -314
- package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +265 -109
- package/.docs/raw/reference/streaming/agents/stream.mdx +375 -266
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +233 -162
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +4 -4
- package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +5 -5
- package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +24 -20
- package/.docs/raw/reference/streaming/workflows/stream.mdx +35 -26
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +36 -27
- package/.docs/raw/reference/templates/overview.mdx +16 -39
- package/.docs/raw/reference/tools/client.mdx +1 -1
- package/.docs/raw/reference/tools/create-tool.mdx +45 -35
- package/.docs/raw/reference/tools/document-chunker-tool.mdx +2 -2
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +12 -12
- package/.docs/raw/reference/tools/mcp-client.mdx +70 -64
- package/.docs/raw/reference/tools/mcp-server.mdx +91 -78
- package/.docs/raw/reference/tools/vector-query-tool.mdx +48 -38
- package/.docs/raw/reference/vectors/astra.mdx +1 -1
- package/.docs/raw/reference/vectors/chroma.mdx +25 -19
- package/.docs/raw/reference/vectors/couchbase.mdx +4 -4
- package/.docs/raw/reference/vectors/lance.mdx +5 -6
- package/.docs/raw/reference/vectors/libsql.mdx +1 -1
- package/.docs/raw/reference/vectors/mongodb.mdx +1 -1
- package/.docs/raw/reference/vectors/opensearch.mdx +1 -1
- package/.docs/raw/reference/vectors/pg.mdx +8 -4
- package/.docs/raw/reference/vectors/pinecone.mdx +1 -1
- package/.docs/raw/reference/vectors/qdrant.mdx +1 -1
- package/.docs/raw/reference/vectors/s3vectors.mdx +35 -27
- package/.docs/raw/reference/vectors/turbopuffer.mdx +1 -1
- package/.docs/raw/reference/vectors/upstash.mdx +33 -25
- package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
- package/.docs/raw/reference/voice/azure.mdx +1 -1
- package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
- package/.docs/raw/reference/voice/composite-voice.mdx +1 -1
- package/.docs/raw/reference/voice/deepgram.mdx +1 -1
- package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
- package/.docs/raw/reference/voice/google-gemini-live.mdx +6 -4
- package/.docs/raw/reference/voice/google.mdx +1 -1
- package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
- package/.docs/raw/reference/voice/murf.mdx +1 -1
- package/.docs/raw/reference/voice/openai-realtime.mdx +1 -1
- package/.docs/raw/reference/voice/openai.mdx +1 -1
- package/.docs/raw/reference/voice/playai.mdx +1 -1
- package/.docs/raw/reference/voice/sarvam.mdx +1 -1
- package/.docs/raw/reference/voice/speechify.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addInstructions.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addTools.mdx +1 -1
- package/.docs/raw/reference/voice/voice.answer.mdx +1 -1
- package/.docs/raw/reference/voice/voice.close.mdx +1 -1
- package/.docs/raw/reference/voice/voice.connect.mdx +1 -1
- package/.docs/raw/reference/voice/voice.events.mdx +1 -1
- package/.docs/raw/reference/voice/voice.getSpeakers.mdx +23 -30
- package/.docs/raw/reference/voice/voice.listen.mdx +1 -1
- package/.docs/raw/reference/voice/voice.off.mdx +1 -1
- package/.docs/raw/reference/voice/voice.on.mdx +1 -1
- package/.docs/raw/reference/voice/voice.send.mdx +1 -1
- package/.docs/raw/reference/voice/voice.speak.mdx +1 -1
- package/.docs/raw/reference/voice/voice.updateConfig.mdx +1 -1
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -3
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +49 -34
- package/.docs/raw/reference/workflows/run-methods/start.mdx +43 -31
- package/.docs/raw/reference/workflows/run-methods/watch.mdx +7 -8
- package/.docs/raw/reference/workflows/run.mdx +7 -10
- package/.docs/raw/reference/workflows/step.mdx +15 -12
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +7 -7
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +5 -5
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +3 -2
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow.mdx +13 -10
- package/.docs/raw/scorers/custom-scorers.mdx +58 -48
- package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +6 -8
- package/.docs/raw/scorers/evals-old-api/overview.mdx +8 -8
- package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +9 -9
- package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +5 -5
- package/.docs/raw/scorers/off-the-shelf-scorers.mdx +3 -1
- package/.docs/raw/scorers/overview.mdx +20 -19
- package/.docs/raw/server-db/custom-api-routes.mdx +8 -8
- package/.docs/raw/server-db/mastra-client.mdx +56 -54
- package/.docs/raw/server-db/middleware.mdx +11 -7
- package/.docs/raw/server-db/production-server.mdx +5 -7
- package/.docs/raw/server-db/runtime-context.mdx +41 -38
- package/.docs/raw/server-db/storage.mdx +82 -87
- package/.docs/raw/streaming/events.mdx +24 -16
- package/.docs/raw/streaming/overview.mdx +17 -18
- package/.docs/raw/streaming/tool-streaming.mdx +9 -10
- package/.docs/raw/streaming/workflow-streaming.mdx +14 -12
- package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
- package/.docs/raw/tools-mcp/mcp-overview.mdx +92 -102
- package/.docs/raw/tools-mcp/overview.mdx +9 -14
- package/.docs/raw/voice/overview.mdx +273 -250
- package/.docs/raw/voice/speech-to-speech.mdx +14 -12
- package/.docs/raw/voice/speech-to-text.mdx +2 -2
- package/.docs/raw/voice/text-to-speech.mdx +2 -2
- package/.docs/raw/workflows/agents-and-tools.mdx +29 -28
- package/.docs/raw/workflows/control-flow.mdx +24 -24
- package/.docs/raw/workflows/error-handling.mdx +15 -17
- package/.docs/raw/workflows/human-in-the-loop.mdx +39 -39
- package/.docs/raw/workflows/inngest-workflow.mdx +33 -29
- package/.docs/raw/workflows/input-data-mapping.mdx +9 -9
- package/.docs/raw/workflows/overview.mdx +60 -60
- package/.docs/raw/workflows/snapshots.mdx +54 -36
- package/.docs/raw/workflows/suspend-and-resume.mdx +52 -57
- package/.docs/raw/workflows-legacy/control-flow.mdx +15 -17
- package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +3 -1
- package/.docs/raw/workflows-legacy/error-handling.mdx +8 -6
- package/.docs/raw/workflows-legacy/nested-workflows.mdx +6 -0
- package/.docs/raw/workflows-legacy/overview.mdx +28 -26
- package/.docs/raw/workflows-legacy/runtime-variables.mdx +4 -2
- package/.docs/raw/workflows-legacy/steps.mdx +5 -3
- package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +10 -8
- package/.docs/raw/workflows-legacy/variables.mdx +10 -8
- package/CHANGELOG.md +14 -0
- package/package.json +5 -5
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -148
|
@@ -3,7 +3,7 @@ title: "Reference: Context Relevance Scorer | Scorers | Mastra Docs"
|
|
|
3
3
|
description: Documentation for the Context Relevance Scorer in Mastra. Evaluates the relevance and utility of provided context for generating agent responses using weighted relevance scoring.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import PropertiesTable from "@site/src/components/PropertiesTable";
|
|
7
7
|
|
|
8
8
|
# Context Relevance Scorer
|
|
9
9
|
|
|
@@ -14,6 +14,7 @@ It is especially useful for these use cases:
|
|
|
14
14
|
**Content Generation Evaluation**
|
|
15
15
|
|
|
16
16
|
Best for evaluating context quality in:
|
|
17
|
+
|
|
17
18
|
- Chat systems where context usage matters
|
|
18
19
|
- RAG pipelines needing nuanced relevance assessment
|
|
19
20
|
- Systems where missing context affects quality
|
|
@@ -21,6 +22,7 @@ Best for evaluating context quality in:
|
|
|
21
22
|
**Context Selection Optimization**
|
|
22
23
|
|
|
23
24
|
Use when optimizing for:
|
|
25
|
+
|
|
24
26
|
- Comprehensive context coverage
|
|
25
27
|
- Effective context utilization
|
|
26
28
|
- Identifying context gaps
|
|
@@ -50,7 +52,8 @@ Use when optimizing for:
|
|
|
50
52
|
{
|
|
51
53
|
name: "contextExtractor",
|
|
52
54
|
type: "(input, output) => string[]",
|
|
53
|
-
description:
|
|
55
|
+
description:
|
|
56
|
+
"Function to dynamically extract context from the run input and output",
|
|
54
57
|
required: false,
|
|
55
58
|
},
|
|
56
59
|
{
|
|
@@ -68,7 +71,8 @@ Use when optimizing for:
|
|
|
68
71
|
{
|
|
69
72
|
name: "unusedHighRelevanceContext",
|
|
70
73
|
type: "number",
|
|
71
|
-
description:
|
|
74
|
+
description:
|
|
75
|
+
"Penalty per unused high-relevance context (default: 0.1)",
|
|
72
76
|
required: false,
|
|
73
77
|
},
|
|
74
78
|
{
|
|
@@ -80,7 +84,8 @@ Use when optimizing for:
|
|
|
80
84
|
{
|
|
81
85
|
name: "maxMissingContextPenalty",
|
|
82
86
|
type: "number",
|
|
83
|
-
description:
|
|
87
|
+
description:
|
|
88
|
+
"Maximum total missing context penalty (default: 0.5)",
|
|
84
89
|
required: false,
|
|
85
90
|
},
|
|
86
91
|
],
|
|
@@ -104,7 +109,8 @@ Note: Either `context` or `contextExtractor` must be provided. If both are provi
|
|
|
104
109
|
{
|
|
105
110
|
name: "reason",
|
|
106
111
|
type: "string",
|
|
107
|
-
description:
|
|
112
|
+
description:
|
|
113
|
+
"Human-readable explanation of the context relevance evaluation",
|
|
108
114
|
},
|
|
109
115
|
]}
|
|
110
116
|
/>
|
|
@@ -138,6 +144,7 @@ Final Score = max(0, Base Score - Usage Penalty - Missing Penalty) × scale
|
|
|
138
144
|
```
|
|
139
145
|
|
|
140
146
|
**Default Values**:
|
|
147
|
+
|
|
141
148
|
- `unusedHighRelevanceContext` = 0.1 (10% penalty per unused high-relevance context)
|
|
142
149
|
- `missingContextPerItem` = 0.15 (15% penalty per missing context item)
|
|
143
150
|
- `maxMissingContextPenalty` = 0.5 (maximum 50% penalty for missing context)
|
|
@@ -154,6 +161,7 @@ Final Score = max(0, Base Score - Usage Penalty - Missing Penalty) × scale
|
|
|
154
161
|
### Reason analysis
|
|
155
162
|
|
|
156
163
|
The reason field provides insights on:
|
|
164
|
+
|
|
157
165
|
- Relevance level of each context piece (high/medium/low/none)
|
|
158
166
|
- Which context was actually used in the response
|
|
159
167
|
- Penalties applied for unused high-relevance context (configurable via `unusedHighRelevanceContext`)
|
|
@@ -162,6 +170,7 @@ The reason field provides insights on:
|
|
|
162
170
|
### Optimization strategies
|
|
163
171
|
|
|
164
172
|
Use results to improve your system:
|
|
173
|
+
|
|
165
174
|
- **Filter irrelevant context**: Remove low/none relevance pieces before processing
|
|
166
175
|
- **Ensure context usage**: Make sure high-relevance context is incorporated
|
|
167
176
|
- **Fill context gaps**: Add missing information identified by the scorer
|
|
@@ -170,13 +179,13 @@ Use results to improve your system:
|
|
|
170
179
|
|
|
171
180
|
### Difference from Context Precision
|
|
172
181
|
|
|
173
|
-
| Aspect
|
|
174
|
-
|
|
175
|
-
| **Algorithm** | Weighted levels with penalties
|
|
176
|
-
| **Relevance** | Multiple levels (high/medium/low/none) | Binary (yes/no)
|
|
177
|
-
| **Position**
|
|
178
|
-
| **Usage**
|
|
179
|
-
| **Missing**
|
|
182
|
+
| Aspect | Context Relevance | Context Precision |
|
|
183
|
+
| ------------- | -------------------------------------- | ---------------------------------- |
|
|
184
|
+
| **Algorithm** | Weighted levels with penalties | Mean Average Precision (MAP) |
|
|
185
|
+
| **Relevance** | Multiple levels (high/medium/low/none) | Binary (yes/no) |
|
|
186
|
+
| **Position** | Not considered | Critical (rewards early placement) |
|
|
187
|
+
| **Usage** | Tracks and penalizes unused context | Not considered |
|
|
188
|
+
| **Missing** | Identifies and penalizes gaps | Not evaluated |
|
|
180
189
|
|
|
181
190
|
## Scorer configuration
|
|
182
191
|
|
|
@@ -185,16 +194,16 @@ Use results to improve your system:
|
|
|
185
194
|
Control how penalties are applied for unused and missing context:
|
|
186
195
|
|
|
187
196
|
```typescript
|
|
188
|
-
import { createContextRelevanceScorerLLM } from
|
|
197
|
+
import { createContextRelevanceScorerLLM } from "@mastra/evals";
|
|
189
198
|
|
|
190
199
|
// Stricter penalty configuration
|
|
191
200
|
const strictScorer = createContextRelevanceScorerLLM({
|
|
192
|
-
model:
|
|
201
|
+
model: "openai/gpt-4o-mini",
|
|
193
202
|
options: {
|
|
194
203
|
context: [
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
204
|
+
"Einstein won the Nobel Prize for photoelectric effect",
|
|
205
|
+
"He developed the theory of relativity",
|
|
206
|
+
"Einstein was born in Germany",
|
|
198
207
|
],
|
|
199
208
|
penalties: {
|
|
200
209
|
unusedHighRelevanceContext: 0.2, // 20% penalty per unused high-relevance context
|
|
@@ -207,12 +216,12 @@ const strictScorer = createContextRelevanceScorerLLM({
|
|
|
207
216
|
|
|
208
217
|
// Lenient penalty configuration
|
|
209
218
|
const lenientScorer = createContextRelevanceScorerLLM({
|
|
210
|
-
model:
|
|
219
|
+
model: "openai/gpt-4o-mini",
|
|
211
220
|
options: {
|
|
212
221
|
context: [
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
222
|
+
"Einstein won the Nobel Prize for photoelectric effect",
|
|
223
|
+
"He developed the theory of relativity",
|
|
224
|
+
"Einstein was born in Germany",
|
|
216
225
|
],
|
|
217
226
|
penalties: {
|
|
218
227
|
unusedHighRelevanceContext: 0.05, // 5% penalty per unused high-relevance context
|
|
@@ -227,17 +236,18 @@ const testRun = {
|
|
|
227
236
|
input: {
|
|
228
237
|
inputMessages: [
|
|
229
238
|
{
|
|
230
|
-
id:
|
|
231
|
-
role:
|
|
232
|
-
content:
|
|
239
|
+
id: "1",
|
|
240
|
+
role: "user",
|
|
241
|
+
content: "What did Einstein achieve in physics?",
|
|
233
242
|
},
|
|
234
243
|
],
|
|
235
244
|
},
|
|
236
245
|
output: [
|
|
237
246
|
{
|
|
238
|
-
id:
|
|
239
|
-
role:
|
|
240
|
-
content:
|
|
247
|
+
id: "2",
|
|
248
|
+
role: "assistant",
|
|
249
|
+
content:
|
|
250
|
+
"Einstein won the Nobel Prize for his work on the photoelectric effect.",
|
|
241
251
|
},
|
|
242
252
|
],
|
|
243
253
|
};
|
|
@@ -245,26 +255,26 @@ const testRun = {
|
|
|
245
255
|
const strictResult = await strictScorer.run(testRun);
|
|
246
256
|
const lenientResult = await lenientScorer.run(testRun);
|
|
247
257
|
|
|
248
|
-
console.log(
|
|
249
|
-
console.log(
|
|
258
|
+
console.log("Strict penalties:", strictResult.score); // Lower score due to unused context
|
|
259
|
+
console.log("Lenient penalties:", lenientResult.score); // Higher score, less penalty
|
|
250
260
|
```
|
|
251
261
|
|
|
252
262
|
### Dynamic Context Extraction
|
|
253
263
|
|
|
254
264
|
```typescript
|
|
255
265
|
const scorer = createContextRelevanceScorerLLM({
|
|
256
|
-
model:
|
|
266
|
+
model: "openai/gpt-4o",
|
|
257
267
|
options: {
|
|
258
268
|
contextExtractor: (input, output) => {
|
|
259
269
|
// Extract context based on the query
|
|
260
|
-
const userQuery = input?.inputMessages?.[0]?.content ||
|
|
261
|
-
if (userQuery.includes(
|
|
270
|
+
const userQuery = input?.inputMessages?.[0]?.content || "";
|
|
271
|
+
if (userQuery.includes("Einstein")) {
|
|
262
272
|
return [
|
|
263
|
-
|
|
264
|
-
|
|
273
|
+
"Einstein won the Nobel Prize for the photoelectric effect",
|
|
274
|
+
"He developed the theory of relativity",
|
|
265
275
|
];
|
|
266
276
|
}
|
|
267
|
-
return [
|
|
277
|
+
return ["General physics information"];
|
|
268
278
|
},
|
|
269
279
|
penalties: {
|
|
270
280
|
unusedHighRelevanceContext: 0.15,
|
|
@@ -277,12 +287,9 @@ const scorer = createContextRelevanceScorerLLM({
|
|
|
277
287
|
|
|
278
288
|
```typescript
|
|
279
289
|
const scorer = createContextRelevanceScorerLLM({
|
|
280
|
-
model:
|
|
290
|
+
model: "openai/gpt-4o-mini",
|
|
281
291
|
options: {
|
|
282
|
-
context: [
|
|
283
|
-
'Relevant information...',
|
|
284
|
-
'Supporting details...',
|
|
285
|
-
],
|
|
292
|
+
context: ["Relevant information...", "Supporting details..."],
|
|
286
293
|
scale: 100, // Scale scores from 0-100 instead of 0-1
|
|
287
294
|
},
|
|
288
295
|
});
|
|
@@ -294,21 +301,17 @@ const scorer = createContextRelevanceScorerLLM({
|
|
|
294
301
|
|
|
295
302
|
```typescript
|
|
296
303
|
const scorer = createContextRelevanceScorerLLM({
|
|
297
|
-
model:
|
|
304
|
+
model: "openai/gpt-4o-mini",
|
|
298
305
|
options: {
|
|
299
306
|
contextExtractor: (input, output) => {
|
|
300
|
-
const query = input?.inputMessages?.[0]?.content ||
|
|
301
|
-
|
|
307
|
+
const query = input?.inputMessages?.[0]?.content || "";
|
|
308
|
+
|
|
302
309
|
// Combine from multiple sources
|
|
303
310
|
const kbContext = knowledgeBase.search(query);
|
|
304
311
|
const docContext = documentStore.retrieve(query);
|
|
305
312
|
const cacheContext = contextCache.get(query);
|
|
306
|
-
|
|
307
|
-
return [
|
|
308
|
-
...kbContext,
|
|
309
|
-
...docContext,
|
|
310
|
-
...cacheContext,
|
|
311
|
-
];
|
|
313
|
+
|
|
314
|
+
return [...kbContext, ...docContext, ...cacheContext];
|
|
312
315
|
},
|
|
313
316
|
scale: 1,
|
|
314
317
|
},
|
|
@@ -322,15 +325,15 @@ const scorer = createContextRelevanceScorerLLM({
|
|
|
322
325
|
This example shows excellent context relevance where all context directly supports the response:
|
|
323
326
|
|
|
324
327
|
```typescript
|
|
325
|
-
import { createContextRelevanceScorerLLM } from
|
|
328
|
+
import { createContextRelevanceScorerLLM } from "@mastra/evals";
|
|
326
329
|
|
|
327
330
|
const scorer = createContextRelevanceScorerLLM({
|
|
328
|
-
model:
|
|
331
|
+
model: "openai/gpt-4o-mini",
|
|
329
332
|
options: {
|
|
330
333
|
context: [
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
+
"Einstein won the Nobel Prize for his discovery of the photoelectric effect in 1921.",
|
|
335
|
+
"He published his theory of special relativity in 1905.",
|
|
336
|
+
"His general relativity theory, published in 1915, revolutionized our understanding of gravity.",
|
|
334
337
|
],
|
|
335
338
|
scale: 1,
|
|
336
339
|
},
|
|
@@ -340,17 +343,18 @@ const result = await scorer.run({
|
|
|
340
343
|
input: {
|
|
341
344
|
inputMessages: [
|
|
342
345
|
{
|
|
343
|
-
id:
|
|
344
|
-
role:
|
|
345
|
-
content:
|
|
346
|
+
id: "1",
|
|
347
|
+
role: "user",
|
|
348
|
+
content: "What were Einstein's major scientific achievements?",
|
|
346
349
|
},
|
|
347
350
|
],
|
|
348
351
|
},
|
|
349
352
|
output: [
|
|
350
353
|
{
|
|
351
|
-
id:
|
|
352
|
-
role:
|
|
353
|
-
content:
|
|
354
|
+
id: "2",
|
|
355
|
+
role: "assistant",
|
|
356
|
+
content:
|
|
357
|
+
"Einstein's major achievements include the Nobel Prize for the photoelectric effect, special relativity in 1905, and general relativity in 1915.",
|
|
354
358
|
},
|
|
355
359
|
],
|
|
356
360
|
});
|
|
@@ -368,17 +372,17 @@ console.log(result);
|
|
|
368
372
|
This example shows moderate relevance with some context being irrelevant or unused:
|
|
369
373
|
|
|
370
374
|
```typescript
|
|
371
|
-
import { createContextRelevanceScorerLLM } from
|
|
375
|
+
import { createContextRelevanceScorerLLM } from "@mastra/evals";
|
|
372
376
|
|
|
373
377
|
const scorer = createContextRelevanceScorerLLM({
|
|
374
|
-
model:
|
|
378
|
+
model: "openai/gpt-4o-mini",
|
|
375
379
|
options: {
|
|
376
380
|
context: [
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
381
|
+
"Solar eclipses occur when the Moon blocks the Sun.",
|
|
382
|
+
"The Moon moves between the Earth and Sun during eclipses.",
|
|
383
|
+
"The Moon is visible at night.",
|
|
384
|
+
"Stars twinkle due to atmospheric interference.",
|
|
385
|
+
"Total eclipses can last up to 7.5 minutes.",
|
|
382
386
|
],
|
|
383
387
|
scale: 1,
|
|
384
388
|
},
|
|
@@ -388,17 +392,18 @@ const result = await scorer.run({
|
|
|
388
392
|
input: {
|
|
389
393
|
inputMessages: [
|
|
390
394
|
{
|
|
391
|
-
id:
|
|
392
|
-
role:
|
|
393
|
-
content:
|
|
395
|
+
id: "1",
|
|
396
|
+
role: "user",
|
|
397
|
+
content: "What causes solar eclipses?",
|
|
394
398
|
},
|
|
395
399
|
],
|
|
396
400
|
},
|
|
397
401
|
output: [
|
|
398
402
|
{
|
|
399
|
-
id:
|
|
400
|
-
role:
|
|
401
|
-
content:
|
|
403
|
+
id: "2",
|
|
404
|
+
role: "assistant",
|
|
405
|
+
content:
|
|
406
|
+
"Solar eclipses happen when the Moon moves between Earth and the Sun, blocking sunlight.",
|
|
402
407
|
},
|
|
403
408
|
],
|
|
404
409
|
});
|
|
@@ -412,14 +417,14 @@ console.log(result);
|
|
|
412
417
|
|
|
413
418
|
// With custom penalty configuration
|
|
414
419
|
const customScorer = createContextRelevanceScorerLLM({
|
|
415
|
-
model:
|
|
420
|
+
model: "openai/gpt-4o-mini",
|
|
416
421
|
options: {
|
|
417
422
|
context: [
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
+
"Solar eclipses occur when the Moon blocks the Sun.",
|
|
424
|
+
"The Moon moves between the Earth and Sun during eclipses.",
|
|
425
|
+
"The Moon is visible at night.",
|
|
426
|
+
"Stars twinkle due to atmospheric interference.",
|
|
427
|
+
"Total eclipses can last up to 7.5 minutes.",
|
|
423
428
|
],
|
|
424
429
|
penalties: {
|
|
425
430
|
unusedHighRelevanceContext: 0.05, // Lower penalty for unused context
|
|
@@ -430,8 +435,19 @@ const customScorer = createContextRelevanceScorerLLM({
|
|
|
430
435
|
});
|
|
431
436
|
|
|
432
437
|
const customResult = await customScorer.run({
|
|
433
|
-
input: {
|
|
434
|
-
|
|
438
|
+
input: {
|
|
439
|
+
inputMessages: [
|
|
440
|
+
{ id: "1", role: "user", content: "What causes solar eclipses?" },
|
|
441
|
+
],
|
|
442
|
+
},
|
|
443
|
+
output: [
|
|
444
|
+
{
|
|
445
|
+
id: "2",
|
|
446
|
+
role: "assistant",
|
|
447
|
+
content:
|
|
448
|
+
"Solar eclipses happen when the Moon moves between Earth and the Sun, blocking sunlight.",
|
|
449
|
+
},
|
|
450
|
+
],
|
|
435
451
|
});
|
|
436
452
|
|
|
437
453
|
console.log(customResult);
|
|
@@ -447,17 +463,17 @@ console.log(customResult);
|
|
|
447
463
|
This example shows poor context relevance with mostly irrelevant information:
|
|
448
464
|
|
|
449
465
|
```typescript
|
|
450
|
-
import { createContextRelevanceScorerLLM } from
|
|
466
|
+
import { createContextRelevanceScorerLLM } from "@mastra/evals";
|
|
451
467
|
|
|
452
468
|
const scorer = createContextRelevanceScorerLLM({
|
|
453
|
-
model:
|
|
469
|
+
model: "openai/gpt-4o-mini",
|
|
454
470
|
options: {
|
|
455
471
|
context: [
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
472
|
+
"The Great Barrier Reef is located in Australia.",
|
|
473
|
+
"Coral reefs need warm water to survive.",
|
|
474
|
+
"Many fish species live in coral reefs.",
|
|
475
|
+
"Australia has six states and two territories.",
|
|
476
|
+
"The capital of Australia is Canberra.",
|
|
461
477
|
],
|
|
462
478
|
scale: 1,
|
|
463
479
|
},
|
|
@@ -467,17 +483,17 @@ const result = await scorer.run({
|
|
|
467
483
|
input: {
|
|
468
484
|
inputMessages: [
|
|
469
485
|
{
|
|
470
|
-
id:
|
|
471
|
-
role:
|
|
472
|
-
content:
|
|
486
|
+
id: "1",
|
|
487
|
+
role: "user",
|
|
488
|
+
content: "What is the capital of Australia?",
|
|
473
489
|
},
|
|
474
490
|
],
|
|
475
491
|
},
|
|
476
492
|
output: [
|
|
477
493
|
{
|
|
478
|
-
id:
|
|
479
|
-
role:
|
|
480
|
-
content:
|
|
494
|
+
id: "2",
|
|
495
|
+
role: "assistant",
|
|
496
|
+
content: "The capital of Australia is Canberra.",
|
|
481
497
|
},
|
|
482
498
|
],
|
|
483
499
|
});
|
|
@@ -495,33 +511,33 @@ console.log(result);
|
|
|
495
511
|
Extract context dynamically based on the run input:
|
|
496
512
|
|
|
497
513
|
```typescript
|
|
498
|
-
import { createContextRelevanceScorerLLM } from
|
|
514
|
+
import { createContextRelevanceScorerLLM } from "@mastra/evals";
|
|
499
515
|
|
|
500
516
|
const scorer = createContextRelevanceScorerLLM({
|
|
501
|
-
model:
|
|
517
|
+
model: "openai/gpt-4o-mini",
|
|
502
518
|
options: {
|
|
503
519
|
contextExtractor: (input, output) => {
|
|
504
520
|
// Extract query from input
|
|
505
|
-
const query = input?.inputMessages?.[0]?.content ||
|
|
506
|
-
|
|
521
|
+
const query = input?.inputMessages?.[0]?.content || "";
|
|
522
|
+
|
|
507
523
|
// Dynamically retrieve context based on query
|
|
508
|
-
if (query.toLowerCase().includes(
|
|
524
|
+
if (query.toLowerCase().includes("einstein")) {
|
|
509
525
|
return [
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
526
|
+
"Einstein developed E=mc²",
|
|
527
|
+
"He won the Nobel Prize in 1921",
|
|
528
|
+
"His theories revolutionized physics",
|
|
513
529
|
];
|
|
514
530
|
}
|
|
515
|
-
|
|
516
|
-
if (query.toLowerCase().includes(
|
|
531
|
+
|
|
532
|
+
if (query.toLowerCase().includes("climate")) {
|
|
517
533
|
return [
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
534
|
+
"Global temperatures are rising",
|
|
535
|
+
"CO2 levels affect climate",
|
|
536
|
+
"Renewable energy reduces emissions",
|
|
521
537
|
];
|
|
522
538
|
}
|
|
523
|
-
|
|
524
|
-
return [
|
|
539
|
+
|
|
540
|
+
return ["General knowledge base entry"];
|
|
525
541
|
},
|
|
526
542
|
penalties: {
|
|
527
543
|
unusedHighRelevanceContext: 0.15, // 15% penalty for unused relevant context
|
|
@@ -538,19 +554,19 @@ const scorer = createContextRelevanceScorerLLM({
|
|
|
538
554
|
Integrate with RAG pipelines to evaluate retrieved context:
|
|
539
555
|
|
|
540
556
|
```typescript
|
|
541
|
-
import { createContextRelevanceScorerLLM } from
|
|
557
|
+
import { createContextRelevanceScorerLLM } from "@mastra/evals";
|
|
542
558
|
|
|
543
559
|
const scorer = createContextRelevanceScorerLLM({
|
|
544
|
-
model:
|
|
560
|
+
model: "openai/gpt-4o-mini",
|
|
545
561
|
options: {
|
|
546
562
|
contextExtractor: (input, output) => {
|
|
547
563
|
// Extract from RAG retrieval results
|
|
548
564
|
const ragResults = input.metadata?.ragResults || [];
|
|
549
|
-
|
|
565
|
+
|
|
550
566
|
// Return the text content of retrieved documents
|
|
551
567
|
return ragResults
|
|
552
|
-
.filter(doc => doc.relevanceScore > 0.5)
|
|
553
|
-
.map(doc => doc.content);
|
|
568
|
+
.filter((doc) => doc.relevanceScore > 0.5)
|
|
569
|
+
.map((doc) => doc.content);
|
|
554
570
|
},
|
|
555
571
|
penalties: {
|
|
556
572
|
unusedHighRelevanceContext: 0.12, // Moderate penalty for unused RAG context
|
|
@@ -564,18 +580,18 @@ const scorer = createContextRelevanceScorerLLM({
|
|
|
564
580
|
// Evaluate RAG system performance
|
|
565
581
|
const evaluateRAG = async (testCases) => {
|
|
566
582
|
const results = [];
|
|
567
|
-
|
|
583
|
+
|
|
568
584
|
for (const testCase of testCases) {
|
|
569
585
|
const score = await scorer.run(testCase);
|
|
570
586
|
results.push({
|
|
571
587
|
query: testCase.input.inputMessages[0].content,
|
|
572
588
|
relevanceScore: score.score,
|
|
573
589
|
feedback: score.reason,
|
|
574
|
-
unusedContext: score.reason.includes(
|
|
575
|
-
missingContext: score.reason.includes(
|
|
590
|
+
unusedContext: score.reason.includes("unused"),
|
|
591
|
+
missingContext: score.reason.includes("missing"),
|
|
576
592
|
});
|
|
577
593
|
}
|
|
578
|
-
|
|
594
|
+
|
|
579
595
|
return results;
|
|
580
596
|
};
|
|
581
597
|
```
|
|
@@ -584,16 +600,16 @@ const evaluateRAG = async (testCases) => {
|
|
|
584
600
|
|
|
585
601
|
Choose the right scorer for your needs:
|
|
586
602
|
|
|
587
|
-
| Use Case
|
|
588
|
-
|
|
589
|
-
| **RAG evaluation**
|
|
590
|
-
| **Context quality**
|
|
591
|
-
| **Missing detection**
|
|
592
|
-
| **Usage tracking**
|
|
593
|
-
| **Position sensitivity** | ✗ Position agnostic
|
|
603
|
+
| Use Case | Context Relevance | Context Precision |
|
|
604
|
+
| ------------------------ | -------------------- | ------------------------- |
|
|
605
|
+
| **RAG evaluation** | When usage matters | When ranking matters |
|
|
606
|
+
| **Context quality** | Nuanced levels | Binary relevance |
|
|
607
|
+
| **Missing detection** | ✓ Identifies gaps | ✗ Not evaluated |
|
|
608
|
+
| **Usage tracking** | ✓ Tracks utilization | ✗ Not considered |
|
|
609
|
+
| **Position sensitivity** | ✗ Position agnostic | ✓ Rewards early placement |
|
|
594
610
|
|
|
595
611
|
## Related
|
|
596
612
|
|
|
597
613
|
- [Context Precision Scorer](/reference/scorers/context-precision) - Evaluates context ranking using MAP
|
|
598
614
|
- [Faithfulness Scorer](/reference/scorers/faithfulness) - Measures answer groundedness in context
|
|
599
|
-
- [Custom Scorers](/docs/scorers/custom-scorers) - Creating your own evaluation metrics
|
|
615
|
+
- [Custom Scorers](/docs/scorers/custom-scorers) - Creating your own evaluation metrics
|