Official Python SDK for AgentForge AI Agent Tool Marketplace
Project description
agentforge-sdk
Official Python SDK for the AgentForge AI Agent Tool Marketplace.
Discover, execute, and manage AI tools from a unified API. Single dependency: httpx.
Install
pip install agentforge-sdk
Quick Start
from agentforge import AgentForge
agent = AgentForge(api_key="agf_agent_...")
tools = agent.discover(intent="translate text to French")
result = agent.execute(tools["tools"][0]["id"], {"text": "Hello", "target": "fr"})
print(result["data"])
Features
- Tool Discovery -- search by intent, category, protocol, tags, or price
- Schema Retrieval -- get function-calling compatible schemas for any tool
- Execution -- call any tool with typed parameters and get structured results
- Batch Execution -- run up to 10 tool calls in a single request
- Retry with Backoff -- exponential backoff with jitter (configurable)
- Circuit Breaker -- check tool health before calling unreliable endpoints
- Billing -- check balance, deposit funds, view call history
- Minimal Dependencies -- only
httpxrequired
Configuration
agent = AgentForge(
api_key="agf_agent_...",
base_url="https://api.agentforge.markets", # default
timeout=30.0, # default: 30s
max_retries=3, # default: 3, set 0 to disable
)
Use as a context manager for automatic cleanup:
with AgentForge(api_key="agf_agent_...") as agent:
result = agent.execute("tool-uuid", {"text": "Hello"})
API Reference
Discovery
# Discover tools by intent (natural language)
result = agent.discover(intent="summarize a webpage")
# Filter by category and price
cheap = agent.discover(category="nlp", maxPrice=0.01)
# List all tools with pagination
page = agent.list_tools(limit=20, offset=0)
# Get function-calling schema
schema = agent.get_tool_schema("tool-uuid")
Execution
# Execute a single tool
result = agent.execute("tool-uuid", {"text": "Hello world"})
# Batch execution (up to 10 calls)
batch = agent.execute_batch([
{"toolId": "tool-1", "parameters": {"query": "AI news"}},
{"toolId": "tool-2", "parameters": {"url": "https://example.com"}},
])
Billing
balance = agent.get_balance()
agent.deposit(10.00)
history = agent.get_history(limit=20)
Health Check
health = agent.health_check("tool-uuid")
# health["status"]: "CLOSED" (healthy) | "OPEN" (failing) | "HALF_OPEN" (testing)
Error Handling
from agentforge import AgentForge, AgentForgeError
agent = AgentForge(api_key="agf_agent_...")
try:
agent.execute("tool-uuid", {"text": "test"})
except AgentForgeError as e:
print(e.code) # "INSUFFICIENT_FUNDS", "TIMEOUT", etc.
print(e.status_code) # HTTP status code
print(e.retryable) # whether the SDK would auto-retry
Error Codes
| Code | HTTP | Description |
|---|---|---|
UNAUTHORIZED |
401 | Invalid or missing API key |
FORBIDDEN |
403 | Insufficient permissions |
NOT_FOUND |
404 | Tool or resource not found |
INSUFFICIENT_FUNDS |
402 | Agent balance too low |
VALIDATION_ERROR |
400 | Invalid request parameters |
RATE_LIMITED |
429 | Too many requests |
TIMEOUT |
-- | Request exceeded timeout |
NETWORK_ERROR |
-- | Connection failure |
SERVER_ERROR |
5xx | AgentForge server error |
CIRCUIT_OPEN |
503 | Tool endpoint failing (circuit open) |
Use with LLMs
The SDK works seamlessly with LLM function-calling workflows:
import anthropic
from agentforge import AgentForge
client = anthropic.Anthropic()
forge = AgentForge(api_key="agf_agent_...")
# Discover tools and build function definitions
discovered = forge.discover(intent=user_message)
tools = []
for t in discovered["tools"][:5]:
schema = forge.get_tool_schema(t["id"])
tools.append({
"name": schema["function"]["name"],
"description": schema["function"]["description"],
"input_schema": schema["function"]["parameters"],
})
# Let Claude decide which tool to use
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
tools=tools,
messages=[{"role": "user", "content": user_message}],
)
Full Documentation
Visit agentforge.markets/docs for the complete API reference, guides, and examples.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentforge_markets-1.0.0.tar.gz.
File metadata
- Download URL: agentforge_markets-1.0.0.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e6930bfc68970b32840d5081e17d78327626bc41de390e70823adb58dc0fe6f
|
|
| MD5 |
7115b49c77707d7297eae6267abe7e3e
|
|
| BLAKE2b-256 |
3cc3055174922164bce3d2d3780e29967370d8439f9ae70e003d96d221c4f054
|
File details
Details for the file agentforge_markets-1.0.0-py3-none-any.whl.
File metadata
- Download URL: agentforge_markets-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb3c62379744375418bb7c406f58bc3db744bf2ee50a48d24929cba9ae325288
|
|
| MD5 |
49c2022246559d93bfad7dc18bc2e8e1
|
|
| BLAKE2b-256 |
742a9ddf243cd0b93b2f5fd1d268f4c2bedcda204848b3e938c3862c2ee8bafd
|