kelos-dev/kelos

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

Kelos – 在 Kubernetes 上运行 AI 驱动的编程代理

是什么 – Kelos 是一个开源控制平面,它将 编程代理(由 LLM 支持的代码生成器,如 Claude Code、OpenAI Codex、Google Gemini 等)转变为一等公民的 Kubernetes 工作负载。它定义了一组自定义 Kubernetes 资源(Task、Session、Workspace、AgentConfig、...)来描述代理 应该做什么、代码 存放在哪里 以及 如何运行。控制器会监听这些资源并创建相应的 Pods、Jobs 或 StatefulSets,处理凭据、仓库检出、工具安装和生命周期管理。

为什么重要 – 开发者通常在本地机器上运行基于 LLM 的代码助手,这限制了可扩展性、隔离性和可观测性。Kelos 将执行过程转移到 Kubernetes 集群,为您提供:

  • 隔离性 – 每个代理都在其专属的 Pod 中运行,拥有独立的 Secrets 和资源限制。
  • 可重用性 – 相同的 Workspace、AgentConfig 和技能集可以在许多 Task 或 Session 中重复使用。
  • 自动化 – Task 可以通过 GitHub、Jira、Linear、cron 或通用的 webhooks 自动触发。
  • 可观测性与控制 – 因为一切都是原生的 K8s 对象,您可以对其进行检查、版本控制并应用标准策略(RBAC、配额等)。

核心概念

Resource Role
Workspace 将 Git 仓库(及可选的 ref)链接到集群,提供代理将要工作的代码库。
AgentConfig 存储 LLM 提供商的凭据、提示词、插件以及可选的 MCP (model-control-plane) 服务器。
Task 一次性任务:使用单个提示词运行代理,等待完成并捕获结果(提交、PR、token 使用量)。
Session 与代理进行长期的、交互式的对话,可以通过终端或 Web UI 重新连接。
TaskSpawner / SessionSpawner 声明式对象,用于响应事件(webhooks、计划任务)来创建 Task 或 Session。
WorkerPool 维护一个随时可运行的代理容器池,以减少冷启动延迟。

工作原理 – Kelos 控制器监听自定义资源并将其转换为 Kubernetes 工作负载:

  1. Workspace → 将仓库克隆到共享的 PersistentVolume 中。
  2. AgentConfig → 将凭据作为 Secrets 注入,并挂载所选的 LLM 提供商镜像。
  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 的技能为例)
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. Run 一个一次性 Task
kelos run \
  --workspace my-workspace \
  --prompt "Add a hello world program in Python" \
  --watch

# 7. (可选) 通过 Web 控制台打开一个交互式 Session
kelos session connect interactive-review

CLI 还支持 kelos logskelos init 用于配置脚手架,以及 kelos create ... 用于其他资源类型。

典型使用场景

  • 开发者引导的工作 – 启动一个 Session,让代理代写代码,让代理代写代码,然后稍后重新连接以进行评审或继续工作。
  • 事件驱动的自动化 – 当 GitHub issue 获得 agent-ready 标签时,自动创建一个 Task;代理会复现 Bug、编写修复程序并提交 PR。
  • 代理流水线 – 使用 TaskSpawner 将 Task 串联起来(实现 → 测试 → 评审),以构建由 LLM 驱动的 CI 风格的工作流。
  • Repository 舰队 – 通过并行启动多个 Task,将相同的更改应用到数十个微服务中。
  • 自我开发循环 – 让一个专门的代理持续进行项目的分拣、实现和维护(Kelos 仓库本身就展示了这一点)。

在哪里学习更多 – 该仓库提供了详尽的文档:

  • docs/reference.md – API 规范和 CLI flags。
  • examples/ – 适用于 Task、Session、spawners 等的 ready-to-apply YAML 模式。
  • docs/integration.md – 连接 GitHub、Jira、Linear 和通用 webhooks。
  • docs/agent-image-interface.md – 如何构建暴露标准 LLM-agent 接口的自定义容器镜像。
  • Helm chart 文档用于安装和升级。

License – Apache License 2.0。

相关

  • 项目
  • 项目
  • 项目
  • 项目