centaur
在 Slack 中 @centaur,发起真正的代码级 AI Agent 任务——每个对话在隔离 Kubernetes 沙箱中运行,支持 Claude Code/Codex 等 CLI Agent
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在 Slack 中 @centaur,发起真正的代码级 AI Agent 任务——每个对话在隔离 Kubernetes 沙箱中运行,支持 Claude Code/Codex 等 CLI Agent
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
凌晨两点,某工程师在 Slack 上丢下一句话:
@centaur 能帮我查一下 billing 模块的测试为什么失败了吗?
几秒钟后,名为 Centaur 的 Bot 在同一个线程中回复:正在分配沙箱环境。与此同时,在某个 Kubernetes Pod 中,一个隔离的沙箱被启动——它拥有完整的 Shell、Git、Python、Node.js、Bun 环境,可以访问代码仓库、运行测试命令、调用团队内置的工具。
最终,一条详细的诊断报告出现在 Slack 线程中:billing 测试失败是因为日期格式化模块在 UTC+8 时区下存在边界条件 bug,并附带了具体的代码行数和修复建议。
这不是演示视频,这是 Centaur 的真实使用场景。
Centaur 由加密领域顶级风投 Paradigm(曾投资 Coinbase、Uniswap、Optimism 等头部项目)开源,是该公司内部 AI Agent 平台的核心基础设施。
Paradigm 一直是开源社区的活跃贡献者,旗下拥有多个高质量开源项目。Centaur 的诞生源于 Paradigm 内部的一个实际痛点:团队成员各自搭建独立的 AI Agent 环境,导致工具碎片化、上下文无法共享、凭证管理混乱。他们希望有一个团队共享的 Agent 平台,每个对话都能在隔离环境中运行真实的代码、执行真实的工具、访问真实的内部服务——而不是简单的问答。
开源后的 Centaur 定位为"frontier, agentic infrastructure that you own",即团队自主托管的 Agent 基础设施。它将 Claude Code、Amp、Codex 等 CLI Agent 带入团队协作场景,同时保留了完全的自主控制权。
Centaur 的架构设计围绕一个核心原则:每个对话都在隔离的 Kubernetes 沙箱中运行。
系统分为以下几个核心组件:
后端核心服务,使用 Rust + Axum 框架编写,负责 Agent 生命周期管理、工具注册、工作流编排、认证和持久化状态存储。这是整个平台的大脑,通过 Axum(基于 Tokio 异步运行时的高性能 Web 框架)处理所有控制平面请求。
Centaur 不只是一个 Slack Bot,而是支持多种消息平台的一体化方案:
每个 Bot 都是独立部署的微服务,拥有自己的 Dockerfile 和配置,通过 Centaur API 与沙箱交互。
这是 Agent 实际执行任务的地方。每个会话分配一个独立的 Kubernetes Pod,其中包含:
install_tool_shims.py 将团队开发的 Python 工具安装为本地 CLI 命令compose_system_prompt.py 动态组合系统提示词沙箱通过 iron-proxy 访问外部服务,iron-proxy 是 Paradigm 开发的另一个开源项目,负责按规则注入凭证并控制出站流量。
Centaur 的工具以 Python 插件形式存在,目录结构规范:
tools/my_tool/
├── __init__.py
├── client.py # 与外部服务交互
├── cli.py # CLI 入口
├── .env.example
└── pyproject.toml
每个工具声明 [project.scripts] 入口,沙箱启动时自动安装为本地命令。内置工具覆盖:商业分析(business/)、通信(comms/)、加密货币(crypto/)、基础设施(infra/)、媒体(media/)、产品(productivity/)、研究(research/)等多个领域。
处理跨请求的持久化任务。工作流以 Python 函数定义,支持:
ctx.step)ctx.run_agent)与基于 API 的 Agent 不同,Centaur 的每个对话都在真实隔离的容器中运行。这意味着 Agent 可以:
这种能力是纯 API 模式的 Agent 所无法提供的。
Agent 永远看不到真实的 API Key。所有凭证由 iron-proxy 持有并按规则注入:只有经过批准的外部服务才能被访问,且凭证以环境变量替换方式注入,Agent 只看到占位符字符串。
消息、执行步骤、事件和投递状态全部持久化到 Postgres 数据库。用户重新连接不会丢失结果,支持回放整个对话过程。
无需 Fork 主仓库,通过 Overlay 机制即可引入自己的工具、工作流、角色和提示词。保持了与上游主版本同步的能力。
Centaur 的最大挑战是部署复杂度。
官方推荐的最低配置是 k3s 集群(轻量级 Kubernetes),而不是本地 Docker Compose。这意味着:
官方文档明确提到本地 checkout 路径为 /Users/magelinskaas/paradigmxyz/centaur,暗示主要面向 Mac/Linux 工作站的开发者用户。对于没有 Kubernetes 运维经验的团队,初始部署可能需要数小时甚至更长时间。
此外,Centaur 不提供传统 Web 界面,完全依赖消息平台(Slack、Teams 等)作为用户交互入口。如果团队不使用这些平台,体验会大打折扣。
从代码质量角度,Centaur 展现了高水准的工程实践:
centaur_sdk Python 包,降低工具开发门槛Centaur 代表了 AI Agent 从"个人工具"向"团队协作平台"演进的一个重要方向。随着 Claude Code、Copilot Agent 等工具逐渐普及,如何在团队中标准化、规范化 AI Agent 的使用成为一个现实问题。
Centaur 给出的答案是:不要让每个人各自为政,建立统一的 Agent 基础设施。统一的凭证管理、统一的工具注册、统一的可审计日志——这些是企业级 AI Agent 平台的标配。
同时,Centaur 的开源也展示了 Paradigm 在工程能力上的积累。Rust + Kubernetes + 微服务的组合,加上对安全性的深刻理解(iron-proxy 的凭证注入机制),使这个项目在技术深度上远超一般爱好者项目。
对于有 Kubernetes 经验的开发者:
# 克隆仓库
git clone https://github.com/paradigmxyz/centaur
cd centaur
# 安装 just
brew install just
# 配置环境变量(Slack Bot Token 等)
export SLACK_BOT_TOKEN=xoxb-...
export SLACK_SIGNING_SECRET=...
# ... 其他凭证
# 引导 Secrets 到 K8s
just bootstrap-secrets
# 启动本地集群(或 just up k3s 推送到 k3s)
just up
完整部署参考:centaur.run 及仓库中的 docs/ 目录。