Hacker News 熱門精选77

Show HN:Omnara——Claude Managed Agents 的开源替代方案

Show HN: Omnara – Open-Source Alternative to Claude Managed Agents

· 8小时前

精选理由

了解可自托管的持久化云端智能体架构,降低多设备协作与运维门槛

AI 摘要

大家好,我是 Omnara 的 Kartik(https://omnara.com)。我们正在构建一个用于运行持久化智能体的开源 API。你可以通过一次 API 调用创建智能体,Omnara 会运行智能体循环,为智能体提供运行命令的沙箱,并处理密钥、权限和 RBAC。每个智能体的状态都存储在 Postgres 中,因此智能体可以在重启后继续运行,空闲时也不会产生费用。你可以通过 API 向它们发送消息,并以流的形式接收它们的事件。 你可能还记得我们早期的产品:当时我们为 Claude Code 和 Codex 制作了一个远程控制手机应用。由于那时运行 harness 的设备是一台笔记本电脑,我们不得不构建中继服务来连接它;笔记本合上后程序就会停止,而将其迁移到云沙箱又意味着需要在不同机器之间同步代码和智能体状态。我们不认为远程控制本地智能体会是人们运行智能体的最终形态,因此我们构建了一款新产品:智能体运行在云端,任何客户端都可以通过 API 与它通信,同时它仍然可以使用你的笔记本电脑作为自己的机器之一。 Anthropic 和 OpenAI 正在构建这类产品的托管版本,例如 Claude Managed Agents 和 OpenAI Agents API。Omnara 是一个开源版本,你可以在自己的服务器上运行,并使用自己的模型。它本质上是一个类似 opencode 或 codex servers 的 harness server,但具备持久化和可扩展能力,并提供常见的 harness 功能,例如文件和 shell 工具、子智能体、上下文压缩、权限提示、MCP、技能、记忆,等等。 下面是我们在构建过程中做出的一些有趣的架构决策: 大多数 harness(例如 Claude Code、Codex、OpenCode、Pi、Goose 等)都会在一个长期运行的进程中运行智能体循环,并将日志保存在 JSONL 或 SQLite 文件中。而在 Omnara 中,日志是存储在 Postgres 里的追加式事件日志,输入、模型输出和工具调用都会作为带类型的行,分别存储在各自的表中。循环运行在控制平面的无状态 worker 上。一个 worker 会运行循环的一次迭代:要么执行一次模型调用,要么执行模型生成的工具调用;然后释放该智能体,并将下一次迭代放入 Postgres 的队列中。哪个 worker 空闲,哪个就会接手,因此一个智能体循环的每次迭代都可以在不同进程、甚至不同机器上运行。 每次迭代的结果都会在一个事务中提交,因此模型输出、工具调用、用量和下一次唤醒时间要么一起保存,要么全部不保存。如果 worker 在迭代过程中宕机,则不会提交任何内容;租约到期后,另一个 worker 会重试该迭代。等待用户输入、工具返回结果或重试的智能体不会占用 worker,因此一个 worker 可以复用来处理数千个智能体。 与其他 harness 不同,worker(也就是我们的智能体循环)运行所在的机器,并不是智能体执行命令的地方。任何能够连接互联网的 macOS 或 Linux 机器——例如你的笔记本电脑或任意云沙箱——都可以运行一个小型守护进程(omnarad)并主动连接到 Omnara,因此不需要开放任何入站端口。随后,智能体就能获得针对该机器的工具,例如运行命令或编辑文件。一个智能体可以连接任意数量的机器。 我很喜欢做的一件事是:让我的笔记本电脑和一个云沙箱连接到同一个智能体。这样,当笔记本电脑开机时,智能体会在那里编写代码,我也可以与它交互,并且我经常让它推送到 Github。当我合上笔记本电脑后,智能体会发现笔记本已离线,就把最新更改拉取到云沙箱中,并在那里继续工作。 整个代码库都已开源,地址为 https://github.com/omnara-ai/omnara,并且支持自行部署,即使只有一台机器也可以通过 docker compose 运行。你也可以使用托管版本:https://omnara.com 。欢迎告诉我你的想法! 评论链接:https://news.ycombinator.com/item?id=50183892 积分:4 评论数:0

查看原文(Hacker News 熱門)