Documentation Index
Fetch the complete documentation index at: https://docs.galtea.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Thegenerate() method is the recommended way to execute your agent when you want automatic trace collection, timing, and inference result creation. It handles the complete lifecycle:
- Initializes trace collection
- Executes your agent with timing measurement
- Creates/updates the inference result with all metadata
- Saves collected traces to the platform
- Cleans up trace context (prevents memory leaks)
This is the recommended method for production use as it handles all trace lifecycle management automatically.
Agent Options
- Simple
- Chat History
- Structured
The quickest way to get started. Your function receives just the latest user message as a string.
All three signatures work with
evaluations.run(), inference_results.generate(), and simulator.simulate(). Both sync and async functions are supported. The SDK auto-detects which signature you’re using from the type hint on the first parameter.For the full list of fields available on AgentInput (including structured input access via message metadata), see the AgentInput reference.Parameters
The agent function to execute. Supported signatures:
- Simple:
(user_message: str) -> str— receives last user message - Chat History:
(messages: list[dict]) -> str— receives full chat history (OpenAI format) - Structured:
(input_data: AgentInput) -> AgentResponse— structured input/output. See the AgentInput reference for all available fields including structured input access via message metadata.
usage_info, cost_info, or retrieval_context.The session object to associate the inference result with. Obtain via
galtea.sessions.create() or galtea.sessions.get().The input to send to the agent. Accepts a plain string or a dict with structured fields (e.g.
{"user_message": "hello", "chat_type": "support"}). Stored directly in the inference result. If not provided and the session is test-based, the test case input is used automatically. Required for production/monitoring sessions.If
True, raises a ValueError when the agent returns an empty response. Defaults to False.context_data is automatically fetched from the session’s test case and passed to the agent via AgentInput.context_data. No need to provide it explicitly.Returns
Returns anInferenceResult object with all captured data.
Example
What Gets Captured
Thegenerate() method automatically captures and saves:
| Data | Source | Description |
|---|---|---|
| Input | input parameter | The user’s input (string or structured dict) |
| Output | AgentResponse.content | The agent’s response |
| Retrieval Context | AgentResponse.retrieval_context | Context used (for RAG) |
| Latency | Measured | End-to-end execution time in ms |
| Usage Info | AgentResponse.usage_info | Token counts (if provided) |
| Cost Info | AgentResponse.cost_info | Cost data (if provided) |
| Traces | @trace decorators | All traced operations |
Providing Usage and Cost Information
Your agent can return usage and cost information in theAgentResponse:
Comparison with Manual Approach
| Feature | generate() | Manual with set_context() |
|---|---|---|
| Context initialization | Automatic | set_context() |
| Agent execution | Automatic | Manual call |
| Timing measurement | Automatic | Manual |
| Inference result | Auto-created | inference_results.create() |
| Trace export | Automatic | Automatic on clear_context() |
| Memory cleanup | Automatic | clear_context() |
| Error handling | Built-in | Manual try/finally |
Error Handling
If the agent raises an exception,generate() ensures trace context is cleaned up:
Related Methods
- Create Inference Result - Manual creation
- Trace Service - Manual trace management
- Simulating Conversations - Multi-turn simulations