mkurman/zorai
GitHub: mkurman/zorai
Zorai 是一个持久化多代理 daemon 运行时平台,通过统一管理工作、记忆、审批与长期运行目标,让 AI 代理能够持续自主地完成复杂工程任务。
Stars: 308 | Forks: 22
# zorai
**面向持久化 AI 工作的全代理 daemon 运行时。**
Zorai 是一个持久化、多代理、可审计、具备学习能力 的执行平台,由 daemon 统一接管工作、记忆、审批、工具以及长期运行的目标。
官方网站:[https://zorai.app](https://zorai.app)
Zorai 将代理运行时、操作界面、工具、记忆和受控执行集成于一体。线程、工作区任务、审批和目标运行都在 daemon 中存在,因此即使关闭 UI,工作也能持续推进。
这个名字来源于 **Zora**:神话般却又纯粹,象征着黎明、觉醒、警觉和新生。它致敬了斯拉夫神话中的黎明与光芒意象,而未拘泥于刻板的一对一神话映射。末尾的 **i** 则完善了其 AI 身份。
实际上,这意味着:
- Electron、TUI、CLI、MCP 客户端和聊天网关都会重新连接到相同的 daemon 状态
- 内置运行时可以规划工作、运行工具、生成受限子代理、暂停以等待审批,并随着时间不断学习
- 记忆、工作区看板、执行队列状态和操作历史都会持久保留,而不会随着单个终端标签页的关闭而消失
## 最佳实践
在开始安装和设置之前,请阅读 [`docs/best-practices.md`](docs/best-practices.md) 中的操作指南。它涵盖了模型角色选择、压缩策略、治理使用、成本控制,以及让 zorai 更好运行的日常习惯。
## 快速开始
### 快速安装
Linux/macOS:
```
curl -fsSL https://raw.githubusercontent.com/mkurman/zorai/main/scripts/install.sh | sh
zorai --help
```
Windows PowerShell,以管理员身份运行:
```
irm https://raw.githubusercontent.com/mkurman/zorai/main/scripts/install.ps1 | iex
zorai --help
zorai gui
```
快速安装器会下载与 npm 包相同的原生发布包系列,在 Linux/macOS 上默认将二进制文件安装到 `~/.local/bin`,或在 Windows 上默认安装到 `C:\Program Files\zorai`,且无需 Node.js 或 npm 即可运行。Windows x64 和 Windows ARM64 使用与架构匹配的安装包,每个安装包都包含完整的应用界面:CLI、daemon、TUI、MCP/网关二进制文件以及桌面 GUI 启动器(Windows 上为 `zorai-desktop.exe`)。
在快速安装或直接二进制安装之后,`zorai upgrade` 会复用直接安装路径来升级当前安装目录。如果您是通过 npm 安装的,`zorai upgrade` 将继续使用 npm 进行升级。
### NPM
```
npm install -g zor-ai
zorai --help
# 或在项目中本地安装:
npm install zor-ai
npx zor-ai --help
```
如果在 macOS 上 `npm install -g zor-ai` 执行成功,但仍找不到 `zorai` 命令,说明您的 npm 全局 bin 目录尚未添加到 `PATH` 中:
```
export PATH="$(npm config get prefix)/bin:$PATH"
exec $SHELL -l
zorai --help
```
如果 bin 目录已在 `PATH` 中,打开一个新的 shell 仍然是有必要的,因为 `zsh` 和 `bash` 会缓存命令查找结果。
当通过 npm 安装 zorai 时,`zorai upgrade` 也会通过 npm 进行升级。
npm 包同样会在每个受支持的平台上安装完整的平台捆绑包。在 Windows 上,`npm install -g zor-ai` 会与 CLI 二进制文件一同安装 `zorai-desktop.exe`,以便在安装后 `zorai gui` 能够正常工作。
### 从源码构建
```
git clone https://github.com/mkurman/zorai.git
cd zorai
# 1. 启动 daemon
cargo run --release --bin zorai-daemon
# 2. 在另一个终端中启动 TUI
cargo run --release --bin zorai setup
# 或
cargo run --release --bin zorai-tui
# 3. 或启动桌面应用
cd frontend && npm install && npm run dev:electron
```
如果您想快速测试核心循环,可以启动一个目标运行(goal run)并给 Swarog 一个具体目标:调查失败的构建、准备发布清单,或在工作区中追踪一个 bug。
## 体验感受
zorai 适用于那些希望代理能够坚持处理持久化工作,并且希望控制台能让长时间运行的执行变得清晰可见而非神秘莫测的操作人员。
终端仍然是一流的工具,特别是对于工程工作而言,但它们不再是该产品的核心基础。真正的核心是代理运行时:规划、受控工具使用、记忆、协作、审查以及持久化的目标执行。
## TUI
TUI 是一个以键盘优先的 daemon 控制室,同时支持鼠标操作。
- 无需离开终端即可检查会话、线程、工作区任务、审批和目标运行
- 在操作控制和代理执行之间切换,使用的是与 Electron 和 CLI 共享的同一实时状态
- 可通过 SSH、在 tmux 内或任何不适合使用浏览器 UI 的环境中继续工作
线程命令参考:[`docs/tui/agent-directives.md`](docs/tui/agent-directives.md)
## 灵火
zorai 为其 daemon 端的代理赋予了些许神话色彩,但工作本身依然具体实在。
- **Swarog** 是主工作之火:规划、工具使用、子代理编排、记忆和持久化的目标运行
- **Rarog** 是指路明灯:引导、检查、操作员上下文,以及系统中更温和的一面
- **Weles** 是暗中监视者:治理、风险审查和严格检查,在运行时需要另一双眼睛时提供保障
- **Swarozyc** 是敏捷工作者:更窄、更快的执行,以及专注的实现辅助
- **Radogost** 是协调者:权衡分析、比较,并指引通向最优下一步的路径
- **Domowoj** 是守护者:局部稳定性、清理、谨慎修复和感知环境的修复操作
- **Swietowit** 是广阔守望者:更广泛的架构感知和线程级别的全局上下文
- **Perun** 是雷霆之手:果断执行、基础架构纪律和安全导向的行动
- **Mokosh** 是大地守护者:维护、可靠性和持久化的运维关怀
- **Dazhbog** 是光明赐予者:综合、解释,并将模糊不清转化为有用的下一步行动
### 与它们协作
使用 `@agent ...` 在当前线程上添加或更新可见的线程参与者。
示例:
- `@weles 在回答之前验证各项声明`
- `@swarozyc 审查 svarog 的实现并在需要时介入`
- `@perun 将高风险的迁移计划推进到具体的决策`
- `@mokosh 稳定此工作区并清理粗糙的边缘`
- `@dazhbog 将此讨论转化为清晰的计划和操作员更新`
行为:
- 当前线程的所有者不会改变
- 参与者会监视可见的线程活动
- 当它决定做出贡献时,会添加一条线程消息或排队的可见建议,而不是使用隐藏的内部消息
- 重复执行 `@agent ...` 会更新该参与者,而不是创建重复项
- 要停止或从参与者列表中移除代理,请使用 @agent stop 或 @agent leave
使用 `!agent ...` 进行隐藏的内部私信。
示例:
- `!weles 检查这是否有风险`
- `!radogost 在我们回答之前比较这两种方法`
- `!perun 在我们继续之前评估操作的影响范围`
- `!dazhbog 用通俗易懂的语言总结最佳的下一步行动`
行为:
- 当前可见线程保持原状
- 目标代理通过隐藏的内部路径进行联系
- 这用于幕后协调,而非可见的参与
当另一个代理应该拥有线程中未来的回复时,请使用交接。
行为:
- 交接会更改线程的活动响应者
- 后续的操作员消息将路由到该代理,直到再次交接返回
- zorai 将切换记录为可见的系统事件,同时保持链接的交接上下文隐藏
### 注册与设置
内置角色(如 `@swarozyc`、`@radogost`、`@domowoj`、`@swietowit`、`@perun`、`@mokosh` 和 `@dazhbog`)在能够参与或接收内部私信之前,需要配置各自的 provider 和模型。
如果某个角色可用但尚未配置:
- 桌面应用会打开 provider 接着是模型的设置流程
- TUI 会打开相同的 provider 接着是模型选择器流程
- 设置完成后,zorai 会自动重试原始的 `@agent ...` 或 `!agent ...` 请求
`@veles` 被接受为 `@weles` 的别名,这与现有的 `swarog` 和 `svarog` 别名处理机制一致。
如果目标不是已知的内置角色或已注册的子代理别名,则前缀 `@agent` 形式不会被视为代理指令,并将保留为普通消息/文件提及路径。
它们共同赋予了系统一丝存在感,同时又不会隐藏其正在执行的操作。
## 🔊 语音转文本 / 文本转语音(置顶)
Zorai 支持 TUI 和桌面应用中的语音工作流。
- **TUI:** `Ctrl+L`(录制/转录),`Ctrl+P`(朗读选定的/最新的助手消息),`Ctrl+S`(停止播放)
- **桌面应用:** 麦克风/朗读控件,使用由 daemon 支持的 STT/TTS 设置
- **设置持久化:** daemon 配置 `extra.audio_*`
## 了解更多
### 文档
- [最佳实践](docs/best-practices.md)
- [参考](docs/reference.md)
- [入门](docs/getting-started.md)
- [提供商](docs/pages/providers.html)
- [自定义提供商](docs/pages/custom-providers.html)
- [zorai 工作原理](docs/how-zorai-works.md)
- [线程参与者](docs/operating/thread-participants.md)
- [工作区](docs/workspaces.md)
- [语音转文本 / 文本转语音](docs/speech-to-text-and-text-to-speech.md)
- [目标运行器](docs/goal-runners.md)
- [自编排代理架构](docs/self-orchestrating-agent.md)
- [代理任务控制](docs/agentic-mission-control.md)
- [TUI 功能图](docs/tui/capabilities-map.md)
- [TUI README](crates/zorai-tui/README.md)
- [语音转文本 / 文本转语音](docs/speech-to-text-and-text-to-speech.md)
- [插件开发](docs/plugin-development.md)
## 许可证
[MIT](LICENSE)
标签:AI代理, AI编程, AI调度, CLI, LLM, MCP客户端, MITM代理, PyRIT, RAG, TUI, Unmanaged PE, WiFi技术, 任务编排, 企业级AI, 协同AI, 可视化界面, 合规审查, 多智能体系统, 大语言模型应用, 守护进程, 审计, 工作空间, 工具调用, 开发框架, 持久化执行平台, 提示词模板, 智能体运行时, 暗色界面, 目标导向, 自动化运维, 记忆系统, 过程监控, 通知系统