Omnara · 自己服务器上的 Agent 运行平台
周二凌晨那次失败,你到现在还没查清
你在一个四五个人的小团队里管后端。上个月你给 CI 写了个 Agent:流水线红了,它拉日志、判断是哪次提交、把结论发到群里。它很争气,跑了三十几次,你几乎忘了它的存在。
直到周二凌晨,它又跑了一次,顺手把预发环境的一个配置项改了。早上打开群,只有一句「任务失败」。
你想知道它调了哪个工具、读了哪个文件、从第几步开始判断错。于是去翻那台机器:cron 的输出在一个日志文件里,模型返回只打了一行摘要,中间执行的命令没有任何记录。你重跑一遍,它这次走了另一条路,问题不复现。最后你把它的命令权限砍掉一半——从此它只能建议,不能动手。一个能干活的 Agent,就这样退化成了一个问答框。
它接手的,是「让 Agent 跑起来」这件脏活
Omnara 是 Agent 的运行平台:它把调度、执行、记录、审批这几段从你的脚本里拿走,换成一个能回看、能追问、能拦下来的运行环境。
一个 Agent 就是一份配置——指令、模型、能用的工具、能碰的机器。启动之后,它每一步做了什么都会写进数据库;执行 Agent 的 worker 是无状态的,崩溃重启后换个 worker 也能接着推。你可以从 Web 控制台、命令行、Slack 或 GitHub 里启动它,也可以在自己的代码里通过 REST API、TypeScript SDK 或 MCP 调它。
边界也说清楚:
- 它做:Agent 的调度与执行、工具调用与权限、每一步的事件留档、模型与机器的接入、定时触发、组织/项目两级的成员与密钥管理
- 它不做:不带模型额度——模型要你自己接(OpenAI、Anthropic、Bedrock、OpenRouter、Ollama 或任何兼容端点);也不替你写 Agent 的提示词,它给的是运行环境和配置机制
- 用之前要知道:这是一个完整的开发平台而不是成品机器人,注册、接模型、连机器这三步要你自己走完,之后才好用
通过阿里云计算巢部署,约 1.5 分钟开箱可用,不用自己拼 Docker Compose、初始化 Postgres、再想办法让被控机器连回来。

它解决了什么问题
| 你原来怎么干 | 代价 | 用它之后 |
|---|---|---|
| 自己写脚本 + cron 调模型接口,每一步自己 print 进日志文件 | 每加一个 Agent 就把调度、重试、记录重写一遍;出事只能重跑猜 | Agent 是一份配置,新增就是复制一份改指令;每一步事件自动进库,按时间线往前翻 |
| 干脆让 Agent 直接在生产机器上跑命令,出过事之后又全禁掉 | 能力被砍掉一半,它只能"说"不能"做" | 每个工具可设成立刻执行、先问人、或禁止,Agent 走到那一步真的会停下来等人点 |
| 被控机器开 SSH 端口,凭据塞进环境变量 | 攻击面和泄露风险跟着 Agent 数量一起涨 | 机器上装个守护进程主动外连,不用开入站端口;凭据集中存一次、按项目授权 |
| 想起一件事就手动开一次会话 | 有时间窗的任务全靠人记 | 用 Cron 按自己的时区给现有 Agent 发消息,或按配置起一个新的 |
回到那个周二:这次你不用重跑。打开那条 Agent 的事件流,从最后一次工具调用往前翻,能看到它读了 .env、判断「配置需要同步」、然后执行了那条命令。你把这一条工具权限从「立刻执行」改成「先问人」,同一个配置再跑一次——它在要改配置的那一步停住,等你点同意。
而更深一层的变化是:你交付出去的不再是一段代码,而是一个能持续调整的岗位。以前规则变了要改脚本、重新上线;现在改的是那份配置和那条工具权限,它下一次跑就按新规来。你从"写脚本的人"变成"带一个不知疲倦的执行者的人"——能交给它的活变多了,而且每次交接都留痕、都能追。
核心能力
把 Agent 变成一份可复用的配置
每加一个 Agent,都要把调度、重试、记录重写一遍。
- Agent 配置(指令 + 模型 + 工具 + 机器) —— 换模型、加工具、换机器只改配置,不动代码
- Skills 与记忆 —— 常用说明和文件打成一个包挂上去,Agent 需要时自己读;记忆文件跨会话保留,还能按只读/可写分给别的 Agent
把每一步都留下来
出事的时候,记录散在三个地方,问题还不复现。
- 事件流与 Webhook —— 每个事件发生时就推出来,也能在它干活时插一条新消息进去
- 持久状态 —— 每一步都落库,崩溃、重启、机器掉线之后接着跑,不用重新开始
- 历史在你自己的 Postgres —— 记录可以直接查询,拿去做统计、评测,或者当训练数据
让它动手,但每次动手你说了算
让它动手的风险,不是全放开就是全禁掉。
- 工具权限三档 —— 立刻执行 / 先问人 / 禁止,由平台强制执行,不是提示词里的一句嘱托
- 机器免入站端口 —— 在笔记本、虚拟机或容器里装一个守护进程,Agent 就能在上面跑命令、改文件;也可以直接用托管沙箱
让它自己开工
有时候不是它跑得不对,是你根本没想起来让它跑。
- Cron 定时触发 —— 到点给现有 Agent 发一条消息,或按配置起一个新的,不用人记
- 在聊天里使唤它 —— 在 Slack、Discord 里 @ 它就开一个线程干活;PR 打开或被 @ 时它自己读 diff、评论、提交 review
谁最该用
| 用户类型 | 典型场景 | 用它拿到什么 |
|---|---|---|
| 小团队的平台/后端工程师 | 团队里已经有几个跑在 cron 上的 AI 任务,出事查不清 | 迁到统一的事件流上,加新 Agent 只改配置 |
| 要把 Agent 做进自己产品的开发者 | 想给用户提供 Agent 能力,又不想把对话和文件交给第三方 | 用 REST API / TypeScript SDK / MCP 接进自己的应用,数据留在自己库里 |
| 对数据出境敏感的技术负责人 | 被问到「Agent 的对话和文件存在哪」 | 自托管,历史、附件都在自己的数据库和对象存储里 |
| 安全与运维 | Agent 需要碰生产,但不敢放开 | 工具权限 + 审批 + 组织级凭据管理 |
技术支持
- 官方仓库:https://github.com/omnara-ai/omnara
- 官方文档:https://docs.omnara.com
- 问题反馈:GitHub Issues
🚀 立即体验
→ 一键部署 Omnara
打开控制台地址用部署时的管理员账号登录,第一件事是加一个模型供应商(填你自己的 Key)并共享给项目——然后就能启动第一个 Agent 了。