>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Python

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

Centaur Header

开发者正在迅速采用 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 的控制平面在资源使用方面也给人留下了不错的印象。

相关项目