omnara-ai/omnara
The open-source managed agent platform. A self-hostable alternative to Claude Managed Agents and OpenAI's Agents API.
Omnara – 开源托管智能体平台
它是什么 – Omnira 是一个可自托管的平台,让你可以在任何模型和任何机器上运行AI智能体(LLM驱动的机器人)。它提供了REST API、TypeScript SDK和CLI,用于启动智能体、流式传输其事件以及处理审批。你可以将其视为Claude托管智能体或OpenAI Agents API的开源替代品,但你可以在自己的基础设施上运行它,并选择你喜欢的任何模型。
核心概念
| 概念 | 功能 |
|---|---|
| 智能体 | 由agent.yaml定义(模型、工具、机器池、内存等)。平台运行智能体循环:构建提示词 → 调用模型 → 执行工具 → 存储状态。 |
| 机器 | 远程运行时(你的笔记本电脑、虚拟机、容器或沙箱提供商)。每台机器运行omnarad守护进程,使智能体能够执行shell命令、编辑文件等,而无需开放入站端口。 |
| 工具与技能 | 内置工具(shell、文件I/O、网络搜索、询问人类)以及自定义工具和可复用的技能(打包的指令/文件)。 |
| 内存存储 | 持久化的类文件存储,智能体可以在跨对话中读取/写入,可选地与其他智能体共享。 |
| 子智能体 | 智能体可以生成一个全新上下文的子智能体,监控其进度,并交接结果。 |
| 集成 | Slack、Discord、GitHub、webhooks、流式事件以及通过相同的公共API进行自定义集成。 |
| 权限与RBAC | 细粒度控制谁可以运行哪些工具、查看数据或批准操作。 |
工作原理(高层架构)
- API – 你的应用、CLI或仪表板与中央HTTP API(提供OpenAPI规范)通信。它处理启动智能体、发送消息和流式事件。
- Postgres – 每个智能体的每一步都记录在此,提供持久状态。工作进程可以在崩溃后恢复智能体。
- 工作进程 – 执行智能体循环的无状态进程。一个工作进程可以服务多个智能体;你可以水平扩展。
- 机器 – 远程守护进程(
omnarad),暴露安全的出站连接,让智能体在任何macOS/Linux主机或沙箱提供商(Arker、Modal等)上运行命令。 - Redis与Blob存储 – 用于队列、临时数据以及存储附件/工具输出。
快速开始
1. 尝试Omnira Cloud(无需安装)
# 保存示例配置
cat > agent.yaml <<'EOF'
version: v1
instruction: |
You are an engineering assistant. Use your machine to run commands.
model:
provider_config: omnara-openrouter
name: anthropic/claude-fable-5.1
machine_sources:
- machine_pool_name: default-pool
EOF
# 通过CLI启动(Node 22+)
npx omnira agents launch --file agent.yaml \
--name "Machine assistant" \
--message "Report this machine's operating system and free disk space."
CLI会在需要时打开浏览器让你登录。
2. 自托管(Docker Compose)
git clone https://github.com/omnira-ai/omnira.git
cd omnira
docker compose -f compose.yaml --profile app up -d # 启动API、工作进程、数据库等
- 打开
http://localhost:8000,注册(验证链接出现在容器日志中)。 - 在Web UI中添加模型提供商、模型和机器。
- 将CLI指向你的实例:
npx omnira config --api-url http://localhost:8000/api/v1 --issuer-url http://localhost:8000
npx omnira login
- 使用相同的
agent.yaml(将machine_pool_name替换为你的机器名称)并按上述方式启动。
显著特性
- 模型无关 – 支持OpenAI、Anthropic、OpenRouter、LiteLLM、Ollama或任何兼容端点。
- 工具生态 – 内置shell、文件、网络搜索、人类提问工具;MCP服务器;自定义webhook工具。
- 技能 – 可复用的指令/文件包,智能体可按需加载。
- 持久状态 – 每一步都保存在Postgres中;智能体在崩溃或机器丢失后仍然存活。
- 多租户 – 一个部署可以托管多个组织,每个组织都有自己的密钥、模型和机器。
- 调度 – Cron风格的触发器可以向智能体发送消息、启动新智能体或开始Slack/Discord线程。
- 权限 – 在运行工具之前可能需要审批;平台强制执行这些规则。
- 流式与webhooks – 实时事件流或webhook回调用于集成。
示例用例(在examples/中提供)
- 编码助手 – 从Slack/Discord/GitHub PR修复bug并打开新PR。
- SRE机器人 – 诊断5xx峰值、查询日志并提出修复建议。
- 浏览器自动化 – 驱动真实浏览器执行长时间运行的网络任务。
- 社交媒体信号智能体 – 总结Reddit、X或LinkedIn上某个主题最近24小时的帖子。
- 视频生成 – 根据文本简报创建短视频。
- 自定义CLI聊天应用 – 基于TypeScript SDK构建的简单终端UI。
定价与许可
- 许可 – Apache 2.0(免费、宽松)。
- 自托管 – 无平台费用;你只需为你使用的模型和任何沙箱资源付费。
- Omnira Cloud – 自带密钥/机器时免费层;托管模型和沙箱时间按需付费。
社区与贡献
- Discord – https://discord.gg/Dc46sYk6e3
- 问题与PR – GitHub仓库。
- 贡献 – 需要Go(如
go.mod中所声明)、Node 24+、ripgrep、Docker Compose。运行make verify进行快速检查;完整指南在CONTRIBUTING.md中。
简而言之: Omnira为你提供了在规模上运行有状态、支持工具的LLM智能体的基础设施,支持任何模型和任何计算,同时将所有数据置于你的控制之下。如果你想要托管智能体服务的灵活性,但又不想被单一供应商的云锁定,那么它是理想的选择。
相关
- 项目
- 项目
- 项目
- 项目
- 项目