Platform Overview

Orquesta 是一个协作式 prompt 编排平台, 可将自然语言 prompt 转化为生产级代码。团队只需写下想要构建的内容, AI agent 负责代码、PR 和部署。

本地 Agent

在你的机器上运行,可完整使用 Claude CLI,代码始终留在本地。

云虚拟机

由 DigitalOcean 配置的虚拟机,支持 SSH 访问和安全加固。

Batuta AI

自主编排器,自动路由到最合适的执行模式。

平台支持多种执行路径:通过 WebSocket 连接、具备完整 Claude CLI 能力的本地 agent, 可直接通过 SSH 执行的云虚拟机,用于自主任务路由的Batuta AI,以及用于集成第三方 AI 的External Agents API。

Quick Start

5 分钟内即可上手:

1

创建账户和项目

在 getorquesta.com 注册,创建第一个项目,并邀请你的团队。

2

安装并连接 agent

终端bash
npm install -g orquesta-cli orquesta-agent\norquesta-agent --token YOUR_PROJECT_TOKEN
3

提交第一个 prompt

在控制台中输入你想构建的内容,agent 会在你的机器上使用 Claude CLI 执行。

4

观察执行,然后发布

监控实时日志,审查代码变更,并部署到生产环境。

Onboarding Tour

新用户首次访问控制台时会看到交互式引导。引导会创建一个包含示例数据的演示项目,并带你了解平台的 9 个关键区域。

自动触发 — 新用户进入空白控制台时,引导会自动开始,并创建一个“Demo: Todo App”项目,包含示例 prompt、日志、团队成员和 git 提交。

手动触发 — 点击右上角的头像并选择“Take Tour”,可随时重新开始引导。

引导步骤 — 引导涵盖:控制台统计、项目列表、创建项目按钮、Agent 连接状态、Prompt 输入、协作时间线、实时日志、性能仪表盘和团队协作。

导航 — 使用 Next/Back 按钮、方向键,或按 Escape 跳过。引导会自动跨页面跳转。

演示项目 — 演示项目可以像其他项目一样删除。删除后若再次触发引导,会重新创建一个。

Core Concepts

组织 — 你的团队工作区,包含项目、成员、计费和集成。

项目 — 一个代码库或应用。每个项目都有独立的 agent 连接、prompt、聊天和设置。

Prompt — 描述要构建内容的自然语言指令。Prompt 会经历评估、执行和完成。

Agent — 接收 prompt 并使用 Claude CLI 执行的本地进程,通过 orquesta-agent 安装。

Prompt 生命周期:

pendingevaluatingrunningprocessingcompleted

Local Agent

The orquesta-agent 包通过 WebSocket 将你的本地机器连接到 Orquesta 控制台。 它接收 prompt,使用 Claude CLI 执行,并实时回传日志。

安装bash
# Install globally (orquesta-cli gives the `orquesta` command, orquesta-agent the daemon)\nnpm install -g orquesta-cli orquesta-agent\n\n# Or use npx (not recommended for VMs — can timeout)\nnpx orquesta-agent --token YOUR_TOKEN

提示

对于生产环境虚拟机,请始终使用全局安装(npm install -g),而不要使用 npx。npx 每次运行都会重新下载,网络较慢时可能超时。

连接到项目

在控制台生成 token(Project → Agent → Setup),然后执行:

连接bash
orquesta-agent --token oat_abc123...

每个项目多个 Agent

可将多个 agent 连接到同一个项目——开发笔记本一个,staging 一个,生产环境一个。 每个 agent 都有各自的 token 并独立运行。

多 Agent 设置bash
# Dev laptop
orquesta-agent --token oat_dev_token --name "Dev Laptop"

# Staging server
orquesta-agent --token oat_staging_token --name "Staging VM"

# Production server
orquesta-agent --token oat_prod_token --name "Prod Server"

提交 prompt 时,可通过 agent 选择下拉框指定由哪个 agent 运行。功能:

  • 每个 agent 的在线/离线状态,以绿色指示灯显示
  • 多个 agent 在线时显示 agent 选择下拉框
  • 并行执行——每个 agent 独立运行 prompt
  • 通过 --name 参数自定义 agent 名称

Agent 将会:

  • 通过 Orquesta API 验证 token
  • 通过 Supabase Realtime 建立 WebSocket 连接
  • 每 30 秒发送一次心跳
  • 在项目频道上监听 EXECUTE 命令
  • 向控制台报告其版本和能力

Prompt 执行流程

提交 prompt 后:

  1. 控制台通过 Realtime 频道广播 EXECUTE 命令
  2. Agent 接收后将其入队(仅顺序执行)
  3. Agent 使用该 prompt 启动 claude CLI 进程
  4. 输出以日志条目的形式流式写回 Supabase
  5. 完成后,agent 报告状态、git 提交和 token 用量

注意

Agent 按顺序处理 prompt——如果在一个 prompt 运行时又收到第二个,它会被排队,并在第一个完成后执行。

编码引擎——由哪个 CLI 运行你的 prompt

Agent 本身不包含模型。它会启动机器上已安装并已登录的编码 CLI,因此每个 prompt 都使用你自己的 订阅运行。可在 Settings → Agent 中、项目标题栏的标签上,或在连接 agent 时的 设置向导中为每个项目选择引擎——向导显示相同的选择器和相同的 标记,因此引擎会在第一个 prompt 之前选定,而不是在失败之后。

引擎可执行文件说明
Auto (默认)—按顺序使用第一个已安装的:Orquesta → Claude → Kimi → Cursor → Kiro。
Orquestaorquesta随 agent 一起提供。通过 Batuta 或你自己的端点支持多模型。
ClaudeclaudeAnthropic 的 Claude Code,使用你的 Claude 订阅或 API 密钥。
Kimikimi通过 KIMI_PATH、PATH 或 ~/.kimi-code/bin 查找。
Cursorcursor-agent通过 CURSOR_AGENT_PATH、PATH 或 ~/.local/bin 查找。
Kirokiro-cliAWS Kiro 的 CLI。通过 KIRO_CLI_PATH、PATH 或 ~/.local/bin 查找。仅支持 macOS 和 Linux。
将 Cursor 用作引擎bash
# Cursor's headless agent — install once on the agent machine
curl https://cursor.com/install -fsS | bash
cursor-agent login

# Windows (PowerShell)
irm 'https://cursor.com/install?win32=true' | iex
将 Kiro 用作引擎bash
# AWS Kiro CLI — macOS / Linux, install once on the agent machine
curl -fsSL https://cli.kiro.dev/install | bash
kiro-cli login          # AWS Builder ID (free) or IAM Identity Center
kiro-cli whoami         # what the agent checks to show the login mark

所选引擎会在运行中 agent 的下一次心跳时生效——无需重启。Agent 会回报 它实际运行的是哪个引擎,因此如果你选择的引擎未安装, 控制台会显示回退后的引擎,而不是悄悄伪装。每个完成的 prompt 都会标记其cli_type,并在时间线中显示徽章。

两种不同的问题在 Settings → Agent 中对应两种不同的标记。 ✗ 表示引擎未安装——agent 会回退到 下一个可用的引擎。 ! 表示它已安装但 未登录:由于可执行文件存在,不会发生回退, 因此 prompt 会运行并因引擎自身的认证而失败,直到你在该机器上运行其登录命令 (cursor-agent login, claude login, kiro-cli login). 每个引擎各自持有其凭据——Orquesta 看不到,也无法代你登录。

注意

Cursor 的模型取自你自己的 Cursor 账户,因此 Orquesta 不会设置模型,徽章上也不会 显示模型。其会话使用 --force 运行(相当于 Cursor 的 skip-permissions),并从工作目录读取 AGENTS.md / CLAUDE.md, 这些文件 agent 已经同步。Kiro 的工作方式相同:分发的 prompt 运行 kiro-cli chat --no-interactive --trust-all-tools (即其 skip-permissions),交互式 会话打开 kiro-cli chat 并通过 --resume / --resume-id 恢复,模型则取自你自己的 Kiro agent 配置。

注意

已保存的会话。在交互式会话中,点击顶部的 Save 并为其命名(例如"客户支持 — client2")。已保存的会话与项目团队共享,并以其名称排在 Resume 菜单最前面,即使它已不在 agent 的最近列表中;该菜单中的书签和铅笔图标用于保存、重命名或移除条目。为运行中的会话命名需要 orquesta-agent 0.2.277+,并使用 Claude、Cursor 或 Kiro。

IDE Hooks — 镜像 Claude Code 和 Cursor 会话

上面的流程是派发 dispatch:Orquesta 把工作下发给 agent。 Hooks 则是相反的方向——你继续在自己的 IDE 中工作,Orquesta 镜像所发生的一切。不会有任何内容被回传到你的 编辑器中执行,也无需运行任何守护进程。

每个仓库只需运行一次。不带 --client 时会同时接入两个工具:

接入 hooksbash
# Claude Code + Cursor
orquesta-agent init --token oat_abc123...

# Only one of them
orquesta-agent init --token oat_abc123... --client cursor
orquesta-agent init --token oat_abc123... --client claude

它会写入 .orquesta.json(项目绑定——请将其加入 gitignore,因为它 保存着原始 token),以及 .claude/settings.json 和/或 .cursor/hooks.json。已有的 hooks 会被保留;重新运行 init 会升级 Orquesta 的条目,而不是重复叠加。

时机Claude CodeCursorOrquesta 记录的内容
提示词已发送UserPromptSubmitbeforeSubmitPrompt创建该提示词
工具已运行PostToolUsepostToolUse, afterShellExecution, afterFileEdit工具调用及结果(按内容去重)
回答已写出—afterAgentResponse助手的回复
会话结束Stopstop将该提示词标记为完成

被镜像的提示词会带着 source: terminal 和 Local CLI 徽章入库;cli_type 列(claude-code 或 cursor-cli)决定其旁边的工具徽章。它们会被排除在 agent 派发之外,因此带 hook 的会话绝不会被重复执行。

注意

Cursor 在启动时读取 hooks.json——运行 init 后请重新加载窗口。Cursor 还会把 hook 的 stdout 解析为权限决定,因此 Orquesta 的 hook 不会在那里输出任何内容,并且始终以 0 退出:Orquesta 无法访问或 token 被撤销,都绝不会 阻塞或拖慢你的提示词。

故障排查

Agent 在仪表板中显示离线 — 检查 token 是否有效且未过期。确认没有防火墙阻止 WebSocket 连接。重启 agent。

提示词卡在“running”状态 — 心跳机制会在 10 分钟后自动取消卡住的提示词。你也可以在仪表板中手动取消。检查 Claude CLI 进程是否仍在运行。

Agent 空闲后断开连接 — 请更新到 v0.1.64+,其中包含完整的客户端重置和心跳恢复。使用 npm install -g orquesta-agent@latest。

提示词因“interactive prompt detected”而失败 — 某条命令打开了 TUI 或要求输入(eas login、方向键菜单、(y/N)、密码提示)。派发的运行没有键盘,因此 agent(v0.2.247+)和 orquesta-cli 的 shell 工具(v0.2.149+)会在输出沉默后检测到该提示,终止进程,并附上最后几行屏幕内容使该提示词失败,而不是一直挂起。请使用该工具的非交互形式(--non-interactive、--token、密钥文件)——CI=1 会传递给各命令。可通过 ORQUESTA_INTERACTIVE_PROMPT_TIMEOUT_MS 调整 agent 的超时(默认 60000;0 表示禁用)。

仪表板

仪表板是管理项目、提交提示词、监控执行以及与团队协作的中心枢纽。

Home(/dashboard/home)是以聊天为先的视图:在切换器中选择一个项目,即可与它的 agent 对话。左侧栏按天分组列出你的历史记录——Home 聊天、交互式终端会话、本地 hook 会话和单次提示词——新账户会在这里看到一个现成的首个项目和四步设置清单(机器就绪、选择模型、首个提示词、邀请他人——GitHub、Supabase 等其余设置在高级模式中)。每个项目都有自己的地址 /dashboard/home/<projectId>。从 Advanced 切换过来时会保留当前项目。项目有了历史后,起始建议来自该历史 — 先是未处理的 Auto Agent 提案,然后是近期工作的后续。右侧栏可以隐藏,其中包含 Activity 面板(agent 正在运行的工具,与交互式会话相同)和 Artifacts 面板(AI 修改的文件和生成的链接)。侧边栏的 Operator / Advanced 开关用于在 Home 与完整仪表板之间切换;Home 只显示 agent 的运行位置,重新配置需在高级模式中完成。每个 Home 聊天的工作方式都像一次对话:在 Claude CLI 上(agent 0.2.267+),每个聊天就是一个真实的 Claude 会话,每条新消息都会续接该会话,因此 Claude 会记住整段对话——它读过的、运行过的和回答过的内容——而“好,就这么做”指的就是刚刚讨论的事情。在其他 CLI、旧版 agent,或从未见过该聊天的机器上,消息会改为携带该聊天之前的轮次(最近 8 轮,按长度裁剪)。agent 的日志会在其回答下方就地展开,工作时实时更新,无需离开聊天。同样的聊天也在 Orquesta Terminal 中:它的 Operator 按钮会在你的窗格上方全屏打开它们,因此你可以下载 Terminal、登录并与任何项目的 agent 对话,而无需打开仪表板。Home 提供英语、西班牙语和葡萄牙语版本。项目的 Settings → Integrations 标签页汇总了它连接的全部内容——Code(GitHub,包含关联的仓库和 PR 反馈循环)、Ship(Vercel、Supabase)、Work intake(Linear、Slack、Telegram)和 Talent(Derplins)——每项都显示其状态、关联对象和断开按钮;技能和自定义设置位于高级模式下。旧的设置向导已停用:带有 ?setup=true 的链接会跳转到该标签页,托管相关则跳转到 VM 视图。

免费的 Orquesta 机器。使用 Google 登录的账户可以在 Home 或创建项目时获得一台免费云机器,预装了 agent 和 orquesta-cli,并且项目被设置为在 Batuta 上运行。它在 48 小时没有提示词后会休眠,并在你发送提示词时自动唤醒;启动期间提示词会在队列中等待。额外的机器需付费,可在项目的 Agent 标签页中添加。

提示词与执行

Prompts 标签页是你向 AI agent 提交工作的地方。每个提示词可以包含:

  • 内容 — 用自然语言描述要构建的内容
  • 标签 — 分类为 bug、feature、refactor、urgent、docs
  • 指派 — 指派给特定的团队成员
  • 优先级 — 为重要的提示词加星标
  • 结构化规格 — 使用带验收标准的 bug 报告、功能规格或改进模板

提示词可以来自多种来源:

Dashboard— Web 界面
Telegram— Bot 命令
Slack— 在频道中使用 /orquesta
Embed SDK— 生产环境应用
CLI— 终端
Linear— 工单同步
External API— 第三方 agent

管理

管理部分包括:

  • Tickets — 跟踪来自 Linear 集成或手动创建的工作项
  • Requirements — 通过 AI 辅助分析来定义和跟踪项目需求
  • QA — 质量保证说明和测试跟踪
  • Planning — 创建包含事项、里程碑和 AI 生成拆解的计划

提示音

仪表板会为各种结果播放简短的合成提示音——运行完成或失败、 agent 连接或断开,以及任何等待你输入的事项。界面本身是静音的: 打开模态框、切换开关或切换标签页都不会发出声音。Agent 和聊天 的提示音只在标签页处于后台时播放。

你可以在 Profile → Sound 中关闭它们、设置音量或试听每种提示音。该偏好 按设备保存,如果你的系统要求减少动态效果,整套提示音会自动静音。

日志与历史

实时日志流会显示 agent 执行的每一步——运行的命令、修改的文件、 git 操作等等。日志按级别(info、warning、error)和类型 (command、output、status、git)分类。History 页面以时间顺序展示项目的所有活动。

实时活动

侧边栏的 Activity 标签页 — 即终端旁边、提示词时间线旁边的 可折叠面板中的第一个图标 — 用通俗的语言呈现 agent 此刻正在做什么: “编辑了 public-queries.ts”, “正在运行测试套件”。当前步骤固定在顶部;其下是迄今为止的每一步, 并显示每个文件上新增和删除的行数,底部还有一个文件变更汇总。

它会根据会话流实时跟随一个交互式会话, 因此适用于包括 orquesta-cli 在内的所有 CLI;在 Prompts 标签页中,它则跟随正在运行的提示词。 它与 Logs 标签页是同一个数据流,只是为不想阅读工具输出的人而整理:重复的文件 读取会合并为一行,内部记账类步骤会被隐藏,失败的步骤会显示错误信息而不是 原始数据。生成它不会额外记录任何新内容。

每个步骤还带有一个彩色的领域标签,说明它改变了什么, 而不是它触及了哪个文件 — 数据库、API、界面、依赖、Deploy / CI、配置、测试、文档,或者针对删除、drop 和硬重置的 红色 破坏性标签。面板顶部的汇总条会把它们加总,因此无需打开任何一个 文件,也能一眼看出“这次运行三次触及了数据库”。仅读取内容的步骤没有标签,因为读取不会改变任何东西。

Artifacts — 代理生成的文件

当一次运行产出值得打开的东西 — HTML 报告、图表、PDF、CSV、构建好的网站 — 代理可以发布它: orquesta-cli 提供 publish_artifact 工具,任何 CLI 也可以直接把文件写到 .orquesta/artifacts/。 提示完成后,代理(≥ 0.2.273)会上传这些文件,它们会显示在 Operator 的 Artifacts 卡片最前面并附带下载链接, 保留 30 天(单文件最大 25 MB,每个提示 50 个文件 / 100 MB;.env 和类似密钥的文件永远不会发送)。 在按需 microVM 上始终开启,因为其磁盘随会话一起消失。在你自己的机器上需手动开启:设置 → 代理 → Artifacts。

