# OpenManus × Kortix/Suna：横向对比与选型指南

> **对象**：`FoundationAgents/OpenManus`（commit `52a13f2a`，分析**加深版**）与 `kortix-ai/suna` / 产品名 **Kortix**（commit `5862e956`，VERSION `0.10.14`，**完整检出加深版**含 `apps/web`）  
> **轴心**：二者都更接近商业 **Manus / Genspark** 一类「通用任务 / 调研 / 交付物 Agent」，而不是 Claude Code 类「仓库内写代码优先」。  
> **依据**：同目录《OpenManus-源码分析》《Suna-源码分析》；主张均可回溯 `文件:行号`。  
> **日期**：2026-07-24

---

## 1. 一句话对照

| | OpenManus | Kortix / Suna |
|---|---|---|
| **是什么** | 可读的单机 ReAct「Manus 平替」 | 把公司做成 Git 仓库的 AI Command Center |
| **心脏在哪** | 进程内 `Base→ReAct→ToolCall→Manus` | 平台 session-lifecycle + 沙箱内 OpenCode |
| **持久化** | 基本无会话记忆（硬截断 100 条） | 会话沙箱 + git + change request |
| **许可** | MIT | Elastic License 2.0（限制托管竞品） |
| **适合谁** | 想三天看懂并改出专员的人 | 想自托管「多租户 AI 劳动力」的团队 |

---

## 2. 产品逻辑对比（用户感知）

### 2.1 用户旅程

**OpenManus**

1. 配好 `config.toml` 的模型 key  
2. `python main.py`，敲一句任务  
3. Agent 自己搜网页 / 开浏览器 / 写文件 / 跑 Python  
4. 终端里看过程，交付物落在本地目录  
5. 进程结束，下次基本从零开始  

**Kortix/Suna**

1. `kortix init` 脚手架出公司仓库（`kortix.yaml` + `.kortix/opencode`）  
2. `kortix ship` 上云（或自托管）  
3. 开 session → 隔离沙箱克隆 repo、切 `sessionId` 同名分支  
4. 在 Web/CLI/Slack 对话；OpenCode 干活  
5. 要留下成果 → `kortix cr open` → 人审 merge → 公司 main 进化  

### 2.2 交付物想象

| 场景 | OpenManus 更顺 | Kortix 更顺 |
|---|---|---|
| 「帮我做日本旅行手册 HTML」 | ✅ 浏览器+搜索+本地文件，演示友好 | 也能做，但冷启动重 |
| 「五十个销售 Agent 并行跑 outreach」 | ❌ 单进程难并行 | ✅ 一会话一沙箱 |
| 「改公司默认 Agent 权限并审计」 | ❌ 改代码/配置，无 CR 纪律 | ✅ yaml + CR |
| 「三小时读懂 Agent 主循环」 | ✅ 继承链极短 | ❌ 要跨 API/daemon/OpenCode |
| 「Slack 里跟进昨天的任务」 | ❌ 无渠道总线 | ✅ 渠道 + chat_threads 绑定 |

### 2.3 商业叙事

- OpenManus：**去邀请码的 Manus 学习版 / 原型版**（README 原话）。  
- Kortix：**公司操作系统**——拒绝「玩具 demo」与「租回自己的公司」两端（MANIFESTO）。

---

## 3. 技术架构对比

```mermaid
flowchart TB
  subgraph OM["OpenManus"]
    I1[stdin / main.py] --> A1[Manus ToolCallAgent]
    A1 --> T1[browser / search / python / mcp]
    A1 --> M1[Memory max 100]
  end
  subgraph KX["Kortix/Suna"]
    I2[Web/CLI/Slack] --> API[apps/api session-lifecycle]
    API --> SBX[sandbox session_id==sandbox_id]
    SBX --> D[kortix-agent]
    D --> OC[opencode serve]
    OC --> EX[/v1/executor 守秘/]
    OC --> CR[change_request → main]
  end
```

| 维度 | OpenManus | Kortix/Suna |
|---|---|---|
| 语言 | Python 3.12 + asyncio | TypeScript / Bun monorepo |
| 主循环 | `base.py` + `react.py` + `toolcall.py` | `session-lifecycle/engine.ts` + OpenCode |
| 工具 | 进程内 ToolCollection + browser-use | 沙箱本地工具 + 服务端 Executor |
| 权限 | 几乎开放；可选 Docker/Daytona | IAM + grant + policy + CR |
| 多 Agent | PlanningFlow 按 `[AGENT]` 派单（unstable） | 多沙箱并行 + OpenCode subagent mode |
| 模型接入 | TOML OpenAI 兼容 | LLM Gateway + `reasoning_effort` |
| 前端 | **未作为主路径**（几乎只有终端） | Web Command Center（完整检出）+ SDK SSoT |
| 扩展 | 加 Agent 类 / MCP | yaml + md + marketplace + connectors |

