Paradigm 和 Tempo 开源了 Centaur,一个自托管的运行时,用于构建多人、安全的 AI 代理。Centaur 作为共享代理,可在 Slack 或 API 中使用,支持长时间运行、崩溃恢复、工具集成和工作流共享。其架构基于服务,所有状态存储在 Postgres 中,每个会话拥有隔离的沙箱容器,代理通过防火墙安全访问 API 密钥,避免凭据泄露。Centaur 支持扩展工具、技能和工作流,已内部使用数月,覆盖投资、工程、设计等多个领域。
今天我们开源了 Centaur,这是 Paradigm 和 Tempo 联合开发的自托管运行时,专为多玩家、安全的 AI 智能体设计。自一月份以来,我们一直在使用 Centaur,它彻底改变了我们在投资、工程、设计、招聘、活动、客户支持等广泛任务上的工作方式。
Centaur 是一个共享智能体,可以使用工具,运行数小时或数天,在重启后依然存活,并能使用真实凭据操作,且原始密钥对智能体完全不可见。你可以通过 Slack 或 API 与它对话。你只需添加一次工具,所有智能体就能使用它。你只需植入一个工作流,整个组织就能立刻获得该能力。每天结束时,它会反思自己的表现并自我改进。
除了开源 代码 以及用于 扩展 和 运维 Centaur 的模板仓库外,我们还深入探讨了系统的架构、服务间的接口、安全边界以及执行模型。这些是我们认为值得复制、调整和重新实现的部分。让我们开始吧。
大多数智能体框架仍然是为一台机器上的一个用户设计的。一旦你试图构建协作工作流,就会出现一系列不同的需求:
大多数系统只解决了上述部分需求。有些是优秀的编码智能体,有些是优秀的浏览器智能体,有些是优秀的工作流引擎。很少有系统是专为团队共享基础设施而设计的。而且它们都成本高昂,并将你锁定在某个供应商的路线上,你只能被动跟随其发展。
我们认为,组织应该有能力拥有自己的技术栈,以所需的速度前进,并在协作而非孤立的环境中使用 AI。这正是 Centaur 所要填补的空白。
将 Centaur 视为一名虚拟员工。Slack 线程就是界面。你可以像标记其他员工一样标记 Centaur,Centaur 会回复。根据任务的不同,Centaur 会运行几秒、几分钟甚至数小时以上,并调用一系列集成的 SKILL.md 或工具。它知道自己是在哪个 Slack 线程中被召唤的,并可靠地回复相关主题和问题,而不是从你的所有知识库中随机拼凑上下文。
Centaur 开箱即可与电子表格、文档、幻灯片、文件签名、PDF 以及你能想到的任何其他类型的文件附件进行交互。它可以搜索 Slack、网络,使用 GitHub,生成图像和图表,创建或更新 Google 文档、幻灯片和/或表格、交互式演示等等。
Centaur 的代码库仍然相对年轻,我们仍在不断进行增强和改进。但它的体验确实令人难以置信,我们认为它已经改变了我们组织的运作方式。我们强烈建议创建一个全公司的 #ai-agent Slack 频道,邀请所有人加入。在这个频道中,重要的是:
在设计 Centaur 时,我们特别注重两件事:
在底层,Centaur 是一个基于服务的架构,所有状态都存储在 Postgres 中,每个服务都是无状态的。这意味着系统能够在重启、部署和崩溃后继续运行,而不会丢失工作。以下是每个组件如何相互通信:

以下是每个服务的详细介绍:
可扩展性是 Centaur 的一等公民——每个公司(包括 Tempo 和 Paradigm)使用不同的工具,将数据存储在不同的源,并拥有可以提炼成技能的公司特定知识。

