# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json description: Trajectory assertions with OpenTelemetry traces # Promptfoo accepts generic tool span attributes like tool.name/tool.arguments # and Vercel AI SDK telemetry attributes like ai.toolCall.name/ai.toolCall.args. prompts: - 'Explain how {{topic}} works in simple terms' providers: - file://provider-simple-traced.js tests: - vars: topic: 'quantum computing' metadata: tracingEnabled: true testCaseId: 'trajectory-test-case-1' assert: - type: trajectory:tool-used value: pattern: 'search_*' min: 3 max: 3 - type: trajectory:tool-used value: compose_answer - type: trajectory:tool-args-match value: name: search_corpus args: query: quantum computing classical computing - type: trajectory:tool-sequence value: mode: exact steps: - search_corpus - search_corpus - search_corpus - compose_answer - type: trajectory:step-count value: type: reasoning min: 4 max: 4 - type: trajectory:step-count value: pattern: 'retrieve_document_*' min: 3 max: 3 tracing: enabled: true otlp: http: enabled: true port: 4318 host: '0.0.0.0' acceptFormats: ['json']