Environment class provides format converters for all major providers, and hud.eval() handles setup, evaluation, and tracing automatically.
Every example on this page uses the eval defined below and the Gateway for inference.
The Example Environment
OpenAI
The OpenAI SDK supports three APIs: Chat Completions, Responses, and the Agents SDK.Chat Completions
Responses API
Agents SDK
pip install openai-agents
Anthropic
Claude’s Messages API with tool use.pip install anthropic
Gemini
Google’s Gemini API with function calling.pip install google-generativeai
browser-use
Browser automation for web agents.pip install browser-use playwright && playwright install
LangChain
LangChain’s agent framework with tool calling.pip install langchain langchain-openai langchain-core
LlamaIndex
LlamaIndex’s ReAct agent with tool integration.pip install llama-index-core llama-index-llms-openai
Google ADK
Google’s Agent Development Kit for Gemini-powered agents.pip install google-adk
CrewAI
Multi-agent orchestration with roles and tasks.pip install crewai langchain-openai
AutoGen
Microsoft’s multi-agent conversation framework.pip install pyautogen
Format Reference
| Method | Returns | Use With |
|---|---|---|
as_openai_chat_tools() | OpenAI Chat format | OpenAI Chat Completions |
as_openai_responses_tools() | OpenAI Responses format | OpenAI Responses API |
as_openai_agent_tools() | FunctionTool objects | OpenAI Agents SDK |
as_claude_tools() | Anthropic format | Claude API |
as_gemini_tools() | Gemini format | Google AI |
as_adk_tools() | ADK FunctionTool objects | Google ADK |
as_langchain_tools() | StructuredTool objects | LangChain, CrewAI |
as_llamaindex_tools() | FunctionTool objects | LlamaIndex |
as_tools() | MCP Tool objects | Raw MCP, AutoGen |
call_tool() calls auto-detect the input format and return matching output format.
Bring Your Own
Don’t see your framework? The pattern is simple:- Get tools in your framework’s format (or use
as_tools()for raw MCP) - Run your agent loop
- Call
ctx.call_tool()for each tool invocation - Call
ctx.submit()with the final answer