跳到主要内容Skip to main content
← Frameworks

OpenHands Agent CanvasOpenHands Agent Canvas

OpenHands(All-Hands-AI)
TypeScriptTypeScript PythonPython 开源Open source MITMIT 自托管Self-hosted 平台型Platform WebUIWebUI 调度层Scheduling layer ACPACP 沙箱Sandbox 定时任务Scheduled tasks webhookwebhook 多后端Multiple backends partial lifecycle: active 核验Checked 2026-10-23

它是个自托管的 agent 控制中心。官方 README 现在管它叫 Agent Canvas。

它带的是一整套栈:Web GUI、Terminal UI、CLI、REST API 都在里面。 它管的 agent 不止自家那一个。Codex、Claude Code、Gemini 都能挂上去跑。

官方定位原文:The self-hosted developer control center for coding agents and automations. Run OpenHands, Claude Code, Codex, Gemini, or any ACP-compatible agent across local, remote, and cloud backends.

It is a self-hosted control centre for agents — the official README now calls it Agent Canvas.

It ships as a whole stack: a web GUI, a terminal UI, a CLI and a REST API all live in it. And it drives more than its own agent — Codex, Claude Code and Gemini can all run on top of it.

Official positioning: The self-hosted developer control center for coding agents and automations. Run OpenHands, Claude Code, Codex, Gemini, or any ACP-compatible agent across local, remote, and cloud backends.

适合与不适合When to use it, when not to

适合:agent 要放自己服务器 7×24 跑;需要定时/webhook 触发(Slack / GitHub / Linear / Notion); 想一个界面统管 Codex / Claude Code / Gemini 等多种 agent;需要 per-conversation 容器隔离; 前端与运行时分离部署。

不适合:只想把 agent 嵌进自己的 Python 进程(用 software-agent-sdk 或 OpenAI Agents SDK); 单机临时用一下(它是一整套栈)。需要细粒度多用户权限的也不行。RBAC / SSO 仅 Enterprise,OSS 档单用户。

What it is good for:

  • Running agents 7×24 on your own server
  • Scheduled or webhook triggers (Slack / GitHub / Linear / Notion)
  • Managing several agents from one interface, including ACP-compatible ones such as Codex, Claude Code and Gemini
  • Per-conversation container isolation
  • Deploying the front end separately from the agent runtime
  • Long sessions that need the official condenser to hold down context cost

What it is not for:

  • Embedding an agent into your own Python process — use software-agent-sdk or OpenAI Agents SDK for that
  • A one-off job on a single machine — it is a whole stack, not a library
  • Multi-user, fine-grained permissions — the official comparison table puts Multi-user RBAC in Enterprise, so OSS self-hosting has a single key only

中文生态China availability 国产 / 国内可直接用 / 备案状态 · 快照domestic / direct access / CAC filing · snapshot 2026-10-20