---

## 4. 十个关键维度（选型用）

| # | 维度 | 谁赢 / 怎么选 |
|---|---|---|
| 1 | 学习曲线 | **OpenManus** 完胜：继承链可读 |
| 2 | 生产多租户 | **Kortix** 完胜：账户/项目/会话/沙箱 |
| 3 | 调研浏览器闭环 | **OpenManus** 更「开箱即用」；Kortix 靠 OpenCode/技能 |
| 4 | 长任务规划 | OpenManus 有 PlanningFlow；Kortix 靠 prompt/skills/CR 节奏 |
| 5 | 安全默认 | **Kortix**（守秘 Executor、SSRF 防护）；OpenManus 浏览器默认松 |
| 6 | 持久公司记忆 | **Kortix**（repo 文件 + CR）；OpenManus 硬截断 |
| 7 | 渠道（Slack 等） | **Kortix** |
| 8 | 许可自由度 | **OpenManus MIT**；Kortix Elastic 限制托管 SaaS |
| 9 | 改 Agent 行为 | 两边都改 prompt；Kortix 还要懂 yaml 治理与编译 |
| 10 | 运维成本 | OpenManus ≈ 一台脚本；Kortix ≈ 云沙箱账单 + snapshot |

---

## 5. 设计哲学对照

| OpenManus 的赌注 | Kortix 的赌注 |
|---|---|
| 「把 Manus 摊在桌面上，三小时能看懂」 | 「公司必须是可 clone 的真相源」 |
| 继承链表达品种 | 会话=沙箱=分支 表达隔离 |
| terminate 一等退出 | change request 一等治理 |
| MCP 双向门（轻生态） | Executor + Marketplace（重生态） |

---

## 6. 选型建议（直接可执行）

1. **课程 / 黑客松 / 自建垂直调研 Agent** → 从 **OpenManus** 砍，或 fork 其 ReAct 链。  
2. **要给团队用的自托管「AI 员工平台」** → 评估 **Kortix**（接受 Elastic 与运维复杂度）。  
3. **自己造产品** → 取 OpenManus 的**可读循环**作 MVP；需要并行与治理时，再引入 Kortix 式的 **session=sandbox + CR + 服务端执行器**。  
4. **不要**把 Kortix 当「学 ReAct 的教材」；**不要**把 OpenManus 当「企业 command center」。

把上面四条画成一张「怎么选」的流程图：

```mermaid
flowchart TD
    START(["我该选哪个？"]) --> Q1{"你的目标是什么？"}
    Q1 -->|"学懂 Agent 主循环<br/>黑客松 / 垂直调研工具"| OM["✅ 选 OpenManus<br/>继承链三小时看懂<br/>MIT，随便改随便商用"]
    Q1 -->|"给团队用的<br/>自托管 AI 员工平台"| Q2{"能接受 Elastic 许可<br/>+ 云沙箱运维成本？"}
    Q2 -->|"能"| KX["✅ 选 Kortix/Suna<br/>多租户隔离 + CR 治理"]
    Q2 -->|"不能"| MVP["先用 OpenManus 做 MVP<br/>日后真需要治理再迁"]
    Q1 -->|"自己造产品"| BOTH["🔀 两头取<br/>用 OpenManus 的可读循环起步<br/>需要并行/治理时，再加<br/>会话=沙箱 + CR + 守秘执行器"]
    style OM fill:#e7f8f1
    style KX fill:#eaf1ff
    style BOTH fill:#fff3df
    style MVP fill:#fff3df
```

> 🧠 **一句话**：想三天读懂并改出自己的专员 → OpenManus；想自托管一支「AI 劳动力」并管住它 → Kortix。同一个轴心（通用任务/调研/交付），差的是量级和治理，不是方向。

---

## 7. 与本系列其它项目的坐标

```text
写代码优先 ──────────────────────────── 通用任务/调研优先
Claude Code / opencode / goose              OpenManus · Kortix/Suna
                                              ↑ 本对比的主轴

个人 IM 管家 ─────────────────────────── 公司 OS
nanobot / Raven                              Kortix/Suna
```

*文完。配套学习站：`openmanus-suna-learn/`；从零构建教程见同目录上级 `从零构建通用任务Agent-Manus系-开发全流程教程.md`。*
