Python SDK for AgentNode — the open upgrade and discovery infrastructure for AI agents.
Project description
agentnode-sdk
Python SDK for AgentNode — the open upgrade and discovery infrastructure for AI agents.
Installation
pip install agentnode-sdk
Quick Start — LLM Agent Runtime
Connect any LLM agent to AgentNode in three lines. The Runtime provides tool definitions, system prompt, and a tool-loop engine. Tested across 22 models — works with OpenAI, Anthropic, Gemini, Mistral, DeepSeek, Qwen, Llama, and more.
from agentnode_sdk import AgentNodeRuntime
runtime = AgentNodeRuntime()
# Get tools + system prompt for your provider
bundle = runtime.tool_bundle()
# → { "tools": [...], "system_prompt": "..." }
OpenAI
from openai import OpenAI
from agentnode_sdk import AgentNodeRuntime
runtime = AgentNodeRuntime()
client = OpenAI()
result = runtime.run(
provider="openai",
client=client,
model="gpt-4o",
messages=[{"role": "user", "content": "Count the words in 'Hello world'"}],
)
print(result.content)
Anthropic
from anthropic import Anthropic
from agentnode_sdk import AgentNodeRuntime
runtime = AgentNodeRuntime()
client = Anthropic()
result = runtime.run(
provider="anthropic",
client=client,
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Search for PDF tools on AgentNode"}],
)
Gemini
from google import genai
from agentnode_sdk import AgentNodeRuntime
runtime = AgentNodeRuntime()
client = genai.Client()
result = runtime.run(
provider="gemini",
client=client,
model="gemini-2.5-flash",
messages=[{"role": "user", "content": "What AgentNode tools are available?"}],
)
OpenRouter (Mistral, DeepSeek, Qwen, Llama, and more)
Use any OpenAI-compatible provider by passing a custom base_url:
from openai import OpenAI
from agentnode_sdk import AgentNodeRuntime
runtime = AgentNodeRuntime()
client = OpenAI(
api_key="sk-or-...",
base_url="https://openrouter.ai/api/v1",
)
result = runtime.run(
provider="openai",
client=client,
model="mistralai/mistral-large", # or deepseek/deepseek-chat, qwen/qwen-plus, etc.
messages=[{"role": "user", "content": "Find and install a PDF reader tool"}],
)
Generic / Manual Tool Calling
For any provider that supports tool calling, use handle() to dispatch calls manually:
runtime = AgentNodeRuntime()
# Get tool definitions in your provider's format
tools = runtime.as_openai_tools() # OpenAI format
tools = runtime.as_anthropic_tools() # Anthropic format
tools = runtime.as_gemini_tools() # Gemini format
tools = runtime.as_generic_tools() # Generic format
# When the LLM makes a tool call, dispatch it:
result = runtime.handle("agentnode_search", {"query": "pdf extraction"})
# → {"success": true, "result": {"total": 5, "results": [...]}}
Three Surfaces
CLI → for humans (search, install, publish)
SDK / Client → for programmatic access (search, resolve, install, run)
Runtime → for LLM agents (tool registration, dispatch, auto-loop)
API Reference
AgentNodeRuntime
Zero-config LLM agent integration.
| Method | Description |
|---|---|
tool_specs() |
Internal typed tool definitions (list[ToolSpec]) |
as_openai_tools() |
Tools in OpenAI function-calling format |
as_anthropic_tools() |
Tools in Anthropic format |
as_generic_tools() |
Tools in generic/baseline format |
system_prompt() |
AgentNode system prompt block (append to yours) |
tool_bundle() |
Combined {"tools": [...], "system_prompt": "..."} |
handle(tool_name, arguments) |
Dispatch a tool call. Returns dict. Never throws. |
run(provider, client, messages, model, ...) |
Auto-loop with tool dispatch. Never throws. |
Constructor:
AgentNodeRuntime(
client=None, # Optional AgentNodeClient
api_key=None, # Optional API key
minimum_trust_level="verified", # "verified" | "trusted" | "curated"
)
5 Meta-Tools (automatically registered):
| Tool | Description |
|---|---|
agentnode_capabilities |
List installed packages (local, no API call) |
agentnode_search |
Search the registry (max 5 results) |
agentnode_install |
Install a package by slug |
agentnode_run |
Execute an installed tool |
agentnode_acquire |
Search + install in one step |
AgentNodeClient
The programmatic client with typed return models.
| Method | Description |
|---|---|
search(query, ...) |
Search packages by keyword or capability |
resolve(capabilities, ...) |
Resolve capability gaps to ranked packages |
install(slug, ...) |
Download, verify, and install locally |
resolve_and_install(capabilities, ...) |
Resolve + install in one call |
run_tool(slug, tool_name=, ...) |
Run a tool with trust-aware isolation |
smart_run(fn, ...) |
Wrap logic with auto-detect, install, retry |
detect_and_install(error, ...) |
Detect capability gap and install |
run_tool() (standalone)
Top-level function for running tools with process isolation.
from agentnode_sdk import run_tool
result = run_tool("pdf-reader-pack", mode="auto", file_path="report.pdf")
# result.success, result.result, result.error, result.mode_used, result.duration_ms
Isolation contract. mode="auto" always resolves to subprocess,
regardless of the package's trust level. This makes the isolation
guarantee true by default. If you need in-process execution (for
example, to share module-level state with the tool), pass
mode="direct" explicitly — that is an opt-in performance trade-off,
not a default.
License
MIT
Project details
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 agentnode_sdk-0.5.1.tar.gz.
File metadata
- Download URL: agentnode_sdk-0.5.1.tar.gz
- Upload date:
- Size: 167.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71b40e0efb8bf82e7b59e4b4627d4361dd40e78e8c4eaba2c25037b7683de6fb
|
|
| MD5 |
c8117deea566d3df13f0a0e200582b5d
|
|
| BLAKE2b-256 |
198421df3139c4401dc6edfdcf97de61ed6be96439e352da5d66ec491ed6c54b
|
File details
Details for the file agentnode_sdk-0.5.1-py3-none-any.whl.
File metadata
- Download URL: agentnode_sdk-0.5.1-py3-none-any.whl
- Upload date:
- Size: 94.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88b24a5a98566576dadb6ed822bdb4f80499d3296876e1f6362a4877543677e3
|
|
| MD5 |
f9707829c234ce07baa196868d4d8e3a
|
|
| BLAKE2b-256 |
3df740fe54fdfbc60c7af665fa542db233ed146a1294d470d0fa636cce5a4178
|