# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json description: Function Calling with Callbacks in OpenAI Responses API prompts: - 'Please add these numbers: {{a}} and {{b}}' - 'Calculate the sum of {{a}} + {{b}}' - 'What is {{a}} plus {{b}}?' providers: - id: openai:responses:gpt-4o config: temperature: 0 max_output_tokens: 100 tool_choice: auto tools: - type: function name: addNumbers description: Add two numbers together parameters: type: object properties: a: type: number description: The first number to add b: type: number description: The second number to add required: ['a', 'b'] # Function callbacks execute locally instead of returning the raw function call functionToolCallbacks: addNumbers: | async (args) => { const { a, b } = JSON.parse(args); return String(a + b); } tests: - vars: a: 5 b: 6 assert: - type: equals value: '11' - vars: a: 123 b: 456 assert: - type: equals value: '579' - vars: a: -10 b: 20 assert: - type: equals value: '10'