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 细粒度控制谁可以运行哪些工具、查看数据或批准操作。

工作原理(高层架构)

  1. API – 你的应用、CLI或仪表板与中央HTTP API(提供OpenAPI规范)通信。它处理启动智能体、发送消息和流式事件。
  2. Postgres – 每个智能体的每一步都记录在此,提供持久状态。工作进程可以在崩溃后恢复智能体。
  3. 工作进程 – 执行智能体循环的无状态进程。一个工作进程可以服务多个智能体;你可以水平扩展。
  4. 机器 – 远程守护进程(omnarad),暴露安全的出站连接,让智能体在任何macOS/Linux主机或沙箱提供商(Arker、Modal等)上运行命令。
  5. 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智能体的基础设施,支持任何模型和任何计算,同时将所有数据置于你的控制之下。如果你想要托管智能体服务的灵活性,但又不想被单一供应商的云锁定,那么它是理想的选择。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目