智能体
ORG-2 自己的 Rust 智能体,与它能驱动的外部 CLI 之间的区别——支持列表、各自如何启动与监管、模型与权限设置,以及自定义智能体。
在 ORG-2 里,「Agent」指的是两样不同的东西,而这个区分几乎决定了其余的一切。一类是内置智能体,它们跑在 ORG-2 自己的 Rust 引擎里,用的是引擎的工具、权限和事件记录;另一类是 CLI 智能体,也就是 claude 或 codex 这样的第三方二进制程序,ORG-2 把它们作为子进程启动,再把它们的输出解析回同一份记录里。本页两者都讲,包括支持列表和你能配置的东西。
内置智能体与 CLI 智能体
| 内置(Rust)智能体 | CLI 智能体 | |
|---|---|---|
| 跑在哪里 | 进程内,在 Tauri 的 Rust 后端里 | ORG-2 为每个会话派生的一个子进程 |
| 工具 | ORG-2 自己的工具集,加上你的 MCP 服务器和 Skill | 厂商 CLI 自带的那些 |
| 权限 | ORG-2 的审批提示和按智能体划分的策略 | 厂商自己的配置,在启动时基本被绕过 |
| 凭据 | 密钥库里的任意账号,包括 CLI 订阅 | 该 CLI 自己的账号 |
| 恢复 | 不支持——请开新会话 | 在 CLI 支持的前提下,用 --resume 加上一次的会话 id |
侧边栏据此把会话分组:OS Agent、SDE Agent、Wingman Agent、Custom Agent、CLI Agent 和 Cursor History。在设置里,对应的区块是内置 Agents(Built-in Agents)、自定义 Agents(Custom Agents)、CLI Agent(CLI Agents)和团队(Teams)。
内置智能体
内置智能体是在 Rust 里定义的,无法删除。它们构成一棵小小的继承树,根节点是极简模板 builtin:base:
- OS Agent —— 通用助理,也是唯一一个会与聊天渠道对话的智能体。
- SDE Agent —— 编码助理,设置里对它的描述是「限定在工作区范围内的编码助理——模型、迭代次数、压缩与工具策略」。
- Wingman Agent —— 一种被动的桌面副驾模式。
- Explore 和 General —— 用于委派的子智能体。Explore 只读,负责代码库检索;General 拥有完整的工具权限。这两个始终可用,既不能被加进、也不能被移出某个智能体的子智能体列表。
- 记忆抽取器(memory extractor)和记忆整合器(memory consolidator) —— 后台工作者,详见记忆。
另外还有几个面向内部角色的智能体——一个 AI 研究智能体、一个工作项管理者和一个智能体架构师——通常不需要你手动启动。
支持的 CLI 智能体
以下是 ORG-2 能安装、认证并驱动的那些 CLI。安装向导和启动器共用同一份注册表。
| 智能体 | 类型 key | 二进制 | ORG-2 使用的协议 | 订阅方案 |
|---|---|---|---|---|
| Claude Code | claude_code | claude | stdout 上的流式 JSON | 支持 |
| Codex | codex | codex | stdout 上的流式 JSON | 支持 |
| Cursor CLI | cursor_cli | cursor | stdout 上的流式 JSON | 支持 |
| Gemini CLI | gemini_cli | gemini | stdout 上的流式 JSON | 支持 |
| GitHub Copilot | copilot | copilot | stdio 上的 ACP | 支持 |
| Amazon Kiro | kiro | kiro-cli-chat | stdio 上的 ACP | 支持 |
| Kimi Code CLI | kimi_cli | kimi | stdout 上的流式 JSON | 不支持 |
| OpenCode | opencode | opencode | stdio 上的 ACP | 支持 |
设置 → 模型 & Keys → CLI 客户端(CLI Clients)里的每一行都会显示该二进制是否已安装(Installed)、安装方式(Installed via)是什么,以及该工具所支持的各个包管理器的安装与卸载脚本——curl、Homebrew、npm、WinGet、uv 等等。各自的认证方式见 API 密钥。
注意: 这八个是 ORG-2 直接启动并监管的智能体。另有若干工具的会话可以被读进记录里,而无需由 ORG-2 驱动——见下方在其他工具里开始的会话。
ORG-2 如何启动并监管一个智能体
内置智能体不需要进程:你的消息进入会话运行时,经过轮次执行器发往模型服务商,返回的工具调用由 Rust 工具层执行。这一切发生的同时都会写进会话的事件记录里,这也正是回放得以成立的原因。
CLI 智能体则是一个子进程。ORG-2 会构造一条显式的非交互命令,用管道化的 stdio(而不是 PTY)把它派生出来,把它的 stdout 流过一个按厂商定制的解析器,存下由此产生的活动分片,并广播给界面。派生失败最多重试三次,中间带一小段退避。Runner 会跟踪每一个活着的进程,因此一个会话可以被取消,并连带终止它的整棵进程树。
有三个细节值得知道,因为它们常常出乎人们意料:
- ORG-2 以非交互、预先批准的方式启动这些 CLI。 Claude Code 用
--dangerously-skip-permissions启动,Gemini CLI 用--yolo,Copilot 用--allow-all-tools,Cursor 用--force --approve-mcps,Codex 用--sandbox workspace-write。ORG-2 为这些工具暴露的审批设置改的是它们自己的配置文件,对从 ORG-2 发起的运行基本不起作用。想要有所约束的话,请使用 ORG-2 的会话模式和 worktree。 - 只有 Claude Code 和 Codex 支持额外目录。 面对多根工作区时,其他 CLI 只会收到主根目录,Runner 会记一条警告,而不是悄悄把它丢掉。
- Copilot、Kiro 和 OpenCode 讲 ACP,即 Agent Client Protocol,通过子进程的 stdin 和 stdout 走双向 JSON-RPC。它们的审批请求会以 ORG-2 的权限提示形式浮现出来,并带有一个会被记住的始终允许选项。
对于接受 base-URL 覆盖的 CLI——Claude Code、Codex、Gemini CLI——ORG-2 会设置厂商自己的环境变量。Cursor、Copilot 和 Kiro 不接受,所以 ORG-2 可以改为在一个临时端口上为该会话启动一个短命的本地 HTTPS 代理,拦截这个 CLI 的 API 流量。这条路径需要一次性安装 CA 证书,而且只在必须替换凭据时才会用到。
选择模型
模型是按会话选的。输入区下方的胶囊控件会打开一个两栏面板——顶部是最近模型(Recent Models),左边是所有模型(All Models),右边是能提供这些模型的账户(Accounts),这样你一次就能选好模型以及为它付费的密钥。当某个模型有多个推理变体时,会出现一个 {n} 个版本的胶囊,让你在更快(Faster)和更智能(Smarter)之间选择 Effort 档位。
每个智能体还带有一个默认模型(Default Model)、一个首选账户,以及一个用于压缩的可选摘要模型(Summarization Model)——「留空 = 使用该智能体的主模型。建议用一个快模型。」旁边还有一组可靠性设置:提供商重试(Provider Retry)、最大重试次数(Max Retries)(1–10)、以毫秒计的基础退避(Base Backoff),以及一个用逗号分隔的备用模型(Fallback Models)列表,在主模型耗尽之后依次尝试。
模式、权限与隔离
内置智能体运行在一种执行模式下,这个模式决定了哪些工具会存在。选择器提供 Build(默认,完整工具权限)、Ask(只读调研与问答)、Plan(产出一份需要你批准的方案文件)和 Debug(复现、收敛假设、定位根因)。还有两种模式——review 和 wingman——只作为协议取值存在,由内部驱动。对 CLI 智能体,ORG-2 无法改变它的工具集,因此改为把一段模式指令注入到提示词里;请把它当作引导,而不是强制。
模式之下是一份按智能体划分的策略:访问模式(Access Mode)(只读(Read Only) / 读取 + 写入(Read + Write))、仅限工作区(Workspace Only)、禁止访问路径(Forbidden Paths)、命令阻止列表(Block List),以及始终询问列表(Always Ask List)。高危命令无论哪个智能体都会被一律拦截。当某次工具调用需要你同意时,你会看到一个需要你的授权(Your permission is needed)提示,带有允许(Allow)、拒绝(Deny)和始终允许(Always Allow);提示会在五分钟后超时,而始终允许的规则可以按工具或按模式匹配,并持久化在 .orgii/permissions.json 里。
警告: ORG-2 不会把智能体放进操作系统级别的沙箱。真正的隔离手段是 git worktree——可以给某个子智能体开启 Worktree isolation,即「在临时 Git Worktree 中运行(文件和 Shell 访问相互隔离)」。参见安全与隐私。
智能体定义与自定义智能体
每一个智能体,无论内置与否,都是一份智能体定义。其中有意思的字段包括:它的身份与 Soul(「Agent 的身份与口吻」——写在系统提示词开头的角色与语气提示)、它继承自谁、它的能力集合、它的工具允许与拒绝列表、它的子智能体、它的模型与账户偏好、它的策略,以及它的会话模型,其中包括每轮最大迭代次数,默认为 500。
在设置 → Agent 团队 → Agents 下用添加 Agent(Add Agent)创建一个。向导有四个标签页:
- 通用(General) —— Agent 名称(Agent Name)(「用于标识此 Agent 的唯一名称」)、描述(Description),以及 Soul 的 Markdown 编辑器。
- 模型(Models) —— 上下文窗口(Context Window)(自动(跟随模型) 或一个自定义值)、最大响应 Token(Max Response Tokens)(默认 16384)、Temperature(默认 0.0),以及上下文压缩(Context Compaction)——启用后会展开触发比率、保留比率、一个摘要模型(Summarization Model)和若干 token 下限。
- 能力(Capabilities) —— 「选择该 Agent 能使用的子系统,关闭后对应工具与门控逻辑都不会装载」:编码(Coding)(内嵌一个模式切换(Mode Switch)开关)、桌面(Desktop)、外部浏览器(External Browser)、内嵌浏览器(Internal Browser)、Gateway、数据(Data)和管理(Management)。除模式切换外,其余默认全部关闭。
- Subagents —— 添加 Sub-Agent...(Add Sub-Agent…)、每个子智能体各自的 Worktree isolation,以及 Max tool-use concurrency(「每条 assistant message 的并发 Tool 调用数上限。默认:10。」)。
工具、MCP 服务器、Skill 和规则是之后在该智能体自己的详情标签页里编辑的。自定义智能体以一个 JSON 数组的形式存放在 ~/.orgii/agent-definitions.json;内置智能体仍然编译在程序里,但 ~/.orgii/builtin-overrides.json 这份用户覆盖层可以让你重新指定它们的模型、工具和策略,而不必去 fork 源码。
导入为其他工具编写的智能体。 从其他平台导入(Import from another platform)会扫描你的仓库和主目录,找出 .claude、.cursor、.codex 和 .gemini 下的厂商智能体文件,并把每一个转换成 ORG-2 的智能体。
团队。 添加Agent团队(Add Agent Team)会把若干智能体归到一位协调者(Coordinator)之下,并带一种层级模式(Hierarchy mode)——扁平(Flat)(人人都能给任何人发消息)、柔性(Soft)(推荐的默认值,汇报关系只是给模型的提示,路由并不受限),或严格(Strict)(成员只能给它的直属上级、直接下属或协调者发消息)。严格模式可达性(Strict-mode reachability)预览会在你启动之前,先空跑一遍谁能联系到谁。
在其他工具里开始的会话
ORG-2 会读取其他工具写在你机器上的历史记录,所以你在应用之外做过的活也会出现在侧边栏里,并按来源分组:Codex App、Claude Code、OpenCode、Windsurf、WorkBuddy 和 Cursor History。这些会话是只读的——你可以浏览和回放它们,但给它们发消息会被拒绝。这里没有开关:接入始终开启、按需触发、并有缓存兜底,而 Cursor 的数据库是以严格只读的方式打开的。
Claude Code 读自 ~/.claude/projects/*/(它的 sessions-index.json 加上每个会话的 JSONL),Codex 读自 ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl,Cursor 读自它的 state.vscdb,而 OpenCode、Windsurf 和 WorkBuddy 各自读自它们自己的本地数据库,在 macOS、Windows 和 Linux 上还有各平台特有的备选路径。另有一个扫描器为开发记录(Dev Record)分析提供数据,来源包括 ~/.gemini/tmp/*/chats/*、~/.kiro/sessions/ 和 ~/.aider/history/;结果会被缓存,按文件修改时间重新扫描并带一分钟冷却,解析器版本变化时则整体重新解析。这两轮扫描的结果都不会被上传。
ORG-2 还可以接上一个此刻正在运行的 Cursor IDE composer,把它的输出镜像进一个实时会话,并且能把它在导入历史里发现的仓库一步注册成 ORG-2 的仓库。
感知资源的执行
ORG-2 真正围绕着调度的资源,是你的注意力。在侧边栏的胶囊控件里设置你的在线状态——「设置你的在线状态 — Agent 会根据你是否在键盘前调整行为。」——可选在线(Online)、隐身(Invisible)或离开(Away),还可以附上一个回来的时间。
在线状态会做两件事。第一,它会把一段引导文字换进智能体的提示词里;离开状态的默认文字是「我现在不在键盘前。不要卡在等我上——用你已有的信息做出最好的判断,能做完的就做完,然后把发生了什么以及还有哪些待决问题简明地留给我。」第二,它会改变三项由后端强制执行的超时,这些都可以在我的角色(My roles)下编辑:
| 设置 | 在线 | 隐身 | 离开 |
|---|---|---|---|
| 自动跳过提问(秒) | 0 | 30 | 180 |
| 计划自动批准(秒) | 0 | 120 | 0 |
| 目标续跑预算(轮次) | 0 | 20 | 0 |
填 0 表示禁用该行为。这些都是在 Rust 后端强制执行的,所以即使界面关着,待回答的提问也会被解决,而被自动批准的方案会在它的审批卡片上标注出来。如果你希望一台正在跑智能体的机器保持唤醒,请打开会话运行时阻止系统休眠——它默认是关闭的。
硬件那一半要窄得多。设置 → 设备 & 网络(Device & Network) 里有一个性能监控(Performance Monitor),包含逐核 CPU、一张 RAM 历史(RAM History)图表、按子系统划分的 RAM 明细,以及智能体派生出来的子进程——但没有任何东西会因为 CPU 而给智能体的某个轮次限速。内存确实门控着一件事:当后端的常驻内存先后越过软阈值和硬阈值、或者系统可用内存偏低时,后台的会话分析流程会暂停,等它回落后再继续。硬件影响决策的另一个地方是本地模型——ORG-2 会拿候选模型去比对你的机器,在你运行它们之前先给出适配度评级。
下一步
有问题?欢迎到 ORG-2 Discord 提问。 Discord。