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
generate() and 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.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
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 user’s input message to send to the agent. If not provided and the session is test-based, the test case input will be used automatically. Required for production/monitoring sessions.
If
True, raises a ValueError when the agent returns an empty response. Defaults to False.Returns
Returns anInferenceResult object with all captured data.
Example
What Gets Captured
Thegenerate() method automatically captures and saves:
| Data | Source | Description |
|---|---|---|
| Input | user_input parameter | The user’s message |
| 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