每个产物,以及交互式会话 Context files 面板中的每个文件,都有两个按钮:打开 会在新标签页中渲染(HTML、图片、PDF 和文本直接显示,其他类型仍会下载);分享 会复制一个公开链接 getorquesta.com/share/…,任何人无需账号即可打开。渲染发生在独立的存储源上,绝不在 getorquesta.com,因此 AI 生成的页面无法触及你的会话。链接可在同一行撤销,产物过期后其链接也随之失效。

Claude Code 没有发布工具,因此当它以 <antArtifact> 块(HTML 页面、SVG、Markdown 文档)作答时,该块会在提示完成几秒后自动保存为该提示的产物 — 无需任何设置。新项目在设置卡片中先有一个用途步骤(聊天、交互式会话、独立提示、嵌入或 hook),决定项目默认打开的位置;其托管步骤包含 Orquesta microVM,每个组织前 10 次运行免费(之后 $0.25/小时)。

侧边栏中的任务

侧边栏的 Tasks 标签页是此项目中所有等待 处理事项的统一信息流 — 本地工单、计划事项、Linear 议题、定时提示词以及分配给 你的提示词 — 每项都标注了来源,并可按来源筛选。

Run 会按你当前所在界面对“运行”的含义来执行。 在交互式会话中,它会立即把任务发送到实时终端。 在 Prompts 标签页中,它会派发给 agent:本身就是提示词行的任务 — 本地工单、分配给你的提示词 — 会就地运行, 运行与它保持关联,工单会在完成后自动关闭;其他任务则会变成新的提示词。 在它旁边,Start 会把任务载入提示词输入框供你审阅, 而不是直接发送,Prompt 则会先把这个需求转换为 具体的实现提示词。

记忆与上下文

Memory 面板存储持久的项目上下文,并会被包含在每次提示词执行中。 其中包括架构决策、编码规范、已知问题以及项目特有的知识。 Memory 会被自动总结并注入到 Claude CLI 的上下文中。

自动上下文

像“yes”、“deploy”或“do it”这样的短提示词会自动获得最近几个已完成任务的上下文。 无需切换 Include Context——agent 始终知道之前发生了什么。对于较长的提示词,请使用 Include Context 开关进行显式控制。

如果需要更多信息,agent 还可以在执行过程中获取详细的上下文:

Agent 上下文 APIbash
# Agent can call this during execution
curl -s https://getorquesta.com/api/agent/recent-context \
  -H "Authorization: Bearer $ORQUESTA_TOKEN" | jq .

Auto Agent

Auto Agent 会分析你的项目——计划、近期工作、记忆、未关闭的工单——并决定接下来 要构建什么。它有两种模式,均在项目的 Auto Agent 标签页中使用。

后台模式(提议并批准)。打开开关并 选择一个计划。每个周期中,agent 都会把提议——标题、为何重要、要运行的确切提示词, 以及风险评级——写入收件箱。它不会编写代码,也不会执行任何内容。你每天查看一次收件箱, 可按需编辑任何提示词,并批准值得做的提议;只有这时 agent 才会开始工作。被拒绝的 提议会被记住,因此它不会再次提出同样的建议。

周期的成本很低,因为大多数周期根本不会发生:当你的本地 agent 离线时、 当收件箱里已有待处理的提议时(清空收件箱是你的工作——继续堆积只是噪音),以及 当自上个周期以来没有任何变化时(同一个 commit,没有新提示词),周期都会被跳过。这三种情况都由 数据库读取来判定,因此在空闲项目上名义上的“每 6 小时一次”完全不消耗 token。

立即运行(前台)。这是最初的循环,位于“立即运行”下: agent 挑选任务并在你的注视下立即执行,直到你设置的迭代上限。 该循环在服务端运行,因此在切换标签页、浏览器卡死和部署期间都不会中断。

自主运行(无需点击)。在 Settings 下,“自动运行 已批准的工作”可让处于你所设限制之内的提议在无人点击 Approve 的情况下运行。 它默认关闭,并且在没有验证 命令时无法开启——该命令用来证明你的项目仍然正常工作(npm test、pytest -q、make check)。无人审查、也无从验证的工作不叫自动化,因此 Orquesta 拒绝这样做。

每次自主运行都在从你当前 commit 切出的专属 auto/… 分支上工作, 完成任务后运行你的验证命令。退出码为 0 时,它按你项目的 git 工作流来收尾——快进合并并推送,或者开一个 pull request 并保持基础分支不动。退出码为 其他值时,它会回滚分支,把仓库恢复到开始时的 commit,并把 提议退回收件箱,同时附上失败输出的最后 100 行。它从不重试:每个提议只有一次机器 尝试,之后由人来决定。

有四项限制对其加以约束。一个风险上限和一个 规模上限——超出的任何内容仍然需要等你处理, 而未声明风险的提议会被视为中等风险,因此在默认设置下会被拦截。两个滚动的 24 小时预算:任务数量和 金额,以先用完者为准(包月定价的模型 套餐每次运行实际上不花钱,报告为 $0,因此在那种情况下起约束作用的是任务数量)。还有一个 熔断器,在连续 N 次 失败后暂停项目,且不会给任何人发送意外的邮件——标签页会说明原因,你可以从那里恢复。

每次无人值守的运行都会列在“自主运行”下,包括其分支、开始时的 commit、 验证退出码、工作树是否已恢复,以及失败输出。失败 且无法回滚的运行会以红色标出——这是唯一值得去查看 那台机器的情况。

Workstreams(多个长期问题,一个项目)。一个项目 很少只有一个目的。“分诊 bug”、“阅读客户反馈并决定要 构建什么”以及“审视营销和商业行动”是三个不同的问题, 把它们合成一个来问,结果会坍缩成模型觉得最容易理解的那一个。在 项目的 Workstreams 面板下创建 workstream,Auto Agent 标签页就会多出一个选择器:每个 stream 都有自己的 计划、自己的收件箱、自己的限制和自己的 24 小时预算,每个大脑都会被告知它的 stream 是做什么的,并被要求宁可不提议,也不要伸手去管另一个 stream 的事。

Workstream 可以指向一个目录,但并非必须。 stream 定义了工作内容;目录只决定两个 stream 能否在同一 时刻运行。位于不同目录的 stream 并行运行。共用同一目录的 stream——以及任何 针对单一文件夹项目的 stream——会轮流执行,因为在同一个工作 树里同时运行两个自主分支是一场谁也赢不了的竞争。指向项目根目录的 stream 与其他所有 stream 互斥,因为 它包含了它们。

该目录可以位于仓库根目录之下——拥有 repo/server 的 stream 仍然可以创建分支、提交和回滚。在 文件系统隔离下,沙箱只让工作目录可写,因此 agent 还会打开 外层仓库的 git 目录(对于 worktree,还包括它写入对象的 主仓库)。没有这一步,这样的 stream 能编辑代码却无法创建分支,而且这个错误读起来会像 磁盘故障,而不是某项设置的问题。

每个 stream 都有一种类型,因为并非每个问题都以 一次提交告终。Code stream 会修改仓库:它在自己的 分支上工作,必须通过验证命令,否则会被回滚。 Analysis stream 负责阅读并汇报——客户反馈、错误 日志、市场状况——不需要验证命令,因为没有什么需要撤销。 Action stream 会在仓库之外做一些事情,比如 发送邮件或提交工单,并且绝不无人值守地运行:无论自主设置如何,它始终等待 人工确认。将 stream 切换为 Action 会同时关闭它的自主运行。

Swarm 视图。一旦项目拥有两个或更多 workstream, Auto Agent 标签页就会把它们绘制成一张图:根 agent 在顶部,其下每个 stream 一个节点, 每个节点上显示类型、目录、收件箱和 24 小时计数。绿色连线表示该 stream 此刻正在运行; 琥珀色表示它已就绪但原地等待,因为另一个运行占用着它的目录——也就是上面的 排队规则,直接展示出来而不只是描述。你可以在项目 设置中或创建项目时固定使用某种视图,适用于在第一个 stream 出现之前就会成为 swarm 的项目。

点击一个节点,右侧面板会显示该 stream 是什么、最近做了什么以及最近的运行; 点击其名称即可在那里重命名。拖动卡片,把图排列成项目 在你脑中的样子——这种排列会按项目记在你的浏览器里, 仅属于你自己:移动卡片不会影响其他人看到的布局。重置控件可以恢复原样。

你的终端默认值。同一个面板中有 设为我的终端默认值:之后该项目的交互式会话会在已选中该 workstream 的 状态下打开(也可以通过终端中 Run in 旁边的星标来设置)。这是 你个人的偏好,保存在你的浏览器中,不会被团队其他成员继承。终端 标题栏始终会显示你所在的 workstream(刷新页面后依然保留),在某个 workstream 中启动的会话,会把该 workstream 的描述作为任务载入,因此 agent 会从它开始,而不是询问要 做什么(需要 agent 0.2.265 或更高版本)。

加入正在运行的会话会保留其历史。当你加入一个 已在运行的会话,或在会话运行时刷新页面,此前的对话会在绘制实时画面之前 载入终端的回滚缓冲区(以及 History 面板), 因此向上滚动可以看到更早的轮次,而不只是最后一屏。仅限 Claude 会话,需要 agent 0.2.266 或更高版本。

在图的下方,What the swarm has done 会把每个 stream 合并为过去十四天的一条时间线——提议和运行交错排列,因为一个提议和 由它产生的运行是同一个故事——并给出整个时间窗口的汇总:运行数、已验证、已回滚, 以及单独统计的回滚失败,因为最后一项意味着有一个分支被遗留在 机器上。点击任意一行即可跳转到它所属的 stream。

每日摘要邮件会列出等待审查的内容,并且只在有新内容到达时才会发送—— 被忽略的提议绝不会变成每天的骚扰。

Meet — 与 agent 的视频通话

Meet 位于项目的 Agent 菜单下,是与你的 agent 一键视频通话。点击 “Start meet”:仪表板会在页面内直接于 meet.apuchat.com 上开启通话,并让 agent 加入。直接开口说话——你的语音在浏览器中被转写,并以 文本形式传达给 agent;它的回答会以语音播放,同时也会出现在通话旁的转写文本中,因此通话结束后 不会丢失任何说过的内容。

每个项目都有自己持久的 meet 房间,与团队聊天和协调频道分开, 因此 agent 只会在你发起通话时被唤醒。“Invite”会显示受保护的链接和密码, 用于邀请其他人加入;如果你的浏览器在嵌入页面中屏蔽麦克风,“Open in a new tab”会在仪表板之外运行同一场通话。 agent 必须在线才能应答。

过往的 meet。从仪表板进行的每场 meet 都会以 文本形式记录——谁在何时说了什么——并列在“Start meet”卡片下方,附有日期、时长和 行数;打开其中一场即可阅读完整转写。记录仅为转写文本(不会存储音频或 视频),并且由参与通话的仪表板标签页写入,因此仅 从普通浏览器标签页加入的 meet 不会被保存。

在移动端。Orquesta 应用中也有 Meet:打开一个项目, 点击“Meet with the agent”,通话会以同样的方式在应用内进行,并带有实时转写和 你过往的 meet。如果 agent 执行了派发却没有留在房间里,通话视图会 显示“agent didn't join”,而不是默默地等下去——有些项目按自己的 规则拒绝通话,这一点会如实呈现出来。

agent 如何回答。你说的每句话都由 Orquesta 一侧的快速模型来回答,它会读取 Orquesta 已掌握的项目信息——笔记、 近期提示词及其结果——因此问题可以在一两秒内得到回答,而无需触碰 你的机器。当你要求做真正的工作(查看代码、运行测试、检查日志、修改内容)时,它会 说“稍等”,并把一个普通提示词交给项目的 agent;运行期间你每半分钟会听到 一次简短的进度更新,结果一出来就会被朗读出来。你说话期间或有工作在进行时,agent 会一直留在通话中, 安静约三分钟后离开(最长 30 分钟)。再次开口会把它重新唤醒。

Hey Orquesta — 覆盖所有项目的免提语音

Hey Orquesta(在侧边栏中)是一个语音助手,位于你有权访问的每个项目之上 ——适用于你在走路或开车、无法看屏幕的时候。开启免提后,它会 聆听、大声回答,然后再次聆听。

  • “ehive-dev 进展如何?” — 从 Orquesta 读取:agent 是否在线、正在运行什么及其最新日志行,以及最近完成了什么。不会为此唤醒任何 agent。
  • “让 ehive-dev 的 agent 运行测试” — 会变成该项目上的一个普通提示词,署名为你,并且 agent 会立即被唤醒。需要有在该项目上运行提示词的权限。
  • “ehive-dev 完成时给我发邮件” — 当进行中的工作(或你刚刚要求的任务)完成或失败时,Orquesta 会给你发邮件,并附上结果的简短摘要。

语音识别和语音播放都在你的浏览器中运行(Chrome、Edge 或 Safari)。项目按 名称匹配,所以名称足够接近就行;如果有两个项目匹配,它会询问是哪一个。同一个端点 POST /api/companion/turn,接受仪表板会话或 oclt_ CLI token,移动应用使用的就是后者。

Hey Orquesta 包含在 Pro 和 Max 套餐中——只要你所属的任何 组织使用其中之一,你就能使用它。在其他套餐上,界面会显示升级卡片,端点 会返回 402。

回复使用 Grok 语音播放(以浏览器语音作为后备),并根据屏幕上的 ES/EN 开关选择语言。每次对话都会保留:历史按钮会列出过往对话,并在其中 显示每个 agent 对你交给它的工作做了什么(实时状态和结果)。当你询问该工作 进展如何时,助手会读取当前结果,而不是猜测。页面标题栏中的圆球可在 任何地方打开它。在免提模式下,它说话时麦克风保持开启,因此你可以随时用新的请求 打断它;它思考时会说一句简短的“稍等”,而不是陷入沉默。

团队协作

Orquesta 支持四种角色,具备细粒度权限:

角色Prompts设置成员计费
所有者完全完全完全完全
管理员完全完全完全无
开发者完全查看无无
Prompter仅可提交无无无

项目聊天

每个项目都内置由 Supabase Realtime 驱动的实时聊天。功能包括 线程式对话、文件附件、已读回执和输入状态提示。 聊天非常适合讨论 prompt、评审输出和协调工作。

向项目 agent 提问。 在项目聊天中输入 @agent, 它会根据该项目自己的历史记录作答:上次运行了什么、结果如何、还有哪些未完成事项。 它只做汇报,从不执行任何操作,而且只了解自己所在的项目。该标识按项目设置, 可在 设置 → Agent → 聊天标识 中命名(例如 @elclaudio),它会在你提问的线程内回复。 回答由服务器生成,因此即使 agent 所在的机器离线也能正常工作。

将消息转为任务。 悬停在任意聊天消息上并点击 任务图标,即可将其作为计划项打开,标题和描述会根据消息自动填入,你只需选择 计划和负责人。该任务会带有 来自聊天 标记,方便你 区分哪些是在对话中提出的。

发起会议。 聊天标题栏中的 Meet 按钮会打开项目的视频房间,并在对话中发布一张加入卡片, 任何人阅读时都能一键加入。视频和音频在浏览器之间直连传输—— 房间只负责信令,其中的任何内容都不会被录制。每个人点击加入时都会获得自己专属的 链接,所以这张卡片是一个按钮,而不是一个需要粘贴的 URL。

Agent 之间的请求

一个项目的 agent 可以向另一个项目的 agent 提问。 在同一组织内,agent 通过 GET /api/agent/directory 列出同伴,并用 POST /api/agent/requests 发送请求:consulta(提问,在对方以只读方式运行,自动批准)或 encargo(工作委托,需要有人在项目的 Callable 标签中批准)。请求就是目标项目上的普通 prompt;完成后,答案作为后续 prompt 回到提问的项目,或由提问方轮询 GET /api/agent/requests/{id},其中还提供目标生成文件的下载链接(每个最多 256 MB)。链路最多两跳,循环会被拒绝,每个项目有每日上限。 只有启用了协作(settings.coordination.enabled)的项目才会列出并可互相请求;请求可带 timeout_min(consulta 默认 30,encargo 默认 240,最多 720),超时即取消;agent token 可绑定来源 IP。

永久 handle 与给所有者的私信。 每个项目 agent 都可以拥有永不过期的 @<project>-agent handle,所有者在其允许列表中。遇到需要人来决定的问题时,agent 用 POST /api/agent/dm 给允许列表中的人发消息;24 小时内的回复会成为一个 prompt,向 agent 展示它自己的问题和发起的任务。

Agent 身份

设置 → Agent 身份 是唯一能回答 “这个 agent 是谁,我该如何联系它”的地方。过去,agent 响应的每个地址都分散在 不同的界面中 — 聊天标识在设置里,Apuchat @handle 在协调页,电子邮箱在 收件箱面板里 — 因此没有人能一次看到完整的身份。这个标签页把它们全部汇集在一起。身份是 按项目设置的,且该标签页仅限所有者和管理员使用。