出品属地Origin
国外出品foreign-made 国外主体(网信办公示名单未见对应备案主体)。foreign entity (no matching filing entity in the CAC registry).
国内使用Direct access
大陆可直连direct OK 官网直连实测 200。official site measured 200 direct.
备案状态CAC filing
未见于备案名单not in filing list:未见于网信办公示名单(2026-10-20 检索 13 批附件,https://www.cac.gov.cn/2024-04/02/c_1713729983803145.htm);该产品未面向大陆公众提供服务,备案不适用。not in the CAC public registry (13 batch attachments searched 2026-10-20, https://www.cac.gov.cn/2024-04/02/c_1713729983803145.htm); the product does not serve the mainland public, so filing does not apply.

备案信息以网信办《生成式人工智能服务已备案信息》公示名单为准(按批次滚动更新,本站只抄编号不解读);「大陆可直连」是本站从大陆网络直连实测的结果,不是厂商承诺。GitHub 类站点当日实测有波动,口径写在依据里。Filing status is quoted from the CAC public registry (updated batch by batch; this site copies the number and does not interpret it). "Direct access" is this site's own reachability measurement from a mainland network, not a vendor promise. GitHub-hosted sites fluctuated on the measurement day — the note says so.

固定坐标系Fixed coordinate system

8 个维度dimensions, 与同分区其他对象逐项可比each comparable item by item against others in the same section.

模型与开放条件Model & openness

官方口径:任何 LiteLLM 支持的模型都能接,它自己带 LiteLLM 网关层(已核验)。

已验证可用的 provider(Basic 设置下拉里能选):

  • OpenHands provider
  • Anthropic
  • OpenAI
  • Mistral AI

Custom Model 怎么写:用 provider 前缀指定,遵循 LiteLLM 的 provider 规范; 另有 Base URL 可自定义,本地与自托管模型由此接入。 官方说保存 local LLM profile 时会先向后端校验。

LLM profiles:最多 10 套配置并存。可在会话中或 /model 切换。 也可由内置 SwitchLLMTool 让 agent 动态选型。

⚠ 两处官方未给出。一是完整 provider 名单。二是「any LLM」的对齐度数据。 即它在工具调用与 structured output 上是否对齐。核验范围:llm-settings 页。

这一项对该对象尤其重要:它同时是别人的调度层。 「Codex / Claude Code 跑在它上面」这一情况比较特殊。能用哪些模型由那个 agent 决定。

官方 LLM settings 页原文:"This can be any model that is supported by litellm"

Official position: any model LiteLLM supports can connect, and it ships its own LiteLLM gateway layer (verified).

Providers verified working (selectable in the Basic settings dropdown):

  • OpenHands provider
  • Anthropic
  • OpenAI
  • Mistral AI

How to write a Custom Model: specify a provider prefix following LiteLLM's provider conventions; there is also a customizable Base URL, through which local and self-hosted models connect. The official docs say saving a local LLM profile first validates against the backend.

LLM profiles: up to 10 configurations coexist. Switch mid-session or via /model. The built-in SwitchLLMTool also lets the agent choose dynamically.

⚠ Two things the official docs do not give. One: a complete provider list. Two: alignment data for "any LLM" — i.e. whether tool calling and structured output align. Verification scope: the llm-settings page.

This item matters especially for this object: it is simultaneously other agents' scheduling layer. "Codex / Claude Code run on top of it" is a special case — which models are usable is decided by that agent.

Official LLM settings page, verbatim: "This can be any model that is supported by litellm"

运行位置Where it runs

它有四种官方部署形态。这是本对象最有实用价值的部分。README 四个 Option 全核验。

  • Option 1 无沙箱本地跑:npm install -g @openhands/agent-canvas 然后 agent-canvas,起完整本地栈,要 Node.js 24+ 与 uv; 可用 --frontend-only / --backend-only 拆开跑
  • Option 2 Docker 沙箱:docker run 官方镜像, 需预先准备 PROJECTS_PATH 宿主目录,agent 可访问该目录下的项目
  • Option 3 每会话独立容器:OH_CONVERSATION_RUNTIME=docker agent-canvas, 每次新会话起自己的容器与 Agent Server,适合并发跑多个 agent
  • Option 4 从源码跑:clone + npm install + npm run dev

入口地址:http://localhost:8000(Docker 镜像是 /canvas)。

后端可以远程切换,这是它作为调度层的核心能力:官方说 Agent Server 可跑在笔记本 / Mac Mini / 云上 VM / OpenHands Cloud, Canvas 前端可以在多个 Server 之间切换。

关于 Option 3 的官方说明。容器会挂载会话的 workspace 与持久化状态。 容器替换后文件与对话历史仍在。

It has four official deployment forms — the most practically valuable part of this object. All four README Options verified.

  • Option 1 local without sandbox: npm install -g @openhands/agent-canvas then agent-canvas, starts the full local stack, requires Node.js 24+ and uv; --frontend-only / --backend-only split it apart
  • Option 2 Docker sandbox: docker run the official image, requires preparing a PROJECTS_PATH host directory beforehand; the agent can access projects under it
  • Option 3 per-conversation containers: OH_CONVERSATION_RUNTIME=docker agent-canvas, each new conversation starts its own container and Agent Server — good for running multiple agents concurrently
  • Option 4 from source: clone + npm install + npm run dev

Entry URL: http://localhost:8000 (the Docker image serves /canvas).

Backends can be switched remotely — the core capability of its scheduling layer: officially the Agent Server can run on a laptop / Mac Mini / cloud VM / OpenHands Cloud, and the Canvas frontend switches between multiple Servers.

On Option 3 the official docs note containers mount the conversation's workspace and persisted state. Files and conversation history survive container replacement.

本地文件Local files

本地文件能碰多少,取决于你选哪种部署形态 —— 官方把这个变量讲得很清楚。

  • 无沙箱形态:agent 对文件系统有全量访问权限,官方两次打 WARNING
  • Docker 形态:访问范围收敛到 PROJECTS_PATH 挂载的目录
  • 每会话容器形态:官方提示共享同一宿主工作区的会话仍会共用同一批文件, 建议用独立目录或 worktree 避免冲突编辑
  • 后端远程时(云上 VM / Cloud backend):agent 在远端 workspace 里跑, SDK 用 Workspace(host=..., working_dir="workspace/project") 指定远端工作目录, 文件与命令操作都在服务端执行

官方未说明「把本地仓库自动同步到远程后端」的机制(已查 agent-server 与 runtime 页)—— 仓库需先位于远端,或自行搬运。

官方 WARNING 原文:"This runs the agent-server directly on the machine you're installing on — the agent will have full access to your filesystem!"

How much of the local file system is reachable depends on which deployment form you choose — the official docs make this variable explicit.

  • No-sandbox form: the agent has full file-system access; the official docs WARNING twice
  • Docker form: access narrows to the directory mounted at PROJECTS_PATH
  • Per-conversation container form: the official docs caution that conversations sharing the same host workspace still share the same files; use separate directories or worktrees to avoid conflicting edits
  • When the backend is remote (cloud VM / Cloud backend): the agent runs in a remote workspace; the SDK specifies the remote working directory with Workspace(host=..., working_dir="workspace/project"); file and command operations execute server-side

The official docs do not describe a mechanism for "auto-syncing a local repo to a remote backend" (agent-server and runtime pages checked) — the repo must already live remotely, or be moved by you.

Official WARNING, verbatim: "This runs the agent-server directly on the machine you're installing on — the agent will have full access to your filesystem!"

关机后的任务Tasks after shutdown

后台任务是它最突出的强项,也是它与其他 harness 站对象最大的差别。

把 agent 跑在云上服务器的最大好处有两个。一是关掉笔记本它还在跑。 二是更容易被第三方服务触发。比如 Slack、GitHub 或 Datadog。

配套是独立仓 OpenHands/automation,提供两种触发方式:

  • 定时(schedule)
  • webhook 事件

官方特性表列了可集成的第三方。它们是 Slack、GitHub、Linear 与 Notion。

对比本站其余对象:OpenAI Agents SDK、Deep Agents、Codex SDK 的 thread 状态 都在自己进程 / 自己机器上,关了就没了。 把「关掉笔记本后 agent 仍在跑」当卖点做的,只有这一个。

官方 README 原文:it "allows your agents to continue running even when your laptop is shut"

同一页亦点名 Slack、GitHub、Datadog 是更容易接入的触发渠道。

核验 OpenHands/automation(2026-10-01):Python,MIT,32★,活跃。

Background tasks are its most prominent strength and its biggest difference from other harness entries.

The two biggest benefits of running agents on a cloud server: they keep running when you close the laptop, and they are easier to trigger from third-party services like Slack, GitHub, or Datadog.

The companion is the standalone repo OpenHands/automation, offering two trigger modes:

  • schedules
  • webhook events

The official feature table lists integrable third parties: Slack, GitHub, Linear, and Notion.

Compared with our other objects: OpenAI Agents SDK, Deep Agents, and Codex SDK keep thread state in their own process / own machine — gone when closed. Only this one markets "the agent keeps running after you close the laptop".

Official README, verbatim: it "allows your agents to continue running even when your laptop is shut"

The same page names Slack, GitHub, and Datadog as easier trigger channels.

Verified OpenHands/automation (2026-10-01): Python, MIT, 32★, active.

工具与扩展Tools & extensions

它有两条接入线:自身工具集 + MCP;另有 ACP 用来调度第三方 agent。

① 自带 agent(CodeAct / software-agent-sdk)的默认工具集, 官方 start-conversation API 示例列出:

  • terminal
  • file_editor
  • task_tracker
  • browser_tool_set(cli_mode 可关掉浏览器工具)

② MCP 支持已核验,官方有 MCP Servers 专页:

  • CLI 用 openhands mcp,Canvas 用 Customize > MCP Servers
  • 传输覆盖 http / sse / stdio
  • 认证支持 Bearer / API Key / OAuth
  • SDK 侧由 mcp_config(FastMCP 格式)注入 mcpServers

③ 通过 ACP(Agent Client Protocol) 调度第三方 agent (Claude Code、Codex、Gemini 等)。

⚠ 修正上一版档案:本对象并非只走 ACP —— MCP 同样是官方能力。

It has two access lines: its own toolset + MCP; plus ACP for scheduling third-party agents.

① The default toolset of its own agent (CodeAct / software-agent-sdk), listed in the official start-conversation API example:

  • terminal
  • file_editor
  • task_tracker
  • browser_tool_set (cli_mode can disable browser tools)

② MCP support verified, with an official MCP Servers page:

  • CLI uses openhands mcp; Canvas uses Customize > MCP Servers
  • Transports cover http / sse / stdio
  • Auth supports Bearer / API Key / OAuth
  • On the SDK side, mcp_config (FastMCP format) injects mcpServers

③ Third-party agents (Claude Code, Codex, Gemini, etc.) are scheduled via ACP (Agent Client Protocol).

⚠ Correction to the previous version of this dossier: this object does not go ACP-only — MCP is equally an official capability.

上下文与记忆Context & memory

上下文这一点,官方有明确机制:context condenser。本维度证据已补齐。

默认实现是 LLMSummarizingCondenser(继承 RollingCondenser), 参数 max_size / keep_first。它超阈值时保留最近的消息不动,只摘要较早的内容。

Canvas 侧的入口在 Settings > Condenser; LLM settings 页有 "Enable memory condensation" 与 "Memory condenser max history size" 两个开关。

官方还说明。配了 condenser 之后,超窗改为发 condensation 请求事件。 而不再抛 LLMContextWindowExceedError。agent 摘要旧历史后继续。

⚠ 按本站「状态 ≠ 上下文」的口径。run history 与容器可替换后的持久化属于状态侧。 上面的 condenser 才是上下文侧的官方手段。两者分开算。

官方 SDK 指南原文:context condenser "intelligently summarizing older parts of the conversation while preserving essential information"; 超阈值时 "Keeps recent messages intact"、"Summarizes older content"。

On context, the official docs have an explicit mechanism: the context condenser. Evidence for this dimension is complete.

The default implementation is LLMSummarizingCondenser (extends RollingCondenser), with parameters max_size / keep_first. Over threshold it keeps recent messages intact and only summarizes older content.

On the Canvas side the entry is Settings > Condenser; the LLM settings page has "Enable memory condensation" and "Memory condenser max history size" toggles.

The official docs also explain: with a condenser configured, exceeding the window emits a condensation-request event instead of throwing LLMContextWindowExceedError. The agent summarizes old history and continues.

⚠ Per our "state ≠ context" framing: run history and persistence across container replacement belong to the state side. The condenser above is the official context-side mechanism. Count them separately.

Official SDK guide, verbatim: the context condenser "intelligently summarizing older parts of the conversation while preserving essential information"; over threshold it "Keeps recent messages intact", "Summarizes older content".

权限与限制Permissions & limits

这一块官方做得最细,也是最需要认真读的部分。

沙箱:官方给了两种收敛手段(见 local_files)。一是 Docker 沙箱,二是每会话独立容器。 但官方同时明确提供无沙箱形态,并两次挂 WARNING。

认证用的是 API key,不是用户体系:

  • 生成 key:openssl rand -base64 32,赋给 LOCAL_BACKEND_API_KEY
  • --public 模式下 key 不烘进前端,用户首次打开 UI 要手动粘贴 key 才能用; 之后每个 /api/* 请求都要带 X-Session-API-Key 头
  • 默认绑定 loopback-only(127.0.0.1)。官方说明这是为了让自动注入的 session key 不被局域网其他机器拿到
  • 要监听 0.0.0.0 时 key 不再注入,改用同样的 API-key 输入界面
  • 官方提醒用 export 而不是命令行参数传 key, 避免出现在 ps aux 进程列表里
  • 暴露到公网时官方另有防火墙要求(Cloud Firewall / AWS Security Group / GCP firewall rule)

⚠ 多用户与权限分级,官方把这一档划给 Enterprise。 官方部署对比表明示 Open Source 档「Users = 1」, Multi-user RBAC 与 SSO/SAML 只有 Enterprise 有(OSS 栏为「—」)。

因此 OSS 自托管不含用户 / 角色 / 审计体系。上面那把会话 key 就是全部。 需要多用户分级与审计,须上 Enterprise。

docs/SELF_HOSTING.md(核验 286 行)给的就是这套 API key 机制。

核验:已查 enterprise 页与部署对比表。

This is where the official docs are most thorough — and the part that most deserves careful reading.

Sandbox: the official docs give two containment measures (see local_files): the Docker sandbox and per-conversation containers. But the official docs also explicitly offer the no-sandbox form, WARNING twice.

Authentication uses an API key, not a user system:

  • generate a key: openssl rand -base64 32, assign to LOCAL_BACKEND_API_KEY
  • in --public mode the key is not baked into the frontend; users must paste the key manually on first UI open; afterwards every /api/* request carries the X-Session-API-Key header
  • loopback-only binding by default (127.0.0.1). The official rationale: keep the auto-injected session key from being reachable by other machines on the LAN
  • when listening on 0.0.0.0 the key is no longer injected; the same API-key input UI is used instead
  • the official docs advise export over command-line arguments for the key, to keep it out of ps aux process listings
  • exposing to the public internet carries official firewall requirements (Cloud Firewall / AWS Security Group / GCP firewall rule)

⚠ Multi-user and permission tiers are assigned by the official docs to Enterprise. The official deployment comparison table shows the Open Source tier "Users = 1"; Multi-user RBAC and SSO/SAML exist only in Enterprise (the OSS column reads "—").

So OSS self-hosting includes no user/role/audit system — that session key is all there is. Multi-user tiering and auditing require Enterprise.

docs/SELF_HOSTING.md (verified, 286 lines) covers exactly this API-key mechanism.

Verified: enterprise page and deployment comparison table checked.

适合什么任务Best for

能做的事:

  • 把 agent 放到自己服务器上 7×24 跑
  • 定时或 webhook 触发(Slack / GitHub / Linear / Notion)
  • 用一个界面统管多种 agent(含 Codex、Claude Code、Gemini 等 ACP 兼容的)
  • 需要 per-conversation 隔离容器
  • 团队里前端 / 平台与 agent 运行时分离部署
  • 长会话需要官方 condenser 控制上下文成本

不适合做的事:

  • 只想要一个轻量库,把 agent 嵌进自己的 Python 进程 (那种需求请用 software-agent-sdk 或 OpenAI Agents SDK)
  • 单机临时用一下 —— 它是一整套栈,不是库
  • 需要多用户与细粒度权限分级 —— 官方把 Multi-user RBAC 划给 Enterprise, OSS 自托管只有单 key

What it can do:

  • Put agents on your own server running 7×24
  • Trigger by schedule or webhook (Slack / GitHub / Linear / Notion)
  • Manage multiple agent kinds from one UI (including ACP-compatible Codex, Claude Code, Gemini)
  • You need per-conversation isolated containers
  • Your team deploys frontend/platform separately from the agent runtime
  • Long sessions need the official condenser to control context cost

What it is not for:

  • You just want a lightweight library to embed agents in your own Python process (use software-agent-sdk or OpenAI Agents SDK for that need)
  • Ad-hoc single-machine use — it is a whole stack, not a library
  • You need multi-user fine-grained permission tiers — the official docs assign Multi-user RBAC to Enterprise; OSS self-hosting has a single key only

头号误解Top misconception

  • 以为是 Python SDK —— 主仓是 TypeScript 的 Web 控制中心;编程入口在 OpenHands/software-agent-sdk(另 1,190★)Assuming it is a Python SDK — the main repo is a TypeScript web control centre; the programming entry point is OpenHands/software-agent-sdk (a further 1,190★)
  • 看仓库名与 description 以为是「AI 驱动的软件开发工具」 —— README 首屏标题已是 Agent Canvas,定位是控制中心Judging by the repo name and description that it is an "AI-driven software development tool" — the README's front-page title is now Agent Canvas, and the positioning is a control centre
  • 以为它是 Codex SDK / Claude Agent SDK 的竞品 —— 它是它们的调度层(README 明确说能跑这些 agent)Assuming it competes with Codex SDK / Claude Agent SDK — it is their orchestration layer (the README says it can run those agents)
  • 直接跑 Option 1 就上线 —— 官方在该选项上打 WARNING:agent 对你的文件系统有全量访问权限Going straight to Option 1 in production — the official docs put a WARNING on that option: the agent has full access to your filesystem
  • 把 --public 模式理解成「更方便」—— 它是不把 key 烘进前端的防护手段,用于非本机访问Reading --public mode as "more convenient" — it is the safeguard that keeps the key out of the front end, meant for non-local access
  • 以为「有 run history」就等于「有上下文管理」—— 前者是状态;后者有独立机制(LLMSummarizingCondenser / RollingCondenser)Assuming "has run history" means "has context management" — the former is state; the latter has its own mechanism (LLMSummarizingCondenser / RollingCondenser)
  • 以为它只用 ACP、不支持 MCP —— 官方 MCP Servers 专页写明 CLI 与 Canvas 均可配(http / sse / stdio + Bearer / API Key / OAuth);ACP 是调度第三方 agent 的另一条线Assuming it uses ACP only and does not support MCP — the MCP Servers page says both the CLI and the Canvas can configure it (http / sse / stdio plus Bearer / API Key / OAuth); ACP is the separate line for orchestrating third-party agents

未知项清单Known unknowns

  • 「any LLM」的 provider 能力对齐度(清单已核:原文 "any model that is supported by litellm")
  • 对话上下文压缩的端到端效果(机制已有官方 condenser,压缩率待实测)
  • OSS 档多用户方式(正式 RBAC / SSO 在 Enterprise,OSS 默认单用户)
  • ACP 与 MCP 的定位差异(两者都可用;边界官方未系统对比)
  • Enterprise 档的具体内容(官方仅标 Custom pricing / Contact Us;报价按本站的报价记录约定本站不采)
  • Individual 每日 10 轮之外,超出后的行为(停用 / 提示升级 / 其它,官方页未写)
  • 后端远程部署时本地代码库的同步机制
  • software-agent-sdk 的 API 形态与版本独立节奏
  • 每会话容器在并发压测下的资源与稳定性
  • Provider capability alignment of "any LLM" (list verified: verbatim "any model that is supported by litellm")
  • End-to-end effect of conversation-context compression (official condenser exists; compression ratio awaits testing)
  • Multi-user arrangements in the OSS tier (formal RBAC / SSO in Enterprise; OSS defaults to single user)
  • The positioning difference between ACP and MCP (both usable; the boundary is not systematically compared officially)
  • The concrete contents of the Enterprise tier (official docs only mark Custom pricing / Contact Us; quotes not recorded per D9)
  • Behavior beyond Individual's daily 10 conversations (disabled / upgrade prompt / other — not written on the official page)
  • The sync mechanism for local codebases when the backend is deployed remotely
  • The API shape and independent versioning cadence of software-agent-sdk
  • Resource usage and stability of per-conversation containers under concurrency stress

证据来源Evidence sources

判断可回到以下一手源复核。本站核验日Every judgement can be rechecked against the primary sources below. Verified on 2026-10-23,内容更新日content updated on 2026-10-01。

类型Type名称Name链接Link
repoOpenHands/OpenHands · 仓库(Agent Canvas 控制中心,91,593★,MIT,滚动核验 2026-10-23)OpenHands/OpenHands · repository (Agent Canvas control center, 91,593★, MIT, rolling verification 2026-10-23)https://github.com/OpenHands/OpenHands
docs主README(Agent Canvas 定位、四种部署形态、ACP 接入、Repository boundaries 表)Main README (Agent Canvas positioning, four deployment forms, ACP access, Repository boundaries table)https://github.com/OpenHands/OpenHands/blob/main/README.md
docsdocs/SELF_HOSTING.md(API key、--public 模式、loopback 默认、防火墙要求)docs/SELF_HOSTING.md (API key, --public mode, loopback default, firewall requirements)https://github.com/OpenHands/OpenHands/blob/main/docs/SELF_HOSTING.md
pricing官方定价页(核验 2026-10-01:Open Source 与 Cloud Individual 均为免费档、Enterprise 定制;Individual Max Daily Conversations = 10 而 Open Source 为 Unlimited;BYOK 与 "at cost, with no markup";Enterprise 可部署客户自有 VPC、SAML/SSO、RBAC、每用户无限并发)Official pricing page (verified 2026-10-01: Open Source and Cloud Individual both free tiers, Enterprise custom; Individual Max Daily Conversations = 10 while Open Source is Unlimited; BYOK and "at cost, with no markup"; Enterprise can deploy in the customer's own VPC, SAML/SSO, RBAC, unlimited per-user concurrency)https://www.all-hands.dev/pricing
repoOpenHands/software-agent-sdk · 仓库(Python SDK 与 Agent Server 的真实所在,1,190★,MIT)OpenHands/software-agent-sdk · repository (where the Python SDK and Agent Server actually live, 1,190★, MIT)https://github.com/OpenHands/software-agent-sdk
repoOpenHands/automation · 仓库(定时与 webhook 分发,32★,MIT)OpenHands/automation · repository (schedule and webhook dispatch, 32★, MIT)https://github.com/OpenHands/automation
changelogReleases(v1.31.0 @ 2026-10-22)Releases (v1.31.0 @ 2026-10-22)https://github.com/OpenHands/OpenHands/releases
docs官方文档 · LLM settings / LLM profiles(any model supported by litellm、已验证 provider、最多 10 profiles、memory condensation,核验 2026-10-08)Official docs · LLM settings / LLM profiles (any model supported by litellm, verified providers, up to 10 profiles, memory condensation, verified 2026-10-08)https://docs.openhands.dev/openhands/usage/settings/llm-settings
docs官方文档 · Context Condenser(SDK 指南:LLMSummarizingCondenser / RollingCondenser,核验 2026-10-08)Official docs · Context Condenser (SDK guide: LLMSummarizingCondenser / RollingCondenser, verified 2026-10-08)https://docs.openhands.dev/sdk/guides/context-condenser
docs官方文档 · Runtime Architecture(Docker 沙箱、volume mounts、RemoteRuntime,核验 2026-10-08)Official docs · Runtime Architecture (Docker sandbox, volume mounts, RemoteRuntime, verified 2026-10-08)https://docs.openhands.dev/openhands/usage/architecture/runtime
docs官方文档 · MCP Servers(CLI/Canvas 配置、http/sse/stdio 传输与认证,核验 2026-10-08)Official docs · MCP Servers (CLI/Canvas configuration, http/sse/stdio transports and auth, verified 2026-10-08)https://docs.openhands.dev/openhands/usage/cli/mcp-servers
docs官方文档 · Agent Server Package(远程 workspace、working_dir、session API key,核验 2026-10-08)Official docs · Agent Server Package (remote workspace, working_dir, session API key, verified 2026-10-08)https://docs.openhands.dev/sdk/arch/agent-server
docs官方文档 · OpenHands Enterprise vs OSS 部署对比表(Multi-user RBAC / SSO-SAML 仅 Enterprise,OSS Users = 1,核验 2026-10-08)Official docs · OpenHands Enterprise vs OSS deployment comparison table (Multi-user RBAC / SSO-SAML only in Enterprise, OSS Users = 1, verified 2026-10-08)https://docs.openhands.dev/enterprise
docs官方文档 · ACP Agents(README 指向)Official docs · ACP Agents (pointed to by the README)https://docs.openhands.dev/openhands/usage/agent-canvas/acp-agents
reponpm 包@openhands/agent-canvas(README 安装入口)npm package @openhands/agent-canvas (the README's install entry)https://www.npmjs.com/package/@openhands/agent-canvas

实测记录Measured runs

本档未跑集成与性能实测;结论只覆盖 API 与官方文档披露的能力面。

实测建议(按本对象形态定制):

#测什么为什么值得测
1software-agent-sdk 单独用(不启 Canvas)能不能跑最小 agent决定你到底需不需要这一整套栈
2长任务(跨天)condenser 的压缩效果与成本变化机制已知(LLMSummarizingCondenser),压缩率需实测
3每会话容器模式的真实隔离强度(同宿主工作区会共用文件这条要实测)官方已提示冲突风险
4Docker 形态下 agent 能否绕过 PROJECTS_PATH 触达宿主其他路径沙箱有效性是选型前提
5挂 Claude Code / Codex 作为 ACP agent 的实际接入成本它最独特的卖点,值不值得取决于这个
6webhook 触发的幂等性与重复触发处理定时/webhook 是它的主打场景

This site has not completed measured runs. The test protocol is at protocols/framework/_protocol.md.

Suggested runs (tailored to this object's form):

#What to testWhy it is worth testing
1Can software-agent-sdk alone (no Canvas) run a minimal agentdecides whether you need the whole stack at all
2Condenser compression effect and cost change on long (multi-day) tasksmechanism known (LLMSummarizingCondenser); compression ratio needs testing
3Real isolation strength of per-conversation containers (the shared-host-workspace caveat needs testing)the official docs already flag the conflict risk
4In Docker form, can the agent escape PROJECTS_PATH to reach other host pathssandbox validity is a selection precondition
5Real onboarding cost of attaching Claude Code / Codex as ACP agentsits most unique selling point; worth it depends on this
6Idempotency and duplicate-trigger handling of webhook triggersschedules/webhooks are its flagship scenario

形态澄清:这不是 SDK,是平台,而且它在别人之上Form clarification: this is not an SDK, it is a platform — and it sits above others

本站三种编程底座形态里,它属于第 3 类 自带完整运行时, 而且是其中唯一带 Web UI 的一个。

三个容易踩的认知落差

① 主品牌已改成 Agent Canvas,但仓库名没变。

它现在的定位是 control center(控制中心)。它不再写作「一个开发工具」。 仓库 description 却还是老样子。

仓库 description 原文:"🙌 OpenHands: AI-Driven Development"; README 首屏标题已是 Agent Canvas。

② 它能跑的不只是 OpenHands 自己的 agent。

官方列了四种,并留了一个开放条件。

README 原文:"OpenHands, Claude Code, Codex, Gemini, or any ACP-compatible agent"

它不是本站收录的 Codex SDK 或 Claude Agent SDK 的竞品。它们是调度层与被调度者的关系。

所以选型问题是:要不要一个界面来统管 Codex / Claude Code / Gemini」。

③ 真正的编程入口在另一个仓。

下面是官方给出的三仓分工,来源是这张表:

官方有一张 Repository boundaries 表,本档逐字记录。
仓库职责核验(2026-10-01)
OpenHands/OpenHands前端控制中心、后端选择、本地栈编排91,593★ · MIT · TypeScript
OpenHands/software-agent-sdkPython SDK、Agent Server、agents、tools、conversations、workspaces、events1,190★ · MIT · Python
OpenHands/automation定时调度、webhook、run history、分发32★ · MIT · Python
⚠ 91,593★ 是控制中心的星数,不是 SDK 的星数。 如果你要的是「嵌进自己 Python 进程的 SDK」,那对象是 software-agent-sdk(1,190★), 不是本条目。 本站本次未单独收录它 —— 见下方实测建议第 1 条。

Among our three coding-base forms, it belongs to form 3, ships a complete runtime, and is the only one of those with a Web UI.

Three perception gaps that are easy to trip on

① The main brand is now Agent Canvas, but the repo name hasn't changed.

Its current positioning is a control center. It no longer writes itself as "a development tool". The repo description is still the old one.

Repo description, verbatim: "🙌 OpenHands: AI-Driven Development"; the README's first-screen title is already Agent Canvas.

② It runs more than OpenHands' own agent.

The official docs list four and leave an open condition.

README, verbatim: "OpenHands, Claude Code, Codex, Gemini, or any ACP-compatible agent"

It is not a competitor of the Codex SDK or Claude Agent SDK we list — they are in a scheduler/scheduled relationship.

So the selection question is not "this or Codex" but "do you want one UI to govern Codex / Claude Code / Gemini".

③ The real programming entry is in another repo.

The official three-repo division of labor, from this table:

The official docs have a Repository boundaries table; this dossier records it verbatim.
RepositoryResponsibilityVerified (2026-10-01)
OpenHands/OpenHandsfrontend control center, backend selection, local-stack orchestration91,593★ · MIT · TypeScript
OpenHands/software-agent-sdkPython SDK, Agent Server, agents, tools, conversations, workspaces, events1,190★ · MIT · Python
OpenHands/automationschedule dispatch, webhooks, run history, delivery32★ · MIT · Python
⚠ 91,593★ is the control center's star count, not the SDK's. If what you want is "an SDK embedded in your own Python process", that object is software-agent-sdk (1,190★), not this entry. We did not list it separately this time — see suggested run #1 below.

档位:三档里两档是免费档,但「免费」有个硬上限Tiers: two of three are free, but "free" has a hard cap

2026-10-01 核验官方定价页,结论可能与预期不同:没有「付费个人档」。 (报价按本站的报价记录约定不存,见官方定价页。)

档位部署用户每日对话
Open Source(免费)本地1Unlimited
SaaS Individual(免费)云端110
Enterprise(定制,Contact Us)SaaS 或客户自有 VPCUnlimitedUnlimited

① 最关键的一条落差:云端免费档每天只有 10 轮对话。

官方对比表同一栏:Open Source = Unlimited,Individual = 10,Enterprise = Unlimited。 「免费」不等于「不限量」。想不限量只有两条路:本地跑,或者上 Enterprise。

② Individual 支持自带 key(BYOK)。

没有 key 时可用 OpenHands LLM provider,可在 Settings > API 生成 API key, 供 CLI / Local Web UI / Software Agent SDK 使用。 官方强调它按成本价、零加价、按量付费。

官方没有公开实际单价表,只能确认官方声明不加价(本站按本站的报价记录约定也不存报价)。

官方 FAQ 原文:Open Source 与 Cloud 各档都支持自带 LLM key; 无 key 时走 OpenHands provider,官方强调 "at cost, with no markup"。

③ Individual 还有一批 OSS 档没有的东西。 它们包括云端访问(桌面 + 移动端)与 Cloud API(用于自动化与脚本)。 还有 Jira 与 Slack 集成、Secrets、组织支持。

④ Enterprise 实际是另一套东西,不是「多几个用户」:

  • 可部署在客户自有 VPC
  • Enterprise SAML/SSO、多用户 RBAC
  • 集中团队账单
  • 每用户无限并发会话
  • Large Codebase SDK
  • Named Customer Engineer + 共享 Slack 频道 + 优先支持

报价需联系销售。

The official pricing page verified 2026-10-01 leads to a conclusion that may differ from expectations: there is no paid individual tier. (Quotes not stored per our price-recording policy; see the official pricing page.)

TierDeploymentUsersDaily conversations
Open Source (free)local1Unlimited
SaaS Individual (free)cloud110
Enterprise (custom, Contact Us)SaaS or customer's own VPCUnlimitedUnlimited

① The most critical gap: the free cloud tier caps at 10 conversations per day.

The official comparison table's same column: Open Source = Unlimited, Individual = 10, Enterprise = Unlimited. "Free" does not mean "unlimited". Two roads to unlimited: run locally, or go Enterprise.

② Individual supports bring-your-own-key (BYOK).

Without a key you can use the OpenHands LLM provider; generate an API key under Settings > API for the CLI / Local Web UI / Software Agent SDK. The official docs stress it is at cost, zero markup, pay-as-you-go.

The official docs do not publish an actual unit-price table; only the no-markup claim is confirmable (we also store no quotes per D9).

Official FAQ, verbatim: all Open Source and Cloud tiers support bringing your own LLM key; without a key you go through the OpenHands provider, officially emphasized "at cost, with no markup".

③ Individual also has a batch of things the OSS tier lacks: cloud access (desktop + mobile) and the Cloud API (for automation and scripts), plus Jira and Slack integrations, Secrets, and organization support.

④ Enterprise is actually a different thing, not "a few more users":

  • deployable in the customer's own VPC
  • Enterprise SAML/SSO, multi-user RBAC
  • centralized team billing
  • unlimited concurrent sessions per user
  • Large Codebase SDK
  • Named Customer Engineer + shared Slack channel + priority support

Pricing requires contacting sales.

四种部署形态:这是本对象最实用的部分Four deployment forms: the most practical part of this object

四个 Option 全部核验:

核验来源:官方 README 的 Quickstart 四个 Option。
形态命令要点沙箱要Node 24+/uv?
① 无沙箱本地npm i -g @openhands/agent-canvas → agent-canvas❌ 无是
② Docker 沙箱docker run ... ghcr.io/openhands/agent-canvas:1.31.0✅收敛到 PROJECTS_PATH否
③ 每会话独立容器OH_CONVERSATION_RUNTIME=docker agent-canvas✅每会话隔离是 + Docker
④ 从源码clone → npm install → npm run dev❌ 无是

① 和 ④ 官方都挂了同一条 WARNING。

This runs the agent-server directly on the machine you're installing on — the agent will have full access to your filesystem!

③ 适合并发:每次新会话起自己的容器与 Agent Server。 官方特别说明容器会挂载会话的 workspace 与持久化状态。容器替换后文件与对话历史仍在。 这对本站关心的「可靠长期运行」是正面证据。

但官方也提醒:用同一宿主工作区的会话仍会共用同一批文件, 建议用独立目录或 worktree 避免冲突编辑。

All four Options verified:

Verification source: the official README Quickstart's four Options.
FormCommand essentialsSandboxNeeds Node 24+/uv?
① local without sandboxnpm i -g @openhands/agent-canvas → agent-canvas❌ noneyes
② Docker sandboxdocker run ... ghcr.io/openhands/agent-canvas:1.31.0✅ narrowed to PROJECTS_PATHno
③ per-conversation containersOH_CONVERSATION_RUNTIME=docker agent-canvas✅ per-conversation isolationyes + Docker
④ from sourceclone → npm install → npm run dev❌ noneyes

① and ④ carry the same WARNING officially.

This runs the agent-server directly on the machine you're installing on — the agent will have full access to your filesystem!

③ suits concurrency: each new conversation starts its own container and Agent Server. The official docs specifically note containers mount the conversation's workspace and persisted state. Files and conversation history survive container replacement. This is positive evidence for our "reliable long-running" concern.

But the official docs also caution: conversations using the same host workspace still share the same files — use separate directories or worktrees to avoid conflicting edits.

背景任务:这是它最突出的强项Background tasks: its most prominent strength

官方的说法很直接:

The most powerful way to run OpenHands is on a server in the cloud. This allows your agents to continue running even when your laptop is shut, and makes it easier to trigger your agents through third-party services like Slack, GitHub, and Datadog.

配套是独立仓 OpenHands/automation。它提供两种触发方式:定时与 webhook。 官方特性表列了可集成的第三方。它们是 Slack、GitHub、Linear、Notion。

对照本站其他对象:OpenAI Agents SDK 的 session、Codex SDK 的 thread 都活在你自己进程 / 自己机器上,关掉就没了。 把「关掉笔记本后 agent 仍在跑」当卖点做的,只有这个对象。

核验 OpenHands/automation(2026-10-01):Python · MIT · 32★ · 活跃。

The official wording is direct:

The most powerful way to run OpenHands is on a server in the cloud. This allows your agents to continue running even when your laptop is shut, and makes it easier to trigger your agents through third-party services like Slack, GitHub, and Datadog.

The companion is the standalone repo OpenHands/automation, offering two trigger modes: schedules and webhooks. The official feature table lists integrable third parties: Slack, GitHub, Linear, Notion.

Compared with our other objects: the OpenAI Agents SDK's session and the Codex SDK's thread live in your own process / own machine — gone when closed. Only this object markets "the agent keeps running after you close the laptop".

Verified OpenHands/automation (2026-10-01): Python · MIT · 32★ · active.

权限与安全:官方做得细,但你要选对形态Permissions and security: thorough officially, but pick the right form

关键设计是API key 而非用户体系。

机制官方原文 / 参数作用
key 生成openssl rand -base64 32 → LOCAL_BACKEND_API_KEY256 位
--public 模式key 不烘进前端,用户首次打开 UI 要粘贴 key防止 key 被前端代码泄露
请求头每个 /api/* 都要带 X-Session-API-Key会话级鉴权
默认绑定loopback-only(127.0.0.1)官方说明:为了不让自动注入的 session key 被局域网其他机器拿到
监听全网卡--host 0.0.0.0 或 OH_BIND_HOST此时 key 不再注入,改用同样的输入界面
传 key 的姿势用 export 而非命令行参数避免出现在 ps aux 进程列表里
公网暴露官方要求另配防火墙(Cloud Firewall / AWS SG / GCP firewall rule)

多用户与权限分级已核(2026-10-08):正式的 RBAC / SSO 在 Enterprise 档, OSS 档默认单用户、单会话 key。 团队级使用需上 Enterprise,或自行在反代层做鉴权。

docs/SELF_HOSTING.md(核验 286 行)只覆盖「保护单个 key」; 官方 enterprise 页给出 RBAC / SSO 的归档。

The key design is an API key, not a user system.

MechanismOfficial wording / parameterPurpose
key generationopenssl rand -base64 32 → LOCAL_BACKEND_API_KEY256-bit
--public modekey not baked into the frontend; users paste it on first UI openprevents key leakage via frontend code
request headerevery /api/* carries X-Session-API-Keysession-level auth
default bindingloopback-only (127.0.0.1)official rationale: keep the auto-injected session key off the LAN
listen on all interfaces--host 0.0.0.0 or OH_BIND_HOSTthen the key is not injected; same input UI instead
passing the keyuse export, not command-line argumentskeeps it out of ps aux listings
public exposureofficial firewall requirements (Cloud Firewall / AWS SG / GCP firewall rule)

Multi-user and permission tiers verified (2026-10-08): formal RBAC / SSO sit in the Enterprise tier; the OSS tier defaults to single user, single session key. Team-level use requires Enterprise, or do auth at your reverse-proxy layer.

docs/SELF_HOSTING.md (verified, 286 lines) covers only "protecting a single key"; the official enterprise page documents RBAC / SSO.

上下文维度:官方给了 condenser(2026-10-08 更新)The context dimension: the official condenser (updated 2026-10-08)

这档对象持久化做得很好 —— run history、容器可替换后历史仍在。 对话上下文长了之后的处理,也有官方机制。它在 SDK 侧:context condenser。

按本站主张「状态 ≠ 上下文」:

  • 状态 ✅ 有官方证据(定时/webhook 触发、run history、容器可替换后历史保留)
  • 上下文 ✅ 有官方机制(condenser);实际压缩效果待实测

持久化 ≠ 上下文管理 —— 两者仍是两件事;但本对象现在能给出后者。

官方 sdk/guides 页给出 LLMSummarizingCondenser / RollingCondenser。

This kind of object does persistence well — run history, history surviving container replacement. Handling long conversation context also has an official mechanism. It is on the SDK side: the context condenser.

Per our claim "state ≠ context":

  • state ✅ official evidence (schedule/webhook triggers, run history, history preserved across container replacement)
  • context ✅ official mechanism (condenser); real compression effect awaits testing

Persistence ≠ context management — still two things; but this object can now deliver the latter.

The official sdk/guides page gives LLMSummarizingCondenser / RollingCondenser.

协议:MCP 与 ACP 各管一条线Protocols: MCP and ACP each run one line

两条线已核清(2026-10-08)。

① MCP —— 官方有 MCP Servers 专页:

  • CLI 用 openhands mcp,Canvas 里也能配
  • 传输覆盖 http / sse / stdio
  • 认证支持 Bearer / API Key / OAuth
  • 已有的 MCP server 生态可直接复用

② ACP(Agent Client Protocol) —— README 用它来调度第三方 agent ("Run OpenHands, Claude Code, Codex, Gemini, or any ACP-compatible agent")。

修正上一版档案:本对象并非只走 ACP,MCP 同样是官方能力。

Both lines sorted out (2026-10-08).

① MCP — the official docs have an MCP Servers page:

  • CLI uses openhands mcp; Canvas can configure it too
  • Transports cover http / sse / stdio
  • Auth supports Bearer / API Key / OAuth
  • The existing MCP server ecosystem is directly reusable

② ACP (Agent Client Protocol) — the README uses it to schedule third-party agents ("Run OpenHands, Claude Code, Codex, Gemini, or any ACP-compatible agent").

Correction to the previous version: this object is not ACP-only; MCP is equally an official capability.

核验说明Verification notes

confidence: partial 的依据:

为什么不是 verified:并非缺轴。八维核验均已核到官方机制(context 侧有官方 condenser,见 axes.context)。仍留 partial 是因为还存在官方确实没写、或需实测的项:

  • context 压缩的端到端效果
  • 本地→远端工作区的同步机制(官方未说明)
  • ACP 与 MCP 的定位边界
  • Enterprise 档的具体内容(官方只写 Custom pricing / Contact Us)

按 v3 铁律「未知就说未知」,故仍标 partial。

已核验(这部分扎实):

  • 仓库存在与星数(91,593 · 滚动核验 2026-10-23)、许可(MIT,经 license API)
  • 最近推送(2026-10-22,仍活跃)、最新版 v1.31.0(releases @ 2026-10-22)
  • README 全文九节(定位、四项特性表、Quickstart 四种 Option、Architecture 与 Repository boundaries 表、More documentation)
  • docs/SELF_HOSTING.md 286 行的安全机制要点
  • 仓库顶层目录结构(helm/、vercel.json、electron-builder.config.mjs、 .openhands/、docker/ 等)
  • software-agent-sdk 与 automation 两仓元数据
software-agent-sdk(1,190★ · MIT · Python)、automation(32★ · MIT · Python)。

未核验:

  • 对话上下文压缩的实测效果
  • 本地→远端工作区的同步机制(官方未说明)
  • software-agent-sdk 的 API 形态
  • LLM profiles 的完整配置格式(官方页有,细节未逐条录入)

2026-10-01 补充:官方定价页三档已核实 —— Open Source 与 Cloud Individual 均为免费档、Enterprise 定制; Individual 每日 10 轮对话上限(对照 Open Source 的 Unlimited); Individual 支持 BYOK、无 key 时走 OpenHands provider 且官方声明 at cost, no markup; Enterprise 可部署客户自有 VPC。还有 SAML/SSO、RBAC、每用户无限并发。 Enterprise 档的具体内容仍未核验(按本站的报价记录约定本站也不存任何报价数字)。

Basis for confidence: partial:

Why not verified: no axis is missing. All eight axes were verified to official mechanisms in the 2026-10-08 check (the context side has the official condenser, see axes.context). It stays partial because items remain that the official docs genuinely don't state, or that need testing:

  • end-to-end effect of context compression
  • the local→remote workspace sync mechanism (not stated officially)
  • the positioning boundary between ACP and MCP
  • the concrete contents of the Enterprise tier (official docs only say Custom pricing / Contact Us)

Per the v3 rule "say unknown when unknown", it stays partial.

Verified (this part is solid):

  • Repository existence and star count (91,593 · rolling verification 2026-10-23), license (MIT, via license API)
  • Last push (2026-10-22, still active), latest release v1.31.0 (releases @ 2026-10-22)
  • Full README nine sections (positioning, four-item feature table, Quickstart's four Options, Architecture and Repository boundaries table, More documentation)
  • Security-mechanism highlights of the 286-line docs/SELF_HOSTING.md
  • Repo top-level directory structure (helm/, vercel.json, electron-builder.config.mjs, .openhands/, docker/, etc.)
  • Metadata of the software-agent-sdk and automation repos
software-agent-sdk (1,190★ · MIT · Python), automation (32★ · MIT · Python).

Not verified:

  • Measured effect of conversation-context compression
  • The local→remote workspace sync mechanism (not stated officially)
  • The API shape of software-agent-sdk
  • The full configuration format of LLM profiles (the official page has it; details not entered item by item)

Added the 2026-10-08 check (2026-10-01): the official pricing page's three tiers verified — Open Source and Cloud Individual both free tiers, Enterprise custom; Individual's 10-conversation daily cap (versus Open Source's Unlimited); Individual supports BYOK; without a key the OpenHands provider applies, officially at cost, no markup; Enterprise can deploy in the customer's own VPC, with SAML/SSO, RBAC, unlimited per-user concurrency. Enterprise tier specifics remain unverified (and we store no quote numbers per D9).

相关条目Related entries

  • Codex SDKCodex SDK调度关系,不是竞争关系:README 明确 Agent Canvas 能跑 Codex。 本档案讲的是「谁给你调度」,codex-sdk 讲的是「被调度的是什么」。A scheduling relationship, not a competitive one: the README states plainly that Agent Canvas can run Codex. This dossier is about "who schedules for you"; codex-sdk is about "what gets scheduled".
  • Claude Agent SDKClaude Agent SDK同上,Claude Code 也是它声明可调度的 agent 之一。Same as above: Claude Code is also one of the agents it declares it can schedule.
  • Deep AgentsDeep Agents都是 batteries-included 那一档, 但 deepagents 是一个库、OpenHands 是一整套带 Web UI 的栈。Both in the batteries-included tier, but deepagents is a library while OpenHands is a whole stack with a Web UI.
  • LangGraphLangGraph若要的是「用代码定义流程」而非「用界面调度 agent」, 编排框架才是对应层。If what you want is "define flows in code" rather than "schedule agents through a UI", an orchestration framework is the matching layer.
  • OpenCodeOpenCode另一层 · AI 编程Other layer · AI coding
  • Filesystem MCP ServerFilesystem MCP Server另一层 · MCP 工具Other layer · MCP tools

本页由This page is generated from the ai-handbook 数据层生成(CC BY 4.0)。data layer (CC BY 4.0). 方法论与坐标系定义见仓库内For the methodology and coordinate definitions, see METHODOLOGY.md.