Agno 再入門 : ランタイムとは何か / Serve as an API

ランタイムは、エージェントを本番環境向けサービスとして動作させます。
エージェント型製品やエージェント・プラットフォームを構築するには、システムを水平スケーラブル、継続的なサービスとして実行し、API 経由でアクセスできるようにする必要があります。ランタイムはまさにそれを実現します。

Agno 再入門 – ランタイム : ランタイムとは何か / Serve as an API

作成 : クラスキャット・セールスインフォメーション
作成日時 : 05/15/2026
バージョン : v2.6.5

* 本記事は docs.agno.com の以下のページを参考にしています :

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。

 

 

Agno 再入門 – ランタイム : ランタイムとは何か

ランタイムは、エージェントを本番環境向けサービスとして動作させます。


ランタイム = エージェント・サーバー

エージェント型製品やエージェント・プラットフォームを構築するには、システムを水平スケーラブル、継続的なサービスとして実行し、API 経由でアクセスできるようにする必要があります。ランタイムはまさにそれを実現します。

AgentOS は Agent(…) を、永続セッション、JWTベースの認証、オブザーバビリティ、そして Slack、Telegram 等へのインターフェースを備えた FastAPI アプリケーションとして動作させます。

 

What the runtime gives you

ランタイムは、エージェントコードと公開サービスの間の領域をカバーします :

  • (Concern) – (AgentOS の処理方法)

  • HTTP API – 登録済みエージェント、チーム、ワークフロー毎に自動生成されるエンドポイント

  • 状態 – セッションとメモリはデータベースに永続化されます。

  • ストリーミング – すべての実行エンドポイントで SSE; トークンとツール呼び出しは発生と同時にストリーミングされます。

  • 認証 – RBAC スコープを組み込んだ JWT 検証

  • スケジューリング – データベースを定期監視して、実行時刻になったジョブを起動するプロセス内 cron

  • オブザーバビリティ – OpenTelemetry のトレースデータは同じデータベースに保存され、SQL でクエリ可能です

  • インターフェイス – Slack, Telegram, WhatsApp, Discord, A2A, AG-UI

  • Human in the loop – 一時停止は、ユーザーの確認、管理者の承認、または外部実行のために行われます。

同じ Agent(…) は、スクリプト、テスト、または AgentOS サービス内で実行されます。AgentOS 自体はステートレスです: 状態はデータベースに保存されるため、負荷に応じて水平方向にスケールできます。

ℹ️ AgentOSは、単一のエージェントだけでなく、チームやワークフローも実行できます。See Build a Product.

ℹ️ AgentOS はまた、Claude Agent SDK、LangGraph、および DSPy で構築されたエージェントにも対応しています。See Multi-Framework Support.

 

Agno 再入門 – ランタイム : Serve as an API

エージェントをサービスとして実行するために必要なすべてが、単一の HTTP API の背後で提供されます。

エージェントを配布するには、/run エンドポイントだけでは不十分です。以下のようなエンドポイントが必要です :

  • エージェントをストリーミングモードおよびバックグラウンドジョブとして実行する

  • エージェントが蓄積するセッション、メモリ、学習を管理する

  • 実行結果、トレース、メトリクスを検査する

  • 定期的な作業をスケジュールする

  • センシティブなツール呼び出しは、ユーザー承認で制御する

  • 承認が得られ次第、一時停止していた実行を再開する

AgentOS gives you all of this and more.

 

公開範囲 (surface area)

  • (グループ) – (What you can do)

  • Runs – 作成、一覧表示、キャンセル、一時停止中の実行の再開、切断されたストリームの再開が可能です。SSE 経由でのストリーミング、またはバックグラウンドジョブとしての実行に対応しています。

  • Sessions – 作成、一覧表示、名前変更、更新、削除。セッション内のすべての実行結果を取得。ユーザー毎にスコープが設定されます。

  • Memory – ユーザーの記憶を作成、更新、削除できます。コンテンツを検索し、トピックでフィルタリングし、ユーザー毎のスタッツを表示できます。最適化を実行してトークン使用量を圧縮できます。

  • Knowledge – S3、GCS、SharePoint、GitHub からファイル、テキスト、URL、コンテンツをアップロードできます。ベクトル、キーワード、またはハイブリッド検索が可能です。ソース、ソース内のファイル、コンテンツのステータスを一覧表示できます。

  • Evals – 精度、エージェントによる評価、パフォーマンス、信頼性に関する評価を実行します。評価実行の一覧表示、更新、削除が可能です。

  • Traces – リスト表示、フィルタ DSL による検索、完全なスパンツリーの表示、セッション毎のグループ化。個々の LLM 呼び出しとツール起動の検査。

  • Metrics – 日々の実行回数、セッション数、ユーザー数、トークン使用量、モデルの内訳を集計。必要に応じてリフレッシュ (更新)。

  • Schedules – CRUD 操作、有効化、無効化、即時実行。スケジュールの実行履歴を一覧表示します。

  • Approvals – 保留中の承認を一覧表示し、承認を完了させ、ユーザー毎に件数をカウントします。

  • Components – エージェント、チーム、ワークフローのバージョン管理。ドラフトの管理、公開、以前のバージョンへのロールバックが可能です。

  • Database – 1 つまたはすべてのデータベーススキーマをターゲットバージョンに移行します。

Browse the live OpenAPI spec at the /docs endpoint of your AgentOS.

 

リクエストの構造

エージェント、チーム、ワークフローのいずれであっても、すべての実行エンドポイントは同じ構造 (shape) を返します :

curl -X POST http://localhost:8000/agents/my-agent/runs \
  -H "Content-Type: application/json" \
  -d '{"message":"Hello","user_id":"alice","session_id":"thread-42"}'
{
  "run_id": "run_abc123",
  "session_id": "thread-42",
  "user_id": "alice",
  "agent_id": "my-agent",
  "status": "completed",
  "content": "Hi Alice!",
  "created_at": "2026-04-24T20:15:00Z"
}

Server-Sent Events(SSE)の場合は stream=true を渡します。非同期で実行し、補完 (completion) をポーリングする場合は background=true を渡してください。仕様はサーフェス (利用方法) 間で変わりません。

 

独自のルートの追加

内部的には AgentOS は FastAPI アプリケーションです。Webhook、カスタムダッシュボード、インテグレーション用の追加ルートを登録できます :

app = agent_os.get_app()

@app.post("/webhooks/stripe")
async def handle_stripe(event: dict):
    response = await agent.arun(
        f"Process Stripe event: {event}",
        user_id="system",
    )
    return {"ok": True, "agent_response": response.content}

エージェントは通常の Python オブジェクトです。どこからでも agent.run(…) または await agent.arun(…)を 呼び出すことができます。

 

認証

authorization=True の場合、/health および /openapi.json を除くすべてのエンドポイントでは、`Authorization: Bearer …` ヘッダーで有効な JWT が必要です。AgentOS は、エージェントコードが実行される前に、トークンを検証し、クレーム (事実主張) を抽出し、リクエストごとに RBAC スコープを適用します。See Security & Auth for the full model.

 

以上