Tool Calling
Advanced tool calling support for AI agents.
Overview
Tokligence Gateway provides comprehensive tool calling support with automatic format conversion between OpenAI and Anthropic APIs.
Supported Features
| Feature | Status | Description |
|---|---|---|
| OpenAI function calling | ✅ | Full tool call support with arguments and results |
| Anthropic tools conversion | ✅ | Automatic translation between formats |
| MCP server support | ✅ | Model Context Protocol servers |
| Computer use tools | ✅ | UI automation tools |
| Tool adapter filtering | ✅ | Filters unsupported tools |
| Duplicate detection | ✅ | Prevents infinite loops |
OpenAI Function Calling
Standard OpenAI-style function calling:
{
"model": "gpt-4",
"messages": [{"role": "user", "content": "What's the weather in Tokyo?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"}
}
}
}
}]
}
Anthropic Tools Conversion
When routing to Anthropic, OpenAI tools are automatically converted:
OpenAI Tools → Gateway → Anthropic Tools
Anthropic Tool Results → Gateway → OpenAI Format
Codex CLI Integration
Full support for Codex CLI v0.55.0+ including:
- Responses API: Session management with tool calling
- Streaming: Real-time SSE events
- Shell commands: Automatic normalization
- Duplicate detection: Prevents infinite loops
Example Usage
export OPENAI_BASE_URL=http://localhost:8081/v1
codex --full-auto --config 'model="claude-3-5-sonnet-20241022"'
Duplicate Detection
The gateway automatically detects repeated tool calls:
- 3 duplicates: Warning logged
- 5 duplicates: Emergency stop
This prevents infinite loops when models repeatedly call the same tool with the same arguments.
Tool Adapter Filtering
Some tools are filtered for compatibility:
| Tool | Reason |
|---|---|
apply_patch | Codex-specific, not supported by Anthropic |
update_plan | Codex-specific, not supported by Anthropic |
Filtered tools are removed from requests, and guidance is injected to use shell alternatives.
MCP Server Support
Model Context Protocol servers are supported:
{
"tools": [{
"type": "mcp",
"server_url": "http://localhost:3000/mcp",
"name": "my-mcp-server"
}]
}
Computer Use Tools
UI automation tools (computer_20241022) with display dimensions:
{
"tools": [{
"type": "computer_20241022",
"display_width": 1920,
"display_height": 1080
}]
}
Session Management
For multi-turn tool calling workflows:
- Gateway maintains session state in memory
- SSE connection stays open across tool call cycles
- Sessions are cleared on restart
Testing Tool Calls
# Basic tool call test
./tests/integration/tool_calls/test_tool_call_basic.sh
# Duplicate detection test
./tests/integration/duplicate_detection/test_duplicate_emergency_stop.sh