← ドキュメント一覧 · English

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_idcrd_)と client_secretaks_)は、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 エージェントにイベントの送受信機能を追加します。

設定:

コード:

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つがタスクを書き込み、他が処理します。

設定:

イベント駆動のエージェントループ

新しいイベントを監視し続け、応答するエージェントを構築します。

設定:

コード:

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