Turnstone — LLMエージェントをクラスターで束ねるマルチノードAIオーケストレーション基盤
ひとことでいうと
Turnstone(ターンストーン)は、複数のLLM(大規模言語モデル)エージェントをサーバークラスター上に展開し、ツール実行・意図検証・ガバナンスを一元管理するPythonベースのAIオーケストレーションプラットフォームです。ターミナルCLI・ブラウザUI・REST APIのいずれからでも操作でき、OpenAI互換API・Anthropic・Google Geminiといった主要LLMプロバイダーに対応しています。名前の由来は、石をひっくり返して獲物を探す渡り鳥「ルディ・ターンストーン(Arenaria interpres)」で、LLMが問題の裏側を掘り起こして調査するさまを表しています。
このソフトで何ができる?
TurnstoneはLLMにシェル・ファイル・検索・Web・メモリ・通知・サブエージェント起動といったツール群を与え、マルチターンの会話の中でモデルが自律的に調査・実行・報告できる環境を構築します。単一ノード構成ではクライアント→サーバーの直接HTTP+SSE通信、マルチノード構成ではコンソール(ランデブー・ルーティングプロキシ)→各サーバーノードへの分散ルーティングが可能です。ノードの追加・離脱時もHRW(Highest Random Weight)ハッシュにより、ワークストリームIDとライブノードセットだけで決定論的に再ルーティングされ、バケット状態を別途管理する必要がありません。
MCP(Model Context Protocol)サーバーとのネイティブ統合もサポートしており、Anthropic/OpenAI形式のdeferred loadingとBM25フォールバックの両方に対応しています。また、すべてのツール呼び出しをLLMジャッジ(意図検証エンジン)がリスク評価・承認するパイプラインが組み込まれており、エンタープライズ用途で求められる安全性を確保します。
こんな人におすすめ
- AIエージェントを業務システムに組み込みたいエンジニア: RBAC・OIDC SSO・監査ログ・ツールポリシーといったエンタープライズ機能が揃っているため、セキュリティ要件の厳しい社内システムへの導入に向いています。
- 複数のLLMプロバイダーを試しながら最適解を探したいMLエンジニア: OpenAI互換API(vLLM、llama.cpp、NIM)・Anthropic・Geminiをバックエンドとして切り替え可能なため、プロバイダー比較やコスト最適化に活用できます。
- マルチエージェント・クラスター構成を実験したい研究者・開発者: コンソール(ダッシュボード)からリアルタイムに全ノード・ワークストリームを俯瞰でき、並列ワークストリームや子エージェント起動の挙動を可視化しながら検証できます。
インストール・使い方
Step 1: パッケージのインストール
# 基本インストール
pip install turnstone
# PostgreSQL対応(本番推奨)
pip install turnstone[postgres]
# Anthropic API対応
pip install turnstone[anthropic]
# クラスターコンソール対応
pip install turnstone[console]
Step 2: ターミナルREPLの起動
# OpenAI互換エンドポイントに接続
turnstone --base-url http://localhost:8000/v1
Step 3: ブラウザUIサーバーの起動
turnstone-server --port 8080 --base-url http://localhost:8000/v1
Step 4: Dockerによるワンコマンド起動
cp .env.example .env # LLM_BASE_URL・OPENAI_API_KEY等を編集
docker compose --profile production up
Step 5: SDK経由のプログラム操作
from turnstone.sdk import TurnstoneServer
with TurnstoneServer("http://localhost:8080", token="tok_xxx") as client:
ws = client.create_workstream(name="demo")
result = client.send_and_wait(
"エラーログを解析して",
ws.ws_id,
auto_approve=True
)
print(result.content)
動かしてみた
Python 3.12.13の環境でpipによるインストールを試みたところ、パッケージの取得と依存関係の解決が正常に完了しました。インストール後はプロジェクト構成が確認でき、turnstone/server.py・turnstone/cli.py・turnstone/eval.py・turnstone/admin.pyなどのコアモジュールが揃っていることを確認しています。
./turnstone/admin.py
./turnstone/server.py
./turnstone/__init__.py
./turnstone/cli.py
./turnstone/eval.py
Docker構成ファイル(./Dockerfile、./docker/entrypoint.sh、./docker/healthcheck.py)も一式備わっており、コンテナによるデプロイが想定されています。ドキュメントもdocs/以下に体系的に整備されており、docs/architecture.md・docs/settings.md・docs/api-reference.mdなど主要トピックが網羅されています。
コンポーネント構成と実践的なアーキテクチャ理解
Turnstoneは用途別に明確に分離された複数のコマンドラインツールで構成されています。
| コンポーネント | コマンド | 役割 |
|---|---|---|
| CLI REPL | turnstone | ターミナル対話インターフェース |
| Web UI + API | turnstone-server | ブラウザUI・REST API・SSEイベント |
| クラスターコンソール | turnstone-console | ダッシュボード・ルーティングプロキシ・管理画面 |
| チャンネルゲートウェイ | turnstone-channel | Discord・Slackアダプター |
| 管理CLI | turnstone-admin | ユーザー・トークン管理 |
| Evalハーネス | turnstone-eval | プロンプト・ツール最適化のための評価実行 |
| セットアップウィザード | turnstone-bootstrap | LLMガイド付き初期設定 |
単一ノードと多ノード構成を同一コードベースで切り替えられる設計は、スモールスタートからスケールアウトへの移行をスムーズにしています。
ブラウザで試す(デモ)
ブラウザ上でTurnstoneのアーキテクチャ選択肢とデプロイ設定を視覚的に確認できるインタラクティブデモをご用意しています。LLMプロバイダーや構成パターンを選ぶと対応する設定例が生成されます。
活用アイデア
- 社内ナレッジベースへのAIアシスタント導入: RBAC・OIDC SSOを活用してユーザーごとにアクセス権を制御しながら、社内ドキュメント検索ツールを持つエージェントを展開する。
- CI/CDパイプラインのエラー自動解析:
turnstone-evalでエラーパターンの評価セットを構築し、Evalハーネスでプロンプトを最適化した後、本番のCI通知フックに組み込む。 - Discord/Slackボットによる開発チーム支援:
turnstone-channelでSlackワークスペースに接続し、コードレビュー補助やインシデント調査を行うエージェントを常駐させる。 - マルチLLM比較ベンチマーク: 同一ワークストリームをOpenAI互換エンドポイント・Anthropic・Geminiに並列送信し、コスト・品質・レイテンシを比較する。
用語まとめ
- ワークストリーム(Workstream): 一連の会話セッションの単位。各ワークストリームはIDで識別され、ノードへのルーティングはそのIDを元に決定される。
- ジャッジ(Judge): すべてのツール呼び出しを評価するLLMベースの意図検証エンジン。リスク評価と証拠を生成して承認・拒否を判断する。
- HRWハッシュ(Rendezvous / Highest Random Weight Hashing): ワークストリームIDとライブノードリストだけからルーティング先を決定する一貫性ハッシュ手法。ノード増減時の再ルーティングを最小化する。
- MCP(Model Context Protocol): Anthropicが策定した外部ツールサーバーとの標準通信プロトコル。Turnstoneはdeferred loadingとBM25フォールバックをサポート。
- BSL-1.1(Business Source License 1.1): マネージドサービスとして提供する用途を除き無償利用可能なソースアベイラブルライセンス。