kelos-dev/kelos
Kelos - The Kubernetes-native framework for orchestrating autonomous AI coding agents.
Kelos – Kubernetes上でAI駆動のコーディングエージェントを実行する
何であるか – Kelosは、コーディングエージェント(Claude Code、OpenAI Codex、Google Geminiなど、LLMをバックエンドに持つコード生成ツール)をKubernetesの第一級ワークロードに変換するオープンソースのコントロールプレーンです。Kelosは、エージェントが何をすべきか、コードはどこに存在するか、どのように実行されるかを記述するカスタムKubernetesリソース(Task、Session、Workspace、AgentConfigなど)を定義します。コントローラーはこれらのリソースを監視し、適切なPod、Job、またはStatefulSetを作成し、認証情報、リポジトリのチェックアウト、ツールのインストール、ライフサイクル管理を処理します。
なぜ重要か – 開発者はしばしばLLMベースのコードアシスタントをローカルマシン上で実行していますが、これにはスケーラビリティ、隔離性、観測性の制限があります。Kelosは実行をKubernetesクラスタに移行し、以下の利点を提供します:
- 隔離性 – 各エージェントは独自のPodで実行され、独自のシークレットとリソース制限を持ちます。
- 再利用性 – 同じWorkspace、AgentConfig、スキルセットは、多数のTaskやSessionで再利用可能です。
- 自動化 – TaskはGitHub、Jira、Linear、cron、または一般的なwebhookから自動的に生成できます。
- 観測性と制御 – すべてがネイティブなK8sオブジェクトであるため、検査、バージョン管理、標準ポリシー(RBAC、クォータなど)の適用が可能です。
コアコンセプト
| リソース | 役割 |
|---|---|
Workspace |
Gitリポジトリ(およびオプションのref)をクラスタにリンクし、エージェントが作業するコードベースを提供します。 |
AgentConfig |
LLMプロバイダーの認証情報、プロンプト、プラグイン、およびオプションのMCP(モデル・コントロールプレーン)サーバーを格納します。 |
Task |
一度限りのジョブ:単一のプロンプトでエージェントを実行し、完了を待って結果(コミット、PR、トークン使用量など)をキャプチャします。 |
Session |
長期間にわたるインタラクティブな会話で、ターミナルまたはWeb UIから再接続可能です。 |
TaskSpawner / SessionSpawner |
イベント(webhook、スケジュール)に応じてTaskまたはSessionを作成する宣言的オブジェクトです。 |
WorkerPool |
冷却時間の短縮を目的として、実行準備が整ったエージェントコンテナのプールを維持します。 |
動作方法 – Kelosコントローラーはカスタムリソースを監視し、Kubernetesワークロードに翻訳します:
- Workspace → リポジトリを共有PersistentVolumeにクローンします。
- AgentConfig → 認証情報をSecretとして注入し、選択されたLLMプロバイダーイメージをマウントします。
- Task → 供給されたプロンプトでエージェントコンテナを実行する
Jobを作成します。 - Session →
StatefulSetとサイドカーのWebSocketサーバーを作成し、KelosコンソールまたはCLIからエージェントとチャットできます。 - Spawnerオブジェクトは外部ソース(GitHub webhook、CronJobなど)を監視し、上記のリソースを自動的に生成します。
導入方法(READMEから)
# 1. cert-managerがインストールされたK8s 1.28+クラスタを用意する
# 2. Kelos CLIをインストールする
curl -fsSL https://raw.githubusercontent.com/kelos-dev/kelos/main/hack/install.sh | bash
# またはHomebrew / go install経由
# 3. コントローラーをクラスタにデプロイする
kelos install # Helmチャートをインストール
# 4. LLMにコーディングエージェントスキルを追加する(Nodeベースのスキルの例)
npx skills add kelos-dev/kelos
# 5. リポジトリを指すWorkspaceを作成する
kelos create workspace my-workspace \
--repo https://github.com/your-org/your-repo.git \
--ref main
# 6. 一度限りのTaskを実行する
kelos run \
--workspace my-workspace \
--prompt "PythonでHello Worldプログラムを追加" \
--watch
# 7. (オプション)Webコンソール経由でインタラクティブなSessionを開く
kelos session connect interactive-review
CLIはkelos logs、kelos init(設定のスケルトン作成)、kelos create …(他のリソースタイプの作成)もサポートしています。
一般的な利用例
- 開発者主導の作業 – Sessionを開始し、エージェントにコードを草案させ、後で再接続してレビューまたは継続する。
- イベント駆動の自動化 – GitHubのイシューに
agent-readyラベルが付与されたら、Taskを自動的に作成。エージェントはバグを再現し、修正を記述し、PRを開く。 - エージェントパイプライン –
TaskSpawnerを使ってTaskを連鎖(実装 → テスト → レビュー)し、LLM駆動のCIスタイルワークフローを構築する。 - リポジトリファルエット – 同じ変更を数十のマイクロサービスに並列で展開するため、並列Taskを生成する。
- 自己開発ループ – 専用エージェントに継続的にトリアージ、実装、保守を任せられる(Kelosリポジトリ自体がこれの実例です)。
さらに学ぶには – リポジトリには豊富なドキュメントが含まれています:
docs/reference.md– API仕様とCLIフラグ。examples/– Task、Session、Spawnerなど、すぐに適用可能なYAMLパターン。docs/integration.md– GitHub、Jira、Linear、および一般的なwebhookの接続方法。docs/agent-image-interface.md– 標準的なLLMエージェントインターフェースを公開するカスタムコンテナイメージの構築方法。- インストールおよびアップグレード用のHelmチャートドキュメント。
ライセンス – Apache License 2.0。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト