会话
一个 ORG-2 会话是怎么创建的、如何限定到仓库和分支、在工作站里怎么跑、中途怎么改变方向,以及在磁盘上怎么存。
会话是与一个智能体展开的一段连续对话,范围限定在你文件系统上的某一个位置。它保存了智能体的消息、它发起的每一次工具调用、它改动过的文件,以及你和它来回的那些轮次——全部持久化,所以你可以随时离开,再回到停下的地方。ORG-2 里的其他一切(看板、回放、Agent Blame)都是架在会话之上的视图。
创建会话
从输入区开始:聚光搜索里的新建会话(New Session)、侧边栏的新建会话,或者起始页上的新建会话卡片。在按下开始(Start)之前,先设定:
- 会话类别(Session category) —— 内置 Agent(Built-in Agents)(原生的 SDE Agent,或者用于计算机操作自动化的 OS Agent)、CLI Agent(CLI Agents)、自定义 Agent(Custom Agents)、Agent 团队(Agent Teams),或用于 Cursor IDE 这类工具的外部 Agent(External Agent)。
- 模型(Model) 和账号(Account) —— 要运行的模型,以及由哪个已接入的密钥或订阅来付费。参见 api-keys。
- 模式(Mode) —— 智能体的执行模式(见下)。
- 仓库(Repo) 和分支 —— 输入框下方那个分成两段的胶囊控件。
- 运行位置 —— 本机(This Mac)或新建 Worktree(New Worktree)。
- 添加上下文(Add Context) —— 输入
@挑文件,输入/挑 Skill 和命令。
如果你手上还没有仓库,从 GitHub 克隆(Clone from GitHub)可以接受一个 URL,并把它克隆到一个临时工作区里。提示词是必填的,且长度必须在 10,000 字符以内;短于 15 个字符会弹出输入内容较短(Short Input)确认框。每条消息最多可以附加五张图片。
执行模式
模式决定了智能体可以使用哪些工具。选择器里有三个:
| 模式 | 智能体能做什么 |
|---|---|
| Build(默认) | 完整的工具权限——读、写、执行 |
| Plan | 起草一份方案文件交给你审阅——不直接改动 |
| Ask | 只读调研——搜索、阅读、提问 |
还有两个只作为协议取值存在、不出现在选择器里:review,用于驱动后台的工作项审阅;以及 wingman,被动观察模式。
限定到仓库、分支或 worktree
每个会话都钉在一个工作区上。点击胶囊控件的仓库那一段可以切换仓库;点击分支那一段会打开分支选择器,并执行一次带保护的检出——如果工作树会产生冲突,它会先警告你。
选择新建 Worktree 而不是本机,会让会话跑在它自己的 git worktree 里,这样智能体就能在一个分支上干活,而不碰你正打开的那些文件。此后 Runner 会在会话的整个生命周期里被锁定——「已锁定到 Worktree —— 启动后无法切换 Runner」。活干完之后,你要显式地处理这个 worktree,合并策略可以是自动合并(no-ff)、快进合并(Fast-forward)或保留为分支(Leave as branch);仓库里有未提交改动时会拒绝合并,而丢弃(Discard)会永久删除该分支及其改动。
worktree 存放在 ~/.orgii/agent-worktrees/ 下,每个仓库默认最多允许同时存在八个。界面上还有一个 Cloud 运行位置,但目前处于禁用状态。
工作站
工作站(Workstation)有三种模式:我的工作站(My Station)(你自己的编辑器、终端、浏览器和文件——默认模式)、Agent的工作站(Agent's Station)(智能体正在做什么的镜像),以及 Ops Control(横跨所有会话的看板)。
我的工作站用的是一个扁平的标签页池,路由到四个内容宿主上,Dock 筛选器也是按这四类分组的:代码(Code)(文件、资源管理器、diff、源代码管理、git log 与提交、搜索、终端、输出、设置、lint 扫描、子智能体详情、AI Impact)、浏览器(Browser)(浏览器会话与 DevTools)、数据库(Database)(表、查询、schema、连接)和项目(Projects)(仪表盘、工作项、项目与组织设置)。
Agent的工作站有自己的一套 Dock——Diff、沟通(Communication)、代码编辑器(Code Editor)、浏览器(Browser)、项目管理器(Project Manager)、画布(Canvas)和后台任务(Background Tasks)。它的轨迹(Trajectory)面板以 UI 或 JSON 两种形式展示原始事件流,它的 Diff 界面则展示改动了什么,范围可选当前 Session(This session)或所有未提交(All uncommitted)。当智能体在操作浏览器时,浮层会把控制权说清楚:Agent 控制中(Agent controlling) / 用户控制中(User in control),并提供接管(Take Over)和交还给 Agent(Return to Agent)。
轮次与轮次意图
一个轮次(turn)是一次用户提交,加上智能体为此做的全部事情——ORG-2 也把它叫做 rounds。每个轮次都带有索引:起止位置、时长、事件数、状态、是否被中断,以及它修改过的文件。所以「本轮更改了 N 个文件」是一条存下来的事实,而不是在屏幕上现算出来的。
每次提交还会拿到一个轮次意图(turn intent):你按下发送时生成的一个规范 id,它会一路贯穿乐观消息、协议调用、调度器、持久化的事件和轮次索引。它走的是一台小小的状态机——optimistic → queued → running → completed、failed 或 cancelled——外加一个 stale,用于那些还没跑就已失效的意图,比如你回退或者编辑后重发的时候。正因如此,你排好队又被回退跳过的那条消息,不会悄悄变成第二个轮次冒出来。
轮次之下是事件(event):每次工具调用、消息、思考、方案、审批或错误各占一个,连同它的参数、结果和一份带类型的 payload 一起存下来。这份记录就是回放所播放的东西,也是 Agent Blame 所索引的东西。
跟随、中断与改变方向
会话运行期间,你可以跟随(Follow)它——视图会追着智能体当前所在的应用走并自动滚动;切到自由浏览(Free browse)就能自己四处点,而不会丢掉实时流。当智能体提问、请求权限或提交方案时,该轮次会停在 awaiting_user,直到你回应。
想让它改变方向,直接打字就行:你的消息会进队列而不是被丢弃,仍然可以编辑,也可以立刻发出去以打断当前的活。想让它停下,就按停止(Stop)——轮次运行时,输入区的发送按钮会变成停止按钮。侧边栏里还有停止 Agent 进程(Stop agent process),shell 命令也各自带有自己的停止。
轮次提前结束的三种方式并不等价。停止会杀掉这个会话派生出来的一切。立即发送(Send Now)会杀掉前台 shell,但后台 worker 和开发服务器能活下来。回退(Rewind)什么都不杀——它改写的是时间线,而不是让它停下来。
能否恢复取决于会话类型。CLI 会话可以作为进程恢复;原生智能体会话不行——「Agent 会话无法恢复,请改为发送新消息。」
回退与继续推进
想往回走,把鼠标悬停在你自己较早的某条消息上,选恢复到此检查点(Restore checkpoint)。那个点之后的一切都会被截断,默认情况下会话的文件历史也会回滚到该轮次之前的字节;如果智能体在那之后改过文件,ORG-2 会问你要怎么处理它们——撤销变更(Revert changes)还是保留变更(Keep changes)——而不是替你做主。你还可以对某个响应重新生成(Regenerate)、复制对话(Copy turn)或导出为 Markdown(Export as Markdown)。
面向用户的分叉或复制操作是没有的。继续推进的做法是:给同一个会话再发一条消息,或者针对同一个仓库和分支新开一个会话。上下文计量条会告诉你什么时候后者更合适:「上下文即将填满。建议尽快开始新会话以获得更好的结果。」
会话存在哪里
一切都在 ~/.orgii/ 下面。数据库是 ~/.orgii/sessions.db,其中存放 events(一个事件一行,按会话和序号建索引,并镜像进一个 FTS5 索引,所以会话内容可以被搜索)、session_turns、session_turn_intents、面向 CLI 智能体会话的 code_sessions 和 code_session_chunks,以及 sessions、session_token_usage、repos 和 workspaces。附件放在 ~/.orgii/session-images/,回退时用来还原的归档在 ~/.orgii/file-history/<session_id>/。
除非你为某个组织(ORG)开启了共享,否则什么都不会被上传;参见协作和安全。
归档与看板
Ops Control 把会话按列展示成卡片——待办(Todo)、进行中(In Progress)、阻塞中(Blocking)、轮次完成(Turn Finished)、已归档(Archived)——并提供列表(List)、日志(Diary)和 Ops Control 三种视图、按智能体类型的筛选,以及 12h / 24h / 3d / 7d 的时间范围(Range)。
你可以手动归档一张卡片,也可以交给自动归档(Auto archive)——它会在 12h、24h(默认)、3d 或 7d 之后把空闲会话挪走,也可以设为从不(Never)。活跃会话永远不会被自动归档,而且归档只是一种看板状态,不是删除——归档后的会话保留完整记录,也依然可以回放。
删除才是破坏性的那个。在侧边栏右键点击一个会话,可以看到重命名(Rename)、导出为 Markdown、置顶(Pin)和删除(Delete)。删除会移除该行及其事件、杀掉正在运行的进程,并删除该会话的 worktree 和会话级配置——而且这个菜单上没有确认对话框。
限制
ORG-2 不限制你创建或并发运行多少个会话,本地会话也不会过期。你实际会碰到的限制是:提示词长度 10,000 字符(低于 15 字符会有确认)、每条消息五张图片、每个仓库八个并发 worktree(git.worktree.maxCount)、模型的上下文窗口——显示为上下文计量条,并带有按智能体划分的压缩设置——以及,如果你开启了同步,cloud 中描述的各套餐配额。
下一步
有问题?欢迎到 ORG-2 Discord 提问。 Discord。