AgenTrux Agent SDK
Beta — 1.0 リリース前に API が変更される可能性があります。
あらゆる AI エージェントから AgenTrux のイベントを発行・読み取りできる、さまざまなエージェントフレームワークで使えるツールキットです。OpenAI、Anthropic (Claude)、LangChain、CrewAI、および関数呼び出しをサポートする任意の LLM で動作します。
インストール
Python 3.10 以上が必要です。
pip install agentrux-agent-tools
クイックスタート
1. ツールキットの作成
import asyncio
from agentrux_agent_tools import AgenTruxToolkit
async def main():
toolkit = await AgenTruxToolkit.create(
base_url="https://api.agentrux.com",
client_id="crd_your-credential-id",
client_secret="aks_your-client-secret",
)
client_id(crd_)と client_secret(aks_)は、Console で Activation Code を redeem(POST /auth/redeem-activation-code)して取得します。環境変数を使用する場合:
export AGENTRUX_BASE_URL=https://api.agentrux.com
export AGENTRUX_CLIENT_ID=crd_your-credential-id
export AGENTRUX_CLIENT_SECRET=aks_your-client-secret
toolkit = await AgenTruxToolkit.create() # 環境変数から読み取り
2. ツール定義の取得
# OpenAI function-calling 形式
tools = toolkit.get_tools()
# Anthropic tool_use 形式
tools = toolkit.get_tools_anthropic()
3. 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) # event_id を含む JSON 文字列
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,
})
await toolkit.close()
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)
# tool_result として結果を返す...
await toolkit.close()
汎用エージェントループ
from agentrux_agent_tools import AgenTruxToolkit
async def generic_agent(llm_call, user_prompt: str):
"""関数呼び出しをサポートする任意の LLM で動作します。"""
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})
利用可能なツール
| ツール | 説明 |
|---|---|
publish_event |
JSON イベントをトピックに発行します。event_id を返します。 |
list_events |
最近のイベントを一覧取得します。タイプフィルター対応。 |
get_event |
ID を指定して単一のイベントを取得します。 |
wait_for_event |
SSE 経由で次のマッチするイベントを待機します(タイムアウト付き)。 |
環境変数
| 変数 | 説明 |
|---|---|
AGENTRUX_BASE_URL |
サーバー URL |
AGENTRUX_CLIENT_ID |
Script credential ID(crd_) |
AGENTRUX_CLIENT_SECRET |
Script credential secret(aks_) |
ユースケース
OpenAI エージェントに AgenTrux ツールを追加する
OpenAI エージェントにイベントの送受信機能を追加します。
設定:
- Topic:
agent-workspace(read + write) - Script:
openai-agent
コード:
toolkit = await AgenTruxToolkit.create()
tools = toolkit.get_tools() # OpenAI 形式
response = await openai_client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "新しいタスクを確認して処理して"}],
tools=tools,
)
マルチエージェント連携
複数のエージェントが1つのトピックを共有してタスクを調整します。1つがタスクを書き込み、他が処理します。
設定:
- Topic:
task-queue(全エージェントに read + write) - Script A:
task-publisher(タスクを書き込み) - Script B:
worker-1(タスクを読み取り・処理) - Script C:
worker-2(タスクを読み取り・処理)
イベント駆動のエージェントループ
新しいイベントを監視し続け、応答するエージェントを構築します。
設定:
- Topic A:
requests(read)— 受信リクエスト - Topic B:
responses(write)— 送信レスポンス - Script:
responder-agent
コード:
async with await AgenTruxToolkit.create() as toolkit:
while True:
result = await toolkit.execute("wait_for_event", {
"topic_id": REQUEST_TOPIC,
"timeout_seconds": 300,
})
if result:
# 処理して応答
await toolkit.execute("publish_event", {
"topic_id": RESPONSE_TOPIC,
"event_type": "response",
"payload": {"answer": process(result)},
})
ライセンス
MIT