在 Slack 中运行团队 AI 代理:Centaur

开发者正在迅速采用 Claude Code、Codex 或 Amp 等 CLI 代理。我们让它们重构模块、运行测试或在日志中查找 bug。但这些工作成果通常只停留在某个工程师的终端里。当工作群聊中出现关于构建失败的问题时,总得有人去控制台手动向神经网络输入数据。
风险投资机构 Paradigm 以开源方式发布了 Centaur。这是一个将本地自主代理转变为团队共享助手的平台,可直接在 Slack 或 Teams 中使用。
为什么需要 Centaur
在整个团队中部署 AI 代理面临的主要挑战是安全性。直接向 LLM 提供包含生产密钥的环境访问权限,比让实习生在周五晚上进入生产环境更危险。Centaur 通过隔离沙箱来解决这个问题。
你在自己的基础设施中部署该平台。团队成员在 Slack 频道中 @ 提及 @centaur 并附带任务,系统会创建一个隔离的上下文并开始工作。
# Пример взаимодействия в Slack
@centaur можешь разобраться, почему падают тесты биллинга?
之后,Centaur 为任务分配一个独立的容器,在其中运行代理,赋予其代码和工具的访问权限,并将中间结果和最终结果返回到频道中。
安全与架构
Paradigm 的工程师为自主代码执行设计了安全边界。该系统由以下几个组件组成:
- Rust 控制平面 — 通过 Postgres 处理队列、对话状态、授权和工作流执行。
- Kubernetes 沙箱 — 每个对话启动一个基于容器的隔离环境。预装了 Git、Python、Node.js、Bun 和一套基础 CLI 工具。
- iron-proxy 网络代理 — 处理密钥管理。
这里最有趣的部分是动态凭证替换。默认情况下,包含代理的 pod 会被 NetworkPolicy 阻止。代理根本不会收到来自内部服务的真实 API 密钥或令牌。它的环境中只包含伪造的占位符字符串。
当代理向第三方 API 发出 HTTP 请求时,流量会通过代理层。代理检查目标域名,找到相应的标头,并在数据包发送到外部网络之前从 1Password 中替换真实的密钥。即使模型被攻陷或生成包含所有 env 的输出,真正的密钥也不会泄露。
Slack / API
│
▼
Centaur API (Rust + Postgres)
│
▼
Kubernetes Sandbox (Agent + Workspace + Shell)
│
▼
iron-proxy (Проверка доменов и инъекция реальных секретов)
│
▼
Внешний интернет / Внутренние сервисы
如何扩展代理能力
Centaur 有两种扩展格式:工具和长时间运行的工作流。
工具
工具被打包为常规的 Python 包。它们可以封装你公司的内部 API、数据库或 CLI 工具。
容器启动时,平台将这些脚本挂载为命令行包装器。代理在启动时通过 centaur-tools list 命令发现它们,并从 --help 读取参数说明。
工具结构看起来很熟悉:
tools/my_tool/
├── __init__.py
├── client.py
├── cli.py
├── .env.example
└── pyproject.toml
工作流
如果任务需要超过两分钟、需要等待外部事件或涉及服务重启,你就使用工作流。这些是具有持久执行步骤的 Python 函数。
WORKFLOW_NAME = "daily_digest"
async def handler(inp, ctx):
# Данные сохранятся, даже если сервис перезагрузится во время выполнения
data = await ctx.step("collect", lambda: collect_digest_data(inp))
summary = await ctx.run_agent("summarize", text=f"Сделай краткую выжимку: {data}")
return {"summary": summary}
当代理需要运行长测试套件、等待外部系统的响应,或将复杂任务分解为一系列独立子任务时,这种方法就能派上用场。
可以将哪些任务委托给 Centaur
在项目的 README 中,作者强调了系统最初设计用于的几个用例:
- 调查 CI/CD 管道中的失败。
- 生成每日摘要和值班报告。
- 通过自定义插件在内部知识库中快速查找答案。
- 分析上下文并总结 Slack 中的长对话。
- 将代理连接到隔离的测试环境进行代码调试。
部署与启动
你不需要启动一个完整的大型 Kubernetes 集群来熟悉这个项目。对于本地开发或部署在小型 Mac Mini / VPS 上,一个轻量级的 k3s 就足够了。
项目管理绑定到 just 工具。启动过程只需几个步骤:
# Клонируем репозиторий
git clone https://github.com/paradigmxyz/centaur
cd centaur
# Устанавливаем раннер команд
brew install just
# Настраиваем переменные для Slack и 1Password в bash-сессии
export OP_SERVICE_ACCOUNT_TOKEN=...
export SLACK_BOT_TOKEN=...
export SLACK_SIGNING_SECRET=...
# Создаём секреты в локальном K8s и запускаем стек
just bootstrap-secrets
just up
构建完成后,机器人将开始在 Slack 中或通过 REST API 接受命令。
总结
Paradigm 提供了一个关注安全性的出色工具。开发者没有创建另一个隔离的 Web 界面,而是专注于与现有团队聊天工具的集成以及在隔离沙箱中运行代码。
如果你的团队已经在积极使用控制台 AI 代理,并且正在寻找一种在员工之间安全共享其能力的方法,Centaur 绝对值得一试。该项目以开源许可证发布,基于 Rust 的控制平面在资源使用方面也给人留下了不错的印象。
相关项目