为 agent 配置专属邮箱。 默认情况下,agent 的邮箱是一个 一次性的 apumail 收件箱,适合在一次交流中把地址交给外部 agent, 但不适合需要长期接收邮件的场景 — apumail 会在空闲 24 小时后释放它。在此处设置一个地址 (任何 apumail 提供服务的邮箱,以及它的收件箱 token),该地址就会成为 agent 的邮箱;一次性 收件箱仍保留原处,但不再作为答案。token 会先在 apumail 验证后再保存, 加密存储,且不再显示 — 只保存而未验证的 token 日后会表现为邮箱 看似为空,而不是明确报错。

产品使用的是已配置的地址。 一旦设置了 身份邮箱,交互式会话中的收件箱面板将读取该邮箱而不是一次性邮箱, 并撤下自带的"更换/释放"按钮:这些按钮会生成一个 agent 并不响应的地址。 移除身份邮箱也在此处操作,即设置它的地方。

只有一个 Apuchat 呼号,而不是两个。 别人呼叫的 @handle 现在 也是 agent 加入协调频道和视频通话时使用的呼号,因此呼叫 @your-agent 的人会在房间里遇到 @your-agent, 而不是机器生成的名称。如果该标识失效,agent 会退回到临时呼号并继续加入,你可以在此标签页修复已发布的标识:续期 会就地恢复它,只有 Apuchat 已真正回收的标识才会被替换 — 地址变更时标签页会 明确提示,因为持有旧地址的人必须得到通知。

“可呼叫与私信标识”卡片在所有出现的位置都是同一张卡片。 它在项目栏的Agent 菜单中有独立入口,当你要管理呼叫者而不是阅读某个频道时 就到那里;它仍然出现在协调页,那里一直都有它;它是 设置 → Agents 的一个分区,紧邻它所呼叫的机器;它还 折叠进了 Agent 身份 的 Apuchat 行,因此前来 询问如何联系 agent 的人,不必再跳到另一个标签页去处理答案。同一个组件挂载四次, 而不是四份副本,所以它们不会彼此偏离。免费标识 24 小时后过期,可在其中任何一处续期。如果你希望它永不过期, 可在 apuchat.com/account 购买一个(5 USDC),并用其身份密钥将其附加 到此处:密钥会先在 Apuchat 验证后再保存,因此粘贴错误会立即失败, 而不会表现为一个始终无人响应的标识。已附加的标识与免费标识一样采用推送: Orquesta 使用其自身的身份密钥在其上注册一个 webhook,因此呼叫大约一秒内即可到达 agent。 在 apuchat.com 上轮换密钥会使该 webhook 失效;此后由轮询 cron 为该标识提供服务,直到你附加 新密钥。

发给标识的消息就是 prompt,答案会以 回复形式返回。 该标识最初只是一个门铃:它解析呼叫邀请并带 agent 进入 视频通话,而不是邀请的普通消息会被读取、判定无趣后丢弃 — 连游标一起丢弃,所以事后完全看不到。从外部看,这与一个 无视你的 agent 毫无区别。现在,写给 @your-agent 的任何内容都会经过 与呼叫相同的呼叫者关卡,携带呼叫者的权限范围成为你自己机器上的一个 prompt, 其答案会作为聊天消息发回给发送者。卡片中的消息部分就是对话:按呼叫者划分的线程,agent 的回复标记为其自身所发, 一个可以以该标识身份手动回复的输入框,以及被拒之门外的消息会原位显示, 并提供同样的一键 允许对话 — 看得见的拒绝 胜过看不见的沉默。答案有长度上限,过长的会指向仪表盘; 每个呼叫者同时最多有三条消息在处理中,因此无人值守的标识无法让 某人的机器上排起无限的工作队列。其余由两条数据库唯一性规则完成:每条 传入消息对应一条记录,因此 webhook 和每分钟轮询不会同时处理它;每个 prompt 对应一条回复,因此 完成钩子和兜底 cron 不会同时作答。

谁可以呼叫它。 该标识是公开发布的,而一次呼叫会在你自己的机器上运行一个 prompt — 因此 Apuchat 发送的签名只能证明消息已送达,不能证明 是谁发的。所以新标识默认创建为受限:它是一个 允许列表,你需要指定可通过的呼叫者 @handle,并为每个呼叫者勾选他们可以请求的内容 — talk、read code、 run commands、deploy / spend。 可以允许第三方对话而不允许其运行任何内容,而且通话期间说的任何话都不会 扩大该列表。对于你事先无法知道其标识的人,可以生成共享口令 — 由我们 生成,你不能自行选择,且只在生成时显示一次,因为我们只保存加密副本。 对方在呼叫消息中写下 passcode: the-code,即可获得 你赋予该口令的权限范围。

对所有人开放是另一种设置,而且是刻意为之: 选择它会弹出警告,并把每个陌生人限定在最窄的授权上, talk 仅此而已,无法放宽。把宽泛的授权交给 “任何人”,恰恰是这个设置绝不能代表的含义,因此权限范围选择器是被锁定的, 而不仅仅是设了默认值。在呼叫者权限功能出现之前就存在的标识视为开放,同样的上限 现在也适用于它们。无论哪种方式,每次呼叫都会被记录,因此被拒绝的呼叫者会带着 允许对话 快捷方式出现,而不是消失在服务器日志中。

聊天中的 @mention 和频道列表在此处保持只读,并 指向管理它们的界面 — 同一字段的第二个控件,就是可能与第一个 产生分歧的控件。

Prompt 评论

每个 prompt 都有一个用于代码评审讨论的评论线程。你可以通过 @mention 提及团队成员, 对 AI 生成的代码提出反馈,并在合并前讨论变更。

规划与规格

规划系统允许你创建结构化计划,其中的条目可转换为 prompt 或工单。AI 可以根据高层描述生成计划拆解。 结构化规格(缺陷报告、功能请求、改进)包含验收标准, 用于在执行期间指导 AI。

运行条目。 点击任意计划条目上的 ▶, 即可将其作为 prompt 发送给 agent。随后该条目会显示该 prompt 的实时状态,并直接链接到它, 因此计划能跟踪自身的执行,而不只是描述它。已在运行的条目 不能重复分派;prompt 完成后,▶ 可重新运行它——在运行失败时很有用。

看板视图。 规划和工单的标题栏都有列表/看板切换。 计划按条目状态分列;工单则按你团队真实的 Linear 工作流状态分列—— 列就是你的团队配置的内容,顺序和颜色与 Linear 保持一致。在列之间拖动工单 会把状态写回 Linear,如果 Linear 拒绝该移动,卡片会回滚。看板始终 显示所有工单,因此打开看板时状态标签页会让位。

编辑本地工单。 在 Orquesta 中创建的工单可以在事后编辑、指派和归档——适用场景是 QA 在一轮 测试中提交了工单,之后在会话中途发现标题错了、类型错了,或者 需要补充更多细节。✎ 会打开工单的标题、类型和 markdown 正文,这正是你运行它时 agent 收到的内容。指派可将其交给任何项目成员。归档会把它从工单 列表和时间线中移除,但不会删除任何内容——其日志、评论和成本都保持完整,而标题栏中的 已归档可将已归档工单重新显示出来,以便 恢复。agent 正在运行的工单只能重新指派;编辑和归档要等到运行 结束后才能进行。

本地工单,有无 Linear 均可。 已连接的项目同样会创建 本地工单——反馈小组件就是写到那里——因此工单标题栏带有一个 Linear / 本地切换。这两个列表刻意分开: 只有 Linear issue 才能在你团队的工作流状态之间拖动,而合并后的列表会提供 只对一半行有效的操作。

本地看板、冲刺和里程碑。 本地工单有自己的 看板——待办池、待办、进行中、评审中、已完成——完全不需要 Linear。卡片带有两个 独立的状态:运行状态(草稿 → 待处理 → 运行中 → 完成)和有人把它拖入的列。没有人 动过的卡片其所在列取决于运行状态,因此在 agent 上完成的工单会自动移到已完成; 一旦你拖动过它,就以你选的列为准,之后的运行不会再把它拉回去。将工单归入 冲刺或里程碑 (二者相同——冲刺只是带日期的里程碑),列表上方的标签会显示已完成/总数以及 剩余天数,若已过截止日期但仍有未完成工作,则以红色显示。

运行工单。 勾选一到十个 本地工单,工具栏会提供两种运行方式。单个工单以 自身运行——它自己的正文就是 prompt,运行、日志和结果都保留在该 工单上,这使得工单能在运行结束时自动关闭。 一起运行会组合成一个 prompt——先给出编号列表,以便 agent 能对整个集合做统筹规划,然后在各自标题下列出每个工单的正文——将其分派给 agent,并把这些卡片移到进行中。发送到会话 会构建同样的 prompt,但交给交互式终端,它会在横幅中等待,供你在发送任何内容之前 进行评审。两种方式都不会运行已经在运行的工单。

工单详情。 点击本地工单的标题——在列表 或看板中——即可打开。左栏是 agent 所看到的工单:markdown 正文、运行的 结果或错误,以及评论线程。右栏是除文本之外的所有信息: 状态、负责人和 冲刺可以就地编辑,其下方是创建者、 创建时间、最后修改时间、标签及其来源。工单运行后,运行区块 会显示引擎和模型、落地的分支和提交,以及花费的成本。运行、发送到会话、编辑 和归档都在底部,因此这个面板本身就足够了——无需返回列表 来执行操作。

工单自动关闭。 当运行进入 运行中时,工单移到进行中;完成时移到已完成——包括从评审中 移出,因为已完成的运行属于向前推进。它绝不会撤销人的操作:已在已完成 或已取消的卡片不会被重新打开,停放在评审中的卡片在运行期间不会被拖回,而失败的运行 完全不写入任何内容,因此重试会从你留下的状态开始。

冲刺日期。 创建冲刺时从今天开始、一周后结束, 旁边有 1w / 2w / 1m 预设和实时天数,所以常见情况只需点一下。结束 日期不能早于开始日期——日期范围颠倒时,创建按钮保持禁用,而不是保存一个 已经结束的冲刺。

辅助模式——QA 发送文档,你评审 diff

辅助模式适用于 QA 同事完成一轮测试、手握一页发现的时刻。将整份 文档粘贴到项目页面的 辅助中。Orquesta 会将其作为一份 整体文档来读取——发现项会相互去重并排序,而不是逐个 prompt 处理—— 并把每个发现归入四种判定之一。

它划分的界线是明显缺陷 vs. 产品决策,而绝不是 难度。"保存按钮没有反应"与其自身标签相矛盾,因此即使 修复很难,它也会无人值守地运行。"运行完成时应该给客户发邮件"是没有人认可过的新行为,因此 它要等待人工处理——即使实现起来很简单。

判定处理方式
defect_obvious自行运行,然后等待评审
defect_ambiguous在任何运行之前先升级上报
product_decision升级上报——由评审者排入队列或丢弃
not_reproducible退回 QA 补充步骤,绝不运行

先执行,后评审。 这是与自动评估的区别, 后者会在 prompt 运行之前将其拦截。这里评审者打开的是已经存在的 diff: 真实的文件、真实的行数、真实的提交。批准一个意图与批准一项变更并不是 同一种评审,而且只有其中一种能够被妥善完成。

一次运行,一个分支,一个 PR。 一次运行中的所有条目共用一个 assisted/YYYYMMDD-xxxxxxxx 分支,并严格逐个 执行。整个运行在服务器端拒绝自动部署——辅助分支绝不会自行进入生产环境, 无论项目的部署设置如何。

diff 关卡。 agent 产生的每个 diff 都会在下一个条目开始之前接受检查。 迁移、形似凭据的文件、删除操作、过大的变更,或声称已修复却 没有任何改动,全都会中止运行——第 N+1 个条目绝不会堆叠在无人 阅读过的 diff 之上。依赖、CI、认证和二进制文件的变更会向评审者标记,但不会停止 队列。每个标记都会连同触发原因显示在卡片上。

谁来做什么。 任何项目成员都可以发起运行——QA 拥有触发 权限,这正是关键所在。评审则是另一回事:它属于项目所有者和管理员,以及被标记为辅助评审者(在 团队 → 成员权限中设置)的人。评审者 会收到每次运行的通知,并且是唯一能批准、拒绝或将升级上报的发现项排入队列的人。 来源信息记录自会话,而不是请求正文。

“我来做”——自己接手一个条目。 需要 产品决策的发现项,往往在终端里解决比用文字描述更快。需要你拍板中的 每张卡片都有一个我来做按钮:它会接手该条目, 打开一个已位于该运行分支上的交互式会话,并在会话标题中告知你。串行 规则同样适用于人——你持有某个条目期间,agent 不会分派任何任务,因此你的修改与它的修改 永远不会落入同一个 diff。结束会话时,你的工作会被提交、推送并上报,该条目 会带着真实的 diff 统计和与 agent 产出的条目相同的关卡标记进入评审。改变主意了?释放会把它放回需要你拍板并释放队列。

辅助 API 端点:

POST
/api/projects/:id/assisted-runs

根据 QA 文档开启一次运行。Body: { document, name? }。返回计划、分支和已分诊的条目。

GET
/api/projects/:id/assisted-runs

列出运行及各状态的计数。

GET
/api/projects/:id/assisted-runs/:runId

单次运行:条目、关卡标记、diff,以及调用者是否可以评审。

POST
/api/projects/:id/assisted-runs/:runId/advance

分派下一个待处理条目。会返回 busy、halted 或 idle,而不是堆叠工作。

POST
/api/projects/:id/assisted-runs/:runId/items/:itemId/review

评审者判定。Body: { action: 'approve' | 'reject' | 'queue', note? }。

POST
/api/projects/:id/assisted-runs/:runId/items/:itemId/claim

接手一个条目手动修复。返回分支和会话 prompt id。仅限评审者;另一个条目进行中时会被拒绝。

DELETE
/api/projects/:id/assisted-runs/:runId/items/:itemId/claim

归还已接手的条目。只有手动接手的条目才能释放——agent 正在运行的条目会被取消,而不是释放。

Batuta AI 编排器

Batuta 是 Orquesta 的 AI 大脑——一个智能编排器,负责分析任务并将其路由到 最佳执行方式。适用于 Max 套餐(每用户每月 $12)。

Batuta LLM——智能路由

batuta-auto 是一个合成的模型 id。将你的 prompt 发给它, Batuta 会选出仍能胜任该任务的最便宜的模型——简单问答用 Haiku, 日常代码用 Sonnet,重构、架构和长上下文推理用 Opus。你只需为实际使用的 上游 token 付费,外加固定订阅费。 如果某个层级所路由到的模型不可用(配额上限、认证问题、服务商故障),请求会 自动级联到回退链中的下一个模型——不会打断你的工作流程。

为什么用 batuta-auto 而不是自己选模型: 典型的 Orquesta 用户会发送各种 prompt,既有琐碎的("fix typo"),也有困难的("refactor this auth flow")。把 琐碎的交给 Haiku,只把困难的交给 Opus,可在不降低关键 prompt 质量的前提下 削减 30–60% 的开销。路由决策对于给定 prompt 是确定的,并通过响应头公开 (X-Batuta-Tier、X-Batuta-Routed-To)。

可在任何兼容 OpenAI 的客户端中使用(orquesta-cli 会在首次运行时自动配置):

curl https://getorquesta.com/api/v1/chat/completions \
  -H "Authorization: Bearer oclt_YOUR_CLI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "batuta-auto",
    "messages": [{"role": "user", "content": "Refactor this React component to use hooks: ..."}]
  }'

或者指定某个模型:claude-opus-4-7, claude-sonnet-4-6, gpt-4o, deepseek-reasoner, grok-4, 以及 GET /api/v1/models 可获取完整列表。

执行模式

🤖Auto 模式

AI 自动决定最佳方式。检查 agent 是否在线、SSH 是否可用,然后智能路由。

复杂任务 → Agent | 简单命令 → SSH | 通用任务 → Batuta loop

☁️SSH 模式

在云端虚拟机上直接执行单条命令。适合快速检查。

示例: ps aux | grep nginx, systemctl status app

💻Agent 模式

强制使用本地 agent 执行。完整的 Claude CLI,可访问代码库。

最适合: 复杂功能、重构、多文件变更

⚡Batuta 模式

自主 ReAct 循环。持续迭代直到任务完成(最多 15 步)。

每一步: 分析 → 决策 → 执行 → 评估 → 重复

例行任务

例行任务是已保存的 prompt 模板,可一键重复执行。可为部署、运行测试、检查日志或 执行安全扫描等常见任务创建例行任务。 例行任务可手动触发,也可按计划运行。

定时 Prompt(Loop)

通过本地 agent 安排 prompt 按周期自动运行。 灵感来自 Claude 的 /loop 命令——设置 cron 计划, Orquesta 会在 prompt 到期时将其分派给你的 agent。

工作原理:

  1. 前往你的项目 → Configuration → Scheduled(Loop 标签页)
  2. 创建一个定时 prompt,填写名称、prompt 内容和 cron 计划
  3. 平台每 2 分钟通过 cron 端点检查一次到期的 prompt
  4. prompt 到期时,通过 Supabase Realtime 广播将其分派给你的本地 agent
  5. agent 使用 Claude CLI 执行该 prompt 并回报结果

Cron 预设:

计划Cron 表达式
每 5 分钟*/5 * * * *
每 15 分钟*/15 * * * *
每小时0 * * * *
每 6 小时0 */6 * * *
每天 UTC 上午 9 点0 9 * * *
每天午夜0 0 * * *

要求:

  • 计划触发时,你的本地 agent 必须处于运行状态
  • 每个项目最多 20 个计划 prompt
  • 每次执行最多 10 次迭代,超时上限为 1 小时
  • 除预设外,还支持自定义 cron 表达式

云 VM

Orquesta 可以为你的项目创建并管理云 VM,支持 DigitalOcean 或 AWS EC2。 VM 预先配置了安全加固、Docker 支持和 SSH 访问。

服务商与规格

选择规格后服务商随之确定 — DigitalOcean droplet (s-1vcpu-1gb, s-1vcpu-2gb, s-2vcpu-4gb) 可在任意 DigitalOcean 区域运行,AWS 实例 (t3.micro, t3.small, t3.medium) 运行在 Orquesta 自有的 VPC 中,位于 us-east-1。两者使用相同的 cloud-init 引导、agent 安装和 安全加固。AWS 对计算、存储和公网 IPv4 地址分别计费,因此相同内存的 AWS 实例成本更高:droplet 为 $12–$34/月,AWS 实例为 $17–$49/月, 通过 Stripe 按月计费。

工作区模板与空闲休眠

只需配置一次 AWS VM — 工具链、已检出的仓库、已登录 agent 所用账号的浏览器 — 然后点击 另存为模板。Orquesta 会将 磁盘保存为私有的加密机器镜像(VM 会重启一次,约一分钟),同一组织内的任何项目随后都可以在 启动来源 下基于它创建新 VM。每个克隆都有 自己的 agent token 和 SSH 密钥;其余内容均会被复制,包括已登录的会话,因此模板绝不能在其所属组织之外启动(合作伙伴的子组织由合作伙伴拥有,是唯一的例外)。每台新 AWS VM 上的 agent 都拒绝 在非自身的机器上启动,因此克隆体永远无法运行源项目的 prompt。

空闲休眠 会在 VM 无 prompt 达 1 小时至 30 天后将其停止;休眠的 VM 只对磁盘计费,项目收到下一个 prompt 时会再次启动。 模板只对其快照存储计费 — 每个组织最多 10 个。

SSH 访问

SSH 密钥使用 AES-256 加密并存储在 Supabase 中。平台会透明地处理密钥 管理、连接设置和命令执行。

SSH 访问bash
# VM access is managed through the dashboard
# SSH keys are auto-generated and encrypted
# Direct SSH (for debugging):
ssh -i /tmp/orquesta-vm-key -o StrictHostKeyChecking=no user@vm-ip

安全加固

每台创建的 VM 都包含:

  • UFW 防火墙(仅开放 22、80、443 端口)
  • 支持 Docker 的 iptables 规则(DOCKER-USER 链)— Docker 默认会绕过 UFW
  • 出站 DDoS 速率限制(SYN 50/s、UDP 100/s、ICMP 10/s)
  • 恶意软件检测 cron(每 5 分钟一次)
  • orquesta 用户的受限 sudo(仅限白名单命令)
  • 自动安全补丁

按需 microVM

项目可以不拥有任何自己的机器:prompt 到达时,Orquesta 会启动一个隔离的 microVM,在其中运行搭载 orquesta-cli 的标准 agent,并在最后一次 活动约 15 分钟后让其过期。模型调用会发往你组织自己的 LLM 端点(Orquesta CLI 页面)或你的 Batuta 附加组件 — Orquesta 不会在 microVM 中放入任何自己的模型凭据。按 microVM 存活的分钟数计费,显示为 “Usage (30d)”,位于 Settings → Agents → On-demand runner。会话之间不保留任何内容,因此 agent 必须在 VM 被回收之前推送其工作成果(git、镜像仓库、API)。

  • 整个项目 — 创建项目时勾选 Start on an Orquesta microVM,在设置过程中选择 microVM 作为托管选项,或在 Settings 中开启 runner。此后每个 prompt 都在其中运行。当项目的其他 agent 在线时它不会启动,因此 prompt 不会重复运行。
  • 单个工作流 — 对于已在本地或云 VM 上运行的项目,在创建工作流时勾选 Run on a microVM,或在其卡片上点击 Run on microVM(也可向 workstreams API 发送 run_on_microvm)。只有指向该工作流的 prompt 才会启动 microVM;其余仍发往项目自己的 agent。On microVM 会将其切回之前使用的 agent。
  • 复制机器 — 对于运行在全天开机的 PC 上的项目,使用同一 Settings 区域中的 Copy to microVM (agent ≥ 0.2.272),会让在线 agent 将其工作树,包括未提交的更改,推送到 orquesta/microvm-* 分支,并发送其 .env 文件,Orquesta 会加密存储这些文件且绝不提交。超过 5 MB 的未跟踪文件以及类似密钥的文件 (*.pem, id_rsa, .npmrc, credentials) 会被排除,并且只保留最新的两个快照分支。检查分支、环境文件和安装命令后,点击 Convert to microVM;每次启动都会恢复它们并运行安装。之后请停止 PC 上的 agent。PC 上全天候运行的服务不会迁移。

集成

将你现有的工具连接到 Orquesta,实现统一的工作流。

GitHub

通过 OAuth 集成,支持仓库浏览、分支管理、提交跟踪和文件访问。agent 在执行 prompt 的过程中会创建分支和 PR。

分支 + PR 工作流

默认情况下,agent 会在项目的工作分支上提交并推送。如果你的团队需要在更改合入之前进行评审,请点击已连接的 GitHub 卡片上的拉取请求按钮 (Configuration → Integrations → GitHub),并开启 New branch + pull request。

  • New branch + pull request — agent 会从基础分支切出一个分支,推送到该分支并创建 PR。它绝不会提交到基础分支,也绝不会自行合并 PR。
  • 分支前缀 — 默认为 feature/,因此分支名形如 feature/add-auth。
  • 草稿 PR — 将每个拉取请求都作为草稿创建。
  • 基础分支 — 分支从这里切出,拉取请求也以它为目标。开关关闭时,它就是 agent 提交所在的分支。
  • 附加规则 — 追加到 agent 的 git 指令中的自由文本:提交约定、需要标记的评审者、不应改动的文件。

注意

该策略存储在 projects.settings.git_workflow 中,并在 GitHub skill 之后渲染到 agent 的 指令里,因此它会覆盖该 skill 中 “完成前始终提交并 推送” 的规则。运行中的 agent 会在下一次心跳时应用它 — 无需重启。

修复 PR 上失败的 CI 和评审意见

由 Orquesta prompt 创建的拉取请求不会在第一个红色检查处止步。当其 CI 失败时,项目的 agent 会收到失败日志,在同一 分支上修复代码并推送,然后在 PR 上评论所做的更改 — 直到 CI 变绿或 达到尝试次数上限。

  • 启用方式:Project Settings → Integrations → Fix failing CI on PRs。它会在已连接的仓库上安装 webhook,因此 GitHub token 需要该仓库的管理员权限。仅限所有者和管理员。
  • 只处理 Orquesta 创建的 PR:即 URL 出现在某个 prompt 输出中的 PR,或其分支由 Auto Agent 运行创建的 PR。手工编写的 PR 绝不会被处理。
  • 同时支持 GitHub Actions 失败(附每个失败作业日志的末尾部分)以及使用 Checks API 的其他 CI 的失败,各有独立开关。
  • 修复仍在运行期间到达的失败会合并为一次后续处理,而不是每个失败启动一个 prompt;对于已被更新推送取代的提交,其上的失败会被忽略。
  • 在每个 PR 达到配置的尝试次数(默认 3 次)后,它会停止并在 PR 上说明;卡片上有重试按钮,可为该 PR 重新分配额度。
  • 修复过程绝不会强制推送,绝不会推送到其他分支,也绝不会创建新的 PR。如果你的工作树有未提交的更改,修复会在单独的 git worktree 中运行,不会动这些更改。
  • 修复 prompt 会在仪表板中显示,并带有 github 标签。

评审与 @orquesta 提及。 评审反馈走同样的循环:

  • 评审可设为 Off、Only when @orquesta is mentioned(默认)或 Every review on tracked PRs。评审正文及其行内评论(含文件和行号)会发送给 agent,agent 在同一分支上处理这些意见并在 PR 上回复 — 或说明为何不同意。
  • 在评审或 PR 评论中提及 @orquesta,对并非 Orquesta 创建的 PR 同样有效,并会重新激活已用尽尝试次数的 PR。
  • 只有具备写权限的人(所有者、成员或协作者)的请求才会被处理。诸如 coderabbitai[bot] 之类的评审机器人会被忽略,除非你将它们列在 Review bots 下。来自 fork 的 PR 会被忽略。
  • Issue(需主动启用):在 issue 上发表 @orquesta 评论会开启一个新 prompt,在 orquesta/issue-N 分支上工作,创建一个关闭该 issue 的 PR,并在 issue 上回复结果。每个项目每小时最多 10 个 issue prompt。
  • 评论使用已连接的 GitHub 账号发布并带有隐藏标记,因此 Orquesta 绝不会对自己的评论作出反应。在更改现有 webhook 的评审或 issue 设置后,如果卡片提示 GitHub 拒绝了更新,请使用 Repair webhook。

Vercel

直接从 Orquesta 部署到 Vercel。支持部署触发、回滚、构建日志流式输出和项目关联。需要 Vercel PAT (Personal Access Token)。

Linear

在 Linear 与 Orquesta 之间同步 issue。将 issue 分配给 AI agent,跟踪解决情况,并自动更新状态。Issue 会显示在 Management → Tickets 面板中。

Telegram Bot

通过 Telegram 提交 prompt、查看状态并接收通知。Bot:@orquesta_live_bot

Telegram 命令bash
/auth ott_xxxxx    # Authenticate with one-time token\n/prompt Add dark mode  # Submit a prompt\n/status            # Check current execution\n/deploy            # Trigger deployment

Slack

可以将一个 Slack 频道指向某个项目。团队在那里输入的内容会成为该项目自身 agent 上的 prompt, 而答复会作为同一频道中的串内回复返回 — 这样对话就留在团队原本所在的地方,所有人都能看到 请求以及 agent 对此做了什么。

连接频道

  1. 安装应用 — Organization Settings → Slack → Add to Slack,或从项目的 Settings → Integrations → Slack 进入。一次安装即可覆盖整个工作区。
  2. 在同一张卡片中生成关联码。它的有效期为一小时,且只能兑换一次。
  3. 在你想关联的频道中兑换它:/orquesta link ABCD2345。

这两步缺一不可,这是有意为之。Orquesta 会话能证明你是谁,但不能证明 你属于该频道;斜杠命令能证明你在该频道中,但不能证明你 在 Orquesta 中是谁。只有能访问该项目的人才能生成关联码,也只有 频道内的人才能使用它。

或者让 Orquesta 创建频道

Slack 卡片还可以为项目创建一个公开频道,并且完全无需关联码: 应用创建的频道本身就已包含该应用,因此无需再证明任何事, 频道一创建就已关联。输入名称,查看 Slack 将如何命名, 然后创建。仅限所有者和管理员 — 它写入的是你的工作区, 而不是 Orquesta。创建者以及项目成员会被当场邀请 加入,按其 Orquesta 邮箱匹配(需要 users:read.email 权限范围);在该工作区中没有 Slack 账号的人会被跳过。

这需要 channels:manage 权限范围,Slack 在安装时授予。在此功能出现之前就安装了该应用的工作区必须 重新安装 — 在此之前,按钮会明确报告这一点。私有频道不会 从这里创建,因为那需要比应用所申请范围更广的权限。

使用方式

斜杠命令bash
/orquesta Add a rate limit to the login endpoint   # run a prompt
@Orquesta what changed in the last deploy?        # same thing, as a mention
/orquesta status                                  # which project this channel runs, and what is in flight
/orquesta link CODE                               # link this channel to a project
/orquesta unlink                                  # stop this channel reaching the agent
/orquesta help
  • 在频道中输入的命令会开启自己的串,答复也落在那里,因此冗长的输出不会刷屏整个频道。
  • 在已有的串内提及该应用会保持在该串中,并且前几轮对话会作为上下文提供给 agent。
  • 来自 Slack 的 prompt 会在仪表板中显示,并带有 slack 标签,附完整日志、diff 和成本 — Slack 中的回复只是摘要,仪表板才是记录。
  • 每个频道同时最多运行三个 prompt;超出时应用会直接说明,而不是悄悄排队。
  • 每条进出的消息都会按项目保存,因此即使是不在该工作区的人,Slack 卡片也会显示最近的对话。

团队聊天,与 Slack 镜像同步

本来就生活在 Slack 里的团队,不需要在仪表板内再有一个读到一半的 收件箱。因此选择 Slack 是将两者合并,而不是二选一:在 Chat 面板中写的消息会发布到关联频道,在 频道中写的消息会出现在面板中,双方读到的是同一场对话。面板保留了 输入框 — 早先的版本曾把它改成指向 Slack 的链接,这让所有 在仪表板中工作的人无法参与,还把历史记录一分为二。

  • Organization Settings → Slack 为组织设置该选项,可应用于每个项目或选定的几个项目,并可锁定该策略使任何项目都无法覆盖。仅限所有者。
  • Project Settings → Integrations → Slack 为单个项目设置:跟随组织,或朝任一方向与之不同。
  • 在关联频道之前选择 Slack 不会镜像任何内容 — 面板仍可正常使用并显示提醒,一旦关联了频道,两者立即连通。
  • 镜像在设计上不会产生循环:每一行都存储其副本的 Slack 时间戳,因此我们自己发出的消息作为事件返回时,以及 Slack 对同一次投递最多三次的重试,都会落在同一个唯一索引上而不产生任何效果。来自应用和机器人的消息绝不会被镜像进来。
  • 没有 Orquesta 账号的 Slack 发送者会按名字显示,而不会成为成员:与 agent 一样,他们是一种作者类型,而不是一个用户档案,因此没有人会因在频道中发言而占用席位。
  • 串在桥接两端保持为串 — 在 Orquesta 串中的回复会在 Slack 串中作答,反之亦然。
  • Slack → Orquesta 需要 channels:history 权限范围和 message.channels 事件订阅。在该版本之前连接的工作区仍可单向工作,项目的 Slack 卡片会对此加以说明,并提供重新连接的按钮。
  • 侧边栏会标明状态:聊天与 Slack 镜像同步时,Team Chat 旁显示 Integrated,否则显示 Integrate。
  • Chat 页面会用 Slack 标志标记每个已关联的项目,并将其频道列在内置频道之上,项目的 Slack 卡片会链接每个已连接的频道 — Orquesta 创建的频道里有的是应用而不是你,而你尚未加入的公开频道,在你打开并加入之前不会出现在 Slack 侧边栏中。
  • 组织策略涉及但尚无频道的项目,会在 Organization Settings 中列为 no channel · add one,直接链接到该项目的 Integrations 标签页 — 创建或关联频道要在那里进行,而不是在组织层面。

除非 Slack 对原始请求体的签名验证通过且 时间戳在五分钟以内,否则请求会被拒绝,并且每个入站事件只记录一次 — Slack 对一次投递最多重试三次,而重试不能变成同一任务的第二次运行。 线程内的审批按钮是下一步计划,不包含在此版本中。

Derplins

项目标签行末尾的 Hire a prompt specialist 标签会打开一段关于 Derplins 的简短说明 — 这是一个 prompt 专家市场,你可以雇用他们在 项目上工作 — 并一键关联该项目(所有者和管理员)。此后,它会列在 每位项目成员的 Derplins 仪表板的 Your Orquesta projects 下,并带有 一个针对它发布需求的按钮,当 Derplins 订单选择 工作区时,它会被优先推荐。在那里雇用的工作运行在该项目的 agent 上,因此每个 prompt 都连同 完整日志保留在这里以供审计。该标签的菜单可打开 Derplins 或取消项目的登记。

7ots

  • 形象与声音 — Settings → Identity 会列出你的 7ots ot;选择一个,项目的常驻 agent 就会采用它的形象、meet 外观和声音。大脑仍是 Orquesta agent。在 meet 视频通话中,agent 会以该 ot 本身的 3D 形象出现,并用它自己的声音说话 (agent 0.2.262+)。当该 ot 处于开启状态且其 7ots 账号已连接到 Orquesta 时,语音即可使用 — 无需添加域名。
  • 已连接的 ot — Team 标签页,位于 AI Agent Tokens 下方:允许外部 ot 进入项目,向常驻 agent 提问或交给它工作,并可按 ot 设置权限范围。每个 ot 都会显示自己的脸(7ots 渲染的角色,或其上传的图片),而不只是名字。仅限所有者和管理员。
  • 项目图标 — 侧边栏、项目页眉和移动应用会显示项目网站的 favicon,或 GitHub 所有者的头像,并在网站或仓库 URL 变化时刷新。

Orquesta CLI

在本地运行、可配置 LLM 端点的 AI 编码助手。 适用于 Max 套餐。

安装与使用bash
npm install -g orquesta-cli

# Interactive mode
orquesta

# Connect to dashboard
orquesta --token oclt_xxx

# Execute a prompt directly
orquesta -p "Add user authentication"

LLM 配置

可在仪表板或本地配置多个 LLM 端点。支持:

  • OpenAI (GPT-4, GPT-4o 等)
  • Anthropic (Claude Opus, Sonnet, Haiku)
  • Ollama(本地模型)
  • vLLM(自托管)
  • OpenRouter(模型市场)
  • 任何兼容 OpenAI 的端点

仪表板同步

LLM 配置在 CLI 与仪表板之间双向同步。集中配置端点 并分发给你的团队。无论 prompt 是通过 CLI 还是 Web UI 提交, prompt 历史都会在仪表板中跟踪。

IDE 扩展

将 Cursor、VS Code 或 Windsurf 直接连接到 Orquesta。从团队 仪表板接收 prompt 并在你的 IDE 内执行 — 扩展常驻在你的编辑器中, 通过工作区内的本地编码 CLI 运行每个 prompt,并将结果实时流式回传到 仪表板。

Cursor

推荐 cursor-agent

安装 Cursor 自带的 CLI — 它使用你已订阅的套餐运行。Cursor 不会向第三方扩展开放其内置 AI。

VS Code + Copilot

CLI 或 Copilot

可配合任意 CLI 使用,或在已安装时通过 GitHub Copilot 使用(这是 Language Model API 真正提供模型的唯一 IDE)。

Windsurf

需要 CLI

请安装 cursor-agent、Claude Code 或 orquesta。Windsurf 不会向第三方扩展开放其内置 AI。

警告

Cursor 和 Windsurf 中需要本地 CLI — 二者都不会通过 vscode.lm 开放其内置 AI, 因此无论你如何登录,那里都不会返回任何模型。 扩展会在启动时探测 cursor-agent、claude 和 orquesta(也包括 ~/.local/bin,因为通过 GUI 启动的 IDE 不会继承你的 shell PATH),如果一个都找不到,会在侧边栏中发出警告。在 Cursor 中,请安装它自己的 CLI:curl https://cursor.com/install -fsS | bash cursor-agent login

安装

下载 .vsix 文件,然后在你的编辑器中安装:

安装 .vsixbash
# Option 1 — Command palette
# Cursor / VS Code / Windsurf:
# Press Cmd+Shift+P → "Extensions: Install from VSIX..."
# Select the downloaded orquesta-vscode-0.2.12.vsix

# Option 2 — CLI
code --install-extension orquesta-vscode-0.2.12.vsix
cursor --install-extension orquesta-vscode-0.2.12.vsix

设置与 Token

安装后,使用 agent token 将扩展连接到你的项目:

  1. 在 Orquesta 中打开你的项目 → Project → Agents
  2. 点击 Create Agent Token → 复制 oat_xxx token
  3. 在你的 IDE 中,按 Cmd+Shift+P → Orquesta: Set Agent Token
  4. 粘贴 token — 扩展会自动连接并打开侧边栏

token 存储在 VS Code 的全局设置中。保存 token 后,扩展会在每次启动时自动连接。 要禁用自动连接,请在设置中将 orquesta.autoConnect: false 设为 false。

执行模式

通过 orquesta.executionMode 设置控制 prompt 的执行方式:

auto

默认。使用检测到的第一个 CLI (claude → orquesta → cursor-agent),如果可用则回退到 IDE AI (Copilot)。

cli

始终使用本地 CLI。如果未安装 claude、orquesta 或 cursor-agent 中的任何一个,则会失败。

ide-ai

始终通过 vscode.lm 使用 IDE 内置的 AI。适用于 VS Code + Copilot。在 Cursor 或 Windsurf 中不可用。

命令

Orquesta: Connect Agent

连接或重新连接到 Orquesta。

Orquesta: Disconnect Agent

断开 agent。

Orquesta: Set Agent Token

更新你的 agent token。

Orquesta: Show Logs

打开 Orquesta 输出面板以查看执行日志。

扩展设置 (settings.json):

VS Code 设置json
{
  "orquesta.agentToken": "oat_xxx",       // Your agent token
  "orquesta.autoConnect": true,           // Connect on startup
  "orquesta.workingDirectory": "",        // Defaults to workspace folder
  "orquesta.executionMode": "auto"        // "auto" | "cli" | "ide-ai"
}

Embed SDK

将 Orquesta 反馈小组件嵌入你的生产应用。用户可以通过元素检查、截图和控制台日志 报告 bug — 所有内容都会回流到你的 Orquesta 项目。

CDN 设置

Embed SDK 仅通过 CDN 分发 — 在任意 HTML 页面中放入两个标签, 即可完成。无需构建步骤,无需 npm install,始终是最新版本。

HTML 设置html
<link rel="stylesheet" href="https://getorquesta.com/embed/v1/orquesta.css" />
<script src="https://getorquesta.com/embed/v1/orquesta.min.js"></script>
<script>
  Orquesta.init({
    token: 'YOUR_EMBED_TOKEN',
    position: 'bottom-right'
  });
</script>

初次使用 embed?在控制台中打开 Project → Embed: 引导式清单会带你完成运行 agent、设置目标 URL、创建 token 和 安装代码片段,此外内置的实时演示(真实的小部件, 模拟数据)可让你在进行任何设置之前先了解它的功能。你也可以将 demo: true 传给 Orquesta.init(), 即可使用模拟数据渲染小部件,无需后端。

Builder 模式

Builder 模式会渲染全屏的 IDE 风格界面(类似 Bolt 或 Lovable),包含三个面板: 左侧为聊天,右侧为实时预览,底部为可折叠的终端。

Builder 模式html
<div id="builder-root"></div>
<script src="https://getorquesta.com/embed/v1/orquesta.min.js"></script>
<script>
  Orquesta.init({
    token: 'YOUR_EMBED_TOKEN',
    mode: 'builder',
    container: '#builder-root',
    previewUrl: 'https://your-app.com'
  });
</script>

Builder 面板:

  • 聊天 — 发送 prompt,查看 AI 响应和状态更新
  • 预览 — 带地址栏和刷新按钮的实时 iframe,prompt 完成后自动重新加载
  • 终端 — 实时执行日志,可折叠,输出带颜色标记

面板可通过拖动手柄调整大小,终端可折叠/展开。完全响应式,在移动端采用堆叠布局。

通过 embed 发送的 prompt 默认会直接发布。由于发送者正在查看已部署的网站,每个 embed prompt 都会要求 agent 在代码修改完成后提交、推送、部署并报告 commit SHA,随后预览会带着破坏缓存的参数重新加载,以确保真正获取到新版本。在 embed token 设置中将 auto_deploy: false即可让某个 token 退出此行为。

功能

  • 元素检查器 — 点击任意元素,将其标记到缺陷报告中
  • 控制台捕获 — 自动捕获浏览器控制台输出
  • 网络捕获 — 记录失败的 API 请求
  • 评论系统 — 针对特定元素的行内反馈
  • 时间线 — 用于复现问题的用户操作时间线

浏览器扩展

embed 需要在页面中加入 <script> 标签,因此只能用于你自己控制的网站。Orquesta 浏览器扩展从浏览器端完成同样的工作: 无需修改 HTML,即可将小部件注入任意页面, 还能让 Orquesta CLI 操控你已登录的浏览器。

  • 随处注入 embed — 客户的网站、SSO 之后的预发布环境、生产环境均可。Prompt 会进入该 embed token 所属的项目。
  • 你的真实浏览器 — browser_ext_* 工具使用你实际的配置文件和会话,而 browser_* 则会启动一个干净、未登录的 Chrome。
  • 控制台与网络捕获 — 通过 CLI 读取页面输出的日志和发出的请求。
  • 侧边栏聊天(0.3.0)— 点击工具栏图标,使用 Orquesta 登录,即可与能读取并操作当前标签页的 agent 聊天(点击、填写、导航、读取控制台/网络)。运行在 Batuta 上,无需 CLI 或 bridge。
  • 发送到项目(0.3.0)— 在任意页面选中文本,右键点击发送到 Orquesta 项目,选择项目后,它会作为 prompt 在该项目的 agent 上运行。面板会实时流式显示日志,并带有停止按钮 (POST /api/v1/prompts/{id}/cancel).

支持 Chrome 和 Edge。不支持 Firefox(该扩展使用 Chrome DevTools Protocol)。

安装与配对

该扩展尚未上架 Chrome Web Store,因此需要从以下仓库以未打包方式加载: orquesta-extension 。共三个部分,全部在本地:

安装bash
# 1. build the extension
git clone https://github.com/Getorquesta/orquesta-extension
cd orquesta-extension
npm install
npm run build

# 2. load packages/extension/build unpacked from chrome://extensions
#    (enable Developer mode first)

# 3. in orquesta-cli: /tool -> Browser Extension (your own browser)

启用该工具组会自动为你启动本地 bridge — 一个运行在 127.0.0.1 上、供扩展通信的小型守护进程。在扩展弹窗中点击 Pair,向 CLI 获取配对码 (browser_ext_status 会返回),浏览器即可连接。

配对在重启后依然有效,因此每个浏览器只需配对一次,而不是每个会话一次。bridge 有意比 CLI 存活更久:短时的 orquesta -p 运行和多个会话可共用 同一个浏览器,无需再次配对。如果想查看它的日志,可以自行运行: npx orquesta-bridge。

CLI 工具

在 Orquesta CLI 中运行 /tool 并启用 Browser Extension (your own browser)。这将注册以下工具:

  • browser_ext_status — bridge 是否已启动、是否已配对浏览器
  • browser_ext_tabs / _open / _reload — 列出标签页、打开 URL、重新加载
  • browser_ext_click / _fill / _press / _select — 与页面交互
  • browser_ext_text / _html / _eval — 读取页面、在其中运行 JS
  • browser_ext_screenshot — 截取当前可见的标签页
  • browser_ext_console / _network — 控制台消息和请求
  • browser_ext_wait — 等待选择器或页面导航
  • browser_ext_embed — 将 Orquesta 小部件注入页面

安全

  • 数据不会离开本机。CLI 通过回环地址与 bridge 通信,bridge 通过已配对的本地 WebSocket 与扩展通信,链路中没有 Orquesta 服务器。
  • 配对是显式的,并且会过期。bridge 会输出一个有效期为两分钟的配对码;只有在你输入后,扩展才会连接。
  • 控制 token 是文件,而不是参数。它以 0600 权限写入 ~/.orquesta-cli/,因此不会出现在 ps 中。
  • bridge 仅绑定 127.0.0.1,并拒绝来自浏览器的请求,因此网页无法通过 DNS rebinding 访问它。

远程桌面

除了操控浏览器,agent 还可以操作其所在机器的整个 桌面 — 移动鼠标、键入文字和截图 — 你也可以在控制台中实时接管。 这适用于自动化原生应用中的流程,而不仅限于网页。目前支持 Linux/X11;Windows 和 macOS 即将推出。

启用与模式

默认关闭。在 Settings → Agent → Remote Desktop 中按项目开启。共有三种模式:

  • 自动化 — agent 以编程方式控制桌面(不启动 VNC 服务器)。
  • 实时 (VNC) — 由人工通过控制台查看器接管。
  • 两者 — 自动化加实时接管。

使用查看器

打开项目的 Remote Desktop 标签页。agent 一开始推流,画面就会出现; 观看只需具备项目访问权限即可。

  • 接管控制会将你的鼠标和键盘交给 远程机器。移动、点击、拖动、滚轮以及中键/右键都会传送;键入的内容会发送到 远程机器上当前获得焦点的位置。
  • 弹出窗口会在独立窗口中打开桌面, 这样你可以将它放在第二块显示器上,同时继续在项目标签页中工作。
  • 断开连接即离开会话。一旦无人观看,agent 就会完全停止 截取屏幕,状态旁边显示的观看人数 也说明了这一点。
  • 会话历史列出每次有人打开此 桌面的记录、持续时长,以及对方是否接管了控制。

配对 PIN

所有者或管理员可以在 Settings → Agent → Remote Desktop 中设置 PIN。它限制的是接管控制,而非观看:查看一个你本就有控制台访问权限的屏幕 并不是危险的能力,操控机器才是。PIN 以哈希形式存储并由中继校验, 因此无论是浏览器还是 agent 都无法被诱骗绕过它。

安全

  • 需主动启用,默认关闭。完全控制桌面风险很高,因此在你为项目启用之前不会运行任何内容。
  • 观看和操控是相互独立的权限。控制权按会话授予,并随会话结束而失效 — 重新连接时会再次询问,PIN(如已设置)也会再次要求输入。
  • VNC 服务器仅绑定 localhost。唯一的入口是 agent 经过身份验证的 WebSocket 隧道 — 绝不会暴露到网络上。
  • 在沙箱 Strict 模式下禁用。严格的文件系统隔离与完整的桌面接管互相排斥;agent 会拒绝启用它。
  • 空闲会话会被回收,因此被遗弃的接管不会让桌面持续可被访问。

MCP 服务器

Orquesta 通过单一端点支持 Model Context Protocol, 因此无论在何处运行的助手 — Lovable、ChatGPT、Claude Code、Cursor、VS Code — 都可以 读取项目历史,并将自己完成的工作写回项目。无需安装任何东西:上文的 hook 需要在你的机器上运行进程,而 MCP 可以触达运行在云端的工具。

服务器 URL (Streamable HTTP)bash
https://getorquesta.com/api/mcp

该传输是无状态的:每次调用就是一次 HTTPS 请求,无需保持会话, 也无需维持事件流连接。

连接客户端

粘贴该 URL。托管客户端会从 401 响应中发现 OAuth 服务器、自行注册,并将 你带到 Orquesta 授权页面,在那里选择要开放的组织 — 不会创建、显示或复制任何 API key。在 Lovable 中:Dashboard → Connectors → search mcp → New MCP server,粘贴 URL,将 Authentication 保持为 OAuth,然后点击 Add server。 ChatGPT 和 Claude 只需提供 URL。

每位团队成员使用自己的账号授权,token 能访问的正是该成员本就能看到的项目。每个已连接的工具都会显示在 Settings → Connections 下,并显示它已记录的会话数、 最近一次活动的时间以及授权的人数 — 那里的一个按钮 即可为整个组织断开它。

在终端中,orquesta-cli 也是一个 MCP 客户端, 现在支持 OAuth:orquesta mcp login <name> 会打开 一次浏览器,并在该机器上保存一个可刷新的 token,这是访问不签发 API key 的服务器的唯一方式。orquesta mcp list 会标记 已授权的服务器,orquesta mcp logout <name> 则会忘记它。

不支持 OAuth 的客户端则改用 bearer token — 组织 API key(oak_),来自 Settings → API Keys,若希望客户端能够记录其工作,请保留 prompts:write scope:

Claude Codebash
claude mcp add --transport http orquesta https://getorquesta.com/api/mcp \
  --header "Authorization: Bearer oak_abc123..."
Cursor (.cursor/mcp.json), Windsurf, Zedbash
{
  "mcpServers": {
    "orquesta": {
      "url": "https://getorquesta.com/api/mcp",
      "headers": { "Authorization": "Bearer oak_abc123..." }
    }
  }
}

注意

该 OAuth 服务器遵循标准且可被发现: /.well-known/oauth-protected-resource 和 /.well-known/oauth-authorization-server,动态客户端注册位于 /api/oauth/register,必须使用 PKCE (S256),访问 token (omt_)有效期 30 天,并配有轮换的刷新 token。未发送 scope 的客户端将被授予只读权限 — 如果连接器需要提交 prompt,请明确请求 prompts:write,批准的人仍可在授权页面取消勾选。

工具

工具功能所需权限
list_projects此密钥可见的项目及其 idprojects:read
recent_context开始前的简报:运行中、成功、失败prompts:read
list_prompts近期工作,含状态、作者、CLI 和分支prompts:read
get_prompt_logs单个 prompt 的完整工具日志logs:read
submit_prompt为项目的本地 agent 排队任务prompts:write + 一个 agent
report_session记录助手已在别处完成的工作prompts:write

注意

这两个写入操作不可互换。submit_prompt 会将任务交给你自己机器上的 Orquesta agent, 并且需要有一个已连接的 agent。report_session 仅记录已在别处 发生的事情 — 它会直接进入已完成状态,任何 agent 都无法再接手,因此从 Lovable 报告的会话绝不会在任何人的笔记本上重放。Agent token (oat_)会被这两者拒绝。

外部 Agents API

REST API,让第三方 AI agent(GPT、LangChain、CrewAI、自定义 agent)连接到你的 Orquesta 项目。外部 agent 负责思考,Orquesta 负责执行与协调。

工作原理:

  1. 从控制台生成一个 oxa_ token(Project → Team → External Agents)
  2. 通过 API 注册你的 agent
  3. 读取项目上下文以了解代码库
  4. 提交 prompt — 本地 orquesta-agent 会执行它们
  5. 轮询结果并迭代

身份验证

所有 API 请求都需要带有相应 scope 的 Bearer token:

请求头bash
Authorization: Bearer oxa_abc123...
Scope说明
prompts:write提交 prompt 以执行
prompts:read读取 prompt 历史和状态
logs:read读取执行日志
context:read读取项目上下文和记忆
queue:read查看执行队列状态
plans:read读取项目计划及条目
tickets:read读取 Linear 工单
env:write需主动启用,仅可写入。POST /api/projects/{id}/env,参数为 {dotenv, merge} — 没有对应的读取接口
secret-files:write需主动启用,仅可写入。POST /api/projects/{id}/secret-files — 没有对应的读取接口

速率限制:每分钟 30 次请求,每小时 300 次请求(可按 token 配置)。

这两个 *:write scope 在创建 token 时默认关闭,必须显式勾选。 它们让部署 agent 可以向某个项目写入其变量和文件,而无需持有以整个用户身份行事的组织级 oclt_ token。 它们严格仅可写入:同一个 token 对这些路由的 GET/DELETE 请求会返回 403,且每次写入都会记录在该 token 的活动日志中(仅记录键名和文件名,绝不记录值)。

API 参考

基础 URL:https://getorquesta.com/api/external-agent

POST
/register

注册你的 agent 身份(名称、模型、提供商、版本)

POST
/prompts

提交 prompt 以执行。返回 201(已开始)或 202(已排队)

GET
/prompts

列出 prompt,可选过滤条件(?status=completed&limit=10)

