kelos-dev/kelos

Kelos - The Kubernetes-native framework for orchestrating autonomous AI coding agents.

Kelos – 在 Kubernetes 上執行 AI 驅動的程式碼代理 (Coding Agents)

是什麼 – Kelos 是一個開源的控制平面 (control plane),它將 coding agents (由 LLM 驅動的程式碼生成器,例如 Claude Code, OpenAI Codex, Google Gemini 等) 轉換為一等公民的 Kubernetes 工作負載。它定義了一組自定義 Kubernetes 資源 (Task, Session, Workspace, AgentConfig, …) 來描述代理 要做什麼、程式碼 存在哪裡 以及 如何執行。控制器會監控這些資源並建立適當的 Pods, Jobs, 或 StatefulSets,處理憑證、儲存庫檢出 (checkout)、工具安裝以及生命週期管理。

為什麼重要 – 開發人員通常在本地機器上執行基於 LLM 的程式碼助手,這限制了擴展性、隔離性與可觀測性。Kelos 將執行環境移至 Kubernetes 集群,為您提供:

  • 隔離性 – 每個代理都在其專屬的 pod 中執行,擁有獨立的 secrets 與資源限制。
  • 可重用性 – 同一個 Workspace, AgentConfig 與技能集 (skill set) 可以跨多個 Tasks 或 Sessions 重用。
  • 自動化 – Tasks 可以從 GitHub, Jira, Linear, cron 或通用的 webhooks 自動觸發。
  • 可觀測性與控制 – 因為一切都是原生的 K8s 物件,您可以進行檢查、觀察、版本控制,並套用標準策略 (RBAC, quotas, etc.)。

核心概念 | Resource | Role | |---|---|| | Workspace | 將 Git 儲存庫 (以及選用的 ref) 連結至集群,提供代理將要處理的程式碼庫。| | AgentConfig | 儲存 LLM 提供者的憑證、提示詞 (prompts)、插件 (plugins) 以及選用的 MCP (model‑control‑plane) 伺服器。| | Task | 一次性任務:使用單一提示詞執行代理,等待完成,並擷取結果 (commits, PRs, token usage)。| | Session | 與代理進行長時間運行的互動式對話,可以從終端機或 Web UI 重新連接。| | TaskSpawner / SessionSpawner | 宣告式物件,用於根據事件 (webhooks, schedules) 建立 Tasks 或 Sessions。| | WorkerPool | 維持一個隨時可用的代理容器池,以減少冷啟動延遲。|

如何運作 – Kelos 控制器會監控自定義資源並將其轉換為 Kubernetes 工作負載:

  1. Workspace → 將儲存庫複製 (clone) 到共享的 PersistentVolume 中。
  2. AgentConfig → 將憑證作為 Secrets 注入,並掛載所選的 LLM 提供者映像檔 (image)。
  3. Task → 建立一個 Job 來執行帶有指定提示詞的代理容器。
  4. Session → 建立一個 StatefulSet 加上一個 side-car web-socket 伺服器,以便您能透過 Kelos Console 或 CLI 與代理對話。
  5. Spawner 物件會監控外部來源 (GitHub webhooks, CronJobs) 並自動生成上述資源。

入門指南 (來自 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 chart

# 4. 為您的 LLM 添加一個程式碼代理技能 (例如 Node‑based skill)
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 "Add a hello world program in Python" \
  --watch

# 7. (選用) 透過 Web Console 開啟互動式 Session
kelos session connect interactive-review

CLI 也支援 kelos logs, kelos init 用於配置腳手架 (scaffolding),以及 kelos create … 用於其他資源類型。

典型使用場景

  • 開發人員引導的工作 – 開始一個 Session,讓代理撰寫程式碼草稿,讓代理撰寫程式碼草稿,然後稍後重新連接以進行審查或繼續工作。
  • 事件驅動的自動化 – 當 GitHub issue 獲得 agent-ready 標籤時,自動建立一個 Task;代理會重現 Bug,撰寫修復程式碼,並開啟一個 PR。
  • Agent 管道 (Pipelines) – 使用 TaskSpawner 將 Tasks 串聯起來 (實作 → 測試 → 審查),以建立由 LLM 驅動的 CI 模式工作流。
  • Repository 艦隊 (Fleets) – 透過啟動並行列的 Tasks,將相同的變更應用到數十個微服務中。
  • 自我開發循環 (Self‑development loops) – 讓專門的代理持續進行分類、實作與維護一個專案 (Kelos 儲存庫本身就是如此示範)。

哪裡可以學習更多 – 該儲存庫提供豐富的文件:

  • docs/reference.md – API 規範與 CLI 參數 (flags)。
  • examples/ – 針對 Tasks, Sessions, spawners 等提供的現成可用 YAML 模式。
  • docs/integration.md – 如何串接 GitHub, Jira, Linear, 以及通用的 webhooks。
  • docs/agent-image-interface.md – 如何建立能提供標準 LLM‑agent 介面的自定義容器映像檔。
  • Helm chart 文件用於安裝與升級。

授權 – Apache License 2.0。

相關

  • 專案
  • 專案
  • 專案
  • 專案