该框架支持“覆盖”——将一个 Docker 镜像挂载到核心 Centaur 服务之上,并为 API/沙箱提供专门为你构建的工具、技能和工作流的访问权限。
技能是 Markdown 文件(.agents/skills/*/SKILL.md),用于教会智能体如何执行特定任务,例如招聘流程、合规检查、QA 工作流。添加一个技能文件,每个智能体会话都会继承该知识。这在团队中已经很成熟,但与其传递技能文件,你只需将自己的技能添加到 Centaur 的 .agent/skills 目录,整个团队就能获得访问权限。
工具是最简单的扩展点。一个工具是一个目录中的 Python 类,包含 client.py 和 pyproject.toml。API 在启动时自动发现它,生成 /tools/{name}/{method} 的 REST 端点,并在文件更改时热重载。以下是一个工具的示例:
将该文件放入 tools/my-tool/,几秒钟后,你组织中的每个智能体对话都能调用它。工具在其 pyproject.toml 中声明其需要的 API 主机和密钥,以便防火墙处理凭据注入。
一个工作流是一个导出名称和处理函数的单个 Python 文件。将其放入 workflows/,它就可以通过 cron 使用,通过 API 触发,或与其他工作流组合。
工作流引擎将每一步检查点到 Postgres。如果进程在工作流中间崩溃,它会从上次中断的地方恢复,不会重复工作,也不会丢失状态。在步骤之间休眠 24 小时不会消耗任何资源;工作流会挂起,引擎会在时间到时唤醒它。对于细心的读者来说,这是一种日益流行的持久化工作流模式。该设计深受 Absurd 基于 Postgres 的架构启发。
大多数智能体框架处理密钥的方式和你个人电脑上的方式一样:将 API 密钥转存到环境变量中,希望智能体不会泄露它们。这对个人使用有效。但当你将公司 Slack、GitHub、云基础设施和财务系统的凭据交给智能体时,这种方法就行不通了。
Centaur 采用不同的方法:智能体从不持有你的密钥。不在环境变量中,不在磁盘上,也不在内存中。相反,凭据只存在于一个隔离的密钥管理器中,一个网络级防火墙在请求离开沙箱、到达外部 API 之前,将其动态注入到出站请求中。
具体来说是这样的:
这意味着,即使智能体被攻破或遭受提示注入攻击,也无法窃取你的凭据。它可以通过代理发出经过身份验证的请求(必须如此,这是它的工作方式),但它无法提取原始密钥值、将其发送到其他主机或将其偷偷带出响应。
这种安全性通过网络策略强制执行,使得任何容器都不能:
这意味着所有密钥都受到保护,每个进出请求都经过防火墙。除此之外,每个沙箱的每个出站请求都由防火墙记录,并且来自 LLM API 的响应体会实时扫描泄露的密钥值并实时修订。这种级别的可观测性使我们能够快速检测泄露和故障,并及时修复,让 Centaur 成为自己的 AI SRE。
Centaur 的架构有意将一个小型、可审计的核心与一个宽阔的扩展表面分离:
这种分离使我们最近能够通过夜间反思引入自我改进:智能体审查自己的性能,识别差距,并修复自己的技能和工具,而不触及内核。我们可以让系统自我进化,因为爆炸半径在结构上是受限的。
今天的发布版是 Paradigm 和 Tempo 自一月份以来在生产环境中运行的内核。接下来是让用户空间更强大。我们认为工作流将演变为完整的应用程序容器,即长期运行的服务,它们利用系统的其余部分进行工具访问、密钥管理和可观测性,但运行自己的逻辑。
你可以在不 fork 仓库的情况下,用自己的工具和工作流扩展 Centaur 的用户空间。查看我们的文档。
Centaur 在 Apache 2.0 许可下是 开源的。它已经改变了我们的工作方式,我们希望它也能改变你的。开始使用:https://centaur.run。
如果你是一位出色的 AI 工程师,并希望帮助公开维护和发展 Centaur,或者从事 Paradigm 专有的 AI 工具工作,请联系 georgios@paradigm.xyz 和 arjun@paradigm.xyz。
## tools/my-tool/client.py — 这是完整的文件
import httpx
class MyToolClient:
def search(self, query: str, limit: int = 10) -> dict:
"""搜索某物。"""
return httpx.get(f"https://api.example.com/search?q={query}&limit={limit}").json()
def _client():
return MyToolClient()
## workflows/daily_digest.py — 放入此文件即可生效
WORKFLOW_NAME = "daily_digest"
async def handler(inp, ctx):
data = await ctx.step("fetch", lambda: fetch_metrics())
await ctx.sleep("wait", timedelta(hours=24))
await ctx.run_agent("summarize", text=f"总结:{data}")
- 原文链接: paradigm.xyz/2026/05/ope...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
作者暂未设置收款二维码