GET
/prompts/:id

获取 prompt 状态、结果、已用 token 数、git 信息

GET
/prompts/:id/logs

获取 prompt 的执行日志

GET
/queue

查看队列状态(运行中的 prompt、排队数量)

GET
/context

获取项目记忆、近期历史和设置

GET
/plans

列出含条目的项目计划(需要 plans:read scope)

GET
/tickets

列出 Linear 工单(?status=todo|inprogress|done|all)

示例

Python — 完整工作流python
import requests

API = "https://getorquesta.com/api/external-agent"
TOKEN = "oxa_your_token_here"
HEADERS = {"Authorization": f"Bearer {TOKEN}"}

# 1. Register your agent
requests.post(f"{API}/register", headers=HEADERS, json={
    "name": "my-gpt-agent",
    "model": "gpt-4o",
    "provider": "openai",
    "version": "1.0.0",
    "capabilities": ["code-review", "testing"]
})

# 2. Read project context
ctx = requests.get(f"{API}/context", headers=HEADERS).json()
print(ctx["memory"])  # Project knowledge

# 3. Submit a prompt
resp = requests.post(f"{API}/prompts", headers=HEADERS, json={
    "content": "Add input validation to the signup form",
    "tags": ["feature"]
})
prompt_id = resp.json()["promptId"]

# 4. Poll for completion
import time
while True:
    status = requests.get(
        f"{API}/prompts/{prompt_id}", headers=HEADERS
    ).json()
    if status["status"] in ("completed", "failed"):
        print(f"Result: {status['result']}")
        break
    time.sleep(5)
cURL — 提交 Promptbash
curl -X POST https://getorquesta.com/api/external-agent/prompts \
  -H "Authorization: Bearer oxa_xxx" \
  -H "Content-Type: application/json" \
  -d '{"content": "Fix the login bug", "tags": ["bug"]}'

自主 Agent Bot

Orquesta 内置了一个自主 bot,以 Claude CLI 作为 大脑,通过外部 Agents API 有策略地规划并提交任务。本地 agent 负责执行每个任务。

无需 API key — bot 通过 claude login 使用你的 Claude 网页订阅。

How it works:

  1. 通过 API 注册为自主 agent
  2. 收集项目上下文、近期 prompt 和队列状态
  3. 携带完整上下文启动 claude -p 来决定下一个任务
  4. 提交 prompt,轮询直至完成,并记录结果
  5. 重复 — 每次迭代都基于之前的结果
运行自主 Botbash
# Run with token (default 5 iterations)
npx tsx scripts/autonomous-agent/run.ts oxa_your_token

# Or use env var with custom iterations
MAX_ITERATIONS=10 ORQUESTA_AGENT_TOKEN=oxa_xxx npx tsx scripts/autonomous-agent/run.ts

可配置项:MAX_ITERATIONS (默认 5), ITERATION_DELAY (默认每次迭代间隔 30 秒)。

安全

安全是 Orquesta 的基础。你的代码在你自己的机器上运行,凭据经过加密, 所有数据访问均由行级安全策略控制。

AES-256-GCM 加密 — 所有凭据(SSH 密钥、API token、数据库密码)均使用 AES-256-GCM 配合服务端主密钥进行静态加密。凭据仅在使用的瞬间才会解密。

代码保留在本地 — 本地 agent 运行在你自己的机器上。你的代码库绝不会上传到 Orquesta 服务器,仅传输 prompt 文本、执行日志和 git 元数据。

行级安全

每个 Supabase 表都配有 RLS 策略,强制实现组织级隔离。用户只能 访问其所在组织内的数据。管理操作使用具有更高权限的 service role key, 绝不会暴露给客户端。

Token 管理

前缀类型Scope使用方
oat_Agent Token项目orquesta-agent、IDE 扩展
oclt_CLI Token组织orquesta-cli
oxa_外部 Agent项目第三方 agent
ott_Telegram OTT用户Telegram bot 身份验证

所有 token 在存储前都会进行 SHA-256 哈希。仅存储哈希值 — 明文 token 只会在创建时显示 一次,之后无法找回。可在控制台中即时撤销 token。

环境变量与密钥文件

项目密钥存放在 Settings → Environment Variables 中,并会注入到 agent 运行的每个 prompt 中。分为两类:键值变量,以及 密钥文件 — 即必须存在于磁盘上的签名密钥、keystore、service-account JSON 或.p8 文件。agent 会在运行前将每个文件写入其目标路径 (相对于项目的路径、绝对路径,或 ~/…;权限 0600),并导出 ORQUESTA_FILE_<NAME>,其值为解析后的路径。

  • 粘贴 .env — 设置向导和 Settings 都支持粘贴 .env (会处理注释、引号和 export 前缀;已有的键会原地更新)。
  • 使用 CLI token 访问 API — /api/projects/{id}/env、/credentials 和 /secret-files 除了 dashboard 会话外,也接受 Authorization: Bearer oclt_…,因此脚本和 agent 无需浏览器即可加载密钥。删除需要 credentials:manage 权限。
  • 使用 external-agent token 的只写访问 — 创建时勾选了可选的 env:write / secret-files:write scope (默认不勾选) 的 oxa_ token,只能对其所属项目向 /env 和 /secret-files 发起 POST。它无法读取或删除这些内容,且每次写入都会记录在该 token 的活动日志中。对于只负责加载密钥的 agent,建议优先使用它而不是 oclt_ — 参见 External Agent scopes。
  • Token 健康检查 — orquesta --status 现在会向服务器验证已存储的 CLI token,并在其已被撤销、已过期,或是未关联用户的旧 token 时发出警告 (这类 token 的每次写入都会被 403 拒绝)。orquesta --login 会生成新的 token。
  • 每个项目最多 32 个文件,每个 512 KB,总计 4 MB。与其他凭据一样加密存储。
Load secrets from a scriptbash
# Merge variables from a .env file (existing keys are updated, others kept)
curl -s -X POST https://getorquesta.com/api/projects/$PROJECT_ID/env \
  -H "Authorization: Bearer $ORQUESTA_CLI_TOKEN" -H "Content-Type: application/json" \
  -d "$(jq -n --rawfile dotenv .env.production '{dotenv: $dotenv, merge: true}')"

# Upload a signing key as a secret file
curl -s -X POST https://getorquesta.com/api/projects/$PROJECT_ID/secret-files \
  -H "Authorization: Bearer $ORQUESTA_CLI_TOKEN" -H "Content-Type: application/json" \
  -d "$(jq -n --arg b64 "$(base64 -w0 AuthKey.p8)" \
        '{files:[{name:"APPLE_AUTH_KEY", path:"~/.private_keys/AuthKey.p8", contentBase64:$b64}]}')"

# In the prompt the agent runs, the file is already on disk:
#   eas build --non-interactive   # reads $ORQUESTA_FILE_APPLE_AUTH_KEY via your eas.json / env

身份验证 (Passkey / OTP)

组织或项目可以要求在常规登录之外进行第二次身份验证,才能让其 agent 执行操作:发送或运行 prompt、交互式会话、浏览器控制、远程桌面控制、定时运行以及 auto-agent 自主运行。成员可使用 passkey (Touch ID、Windows Hello、安全密钥) 或 身份验证器应用 的验证码进行验证。

  • 开启方式:在 Organization Settings → Identity verification for agents 中开启 (所有者),或在项目的 Settings → Agent 中按项目开启 (所有者和管理员)。项目只能让策略更严格。
  • 失效时机:超过配置的时间 (15 分钟至 24 小时,默认 8 小时;以组织和项目中较短者为准)、退出登录,或在个人资料中点击 Lock now 时失效。
  • 注册方式:在 Profile → Identity verification 中注册,或在首次需要时直接从提示中注册。添加首个验证方式之后,再添加或移除验证方式都会要求你重新验证,且每次变更都会通过邮件通知你。
  • 放宽策略 (关闭或延长有效期) 需要 15 分钟内完成的验证,因此被盗用的会话无法将其关闭。
  • 适用范围:该验证适用于 dashboard 会话。通过 token 认证的途径 (公共 API、CLI、Slack、Telegram、external agents) 由各自的 token 管控。

安全扫描

内置安全扫描会分析 prompt 和生成的代码中的漏洞。 扫描可检测 SQL 注入、XSS、命令注入和凭据泄露等常见问题。 结果会显示在 Security 面板中,并附带严重程度评级和修复建议。

GuardRails

GuardRails 是按项目启用的 prompt 保护层,会在每个 prompt 到达 agent 之前将其拦截。它使用 30 多条内置正则规则,外加可选的 GPT-4o-mini AI 审查,扫描prompt 注入、 越狱、 角色覆盖和 数据窃取企图。

工作原理:

  1. 每个 prompt 在执行前都会按 6 个规则类别评分
  2. 分数 ≥ 70 → 拦截,30–69 → 警告,< 30 → 通过
  3. 结果会存储在 prompt 上 (guardrail_status, guardrail_flags)
  4. 在 block 模式下,prompt 会被取消并返回 403;在 warn 模式下,prompt 会运行但会被标记
类别触发示例默认严重程度
injection"ignore previous instructions", "disregard all rules"critical / high
role_override"act as DAN", "you are now", "pretend to be"high
jailbreak"developer mode", "bypass restrictions", "no restrictions"high
exfiltration"cat ~/.ssh/id_rsa", "print ANTHROPIC_API_KEY", ".env"critical / high
context_confusion"your real instructions are", "your true purpose"high / medium
social_engineering"this is just a test", "in a fictional scenario"medium / low

操作模式:

  • Block — prompt 被取消;发送者会收到包含所匹配规则的错误
  • Warn — prompt 正常执行,但会在违规日志中被标记
  • Log Only — prompt 正常执行,违规情况会静默记录以供审计

配置:在项目 dashboard 中前往 Agent → GuardRails,即可启用、设置模式、开关 AI 审查并添加自定义正则。项目管理员也可以直接在Send Prompt 工具栏中使用 GuardRails 按钮开启或关闭 GuardRails,无需离开当前页面。

提示

启用 AI Review 可对临界 prompt 增加一轮 GPT-4o-mini 审查。如果 AI 将 prompt 判定为 malicious,会加 40 分;判定为suspicious 则加 15 分,这可能使临界分数进入拦截区间。

GuardRail API 端点:

GET
/api/projects/:id/guardrail

获取当前 guardrail 配置 (尚未配置时返回默认值)

POST
/api/projects/:id/guardrail

保存 guardrail 配置 — enabled、mode、ai_review、custom_patterns[]

GET
/api/projects/:id/guardrail/violations

列出最近 50 条被拦截或被警告的 prompt,包含标记和来源

Quality Gates

Quality Gates 允许管理员要求特定团队成员在提交前先执行 先模拟再提交。 启用后,该成员的 Execute 按钮会变为 Simulate — 点击后会调用 AI 预览 agent 将要执行的操作 (涉及的文件、运行的命令、风险)。成员随后选择 Sign & Submit 继续,或选择 Cancel 取消。

启用方法:

  1. 在项目 dashboard 中前往 Team
  2. 点击成员姓名旁的 Sign-off 徽章 (仅限管理员)
  3. 启用后徽章变为琥珀色 — 该成员将看到 "Simulate" 而不是 "Execute"
  4. 模拟状态通过 prompt 记录上的 quality_gate_signed 字段跟踪
POST
/api/projects/:id/simulate

针对给定的 prompt 内容生成 agent 将执行操作的 AI 预览 — 不写入数据库

PATCH
/api/projects/:id/members/:memberId

更新项目成员 (仅限管理员)。Body 接受 role 以及各成员的权限标志:{ require_signoff, require_auto_evaluate, require_guardrails, assisted_reviewer }。对 prompter 强制开启 Auto-evaluate,若尝试清除则返回 400。

CLAUDE.md Sync

直接在 dashboard 中编辑项目的 CLAUDE.md,并与 agent 的工作目录保持同步。Claude Code 每次会话都会从项目根目录读取 CLAUDE.md — 无需再手动通过 SSH 更新。

Dashboard 编辑器

打开 Configuration → Settings → CLAUDE.md tab,编辑内容并保存。内容存储在 projects.settings.claude_md。下次 agent 连接时,该文件会被写入 <workingDirectory>/CLAUDE.md。

Agent 同步

首次连接时,agent 会将本地 CLAUDE.md 上传到 dashboard (仅在尚未保存用户内容时):

  1. Agent 从其工作目录读取 CLAUDE.md
  2. 将内容 POST 到 /api/agent/claude-md
  3. 仅当 settings.claude_md 尚未设置时,服务器才会存储 (用户的编辑绝不会被覆盖)
  4. 后续连接时,如果已设置 settings.claude_md,则会将其写回磁盘
PATCH
/api/agent/claude-md

从 agent 上传本地 CLAUDE.md (agent token 认证)。仅在首次上传时存储。Body:{ content: string }

GET
/api/agent/skills

返回 userClaudeMd 字段 — 用户管理的 CLAUDE.md 内容 (未设置则为 null)

组织 Agent 上下文

CLAUDE.md 是按项目设置的。适用于组织内所有项目的规则则放在 Settings → Agent context (/dashboard/settings,仅限所有者) 中 — 即你不必反复重申的策略:“始终在分支上工作并提交 PR”、 “添加依赖前先询问”、“提交信息使用英文”。

它会在项目指令和集成 skill 之后传递,并带有说明其优先于它们的标头 — prompt 的优先级取决于位置,因此最后一个带标签的块优先生效。 正在运行的 agent 会在保存后数秒内重新加载。

GET
/api/organizations/[orgId]/settings

返回 agentMd (组织上下文文档) 以及当前用户的 canEdit

PATCH
/api/organizations/[orgId]/settings

更新组织上下文文档。仅限所有者。Body:{ agent_md: string }

Code Browser

Code Browser 标签页可直接在 dashboard 中以只读方式查看项目源代码。文件从 GitHub 或通过 SSH 获取 — 无需本地克隆。

功能:

  • 支持 20 多种语言的语法高亮 (TypeScript、Python、Go、Rust、SQL、HTML、CSS 等)
  • 文件浏览器,支持搜索过滤和目录导航
  • 文件内搜索,支持匹配项跳转 (Ctrl+F 或搜索按钮)
  • 面包屑路径导航和文件元数据 (大小、行数、语言)
  • 将完整文件内容复制到剪贴板
  • Ask AI — 打开侧边面板,就你正在查看的文件提问。流式响应由 Claude Haiku 或 GPT-4o-mini 提供

这是仅查看的体验 — 无法在 Code Browser 中修改、创建或删除文件。 可用于代码审查、新成员入职,或探索代码库中不熟悉的部分。

Ask AI

点击文件工具栏中的 Ask 按钮打开 AI 面板。AI 会将文件内容作为上下文,可回答有关代码的问题、解释模式、发现潜在问题并说明函数的作用。我们还提供了建议的 prompt 帮助你快速上手。

POST
/api/projects/:id/codebase/ask

关于代码的流式 AI 问答。Body:{ question, filePath?, fileContent?, language? }

性能仪表板

Performance 标签页 (Configuration → Performance) 显示项目的汇总 token 用量和费用数据,并按模型和日期细分。数据来自 Claude CLI 执行器填充的 tokens_used 和 cost_cents 字段。

你将看到:

  • 统计卡片:总费用 ($)、总 token 数、prompt 数量
  • 每日柱状图:所选时间段内每天的费用
  • 模型明细表:模型、提供商、prompt 数、token 数、费用 — 按费用排序
  • 按成员统计支出:每位用户的 token 与费用支出,按用量排序;当某位成员占用团队超过 40% 的 token 时,会显示 High-spend 标记
  • 单用户 token 限额:组织所有者/管理员可为每位成员设置组织范围的每月 Batuta token 上限,模式可选 仅提醒 (用量达到 80% / 95% 时通过邮件通知成员和管理员) 或 拦截 (超出上限后 prompt 将被拒绝,直至下月)
  • 时间段选择器:7 天 / 30 天 / 全部时间

性能 API

GET
/api/projects/:id/performance

返回 totalTokens、totalCostCents、promptCount、byModel[]、byDay[]、byMember[] (含各成员的 tokens + costCents)、byTool[]、topPrompts[]。查询参数:?period=7d|30d|all

快捷 Prompt

Quick Prompts 可让你将常用 prompt 保存为可复用的模板。 无需反复输入相同的指令,只需保存一次,即可一键执行。

创建与使用 Quick Prompts

创建:

  • 在任意项目中打开 prompt 输入框
  • 输入你的 prompt,然后点击 Save as Quick Prompt 按钮
  • 为其命名,并可选填写描述
  • Quick prompt 按项目保存在 quick_prompts 表中

使用:

  • 点击 prompt 输入区域中的 Quick Prompts 下拉菜单
  • 选择已保存的 prompt 以自动填充输入框
  • 如有需要可进行编辑,然后照常提交

使用场景:

  • 标准代码审查 prompt
  • 部署检查清单
  • Bug 报告模板
  • 周期性维护任务

公开构建

让项目的 AI 活动公开可见 — 无需登录。启用 "Build in Public" 开关后,你的项目会出现在 Live Feed 上,地址为 getorquesta.com/feed,任何人都可以实时关注你的 AI agent 交付代码。这是制造 FOMO 并展示 AI 驱动开发是什么样子的绝佳方式。

🌐

公开动态

你的项目会出现在 /feed,并按社区投票排名。

📺

实时日志

访客可在 prompt 执行时看到实时流式传输的 agent 日志。

🗳️

社区投票

通过赞/踩对项目排名。匿名投票,无需登录。

