NasikoでAIエージェントのサーカスを手なずける方法
テスト用に单个のPythonエージェントを実行すると、すべてが予測可能に動作します。2番目のTypeScriptエージェント、3番目のGoエージェントを追加すると、头痛が始まります。エージェント同士が互いに直接呼び出しを始め、モデルのAPIキーがコンフィグやログに散らばり、ダイアログがループすると、数分でトークンが数千単位で消えていきます。

Nasiko-Labsチームは、ネットワークエンジニアがマイクロサービスに取り組む方法と同じアプローチでこの问题に取り組みました。Nasikoプロジェクトはエージェント向けの统一されたコントロールプレーンとして機能し、ルーティング、认证、無限ループ保护、テレメトリ収集を 处理します。エージェント自体は外部から隔離され、A2A仕様(Agent-to-Agent v1.0)を介してのみ通信します。

このプラットフォームできること
システム全体は单一のエントリーポイントというコンセプトを中心に设计されています。エージェントは物理的に外部からの着信接続を受け入れません。すべてのエージェント间リクエストはサーバーを経由し、アクセス规则の確認と制限の减算が行われます。
インテリジェントなコールルーティング
クライアントまたは呼び出し元エージェントは、対象サービスの具体的なIDを知る必要はありません。Nasiko内部では、3段階のパイプラインがエグゼキュータ 选择します。まずシステムが说明のベクトル類似度で候选をフィルタリングし、現在のダイアログコンテキストに基づいて再ランキングを行い、别個の軽量LLMが最终的な选择を行います。
安全な键管理与えとLLM Router
各コンテナの环境変数にOPENAI_API_KEYをハードコードする代わりに、エージェントには内部アドレスOPENAI_BASE_URLと短命トークンが発行されます。内部プロキシルーターはリアルタイムで正しいプロバイダ键を置き換えます。シークレットがログやコンテナコードに漏れることはありません。
无限ループとカスケードからの保护
2つのエージェントが互いに无限にping-pongし始めた场合、トークンバランスは急速にゼロになります。NasikoはRedisでコールグラフの深さ、分岐制限、タイムアウト、セッションごとのトークンバジェット用のカウンタを維持します。チェーンの深さが设定された阀値を超えると、サーバーは実行を中断します。
MCPプロトコルツールゲートウェイ
外部ツールの接続には、組み込みのMCP Gatewayがあります。これは_connector(例:ComposioまたはカスタムMCPサーバー)を集約し、エージェントごとにアクセス制御された单一のURLで関数呼び出しを提供します。
アーキテクチャとスタック
バックエンドはRustで記述され、Axumフレームワークを使用して单个のバイナリにコンパイルされます。状态存储には実績のあるコンポーネントが使用されます:
- PostgreSQLはユーザー、エージェント設定、暗号化されたシークレット(AES-256-GCM)を存储します。
- Redisはコールカウンタとサイクル保護を処理します。
- 組み込みのOCIレジストリはコンテナイメージをS3互換ストレージに保存します。
- OpenTelemetry、Tempo、Lokiスタックは各ステップの分散トレースとログを収集します。
エージェント間のリクエストはすべてOTel spanになります。ダッシュボードでは、特定のステップにどれだけのトークンが消费されたか、そして通话がセント単位でどのくらいの费用がかかったかが即时的に表示されます。
Dockerによるクイックスタート
スタック全体を開始するには、Rustの知識は必要ありません。Compose V2プラグイン付きのDocker Engineのみが必要です。
まず、リポジトリをクローンして環境ファイルを作成します:
git clone https://github.com/Nasiko-Labs/nasiko.git
cd nasiko
cp .env.example .env
.envでは、OpenAIキーと管理パスワードを指定する必要があります:
OPENAI_API_KEY=sk-...
ADMIN_PASSWORD=strong_password_here
その後、インフラストラクチャを起動します:
docker compose up -d
初回の起動には数分かかります。これは、Rustサーバーがコンテナ内でコンパイルされるためです。コントロールパネルはhttp://localhost:8080でアクセス可能になります。
CLIでの作業
開発者向けのコンソールユーティリティであるnasikoがあります。Cargoでインストールできます:
cargo install --path cli/
新しいエージェントを作成して起動するには、4つのコマンドを実行します:
# Подключаемся к локальному кластеру
nasiko connect http://localhost:8080
nasiko auth login
# Создаем проект из шаблона
nasiko new openai assistant-bot
cd assistant-bot
# Собираем и деплоим
nasiko deploy .
# Проверяем работу в чате
nasiko chat --agent assistant-bot "Привет, чем ты можешь помочь?"
deployコマンドはコンテナを自動的にビルドし、Nasikoの組み込みレジストリにプッシュし、路由器にエージェントを登録します。
活用場面
このプロジェクトは、単純なLangChainスクリプトでは対応できなくなり、数十の専門的なエージェントから本番システムを構築しているチームを対象としています。
Nasikoが時間を節約できる典型的なシナリオは次のとおりです:
- 異なるチームが異なる言語(Python、Node.js、Go)で記述したエージェントを使用したマルチエージェントパイプライン。
- 本番APIキーを外部実行環境に渡すことができない、厳格なセキュリティ要件を持つシステム。
- 手動のログ解析なしで、特定のタスクやユーザーごとにLLMコストを監視すること。
まとめ
Nasikoは、マルチエージェントシステムのネットワーキングレイヤーとオブザーバビリティを1つのコンパクトなツールにパッケージ化した、成熟した尝试のように見えます。プロンプト記述用のカスタムDSLを强制する试みはなく、A2A v1.0仕様をサポートしている限り、任意のフレームワークでロジックを記述する自由があります。
エージェントマイクロサービスを手動で配線したり、断片化されたOpenAIとAnthropicのダッシュボード間でトークンをカウントすることに疲れているなら、このプロジェクトは確かにローカルで実行して試してみる価値があります。本番環境では、オープンソースバージョンでのDockerランタイムとの密な結合に注意する必要がありますが、ローカル開発や内部ステージング環境では、すでに実行可能なオプションです。
関連プロジェクト