> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://developers.deepgram.com/docs/voice-agent-function-call-context/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.deepgram.com/_mcp/server. # Function Call Context Voice Agent When starting a new conversation session with the Voice Agent, you can provide historical context about previous function calls using the `agent.context` parameter. This allows the agent to maintain awareness of past function executions, enabling more coherent and contextual conversations. ## Purpose Function call context is particularly useful when: * Resuming a conversation from a previous session * Providing background context about function calls already executed * Maintaining continuity in multi-session interactions * Allowing the agent to reference previous function results ## Message Schema Function call context is included in the conversation history using the `History` message type with a `function_calls` array. Each function call entry contains complete information about the execution, including arguments and results. > **Info** > > Function call context can be disabled by setting `settings.flags.history` to `false` in the agent configuration. History is enabled by default. **`JSON`** ```json JSON { "type": "Settings", "settings": { "flags": { "history": true } }, "agent": { "context": { "messages": [ { "type": "History", "role": "user", "content": "What's the weather like in New York?" }, { "type": "History", "function_calls": [ { "id": "fc_weather_12345", "name": "get_weather", "client_side": true, "arguments": "{\"location\": \"New York\"}", "response": "The current weather in New York is partly cloudy with a temperature of 295.15°K." } ] }, { "type": "History", "role": "assistant", "content": "The weather in New York is partly cloudy with a temperature of about 72°F (295.15°K)." } ] }, "think": { "provider": { "type": "open_ai", "model": "gpt-4o-mini" }, "functions": [ { "name": "get_weather", "description": "Get the current weather for a specific location", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city or location to get weather for" } }, "required": ["location"] } } ] } } } ``` ## Multiple Message Types Function call history works seamlessly with [Conversation Context](/docs/voice-agent-history) to provide complete context. You can mix conversation messages and function call messages in the same context array. ## Function Call Context History Structure Each function call in the history includes the following fields: | Field | Type | Description | | ------------- | ------- | ----------------------------------------------------------------- | | `id` | String | A unique identifier for the function call | | `name` | String | The name of the function that was called | | `client_side` | Boolean | Indicates if the function was executed client-side or server-side | | `arguments` | String | JSON string containing the arguments passed to the function | | `response` | String | The response/result returned by the function | ## Benefits of Function Call Context History Including function call history in your agent context provides several advantages: ### Continuity The agent understands what functions were previously called and their results, enabling natural conversation flow across sessions. ### Efficiency The agent can reference previous function results instead of making redundant calls for the same information. ### Context Awareness The agent can make informed decisions based on the complete interaction history, including both conversations and actions taken. ### Natural Interactions Users can refer to previous actions ("like we did before") and the agent will understand the context. ## Best Practices ### Unique IDs In most cases the LLM will assign ids. If the LLM does not assign ids, Deepgram will assign ids to the function calls. ### Complete Information Include both the arguments passed to the function and the complete response received. ### Chronological Order Maintain the chronological order of function calls and conversations in your history. ### Relevant Context Only Include only the function call history that's relevant to the current conversation to avoid overwhelming the context. > Provide function call context as part of the conversation history when starting a new Voice Agent session.