Current collected state Current
Observed since 20 Oct, 21:57 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agentforge-markets
Official Python SDK for AgentForge AI Agent Tool Marketplace
Official Python SDK for the AgentForge AI Agent Tool Marketplace.
Discover, execute, and manage AI tools from a unified API. Single dependency: httpx.
pip install agentforge-sdk
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"])
httpx requiredagent = 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"})
# 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")
# 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"}},
])
balance = agent.get_balance()
agent.deposit(10.00)
history = agent.get_history(limit=20)
health = agent.health_check("tool-uuid")
# health["status"]: "CLOSED" (healthy) | "OPEN" (failing) | "HALF_OPEN" (testing)
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
| 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) |
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}],
)
Visit agentforge.markets/docs for the complete API reference, guides, and examples.
MIT
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
httpxEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | httpx>=0.24.0 | runtime |
bdist_wheel · 8.45 KB · Python py3
sdist · 7.06 KB · Python source
Observed since 20 Oct, 21:57 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:aca3f8c4cb2fb9814ea4205bf3fa0a57c57457ce62ea5a0fa85c64407d30f8cc