Kastor: AIエージェントのためのTerraformスタイルの宣言的レイヤー

Kastor: AIエージェントのためのTerraformスタイルの宣言的レイヤー

Kastorは、AIエージェントのための宣言的な信頼できる唯一の情報源(source-of-truth)レイヤーを提供し、開発者がエージェント、ツール、プロンプト、およびモデルをHashiCorp Configuration Language (HCL)で定義し、それらを実行可能なフレームワークコードまたは管理されたプラットフォームリソースへとコンパイルできるようにします。このアプローチは、エージェントの設定を、フレームワークコード、プロンプトファイル、およびプラットフォームUIに分散した断片的な設定としてではなく、バージョン管理可能でレビュー可能な契約として扱います。

宣言的なエージェント仕様

Kastorは、一連の宣言的なファイルを使用して、AIエージェントの完全な契約を定義します。実行時のコード内に設定を埋め込む代わりに、Kastorは定義と実行を分離します。

ファイルの種類と構造

Kastorモジュールは、以下のファイルタイプを含むディレクトリツリーで構成されます。

  • .agent: エージェントのモデル、プロンプト、ツール、入力、出力、および他のエージェントへの依存関係を定義します。
  • .tool: ツールのインターフェースと、その実装ソースを指定します。
  • .prompt: プロンプトテンプレートを含み、必要な変数を特定します。
  • *kastor.hcl / .kastor: モデル、ターゲット、およびグローバルなデフォルトを定義するために使用されるプロジェクトファイルです。

これらのファイル内の参照は、ファイルパスではなくアドレス(例:model.fasttool.web_search)によってブロックを接続するため、Kastorはコンパイル時に依存関係グラフを構築し、検証することができます。

ワークフロー: Build, Plan, and Apply

Kastorは、エージェントの意図した状態が実際のデプロイされた状態と一致するように、Terraformのワークフローを模倣したツールチェーンを実装しています。

Codegen Path (kastor build)

Kastorは、モジュールを実行可能なフレームワークコードにコンパイルできます。例えば、Kastorの仕様から、完全なLangGraphプロジェクトを生成できます。生成されたコードは出力アーティファクトであり、信頼できる唯一の情報源となることを意図していません。変更はHCL仕様で行い、再ビルドする必要があります。

Reconciliation Path (kastor plan / apply)

ホストされたエージェントの場合、Kastorは調整(reconciliation)ツールを提供します。

  • kastor plan: 現在の仕様と状態ファイルおよびリモートリソースを比較し、ドリフト(乖離)や必要な変更を特定する読み取り専用の操作です。
  • kastor apply: ホストされたエージェントを仕様に適合させます。
  • kastor destroy: 管理されたエージェントを削除します。

LangGraphおよびMCPとの統合

Kastorは現在、LangGraphプロジェクトの生成およびModel Context Protocol (MCP)との統合をサポートしています。

LangGraph生成

LangGraphターゲットに対してkastor buildを実行すると、生成されたプロジェクトは指定された出力ディレクトリに書き込まれます。このプロジェクトには、エージェントの入出力契約およびツールバインディングの詳細を記したREADME.mdが含まれます。

MCPツール

Kastorのツールは、仕様URI(例:mcp://search-server/tavily_search)を介してMCPサーバーおよびツールに固定できます。URLやAPIキーなどの実際の接続詳細は、仕様そのものではなく、デプロイメント構成(mcp_servers.jsonなど)を介して処理されるため、機密情報をバージョン管理されたHCLファイルから排除できます。

アーキテクチャとポジショニング

Kastorはエージェントの実行時(runtime)ではありません。実行時レイヤーの上に位置し、標準化された構成インターフェースを提供します。

フレームワークおよびTerraformとの比較

  • Vs. LangGraph: LangGraphはエージェントを実行する実行時フレームワークですが、Kastorは契約を定義し、プロジェクトを生成します。KastorはLangGraphの代替ではなく、その上に位置するレイヤーです。
  • Vs. Terraform: Terraformはリモートインフラストラクチャリソースの管理のために設計されていますが、Kastorはエージェントの仕様そのものに焦点を当てています。これにより、Kastorはローカルフレームワークコードの生成と、ホストされたプラットフォームエージェントの調整の両方をサポートできます。

現在のステータスと機能

Kastorは現在、初期の概念実証(proof of concept)です。現在の動作機能には以下が含まれます。

  • .agent, .tool, .prompt, および kastor.hcl ファイルの解析。
  • 参照およびプロンプト変数の検証。
  • インメモリ・プラットフォームのサポート: APIキーを必要とせずに、組み込みのインメモリ・プラットフォームターゲットに対してplanおよびapplyワークフローをテストできます。
  • 状態管理: ローカル状態ファイル、3方向比較(three-way diffs)、およびドリフト検出。
  • 実装例: 天気エージェントおよびコンテンツスケジューラーが含まれます。

Sources