AI agent toolkit for AgenTrux - framework-agnostic function calling tools
Project description
agentrux-agent-tools
Beta -- API may change before 1.0.
Framework-agnostic AI agent toolkit for AgenTrux. Exposes publish/subscribe/read operations as tool definitions compatible with OpenAI function calling, Anthropic tool_use, and any other LLM framework.
Installation
pip install agentrux-agent-tools
Or install from source:
cd plugins/agent-sdk
pip install -e .
Quick Start
1. Create the toolkit
import asyncio
from agentrux_agent_tools import AgenTruxToolkit
async def main():
toolkit = await AgenTruxToolkit.create(
base_url="https://api.agentrux.com",
script_id="your-script-id",
client_secret="your-client-secret",
)
# Or use environment variables:
# export AGENTRUX_BASE_URL=https://api.agentrux.com
# export AGENTRUX_SCRIPT_ID=...
# export AGENTRUX_CLIENT_SECRET=...
# toolkit = await AgenTruxToolkit.create()
2. Get tool definitions
# OpenAI format
tools = toolkit.get_tools()
# Anthropic format
tools = toolkit.get_tools_anthropic()
3. Execute tool calls from the LLM
result = await toolkit.execute("publish_event", {
"topic_id": "550e8400-e29b-41d4-a716-446655440000",
"event_type": "chat.message",
"payload": {"text": "Hello from the agent!"},
})
print(result) # JSON string with event_id
Usage with OpenAI
import openai
from agentrux_agent_tools import AgenTruxToolkit
async def agent_loop():
toolkit = await AgenTruxToolkit.create()
client = openai.AsyncOpenAI()
messages = [{"role": "user", "content": "Publish a greeting event"}]
response = await client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=toolkit.get_tools(),
)
for tool_call in response.choices[0].message.tool_calls or []:
import json
args = json.loads(tool_call.function.arguments)
result = await toolkit.execute(tool_call.function.name, args)
messages.append(response.choices[0].message)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": result,
})
# Continue the conversation with tool results...
await toolkit.close()
Usage with Claude (Anthropic)
import anthropic
from agentrux_agent_tools import AgenTruxToolkit
async def agent_loop():
toolkit = await AgenTruxToolkit.create()
client = anthropic.AsyncAnthropic()
response = await client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
tools=toolkit.get_tools_anthropic(),
messages=[{"role": "user", "content": "List recent events from my topic"}],
)
for block in response.content:
if block.type == "tool_use":
result = await toolkit.execute(block.name, block.input)
# Send result back as tool_result...
await toolkit.close()
Generic Agent Loop
import json
from agentrux_agent_tools import AgenTruxToolkit
async def generic_agent(llm_call, user_prompt: str):
"""Works with any LLM that supports function calling."""
async with await AgenTruxToolkit.create() as toolkit:
tools = toolkit.get_tools()
messages = [{"role": "user", "content": user_prompt}]
while True:
response = await llm_call(messages, tools=tools)
if not response.tool_calls:
return response.text
for call in response.tool_calls:
result = await toolkit.execute(call.name, call.arguments)
messages.append({"role": "tool", "content": result})
Available Tools
| Tool | Description |
|---|---|
publish_event |
Publish a JSON event to a topic. Returns the event_id. |
list_events |
List recent events with optional type filter. |
get_event |
Retrieve a single event by ID. |
wait_for_event |
Wait for the next event via SSE (with timeout). |
Environment Variables
| Variable | Description |
|---|---|
AGENTRUX_BASE_URL |
Server URL |
AGENTRUX_SCRIPT_ID |
Script identifier |
AGENTRUX_CLIENT_SECRET |
Client Secret |
AGENTRUX_INVITE_CODE |
Optional invite code for cross-Domo (cross-account) access |
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 agentrux_agent_tools-0.1.0b1.tar.gz.
File metadata
- Download URL: agentrux_agent_tools-0.1.0b1.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
673d8824737838bf5b8634ce624fc4bcd60347aecaf8a6720054bd7d83bf2053
|
|
| MD5 |
60c5ac154facea88f5d810b2d9382f84
|
|
| BLAKE2b-256 |
60603b0a655855283e2b1054fe1fb3ae7a8f4c0a07ade13e520dd7d64498465a
|
File details
Details for the file agentrux_agent_tools-0.1.0b1-py3-none-any.whl.
File metadata
- Download URL: agentrux_agent_tools-0.1.0b1-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e82dbf2ab69cdea9d927f22704820163281147d33965c1befde12644a1af402
|
|
| MD5 |
ee26c173cd69f156036f6c1a4121613e
|
|
| BLAKE2b-256 |
907ffafc6bfce306c014a75a703eb335f3fa1a4d12d17000ed02be4bc0ed95d8
|