启用与配置

前往 Project → Settings → Permissions tab。在 "Build in Public" 下,打开开关。

  • 自定义 slug — 设置类似 my-project 的短 URL,使你的动态页面位于 getorquesta.com/feed/my-project,而不是 UUID。 只能包含小写字母、数字和连字符 (3–50 个字符),且必须唯一。
  • 在线站点 URL — 输入已部署应用的 URL (例如 https://myapp.com)。访问你动态页面的访客会在 prompt 时间线下方看到实际运行产品的嵌入式 iframe 预览。

警告

启用后,你的 prompt 内容将公开可见。在启用 Building in Public 期间,请避免提交包含密钥、凭据或敏感业务逻辑的 prompt。

Live Feed

位于 /feed 的全局动态列出所有公开项目,按社区投票分数排序。每张卡片显示:

  • Agent 在线/离线状态 (绿点 = 最近 3 分钟内有活动)
  • 当有 prompt 正在执行时,显示琥珀色 "Running now" 脉冲
  • 最近 3 条 prompt 片段,带有状态图标和来源徽章 (Web / Telegram / Auto 等)
  • 赞/踩按钮 — 分数为赞数减去踩数,按匿名浏览器 UUID 存储
  • 指向完整项目时间线的链接:/feed/[slug]

项目详情页 (/feed/[slug]) 显示:

  • 在线站点的 iframe 预览 (如已配置站点 URL)
  • 完整的 prompt 时间线 (最近 50 条 prompt,只读)
  • 可展开的 prompt 内容、标签、来源、时长
  • 分享到 X 按钮和复制链接按钮
  • 针对任何正在运行的 prompt 的实时日志终端

实时日志

prompt 运行时,公开项目页面上其下方会出现一个终端面板,每 2 秒流式显示 agent 日志。日志经过过滤 — 内部的 thinking 条目 会被隐藏,仅显示可操作的输出:

Category颜色含义
tool_call蓝色Agent 调用工具 (写文件、bash 命令…)
tool_result绿色工具返回的结果
output灰色原始 stdout / Claude 响应文本
error红色执行错误或工具失败
system / progress暗淡Agent 状态更新

每次轮询最多返回最近 80 条日志,每行截断为 500 个字符。会自动滚动到最新条目。

公共 API

这些端点无需认证 — 完全公开:

GET
/api/public/feed

列出所有公开项目,包含最近的 prompt、投票数和 agent 状态。按分数排序。

返回:{ projects: [{ id, name, description, agent_online, prompts[], upvotes, downvotes, score }] }

GET
/api/public/feed/:projectIdOrSlug

单个公开项目 — 完整 prompt 时间线 (最近 50 条)、投票总数、站点 URL。

同时接受 UUID 和自定义 slug。若项目未公开则返回 404。

GET
/api/public/logs/:promptId

正在运行或已完成的 prompt 的 agent 日志。仅适用于属于公开项目的 prompt。

返回:{ logs: [{ id, category, level, message }], status }

POST
/api/public/vote

为公开项目投赞成票 (+1) 或反对票 (-1)。每个调用方只能投一票 (由服务器按 IP 识别;客户端传入的任何 voterUuid 都会被忽略)。再次投相同方向的票会撤销该票。

Body:{ projectId, vote: 1 | -1 } — 返回更新后的 { upvotes, downvotes, score }

API Keys

API 密钥 (oak_) 让外部集成可以访问 Orquesta 数据。 在 Settings > API Keys 中生成,每个密钥带有两项相互独立的限制:它拥有的 scope (默认只读), 以及它可访问的项目 (全部项目或指定的几个)。 两者之后均可编辑,无需重新签发 token。

认证

在每个请求中包含你的 API 密钥:

# Option 1: Authorization header
curl -H "Authorization: Bearer oak_xxx" https://getorquesta.com/api/v1/projects

# Option 2: X-API-Key header
curl -H "X-API-Key: oak_xxx" https://getorquesta.com/api/v1/projects

端点

GET
/api/v1/projects

列出你组织中的所有项目及 agent 在线状态。

Scope:projects:read — 返回:{ projects: [{ id, name, agentOnline, agentLastSeen, productionUrl }] }

GET
/api/v1/prompts?projectId=&status=&limit=

列出所有项目的 prompt。可按项目、状态 (running/completed/failed/pending) 过滤。

Scope:prompts:read — 每次请求最多 100 条

POST
/api/v1/prompts

提交 prompt 以供执行。Body:{ projectId, content, tags?, readOnly? }。创建时状态为 pending;agent 会在下一次心跳 (15 秒) 时领取。readOnly: true 会在 Claude CLI 上使用只读工具 (Read/Grep/Glob 加 git 快照) 运行 — 需要 orquesta-agent 0.2.263+。

Scope:prompts:write — CLI token (oclt_) 无需该 scope 即可使用;agent token (oat_) 会被拒绝

PUT
/api/v1/external-agents

注册你的外部 agent (例如 7ots ots)。Body:{ provider?: '7ots', agents: [{ id, name?, avatarUrl? }] }。GET 会列出它们及其关联的项目和 scope。

项目管理员在项目的 Agent Identity → Connected ots 中连接它们,并设置 scope read / run / deploy。携带 X-Orquesta-External-Agent: 7ots/<id> 发送的请求只能访问该 agent 关联的项目;提交 prompt 需要 run,readOnly 的 prompt 只需 read。当外部服务的所有者在那里启用任务时,该服务可以为关联添加 read/run (使用 PUT /api/v1/external-agents 并带上 seed.grant);deploy 只能在此处授予。

GET
/api/v1/logs?promptId=

特定 prompt 的执行日志 (所有工具调用、输出、错误)。

Scope:logs:read — 也接受 projectId 以获取项目的最近日志

GET
/api/v1/agents

列出所有 agent token 及其在线状态、项目信息和 GitHub 仓库。

GET
/api/v1/projects/:id/workstreams

工作流 CRUD — 使用 oclt_/oat_ token 列出、创建、更新和删除项目的工作流(oak_ 需要 workstreams:write);run_on_microvm 将其移到 microVM。

POST
/api/v1/projects/:id/workstreams

创建(name 必填;kind、branch、working_directory、system_prompt、agent_token_id、run_on_microvm 可选)。

PATCH
/api/v1/projects/:id/workstreams/:workstreamId

只更新发送的字段。

DELETE
/api/v1/projects/:id/workstreams/:workstreamId

删除(项目管理员;oat_ 不可)。

Scope: agents:read

GET
/api/v1/models

列出通过 Batuta 代理可用的 LLM 模型。

22 个模型:Claude, GPT-4o, DeepSeek, Gemini, Groq, Mistral, Grok

POST
/api/v1/chat/completions

兼容 OpenAI 的聊天端点。通过 Batuta 路由到任意模型。

格式与 OpenAI API 相同。支持流式传输。使用 Orquesta 的 API 密钥。

每次请求最多 200,000 个输入 token — 更大的上下文将返回 413 context_too_large。请求超出上限几乎总是意味着某个 agent 循环在每一轮都重新发送完整记录;请裁剪或总结历史记录。

项目与 VM

组织密钥(仅限 oak_,CLI、agent 和 MCP token 会被拒绝)可以 创建项目并管理每个项目的云端 VM。写入操作要求创建该密钥的用户 仍是组织的所有者或管理员。限制:每个密钥每分钟 30 次请求,每小时 300 次。VM 响应 绝不会包含 SSH 私钥或 agent token。

POST
/api/v1/projects

创建项目。请求体:{ name, description? }。受套餐项目数量限制(402 BILLING_LIMIT)。

Scope:projects:write — 限定到特定项目的密钥不可用

DELETE
/api/v1/projects/:id

删除项目。若项目仍有活动 VM,则返回 409 并拒绝。

Scope:projects:write

GET
/api/v1/projects/:id/vm

项目当前的 VM:{ vm: { id, status, size, region, ip, externalRef, ... } | null }。

Scope:vms:read

POST
/api/v1/projects/:id/vm

创建项目的 VM。请求体:{ size?, region?, external_ref?, bootstrap?, template_id?, idle_sleep_hours? }。template_id 会启动同一组织的工作区模板的克隆;对于合作伙伴子组织,则是其上级合作伙伴组织的模板;bootstrap 仍会在克隆体获得自己的 agent 身份之后在其上运行。idle_sleep_hours(1-720)会在无 prompt 且无 touch 达到该小时数后停止 VM。按与控制台 VM 相同的方式计费。

Scope:vms:write — bootstrap 是一个 bash 脚本(最大 8 KB),在 agent 安装后以 root 身份运行,仅适用于 Orquesta 已启用该功能的组织;脚本不会被存储。external_ref(最多 128 个字符)是你自己的 id,同时也会设置为 EC2 标签 orquesta:external_ref。

PATCH
/api/v1/projects/:id/vm

请求体:{ idle_sleep_hours: 1-720 | null }。返回 { vm },其中包含 idleSleepHours、sleptAt 和 lastActivityAt。

DELETE
/api/v1/projects/:id/vm

终止项目的 VM 并停止其计费。

Scope:vms:write

POST
/api/v1/projects/:id/vm/actions

请求体:{ action: 'reboot' | 'power_on' | 'power_off' | 'touch' }。touch 会从你自己的 worker 记录活动,使空闲休眠不会关闭该 VM;power_on 会唤醒处于休眠的 VM,且可能更改公网 IP。已关机的 VM 仍按月计费。

Scope:vms:write

GET
/api/v1/vms?include_terminated=

组织的所有 VM,包含 status、ip 和 externalRef。

Scope:vms:read

合作伙伴组织(由 Orquesta 启用)可以为每位终端客户创建一个子 组织,并通过向上述任意端点发送 X-Orquesta-Org: <child id> 来对其进行操作。使用 Stripe 计费的子组织必须先通过其结账流程付款;在此之前创建 VM 会返回 402 和 code: billing_required。

POST
/api/v1/partner/orgs

创建(或返回已有的,按 external_ref 幂等)子组织。请求体:{ external_ref, name? }。

Scope:orgs:write

GET
/api/v1/partner/orgs?external_ref=

你的子组织,附带 billingStatus。

Scope:orgs:write

DELETE
/api/v1/partner/orgs/:id

删除子组织并取消其订阅。若其仍有运行中的 VM,则返回 409。

Scope:orgs:write

POST
/api/v1/partner/orgs/:id/checkout

为子组织的服务器创建 Stripe Checkout。请求体:{ return_url, size? }(https,需在允许列表中的主机)。返回 { url }。

Scope:orgs:write

GET
/api/v1/partner/orgs/:id/billing

{ status: none | active | past_due | canceled }。

Scope:orgs:write

Scopes

密钥只拥有你勾选的 scope。超出这些 scope 的请求会返回 403,并指明缺少的 scope。

projects:read — 列出项目
prompts:read — 读取 prompt
logs:read — 执行日志
agents:read — Agent 状态
analytics:read — 使用情况分析
vms:read — VM 状态 (需主动开启)
prompts:write — 提交 prompt
projects:write — 创建/删除项目 (需主动开启)
vms:write — 创建、开关机和终止 VM (需主动开启,计费)
orgs:write — 管理子组织 (需主动开启,仅限合作伙伴)

两个预设涵盖大多数场景:只读(除需主动开启的 vms:read 外的每个 :read scope)和 只读 + 提交 prompt。 创建密钥时若不指定任何 scope,将得到只读密钥。基础设施相关的 scope 不会出现在任何 预设中:请显式勾选。

项目限制

除非你加以限制,否则密钥对整个组织生效。当你选择项目后,每个端点(REST 和 MCP) 都会被过滤到这些项目:列表只返回这些项目的数据行,请求其他任何内容 都会返回 404,与项目不存在时的响应相同, 因此密钥无法探测哪些项目 id 是真实存在的。现有密钥在你编辑之前仍对整个组织生效。

# A key restricted to one project
curl -H "Authorization: Bearer oak_xxx" \
  "https://getorquesta.com/api/v1/prompts?projectId=<allowed>"   # 200

curl -H "Authorization: Bearer oak_xxx" \
  "https://getorquesta.com/api/v1/prompts?projectId=<other>"     # 404

OSS 社区

Orquesta OSS 是该平台可自托管的开源版本。 OSS 实例可以选择将自己发布到 getorquesta.com/feed 社区动态,让其他开发者 能够发现你的实例。

自托管

开始使用 OSS 版本:

# Clone the repository
git clone https://github.com/Orquesta-live/orquesta-oss.git
cd orquesta-oss

# Install dependencies
npm install

# Set up the database
npx prisma db push

# Start the development server
npm run dev

OSS 技术栈:

  • Next.js 15 + Prisma + SQLite(无需外部数据库)
  • 使用 Better Auth 进行身份验证
  • 使用 Socket.io 实现 agent 实时通信
  • 完整的 Agent Grid、agent token 和交互式会话

发布到社区动态

OSS 实例所有者可以将其实例发布到社区动态: getorquesta.com/feed。这会让你的实例对社区可见。

发布方法:

  • 打开你的 OSS 实例控制台
  • 点击项目顶部的 发布到社区 按钮(仅所有者可见)
  • 你的实例详情会发送到 POST /api/oss/publish
  • 你的实例会出现在 /feed 的社区板块中

API:

POST
/api/oss/publish

在社区动态中注册或更新 OSS 实例。公开接口,注册无需认证;更新已列出的实例时,要求该实例在 /.well-known/orquesta-oss.json 提供同名内容。

请求体:{ name, description, instanceUrl, promptCount }

GET
/api/oss/publish

列出所有已注册的 OSS 实例。

计费与套餐

功能对比

功能Starter(免费)Pro ($6/mo)Max ($12/mo)
项目15不限
团队成员110不限
Prompt 数/月50500不限
本地 Agent✓✓✓
集成GitHub全部全部
聊天与评论—✓✓
Embed SDK—✓✓
云端 VM——✓
Batuta AI 聊天—500K tokens/月包含 Batuta Standard(5M tokens/月)
Orquesta CLI——✓
External Agents API——✓
IDE 扩展(Cursor / VS Code)✓✓✓
Telegram Bot——✓
安全扫描—基础完整
GuardRails(Prompt 保护)—✓✓
公开构建(实时动态)✓✓✓

Batuta LLM 附加组件

Batuta LLM 是一个托管的 LLM 代理,让你的团队无需管理 API 密钥即可使用所有主流 AI 模型 (GPT-4o、Claude、Gemini、DeepSeek、Mistral、Grok)。 可通过控制台聊天或 Orquesta CLI 使用。

Max 套餐已包含 Batuta Standard — Max 组织会自动获得每月 5M token 的额度,无需购买附加组件。 下方的 Plus、Pro 和 Team 档位可让你进一步扩展。

功能Standard ($19/mo)Plus ($49/mo)Pro ($99/mo)Team ($199/mo)
包含的 token5M/月15M/月40M/月100M/月
随 Max 套餐附赠✓———
所有模型(GPT-4o、Claude、Gemini 等)✓✓✓✓
控制台聊天(模式 1)✓✓✓✓
CLI 代理(模式 2)✓✓✓✓
无需 API 密钥✓✓✓✓
用量跟踪✓✓✓✓
超额定价$5/1M tokens$4/1M tokens$3.50/1M tokens$3/1M tokens
团队共享额度池—✓✓✓

提示

你也可以使用自己的 API 密钥,从 Orquesta CLI 直接连接任意提供商 — Batuta LLM 附加组件是可选的。它只是省去了在多个提供商之间 管理密钥和账单的麻烦。

企业版

Orquesta Enterprise 专为需要对 AI 驱动的开发工作流实现高级安全、合规和管控的组织而设计。 从 SSO 和细粒度权限,到本地部署 和 SOC 2 合规,Enterprise 为你的安全与采购团队提供 批准 Orquesta 投入生产环境所需的一切。

安全优先

SSO/SAML、静态与传输加密、漏洞扫描、渗透测试

企业级

支持 SOC 2、GDPR、HIPAA 的基础设施,具备完整审计追踪和数据驻留

专属支持

99.9% 可用性 SLA、专属 CSM、优先支持以及定制化上手服务

提示

企业版套餐根据团队规模、部署模式和支持需求定制定价。 请联系 oscar@getorquesta.com 或访问 getorquesta.com/enterprise, 预约演示并获取专属报价。

SSO 与身份管理

Orquesta 可与你现有的身份提供商集成,让团队使用企业凭据登录。 无需单独的密码,也无需手动配置用户。

支持的提供商

提供商协议功能
OktaSAML 2.0 / OIDC自动配置、组映射、强制 MFA
Azure AD (Entra ID)SAML 2.0 / OIDC条件访问策略、组同步、MFA
Google WorkspaceOIDC / SAML限定域名登录、组织单元映射
OneLoginSAML 2.0用户配置、角色映射
PingIdentitySAML 2.0 / OIDC自适应 MFA、目录集成
Custom SAML / OIDCSAML 2.0 / OIDC通过标准协议支持任何合规的 IdP

SCIM 用户配置

通过 SCIM 2.0 自动化用户生命周期管理。当员工加入或离开你的组织时, 其 Orquesta 访问权限会通过你的身份提供商自动开通或撤销。

  • 加入 IdP 组时自动创建用户
  • 从 IdP 中移除时自动停用
  • 组到角色的映射(IdP 组映射到 Orquesta 角色)
  • 首次登录时的即时 (JIT) 配置

多因素认证 (MFA)

在组织层面强制启用 MFA。Orquesta 支持 TOTP(身份验证器应用)、WebAuthn (YubiKey 等硬件密钥),并以 SMS 作为备用方式。管理员可以要求所有成员 或特定角色使用 MFA。

域名验证

认领你的邮箱域名(例如 @yourcompany.com),这样 任何使用该域名注册的员工都会被自动加入你的组织。可防止 影子账户,并确保集中管理。

高级角色与权限

企业版 RBAC 超越了标准的 Admin / Developer / Viewer 角色。你可以创建自定义角色, 并将细粒度权限限定到特定的项目、环境和操作。

内置企业角色

角色范围能力
Org Owner组织完全控制:计费、SSO 配置、所有项目、成员管理
Org Admin组织成员管理、创建项目、组织设置(不含计费)
Project Admin按项目项目设置、团队管理、agent token、质量关卡
Developer按项目提交 prompt、查看日志、交互式会话、git 操作
Reviewer按项目批准/拒绝质量关卡提交,查看所有日志和差异
Viewer按项目对日志、prompt 和仪表板的只读访问
Security Officer组织审计日志、安全扫描结果、合规报告
Billing Admin组织管理订阅,查看用量和成本报告

自定义角色

创建具有细粒度权限集的自定义角色。每项权限由 资源 + 操作组合而成:

示例:自定义角色定义json
{
  "name": "Senior Developer",
  "permissions": [
    "prompts:submit",
    "prompts:execute",
    "prompts:approve",
    "logs:read",
    "git:commit",
    "git:push",
    "agents:connect",
    "agents:interactive_session",
    "vm:ssh",
    "settings:claude_md:edit"
  ],
  "restrictions": {
    "environments": ["development", "staging"],
    "max_tokens_per_prompt": 50000,
    "blocked_commands": ["rm -rf /", "DROP DATABASE", "format"]
  }
}

按环境限定的访问

限制每个角色可以操作的环境。开发者可能对开发和预发布环境拥有完全访问权限, 但对生产环境需要审批。环境按项目定义,并在 agent 层面强制执行。

  • 开发 — 开放访问,无需审批
  • 预发布 — 开发者可访问,可选评审
  • 生产 — 需要 Reviewer 或 Project Admin 的质量关卡批准
  • 受限 — 仅限 Org Admin 和 Security Officer,每项操作均完整审计

命令允许列表与阻止列表

按角色和环境定义允许或阻止哪些 shell 命令和模式。 agent 会在执行前强制应用这些规则,防止破坏性或未授权的操作。

示例:命令策略json
{
  "production": {
    "blocked_patterns": [
      "rm -rf",
      "DROP TABLE",
      "DROP DATABASE",
      "truncate",
      "format",
      "mkfs",
      "dd if=",
      "> /dev/sd"
    ],
    "require_approval": [
      "git push",
      "npm publish",
      "docker build",
      "kubectl apply",
      "terraform apply"
    ]
  }
}

IP 允许列表

将控制台和 API 访问限制在特定 IP 范围内。只有来自你的企业 网络、VPN 或已批准 CIDR 块的请求才能访问 Orquesta。在组织层面配置。

IP 允许列表配置json
{
  "ip_allowlist": {
    "enabled": true,
    "ranges": [
      "203.0.113.0/24",
      "198.51.100.0/24",
      "10.0.0.0/8"
    ],
    "bypass_for_sso": false,
    "enforce_on_api": true,
    "enforce_on_agents": true
  }
}

部署选项

选择符合你的安全与合规要求的部署模式。Orquesta 支持从全托管云到物理隔离本地安装的各种方式。

托管云

位于 getorquesta.com 的全托管 SaaS。无需管理任何基础设施。数据托管在 AWS/GCP,并采用静态与传输加密。

最适合: 希望快速上手、无需基础设施运维负担的团队

VPC / 私有云

部署在你的 AWS VPC、GCP VPC 或 Azure VNet 内的专用 Orquesta 实例。你的数据永远不会离开你的云账户。

最适合: 有数据驻留要求或严格网络策略的组织

本地部署

在你自己的硬件上部署完整的 Orquesta 平台。包含控制台、API 服务器、WebSocket 中继和数据库。通过 Helm chart 或 Docker Compose 管理。

最适合: 需要完全掌控数据的受监管行业(金融、医疗、国防)

物理隔离

完全隔离的部署,无任何外部网络访问。包含离线 agent 包、本地 LLM 支持以及手动更新流程。

最适合: 政府、国防和涉密环境

数据驻留

选择数据的存储位置以符合区域法规。托管云和 VPC 部署 可用的区域:

  • 美国东部(弗吉尼亚)— 默认
  • 美国西部(俄勒冈)
  • 欧洲西部(法兰克福)— 符合 GDPR
  • 欧洲北部(斯德哥尔摩)
  • 拉丁美洲(圣保罗)
  • 亚太(悉尼、东京)

高可用架构

企业版部署以高可用配置运行,并支持自动故障转移:

  • 多可用区数据库复制,支持自动故障转移
  • 跨可用区负载均衡的 API 服务器
  • 支持粘性会话和重连处理的 WebSocket 中继
  • 用于实时状态和缓存的 Redis 集群
  • 每日自动备份,保留 30 天(可配置)
  • 灾难恢复:RPO < 1 小时,RTO < 4 小时

审计与治理

Orquesta 中的每个操作都会连同完整上下文被记录。企业版审计超越了标准 日志,提供不可篡改的审计追踪、SIEM 集成和可配置的保留策略。

不可变审计日志

每个事件都会写入仅追加的审计日志,该日志无法被修改或删除,即使是组织所有者也不例外。 事件之间采用加密链式关联,以检测篡改行为。

事件类别追踪的事件
身份验证登录、登出、SSO 会话、MFA 验证、失败尝试、密码重置
Prompt 执行Prompt 提交、执行开始/完成/失败、输出内容、token 用量
Agent 活动Agent 连接/断开、心跳、版本、IP 地址、执行环境
团队管理成员添加/移除、角色变更、邀请发送/接受、SCIM 同步事件
Git 操作创建提交、分支修改、diff、推送事件、文件变更
配置项目设置变更、CLAUDE.md 更新、环境变量修改、质量门禁开关
安全Token 创建/撤销、IP 白名单变更、权限变更、安全扫描结果
计费套餐变更、支付事件、用量阈值告警
API 访问所有带请求/响应元数据的 API 调用、速率限制事件、webhook 投递
数据导出审计日志导出、数据下载请求、备份事件

SIEM 集成

将审计事件实时流式传输到您的 SIEM 或日志管理平台。支持的目标:

  • Splunk — 通过 HEC (HTTP Event Collector)
  • Datadog — 通过 Log Forwarding API
  • Elastic / ELK — 通过 Elasticsearch bulk API
  • AWS CloudWatch — 适用于 VPC 部署
  • Azure Monitor — 通过 Log Analytics 工作区
  • 自定义 Webhook — 任意 HTTPS 端点,JSON 负载,HMAC 签名

审批工作流

企业级质量门禁支持多级审批链。可按环境和操作类型配置审批要求:

示例:多级审批策略json
{
  "approval_policy": {
    "production": {
      "prompt_execution": {
        "required_approvals": 2,
        "approver_roles": ["Reviewer", "Project Admin"],
        "auto_reject_after_hours": 48,
        "require_diff_review": true
      },
      "git_push": {
        "required_approvals": 1,
        "approver_roles": ["Project Admin", "Org Admin"]
      },
      "destructive_commands": {
        "required_approvals": 2,
        "approver_roles": ["Org Admin", "Security Officer"],
        "notify": ["#security-alerts"]
      }
    },
    "staging": {
      "prompt_execution": {
        "required_approvals": 1,
        "approver_roles": ["Reviewer", "Developer"],
        "auto_approve_after_hours": 24
      }
    }
  }
}

数据保留策略

配置不同类型数据的保留时长,在满足合规要求的同时控制存储成本:

  • 审计日志 — 最短 1 年,最长可配置至 7 年(SOC 2、HIPAA 要求)
  • 执行日志 — 默认 90 天,可配置
  • Prompt 历史 — 默认 1 年,可配置
  • Git diff — 永久保留(与提交关联)
  • 会话录制 — 默认 30 天,可配置
  • 自动清除 — 保留期届满后,数据将被安全删除

成本管理与预算

企业级成本管理让财务和工程负责人能够全面掌握并控制整个组织的 AI 支出。

预算控制

控制项范围说明
月度预算上限组织 / 项目 / 团队硬性支出上限。达到预算后将暂停执行。
Token 配额每用户 / 每项目每个计费周期内的最大 token 数(输入 + 输出)。
告警阈值组织 / 项目在预算达到 50%、75%、90% 和 100% 时发送邮件/Slack 通知。
成本分摊标签每项目按部门、成本中心或客户标记支出,用于内部分摊。
速率限制每用户 / 每角色限制每小时/每天的 prompt 数量,防止成本失控。
执行时间限制每项目 / 每环境每个 prompt 的最长执行时间(默认:30 分钟,可配置)。

用量仪表盘

专属的企业分析仪表盘提供:

  • 跨所有项目和团队的实时 token 用量
  • 按项目、用户、团队和环境划分的成本明细
  • 带月度/季度报告的历史趋势分析
  • 导出为 CSV/PDF,用于财务报告
  • API 成本归因(哪个 LLM 提供商、模型和层级)
  • 基于用量趋势的预测

企业集成

将 Orquesta 连接到您的团队已在使用的工具。企业集成超越标准 webhook, 提供深度的双向集成。

集成方向功能
Slack双向现已可用:/orquesta 和 @提及 可提交 prompt,agent 在对话串中回复。对话串中的审批按钮已列入路线图。
Microsoft Teams双向路线图:与 Slack 形式相同 — 通知、prompt 提交、通过自适应卡片进行审批工作流
Jira双向将 prompt 关联到工单,执行时自动更新工单状态,从失败的执行创建 issue
Linear双向同步 issue,将提交关联到任务,部署成功后自动关闭
GitHub Enterprise双向通过 prompt 创建 PR、提交追踪、状态检查、代码审查集成
GitLab双向创建 MR、触发流水线、提交追踪、代码审查
PagerDuty出站在执行失败、安全告警、agent 断开时触发事件
ServiceNow双向变更请求集成:prompt 创建变更请求,审批结果回流
Datadog / New Relic出站自定义指标:执行时间、成功率、token 用量、agent 健康状况
Terraform / Pulumi出站通过 prompt 触发基础设施变更,并设置审批关卡
自定义 Webhook出站适用于任意事件类型的 HMAC 签名 JSON 负载,可配置重试策略

Webhook 系统

企业 webhook 系统支持任意 HTTPS 端点,可配置事件、重试策略和 HMAC 签名验证:

Webhook 配置json
{
  "url": "https://your-service.com/webhooks/orquesta",
  "secret": "whsec_...",
  "events": [
    "prompt.submitted",
    "prompt.approved",
    "prompt.executed",
    "prompt.failed",
    "agent.connected",
    "agent.disconnected",
    "security.alert",
    "budget.threshold"
  ],
  "retry_policy": {
    "max_retries": 5,
    "backoff": "exponential",
    "timeout_ms": 30000
  },
  "headers": {
    "X-Custom-Header": "value"
  }
}

SLA 与支持等级

企业客户可获得高级支持,包括有保障的响应时间和专属客户成功团队。

项目ProMaxEnterprise
可用性 SLA99%99.5%99.9%
支持渠道邮件邮件 + 聊天邮件 + 聊天 + 电话 + Slack Connect
响应时间(严重)24h8h1h
响应时间(高)48h24h4h
响应时间(普通)5 天48h24h
专属 CSM——指定 CSM
季度业务回顾——包含
定制培训——最多 8 小时入门培训
架构评审——年度评审
状态页面公开公开私有 + 公开
事件复盘—摘要含 RCA 的详细报告

Slack Connect

企业客户可获得与 Orquesta 工程团队共享的 Slack Connect 频道。直接联系打造产品的团队, 以便快速解决问题、提出功能需求并获得架构指导。

合规与认证

Orquesta 致力于满足最高的安全与合规标准。以下是我们当前的合规状况和认证路线图。

当前合规状况

标准状态说明
SOC 2 Type II已认证每年审计,涵盖安全性、可用性和保密性信任服务标准。报告可在签署 NDA 后提供。
GDPR合规完全符合欧盟数据保护要求。提供 DPA。提供欧盟数据驻留选项。支持删除权、数据可携带权和处理记录。
CCPA / CPRA合规加州消费者隐私权。已建立数据删除和退出机制。
HIPAA就绪可为医疗行业客户提供 BAA。已具备 PHI 处理流程、加密要求和访问控制。
OWASP Top 10合规应用安全已按 OWASP Top 10 测试。由第三方机构定期进行渗透测试。
加密AES-256 / TLS 1.3数据在静态时 (AES-256) 和传输中 (TLS 1.3) 均加密。密钥管理通过 AWS KMS / GCP Cloud KMS。

认证路线图

以下认证已列入企业合规路线图,正在规划或进行中:

认证时间线说明
ISO 270012026 年第四季度信息安全管理体系 (ISMS) 国际标准。涵盖风险评估、安全控制和持续改进。许多欧洲和亚洲企业都有此要求。
ISO 270172027 年第一季度针对云的安全控制。是面向云服务提供商的 ISO 27001 扩展。涵盖责任共担、虚拟机安全和云数据隔离。
ISO 270182027 年第一季度公有云中个人身份信息 (PII) 的保护。涉及云环境中的同意、透明度和数据主体权利。
SOC 2 Type II + SOC 32027 年第二季度SOC 3 是 SOC 2 的公开版本。无需 NDA 即可分享合规状态。适合采购团队进行初步尽职调查。
FedRAMP2027 年第三季度联邦风险与授权管理计划。向美国联邦政府机构销售的必要条件。涵盖基于 NIST 800-53 的 325+ 项安全控制。
StateRAMP2027 年第四季度面向美国州和地方政府的州级 FedRAMP 版本。与 NIST 800-53 保持一致,但授权流程不同。
CSA STAR Level 22028 年第一季度云安全联盟 STAR 认证。使用云控制矩阵 (CCM) 对云安全控制进行第三方审计。以 ISO 27001 为基础。
NIST AI RMF2028 年第二季度NIST AI 风险管理框架。针对 AI 特有风险:偏见、透明度、问责制和稳健性。受监管行业对 AI 工具的要求日益增多。
ISO 420012028 年第三季度首个 AI 管理体系国际标准。涵盖负责任的 AI 开发、风险管理和治理。尽早采用可向企业买家展示成熟度。
PCI DSS按需提供支付卡行业数据安全标准。若 Orquesta 处理、存储或传输持卡人数据则必须符合。可在专用基础设施上为金融科技客户提供。
HITRUST CSF按需提供Health Information Trust Alliance。在 HIPAA 基础上增加了面向医疗行业的规范性控制。获得主要医疗系统和支付方认可。

安全实践

  • 渗透测试 — 每年由第三方进行渗透测试。结果可在签署 NDA 后提供。
  • 漏洞赏金计划 — 面向安全研究人员的负责任披露计划。
  • 依赖扫描 — 每次构建都通过 Snyk/Dependabot 自动进行 CVE 扫描。
  • 静态分析 — SAST 工具已集成到 CI/CD 流水线中。
  • 密钥检测 — 通过 pre-commit 钩子和 CI 检查防止密钥泄露。
  • 员工安全 — 背景调查、安全培训、最小权限访问、基础设施使用硬件密钥。
  • 事件响应 — 有文档化的 IR 计划,P1 事件 1 小时内确认。72 小时内完成复盘。
  • 供应商管理 — 所有子处理方均经过安全状况评估。与所有供应商均已签署 DPA。

信任中心

请访问 getorquesta.com/trust 查看我们的公开信任中心,其中包括:

  • 实时系统状态和可用性历史
  • 安全白皮书(可下载 PDF)
  • SOC 2 报告申请表
  • DPA(数据处理协议)模板
  • 子处理方列表
  • 渗透测试摘要
  • 负责任披露 / 漏洞赏金政策

企业入门引导

每位企业客户都将获得结构化的入门引导体验,确保快速实现价值,并在各团队中成功推广。

入门时间线

第 1 周

调研与设置

  • 与您的 CSM 召开启动会
  • SSO / IdP 配置
  • 安全评审与 DPA 签署
  • 初始项目和团队结构设置
第 2 周

配置与集成

  • 配置 RBAC 角色和权限
  • 连接集成(Slack、Jira、GitHub)
  • 定义 CLAUDE.md 编码规范
  • 设置质量门禁和审批工作流
第 3 周

试点与培训

  • 试点团队(5-10 名开发者)开始使用 Orquesta
  • 面向开发者的实时培训课程
  • 面向项目负责人的管理员培训
  • 收集反馈并进行调整
第 4 周

推广与优化

  • 全团队推广
  • 配置预算和成本控制
  • 建立性能基线
  • 安排首次季度业务回顾

企业评估

我们提供为期 30 天、可使用全部功能的企业试点。试点包括:

  • 完整的 Enterprise 功能集(SSO、RBAC、审计、集成)
  • 试点期间最多 25 名用户
  • 与 Orquesta 团队的专属 Slack Connect 频道
  • 两次 1 小时的入门培训
  • 预先填写的安全问卷
  • 针对您特定工作流的定制概念验证

注意

准备好为您的组织评估 Orquesta 了吗?请联系 oscar@getorquesta.com,或 访问 getorquesta.com/enterprise,与我们的团队预约个性化演示。

Orquesta 文档 — 最后更新于 2026 年 3 月

返回首页