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ワークロードに翻訳します:

  1. Workspace → リポジトリを共有PersistentVolumeにクローンします。
  2. AgentConfig → 認証情報をSecretとして注入し、選択されたLLMプロバイダーイメージをマウントします。
  3. Task → 供給されたプロンプトでエージェントコンテナを実行するJobを作成します。
  4. SessionStatefulSetとサイドカーのWebSocketサーバーを作成し、KelosコンソールまたはCLIからエージェントとチャットできます。
  5. 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 logskelos 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。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト