メインコンテンツへスキップ

概要

Shannonの内部アーキテクチャは、gRPC(HTTP/2 + Protocol Buffers)を使用して高性能なサービス間通信を実現しています。このドキュメントでは、5つのサービスと39のRPCメソッドに関する完全なProtocol Buffer定義を提供します。
公開APIと内部API: gRPCサービスは内部用であり、公開SDKでは利用できません。アプリケーション統合には、Gateway REST API(http://localhost:8080/api/v1/*)またはPython SDK(ShannonClient(base_url=...))を使用してください。
サービス:
  • OrchestratorService(20 RPC) - タスクオーケストレーション、ワークフロー管理、スケジューリング
  • StreamingService(1 RPC) - リアルタイムイベントストリーミング
  • AgentService(6 RPC) - エージェント実行とツール管理
  • LLMService(5 RPC) - LLMプロバイダーゲートウェイ
  • SessionService(7 RPC) - マルチターン会話管理
合計: 39 RPCメソッド

共通タイプ

すべてのサービスで使用される共有タイプ。

ExecutionMode

使用法: タスク実行戦略を決定
  • SIMPLE: 直接ツール呼び出しまたはキャッシュ検索(最速)
  • STANDARD: 単一エージェントによるLLM駆動の実行(バランスが取れている)
  • COMPLEX: 並列実行を伴うマルチエージェントDAG(最も能力が高い)

ModelTier

コスト最適化: Shannonは自動的にティア内のモデルを選択してコストを最適化します
  • 小: $0.001-0.002 / 1Kトークン
  • 中: $0.01-0.03 / 1Kトークン
  • 大: $0.03-0.075 / 1Kトークン

StatusCode


TaskMetadata

:

TokenUsage


ExecutionMetrics


OrchestratorService

タスクオーケストレーションとワークフロー管理サービス。

サービス定義


SubmitTask

新しいタスクを実行のために提出します。 リクエスト:
レスポンス:
(gRPC CLI):
レスポンス:

GetTaskStatus

タスクの現在のステータスと結果を取得します。 リクエスト:
レスポンス:
:
レスポンス:

CancelTask

実行中のタスクをキャンセルします。 リクエスト:
レスポンス:

ListTasks

タスクをリスト表示し、オプションでフィルタリングします。 リクエスト:
レスポンス:

GetSessionContext

セッションのコンテキストと履歴を取得します。 リクエスト:
レスポンス:

ListTemplates

利用可能なタスクテンプレートをリスト表示します。 リクエスト:
レスポンス:

ApproveTask

人間の承認が必要なタスクを承認または拒否します。 リクエスト:
レスポンス:

GetPendingApprovals

保留中の承認リクエストをリスト表示します。 リクエスト:
レスポンス:

StreamingService

リアルタイムイベントストリーミングサービス。

サービス定義


StreamTaskExecution

タスクのリアルタイムイベントをストリームします(サーバーストリーミングRPC)。 リクエスト:
レスポンス(ストリーム):
(gRPC CLI):
レスポンスストリーム:
イベントタイプフィルタリング:
ストリーム再開:
すべてのイベントタイプについてはイベントタイプカタログを参照してください。

AgentService

エージェント実行およびツール管理サービス。

サービス定義


ExecuteTask

単一エージェントでタスクを実行します(単一RPC)。 リクエスト:
レスポンス:

StreamExecuteTask

ストリーミング更新でタスクを実行します(サーバーストリーミングRPC)。 リクエスト: ExecuteTaskと同じ レスポンス(ストリーム):

GetCapabilities

エージェントの機能を取得します。 リクエスト:
レスポンス:

HealthCheck

エージェントサービスの健康状態を確認します。 リクエスト:
レスポンス:

DiscoverTools

クエリまたはカテゴリによって利用可能なツールを発見します。 リクエスト:
レスポンス:
:

GetToolCapability

特定のツールの詳細な機能を取得します。 リクエスト:
レスポンス:

LLMService

LLMプロバイダーゲートウェイサービス。

サービス定義


GenerateCompletion

LLMの補完を生成します(単一RPC)。 リクエスト:
レスポンス:

StreamCompletion

ストリーミング LLM 完成を生成します(サーバーストリーミング RPC)。 リクエスト: GenerateCompletion と同様 レスポンス (ストリーム):

EmbedText

テキスト埋め込みを生成します。 リクエスト:
レスポンス:

AnalyzeComplexity

クエリの複雑さを分析し、実行モードを推奨します。 リクエスト:
レスポンス:
:
レスポンス:

ListModels

利用可能な LLM モデルをリストします。 リクエスト:
レスポンス:

SessionService

マルチターン会話管理サービス。

サービス定義


CreateSession

新しい会話セッションを作成します。 リクエスト:
レスポンス:

GetSession

セッションの詳細を取得します。 リクエスト:
レスポンス:

UpdateSession

セッションのコンテキストを更新するか、TTLを延長します。 リクエスト:
レスポンス:

DeleteSession

セッションを削除します。 リクエスト:
レスポンス:

ListSessions

ユーザーのセッションをリストします。 リクエスト:
レスポンス:

AddMessage

セッション履歴にメッセージを追加します。 リクエスト:
レスポンス:

ClearHistory

セッションメッセージ履歴をクリアします。 リクエスト:
レスポンス:

エラーハンドリング

ステータスコード

すべてのレスポンスには StatusCode が含まれます:
  • STATUS_CODE_OK (1) - 成功
  • STATUS_CODE_ERROR (2) - 一般的なエラー
  • STATUS_CODE_TIMEOUT (3) - 操作タイムアウト
  • STATUS_CODE_RATE_LIMITED (4) - レート制限を超過
  • STATUS_CODE_BUDGET_EXCEEDED (5) - トークン/コスト予算を超過

gRPC ステータスコード

使用される標準 gRPC ステータスコード:
  • OK (0) - 成功
  • CANCELLED (1) - リクエストがキャンセルされました
  • INVALID_ARGUMENT (3) - 無効なリクエストパラメータ
  • DEADLINE_EXCEEDED (4) - タイムアウト
  • NOT_FOUND (5) - リソースが見つかりません
  • ALREADY_EXISTS (6) - リソースはすでに存在します
  • PERMISSION_DENIED (7) - 権限が不十分です
  • RESOURCE_EXHAUSTED (8) - レート制限/クォータを超過
  • UNAUTHENTICATED (16) - 認証情報が欠落または無効です
  • UNAVAILABLE (14) - サービスが利用できません
  • INTERNAL (13) - 内部サーバーエラー

エラーハンドリングの例 (Python)


サービスエンドポイント

Gateway REST API はポート 8080 でも利用可能です (gRPC の HTTP/REST ラッパー)。 HTTP エンドポイントについては REST API リファレンス を参照してください。

コード生成

.proto ファイルからクライアントコードを生成します:

Python

Go

TypeScript


関連トピック

REST API

HTTP REST エンドポイント

Event Types

ストリーミングイベントカタログ

Python SDK

Python クライアントライブラリ

Database Schema

データ永続化