track: 新增 OpenClaw / QwenPaw / Tutti,样本达到 7 个
新增项目档案(五维 + claim_vs_reality): - openclaw.yaml 388k★,GitHub 星标最多的仓库;个人助理赛道 - qwenpaw.yaml 34.7k★,OpenClaw 正面竞品;安全默认值最完整 - tutti.yaml 3.6k★,唯一做「多人 × 多 Agent」协作;技术维度基于本地源码实测 两处对既有结论的修正: - OpenClaw 许可证自动定级为 L3/private 系误判。SPDX=NOASSERTION 是因为 LICENSE 末尾多了一段第三方声明指引,原文主体是完整 MIT → 改判 L1/public。 这是本系列第二个「SPDX 不可信」判例(第一个是 OpenWork 的 ee/ 目录切分许可)。 - OpenWork 巴士系数去重仅 3 人,与上一轮「工程治理最好」并不矛盾: 流程规范与人员分散是两个独立维度,已在文章中区分。 脚本: - build_matrix.py 象限图新增重合点沿小圆散开(SPREAD=11)+ 钳制 + 脚注。 样本到 7 个时首次出现两组完全重合坐标,后画的点会整个盖住先画的, 读者会以为少收录了一个项目——这种静默丢信息比图难看严重得多。 - build_matrix.py 跨项目文章索引改为按 emlog_id 升序(= 阅读顺序)。 原先靠文件名 sorted() 排是碰运气:'-'(0x2D) < '.'(0x2E) 只是巧合。 发布:横评文第二弹 id=100,总纲 id=98 已更新。
This commit is contained in:
@@ -0,0 +1,249 @@
|
||||
# openclaw · 项目档案
|
||||
# 生成于 2026-09-01 · 由 scripts/new_project.py 从 schema 生成
|
||||
# 人工补完重点:business / scenario / tech / risk.claim_vs_reality / verdict
|
||||
# 字段规范见 schema/project.schema.yaml
|
||||
|
||||
id: openclaw
|
||||
name: "OpenClaw"
|
||||
repo: "openclaw/openclaw"
|
||||
homepage: "https://openclaw.ai"
|
||||
added_at: "2026-09-01"
|
||||
status: active
|
||||
identity:
|
||||
tagline: "Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞"
|
||||
vendor: "OpenClaw Foundation(非营利基金会)"
|
||||
vendor_type: "foundation"
|
||||
region: "奥地利(创始人 Peter Steinberger)/ 基金会独立运营"
|
||||
first_seen: "2025-11-24"
|
||||
name_history: # 三个月两次改名,检索历史资料时容易漏
|
||||
- "Clawdbot(2025-11 创始)"
|
||||
- "Moltbot"
|
||||
- "OpenClaw(2026-01-30 定名)"
|
||||
business:
|
||||
|
||||
positioning: |-
|
||||
站在「个人助理执行层」,而且是**唯一一个不面向开发者的样本**。
|
||||
它不接入别的 agent,自己就是 agent;不产出代码交付物,产出的是"事儿办完了"——
|
||||
邮件发了、日程改了、值机办了。入口是用户已经在用的聊天软件,不是 IDE 也不是桌面工作台。
|
||||
这一条把它和本体系其余 6 个样本彻底分开:**它们的用户是开发者,OpenClaw 的用户是普通人。**
|
||||
target_users:
|
||||
- 想让 AI 接管日常事务(收件箱、日历、出行)的非技术用户
|
||||
- 重度聊天软件用户(WhatsApp / Telegram / iMessage / Signal)
|
||||
- 想在自己机器上跑私人助理、拒绝 SaaS 托管的数据敏感用户
|
||||
monetization: |-
|
||||
免费开源 + 赞助(README 有 Sponsors 段)。创始人 2026-02 加入 OpenAI 后,
|
||||
OpenAI 承诺在保持 MIT 的前提下继续赞助,项目转由独立基金会运营。
|
||||
这是四个样本里唯一"没有商业变现路径"的——目前看不到收费层。
|
||||
# ⚠️ 自动定级把本项目判为 L3/private,**人工复核后推翻**。
|
||||
# SPDX=NOASSERTION 的原因:LICENSE 末尾多了一段
|
||||
# "Third-party notices for incorporated or adapted code are recorded in
|
||||
# THIRD_PARTY_NOTICES.md."
|
||||
# GitHub 的 licensee 检测器见到正文之外的附加段落就判定为 NOASSERTION。
|
||||
# 但原文主体是完整无改动的 MIT(Copyright 2026 OpenClaw Foundation),
|
||||
# 附加段落只是指向第三方声明文件,不构成许可条款变更 → 实为 L1 / MIT / 可自由再分发。
|
||||
# 这是继 OpenWork 之后第二个「SPDX 不可信,必须读原文」的判例。
|
||||
license:
|
||||
spdx: "NOASSERTION"
|
||||
name: "MIT(SPDX 误判,人工复核确认)"
|
||||
openness: L1
|
||||
redistributable: true
|
||||
manual_review: true
|
||||
manual_review_reason: "SPDX=NOASSERTION 系检测器误判;LICENSE 原文为完整 MIT,仅末尾附带第三方声明指引"
|
||||
key_restrictions:
|
||||
- 无实质性使用限制
|
||||
- MIT 不含商标许可,OpenClaw 名称与龙虾 Logo 未单独授权
|
||||
- ⚠️ 自动化合规扫描工具(如 licensee、FOSSology)会把它识别为 NOASSERTION 并告警,
|
||||
需要人工出具复核说明才能过企业的开源合规流程
|
||||
moat: |-
|
||||
聊天渠道覆盖面(WhatsApp / Telegram / Slack / Discord / Google Chat / Signal / iMessage
|
||||
等 8+ 通道)+ 3001 名累计贡献者的插件生态 + ClawHub 市场 + 跨端伴侣 App(macOS / Windows /
|
||||
iOS / Android 节点)。**网络效应在"渠道"和"插件"两侧同时成立**,这是它真正的壁垒。
|
||||
competitive_risk: |-
|
||||
创始人已在 OpenAI,OpenAI 随时可能推出官方同类产品直接覆盖。
|
||||
更现实的风险是:**它的价值建立在"替用户操作真实账号"之上,而这个能力任何一家
|
||||
操作系统厂商(Apple Intelligence / 微软 Copilot)都能在系统层直接拿走。**
|
||||
|
||||
scenario:
|
||||
|
||||
primary:
|
||||
- 在 WhatsApp / Telegram 里一句话让助理处理收件箱、改日程、办登机
|
||||
- 用手机语音或照片触发本机的助理执行任务( companion app 提供语音 / 摄像头 / 屏幕 / Canvas)
|
||||
- 把助理常驻在家里的机器上,通过聊天软件远程使唤
|
||||
- 2.0 起:把一条会话授权给同事,多人带着完整上下文接力
|
||||
typical_use_cases:
|
||||
- 发一张后院蛇的照片给助理,它识别物种、给出当地动物救助电话、建议怎么抓
|
||||
- 让助理每天早上把行业资讯摘要推到 Telegram
|
||||
- 2.0 起:在 Mac 上开始一件事,交给云端 worker 继续跑完
|
||||
industries:
|
||||
- 个人事务 / 生活助理
|
||||
- 小团队共享助理(2.0 新增)
|
||||
interaction_mode:
|
||||
- 聊天软件频道(主要入口)
|
||||
- 本地守护进程 Gateway(控制面)
|
||||
- Web Control UI / CLI / TUI
|
||||
- 桌面与移动端伴侣 App(macOS / Windows / iOS / Android)
|
||||
human_in_the_loop: |-
|
||||
配对审批:支持 DM 的频道**默认会配对未知发送者**,需人工 `openclaw pairing approve` 确认。
|
||||
2.0 新增私密凭据请求(遮罩输入,敏感信息不进聊天记录与模型上下文)与插件安装前能力展示。
|
||||
deliverables:
|
||||
- 事务结果(邮件 / 日程 / 预订 / 消息)——不是文件型交付物
|
||||
- 文件与本地系统操作
|
||||
- Canvas / 语音 / 图像(伴侣 App 侧)
|
||||
|
||||
tech:
|
||||
|
||||
form_factor: |-
|
||||
本地守护进程(Gateway)为控制面 + 多渠道接入。注意它**没有 IDE 形态**,
|
||||
也不是传统意义的桌面工作台——Control UI 只是 Gateway 的一个 Web 前端。
|
||||
stack:
|
||||
- TypeScript 91%
|
||||
- Swift 4.6%(macOS / iOS 原生)
|
||||
- Kotlin 1.8%(Android 原生)
|
||||
- JavaScript / Shell / CSS 各约 1%
|
||||
engine_abstraction:
|
||||
supported: [] # 不接入外部 agent 引擎
|
||||
mechanism: |-
|
||||
**本字段对 OpenClaw 不适用,这是它区别于其余 6 个样本的根本点。**
|
||||
它不代理任何第三方 agent —— 它自己就是 agent,跑自己的执行循环。
|
||||
可扩展性走的是 tools / skills / plugins 三条路(ClawHub 市场),不是"接别人的引擎"。
|
||||
abstraction_layer: "无(自身即引擎)"
|
||||
depth_notes: |-
|
||||
把 OpenClaw 和"多引擎中立"放在一起比较会得出误导性结论。
|
||||
横向对比时应把它的引擎立场标记为「自身即引擎」而非「绑定单引擎」,
|
||||
两者在用户侧的风险完全不同:绑定单引擎是"换不了",自身即引擎是"不用换"。
|
||||
extension_system:
|
||||
skills: "Skills 系统 + ClawHub 市场(clawhub.ai)"
|
||||
plugins: "第三方插件机制;2.0 起安装前展示能力、来源、版本;来自可执行来源的插件需强制参数确认"
|
||||
mcp: "通过 tools / plugins 体系扩展(README 未强调 MCP,与其余样本的依赖程度不同)"
|
||||
model_binding: |-
|
||||
不绑定:支持 hosted 与 local model providers。2.0 默认 GPT-5.6,
|
||||
本地模型方面把 node-llama-cpp 换成托管 llama-server,默认上下文提到 64K。
|
||||
local_first: true
|
||||
multi_agent: |-
|
||||
2.0 新增共享云端会话:一个会话可授权给多名成员,完整上下文保留、可接力与实时协作;
|
||||
会话能在本地设备、配对机器、云端 worker 之间迁移。底层存储从文件系统迁到 SQLite。
|
||||
permission_sandbox: |-
|
||||
⚠️ **默认无沙箱**。README Security 章节原文:
|
||||
"Tools run on the host for the main session unless you configure sandboxing."
|
||||
即不显式配置则工具直接跑在宿主机上。官方另建议:不要暴露 Gateway 到开放互联网、
|
||||
维持强认证。2.0 补齐了信任边界、最小权限、基于角色的权限分配与提示词滥用防护。
|
||||
observability: |-
|
||||
Gateway 提供事件流;Control UI 可实时观看正在执行的任务、查看组件仪表盘。
|
||||
2.0 新增会话精确搜索(可按词句回跳到上下文消息)。
|
||||
|
||||
ecosystem:
|
||||
metrics:
|
||||
stars: 388438
|
||||
forks: 81543
|
||||
open_issues: 5925
|
||||
subscribers: 1754
|
||||
created_at: 2025-11-24
|
||||
pushed_at: 2026-09-01
|
||||
size_kb: 3354345
|
||||
languages: {TypeScript: 91.0, Swift: 4.6, Kotlin: 1.8, JavaScript: 1.0, Shell: 0.6, CSS: 0.4}
|
||||
latest_release: v2026.8.1
|
||||
release_cadence: 约 4 天/版本
|
||||
data_date: 2026-09-01
|
||||
stale: false
|
||||
community: |-
|
||||
GitHub 上星标最多的软件仓库(388k),累计 3001 名贡献者,README 的致谢段
|
||||
有 649 个头像。2.0 由 933 名贡献者完成(其中 569 名首次参与)。
|
||||
但贡献高度集中:最近 100 次提交中创始人 steipete 独占 64%,去重仅 27 人。
|
||||
standards: []
|
||||
notable_events:
|
||||
- "2025-11:Peter Steinberger 创建,初名 Clawdbot"
|
||||
- "2026-01-30:更名 OpenClaw"
|
||||
- "2026-01:曝出 CVE-2026-25253 远程代码执行漏洞(CVSS 8.8,访问恶意页面即可窃取认证令牌、禁用沙箱、宿主机执行任意代码)"
|
||||
- "2026-02:创始人加入 OpenAI,项目转由独立非营利基金会运营,OpenAI 承诺保持 MIT 并继续赞助"
|
||||
- "2026-08-31:2.0 发布(v2026.8.1),重构安装、会话、记忆、权限、密钥、云端执行与团队协作"
|
||||
|
||||
risk:
|
||||
license_risk: |-
|
||||
法律上无风险(纯 MIT)。**工程上有风险**:SPDX 与主流合规扫描工具会识别为
|
||||
NOASSERTION,企业引入时会被自动拦下,需要人工出复核说明。
|
||||
这个"机器读不懂"的成本,比许可证本身的限制更影响落地。
|
||||
vendor_lockin: |-
|
||||
许可证层面零锁定(MIT + 本地运行)。真正的锁定在**账号与渠道**:
|
||||
它替你操作的是真实邮箱、日历、聊天账号,迁移成本不在代码而在配置与凭据。
|
||||
claim_vs_reality:
|
||||
- claim: "停更 7 周(多家媒体转述,指 7 月中旬 v2026.7.1 之后断更)"
|
||||
actual: |-
|
||||
失真。查 release 时间轴:7-18 → 7-28 → 8-01 → 8-02 → 8-04 → 8-08 → 8-15 →
|
||||
8-24 → 8-28 → 8-31 一直在发。**停的是稳定版,beta 从未停。**
|
||||
但真实问题比"停更"更值得警惕:版本号体系已经乱到无法从版本号判断新旧——
|
||||
8-28 发的 v2026.9.1-beta.1 早于 8-31 的正式版 v2026.8.1;
|
||||
而 v2026.6.33 / v2026.6.34(8-08)又晚于 v2026.7.1-1 / -2(8-04)。
|
||||
多线并行导致版本号与实际时间顺序倒挂。
|
||||
source: "GitHub releases API(2026-09-01 取最近 12 个 release 的 published_at)"
|
||||
- claim: "3001 名贡献者 / 933 人共建 2.0(项目方与媒体反复引用)"
|
||||
actual: |-
|
||||
数字属实,但不能推导出"去中心化"。抽样最近 100 次提交:创始人 steipete
|
||||
独占 64 次(64%),第二名 vincentkoc 仅 4 次,去重作者 27 人。
|
||||
**巴士系数接近 1** —— 贡献者基数和实际决策集中度是两回事。
|
||||
source: "GitHub commits API(2026-09-01 取 main 分支最近 100 次提交的 author.login 分布)"
|
||||
- claim: "PR 已经泛化成 Prompt Requests,AI 批量灌水(多家媒体报道)"
|
||||
actual: |-
|
||||
我抽样最新 60 条 open PR,**不支持**这个说法:标题全部是规范的
|
||||
conventional commits(fix(memory-core)、refactor(sessions)、perf(media)),
|
||||
去重 22 位作者,未见灌水特征。
|
||||
但另一组数字确实异常:60 条**全部创建于 2026-09-01 同一天**,
|
||||
说明日 PR 量超过 60 条——流量压力真实存在,只是"质量崩坏"缺乏证据。
|
||||
媒体报道的"必须附对话记录/截图/测试证据才能过审"是维护方的应对动作,
|
||||
从这批样本看,它似乎有效。
|
||||
source: "GitHub pulls API(state=open, sort=created, direction=desc, per_page=60)"
|
||||
- claim: "跑在你自己的设备上、own your data"
|
||||
actual: |-
|
||||
前半句属实(Gateway 是本地控制面,支持本地模型)。
|
||||
但**安全默认值偏松**:README 原文承认工具默认跑在宿主机上、除非你配置沙箱;
|
||||
支持 DM 的频道默认配对未知发送者(需人工 approve)。
|
||||
历史上出过 CVE-2026-25253(CVSS 8.8):访问一个恶意页面即可窃取令牌、
|
||||
禁用沙箱、在宿主机执行任意代码。"本地运行"不等于"默认安全"。
|
||||
source: "README Security 章节原文;CVE-2026-25253(媒体报道,CVSS 8.8)"
|
||||
- claim: "MIT 开源"
|
||||
actual: |-
|
||||
属实,但**机器读不出来**。GitHub 的 licensee 因为 LICENSE 末尾多了一段
|
||||
第三方声明指引(THIRD_PARTY_NOTICES.md)而判定 NOASSERTION。
|
||||
自动定级会给出 L3/private 的错误结论,必须人工读 LICENSE 原文才能纠正。
|
||||
(本体系第二次遇到这类误判,前一次是 OpenWork 的目录切分许可。)
|
||||
source: "GitHub license API 取原始文件,人工阅读全文 1170 字节"
|
||||
maturity: |-
|
||||
功能面极广、迭代极快(10 个月 237 次版本迭代),但**版本号体系失序**、
|
||||
安全默认值偏松、巴士系数接近 1。适合愿意自己加固环境并接受高频变更的个人,
|
||||
不适合需要可预测升级路径与稳定 SLA 的团队——尤其考虑到 2.0 自己都承认
|
||||
"从 v2026.7.1 及更早版本升级时可能破坏原有 Agent 配置",官方建议升级前先备份。
|
||||
maturity_level: "高速迭代期"
|
||||
|
||||
chart:
|
||||
# ⚠️ 四个维度对 OpenClaw 的适配度都有限——它不在"Agent 工作台"这条赛道上。
|
||||
# 坐标只是为了让它在同一张图里可比,解读时务必结合上方 engine_abstraction 的说明。
|
||||
form_depth: 6 # 统一入口(Gateway + 多渠道),但不是可视化工作台
|
||||
engine_neutral: 1 # 自身即引擎,不代理任何外部 agent;这不等于"绑定单引擎"
|
||||
local_first_score: 8 # 本地 Gateway + 支持本地模型;2.0 推云端共享会话故未给满分
|
||||
deliverable_depth: 2 # 产出"事务结果"而非可编辑交付物体系
|
||||
chart_note: "本样本撑破了现有坐标系——四个维度均非为其设计,坐标仅作同图可比之用"
|
||||
verdict:
|
||||
one_liner: |-
|
||||
388k star 的个人 AI 助理,常驻你自己的机器、从聊天软件驱动——
|
||||
但沙箱默认关闭、版本号已经乱到读不懂发布节奏、关键提交仍系于一人之手。
|
||||
who_should_use: |-
|
||||
想让 AI 真正接管日常事务且愿意自己加固部署环境的重度个人用户;
|
||||
想研究"非开发者向 agent 产品长什么样"的人(本体系里唯一的样本)。
|
||||
who_should_not: |-
|
||||
把 star 数当成生产就绪度的人;指望沙箱开箱即保护的人;
|
||||
需要可预测升级路径的团队;希望助理"中立接入多个引擎"的人(它自己就是引擎,不接别人)。
|
||||
mirror:
|
||||
gitea_repo: "gitinbox/openclaw"
|
||||
visibility: public
|
||||
upstream: "https://github.com/openclaw/openclaw"
|
||||
last_sync: ""
|
||||
mode: "link-only"
|
||||
sync_note: |-
|
||||
**不镜像,仅存链接与元数据。** 仓库体积 3276 MB,撞上本体系两条硬约束:
|
||||
① GitHub 链路约 50 KB/s,全量拉取需约 19 小时且中途失败无断点续传;
|
||||
② Gitea 前置 nginx 的 client_max_body_size 约 50 MB,超限两个数量级,
|
||||
连"源码快照"降级(通常能压到 1/4)也远无法覆盖。
|
||||
许可证是 MIT(人工复核),不存在合规障碍——纯粹是体积不可行。
|
||||
article:
|
||||
emlog_id: 0 # emlog 文章 ID,发布后回写
|
||||
published_at: ""
|
||||
url: ""
|
||||
@@ -0,0 +1,255 @@
|
||||
# qwenpaw · 项目档案
|
||||
# 生成于 2026-09-01 · 由 scripts/new_project.py 从 schema 生成
|
||||
# 人工补完重点:business / scenario / tech / risk.claim_vs_reality / verdict
|
||||
# 字段规范见 schema/project.schema.yaml
|
||||
|
||||
id: qwenpaw
|
||||
name: "QwenPaw"
|
||||
repo: "agentscope-ai/QwenPaw"
|
||||
homepage: "http://qwenpaw.agentscope.io/"
|
||||
added_at: "2026-09-01"
|
||||
status: active
|
||||
identity:
|
||||
tagline: "Your Personal AI Assistant; easy to install, deploy on your own machine or on the cloud; supports multiple chat apps with easily extensible capabilities"
|
||||
vendor: "AgentScope 团队(阿里巴巴通义实验室)"
|
||||
vendor_type: "vendor"
|
||||
region: "中国"
|
||||
first_seen: "2026-02-24"
|
||||
name_history: # ⚠️ 2026-04-12 改名,检索 4 月前的资料必须按 CoPaw
|
||||
- "CoPaw(2026-02-24 建仓)"
|
||||
- "QwenPaw(2026-04-12 更名)"
|
||||
name_note: |-
|
||||
更名官方理由是"更深融入 Qwen 开源生态、更聚焦模型层",原名 CoPaw 的仓库
|
||||
`agentscope-ai/CoPaw` 与现名仓库指向同一项目。
|
||||
另注意到 GitHub 上存在同名仓库 `aqua88hn/qwenpaw`(README 内容与官方高度相似),
|
||||
**检索时容易认错本体**——本档案锁定的是 agentscope-ai 组织下的官方仓库。
|
||||
business:
|
||||
|
||||
positioning: |-
|
||||
与 OpenClaw 同处「个人助理执行层」,是本项目在本体系中唯一的正面对手。
|
||||
但立足点不同:OpenClaw 靠**渠道覆盖与生态规模**取胜,QwenPaw 靠**安全默认值与
|
||||
本地可跑**取胜。它把自己定位成"能长期记住你、数据不离开你机器的私人助理",
|
||||
而不是功能最全的助理。
|
||||
团队背景决定了差异化:背靠 AgentScope(AgentScope / AgentScope Runtime / ReMe),
|
||||
记忆系统直接建在 ReMe 个人知识框架上。
|
||||
target_users:
|
||||
- 对数据主权与隐私有硬要求、希望助理完全跑在本地的个人用户
|
||||
- 需要在钉钉 / 飞书 / 微信 / QQ 等国内渠道里用助理的团队
|
||||
- 想不买 API key 就先跑起来的尝鲜用户(QwenPaw-Flash 本地模型)
|
||||
- 愿意用功能广度换安全确定性的自用开发者
|
||||
monetization: |-
|
||||
Apache-2.0 全开源,未见收费层;提供 Docker / 阿里云 ECS / AgentScope 平台 /
|
||||
ModelScope 创空间等多条部署路径(云部署路径隐含云厂商导流)。
|
||||
与 OpenClaw 一样**没有明示的变现路径**。
|
||||
license:
|
||||
spdx: "Apache-2.0"
|
||||
name: "Apache License 2.0"
|
||||
openness: L1
|
||||
redistributable: true
|
||||
key_restrictions:
|
||||
- Apache-2.0 含明确的专利授权条款(对使用者是加分项)
|
||||
- 需保留 NOTICE 文件与版权声明
|
||||
- 商标条款:不授予 Qwen / 通义等商标使用许可
|
||||
moat: |-
|
||||
三层:① 五层安全体系(沙箱 / Tool Guard / File Guard / Skill Scanner / Access Policy)
|
||||
全部默认开启,这是同类里最完整的;② 无需 API key 即可跑的自研 QwenPaw-Flash
|
||||
模型系列(2B/4B/9B,Q4/Q8 量化),把"先跑起来"的门槛降到零;
|
||||
③ 覆盖国内七大渠道(钉钉 / 飞书 / 微信 / QQ / Discord / Telegram / iMessage)。
|
||||
competitive_risk: |-
|
||||
两面受敌:向上被 OpenClaw 的生态规模压制(388k vs 34.7k star,差一个数量级),
|
||||
向下被任何一家有本地模型的助理框架追赶(安全是可以被快速抄的)。
|
||||
真正的护城河可能是**渠道**——钉钉 / 飞书 / 微信的对接是海外项目做不了的。
|
||||
|
||||
scenario:
|
||||
|
||||
primary:
|
||||
- 常驻本地的私人助理,通过钉钉 / 飞书 / 微信 / QQ 等 IM 渠道随时触达
|
||||
- 本地文档与知识库:读 PDF / Office 提取信息进长期记忆,随时从 IM 调取
|
||||
- 定时任务自动化:每日资讯摘要推送、邮件与日历整理、周报生成
|
||||
- Coding Mode:三栏 Web IDE(文件树 / diff 预览 / 结构化代码搜索)
|
||||
typical_use_cases:
|
||||
- 每天自动抓小红书 / 知乎 / Reddit 热点生成摘要推到飞书
|
||||
- 睡前描述目标,助理自动执行,醒来拿到原型
|
||||
- 多个独立 agent 各自分角色(创意 / 写作 / 校对)协同产出内容
|
||||
- 用本地 9B 模型处理敏感文档,全程不出本机、不花 API 费用
|
||||
industries:
|
||||
- 个人事务 / 知识管理
|
||||
- 内容创作与自媒体
|
||||
- 小团队办公自动化
|
||||
interaction_mode:
|
||||
- Web 控制台(默认 127.0.0.1:8088)
|
||||
- Terminal UI(TUI)
|
||||
- IM 渠道(钉钉 / 飞书 / 微信 / QQ / Discord / Telegram / iMessage)
|
||||
- 桌面应用(Beta)
|
||||
human_in_the_loop: |-
|
||||
Access Policy 是声明式访问规则,可对每次能力调用设置 放行 / 拒绝 / 请求人工批准,
|
||||
粒度到工具级、可按来源匹配。Tool Guard 提供 STRICT / SMART / AUTO / OFF 四档。
|
||||
deliverables:
|
||||
- code(Coding Mode 三栏 IDE)
|
||||
- 文档处理结果(PDF / Word / Excel / PowerPoint)
|
||||
- 记忆条目(可读可编辑可搜索的 Markdown 记忆)
|
||||
- 定时推送内容(资讯摘要 / 视频脚本)
|
||||
|
||||
tech:
|
||||
|
||||
form_factor: |-
|
||||
Python 包(pip / 安装脚本)+ Web 控制台 + TUI + 桌面应用(Beta)+ Docker。
|
||||
形态偏"服务端 + 多渠道",与 OpenClaw 的"本地守护进程 Gateway"思路接近,
|
||||
但更传统——没有 OpenClaw 那套原生伴侣 App 与设备节点。
|
||||
stack:
|
||||
- Python 59%
|
||||
- TypeScript 37.2%
|
||||
- Less 1.5%
|
||||
- Rust 1.0%
|
||||
- JavaScript / CSS 各约 0.3%
|
||||
engine_abstraction:
|
||||
supported: [] # 不代理外部 agent 引擎
|
||||
mechanism: |-
|
||||
与 OpenClaw 相同:**自身即引擎**,不接入第三方 agent。
|
||||
但它能"派生子 agent"——多 agent 协同时各子体带独立记忆并行处理,
|
||||
这是 OpenClaw 2.0 之前没有的内生能力。
|
||||
模型层不绑定:14+ 云厂商(OpenAI / Anthropic / DeepSeek / Kimi 等)
|
||||
与本地后端(内置 llama.cpp / Ollama / LM Studio)可混用。
|
||||
abstraction_layer: "无(自身即引擎);模型层有统一 provider 抽象"
|
||||
depth_notes: |-
|
||||
注意区分两个"中立":模型层是真中立(14+ provider 可换),
|
||||
agent 引擎层不存在中立问题(它自己就是)。横向比较时不要混为一谈。
|
||||
extension_system:
|
||||
skills: "Skills 文件系统;自定义 skill 自动加载,明确宣称 no lock-in"
|
||||
plugins: "Skill Scanner 在激活前扫描第三方 skill(阻断 / 警告 / 关闭 + 白名单)"
|
||||
mcp: "README 标注 mcp 主题(topics 含 mcp),支持浏览器工具抓取接口文档"
|
||||
model_binding: |-
|
||||
不绑定。本地侧主推自研 QwenPaw-Flash(2B / 4B / 9B,Q4 / Q8 量化,
|
||||
ModelScope 与 Hugging Face 可下载),云侧 14+ provider。
|
||||
**"无需 API key 即可跑"是它相对所有竞品的硬差异。**
|
||||
local_first: true
|
||||
multi_agent: |-
|
||||
可创建多个独立 agent、各自分角色,开启协作 skill 后 agent 间可互相通信;
|
||||
助理能派生带独立记忆的子 agent 并行处理任务。
|
||||
permission_sandbox: |-
|
||||
⚠️ 这是 QwenPaw 最强的维度,也是与 OpenClaw 分道扬镳之处——**默认开启**:
|
||||
① Sandbox:内核级隔离,macOS 用 Seatbelt、Linux 用 Bubblewrap / Landlock、
|
||||
Windows 用 AppContainer,shell 命令跑在受限文件系统视图里;
|
||||
② Tool Guard:YAML 规则引擎 + ShellEvasionGuardian,执行前检查每次工具调用,
|
||||
识别命令注入、路径穿越、反弹 shell、混淆攻击;
|
||||
③ File Guard:独立于 Tool Guard,默认保护 ~/.qwenpaw.secret/、~/.ssh 等敏感路径;
|
||||
④ Skill Scanner:第三方 skill 激活前扫描提示词注入、硬编码密钥、数据外泄;
|
||||
⑤ Access Policy:声明式规则,工具级粒度的放行 / 拒绝 / 人工批准。
|
||||
但注意:Tool Guard 提供 **OFF 档**,可以整层关掉。
|
||||
observability: |-
|
||||
滚动式上下文管理 + 持久化轮次存储;三层记忆(当前会话工作上下文 /
|
||||
可搜索的完整对话历史 / 自进化的 Markdown 个人知识库)本身即构成了可审计轨迹。
|
||||
|
||||
ecosystem:
|
||||
metrics:
|
||||
stars: 34758
|
||||
forks: 3052
|
||||
open_issues: 898
|
||||
subscribers: 109
|
||||
created_at: 2026-02-24
|
||||
pushed_at: 2026-09-01
|
||||
size_kb: 112038
|
||||
languages: {Python: 59.0, TypeScript: 37.2, Less: 1.5, Rust: 1.0, JavaScript: 0.3, CSS: 0.3}
|
||||
latest_release: v2.2.0-beta.5
|
||||
release_cadence: 约 1 天/版本
|
||||
data_date: 2026-09-01
|
||||
stale: false
|
||||
community: |-
|
||||
34.7k star、3k fork,活跃度高(约 1 天一个 beta)。
|
||||
**巴士系数是七个样本里最健康的**:最近 100 次提交去重 24 位作者,
|
||||
TOP1(yutai78786)仅占 15%,前八名分布在 15%–5% 之间,没有单点依赖。
|
||||
对比同样在"个人助理"赛道的 OpenClaw(TOP1 独占 64%),差距显著。
|
||||
standards: []
|
||||
notable_events:
|
||||
- "2026-02-24:以 CoPaw 之名建仓"
|
||||
- "2026-04-12:正式更名 QwenPaw,官方称将更深融入 Qwen 开源生态"
|
||||
- "2026-08-31:v2.2.0-beta.5(至今所有 release 均为 prerelease)"
|
||||
|
||||
risk:
|
||||
license_risk: |-
|
||||
Apache-2.0,无实质风险,且含专利授权条款(对企业用户是加分)。
|
||||
需注意保留 NOTICE 与版权声明,以及商标不授权。
|
||||
vendor_lockin: |-
|
||||
模型层无锁定(14+ provider + 本地后端)。隐性锁定在两处:
|
||||
① 记忆系统建在 ReMe 框架上,沉淀的个人知识库不易整体迁出;
|
||||
② 云部署路径与阿里云 ECS / ModelScope 绑定,国内合规场景下迁移成本上升。
|
||||
claim_vs_reality:
|
||||
- claim: "数据归你、本地优先、不上传任何本地使用记录"
|
||||
actual: |-
|
||||
主力诉求成立(本地模型可完全离线跑,遥测一键可关)。
|
||||
但 README 的 Telemetry 章节写明:**`qwenpaw init --defaults` 会自动接受遥测**,
|
||||
且"每升级一个版本会重新收集一次"。而 `--defaults` 恰恰是快速上手文档
|
||||
推荐的默认路径。收集的是匿名环境数据、不影响功能,但"默认接受"
|
||||
与"数据归你"的叙事存在张力——尤其对把隐私当核心卖点的产品。
|
||||
source: "README Telemetry 章节原文('If you choose --defaults, telemetry is accepted automatically.')"
|
||||
- claim: "34.7k star 的成熟个人助理"
|
||||
actual: |-
|
||||
星标属实,但**至今没有任何正式 release**。查最近 8 个 release,
|
||||
v2.1.1-beta.1 到 v2.2.0-beta.5 全部 prerelease=True。
|
||||
也就是说它处在"高关注度 + 持续 beta"状态,与同赛道 OpenClaw
|
||||
(有 v2026.8.1 正式版)相比,发布纪律反而更松。
|
||||
source: "GitHub releases API(per_page=8,全部返回 prerelease=true)"
|
||||
- claim: "五层安全,内核级沙箱"
|
||||
actual: |-
|
||||
五层的实现描述相当具体(Seatbelt / Bubblewrap+Landlock / AppContainer,
|
||||
ShellEvasionGuardian 检测命令注入与反弹 shell),可信度高。
|
||||
但 **Tool Guard 提供 OFF 档**,整层可以关掉;Access Policy 也是"可配置为放行"。
|
||||
安全强度取决于用户配置,不是不可绕过的硬边界。
|
||||
source: "README Security Features 章节(列出 Tool Guard 的 STRICT / SMART / AUTO / OFF 四档)"
|
||||
- claim: "无需 API key,本地模型即可跑"
|
||||
actual: |-
|
||||
技术上成立:QwenPaw-Flash 2B / 4B / 9B(Q4 / Q8 量化)内置 llama.cpp 后端,
|
||||
在 Web UI 点下载即可用,并提供硬件感知推荐。
|
||||
但要清醒:**2B / 4B 量级的模型在复杂 agent 任务上的能力天花板很低**,
|
||||
"无需 key 跑起来"和"无需 key 好用"是两件事,重度任务仍要接云端 provider。
|
||||
source: "README Local Models 章节(列出 2B/4B/9B 与 Q4/Q8 量化)"
|
||||
- claim: "(历史)QwenPaw 是一个 2026 年 4 月后出现的全新项目"
|
||||
actual: |-
|
||||
不是。它是 2026-02-24 以 **CoPaw** 之名建仓的项目,2026-04-12 才更名。
|
||||
检索 2026 年 4 月之前的社区讨论、issue 与技术文章时必须按 CoPaw 检索,
|
||||
否则会严重低估它的历史沉淀与已知问题。
|
||||
source: "GitHub repo API(created_at=2026-02-24)+ README News 章节的更名公告"
|
||||
- claim: "(检索风险)github.com/agentscope-ai/QwenPaw 是唯一官方仓库"
|
||||
actual: |-
|
||||
存在同名仓库 `aqua88hn/qwenpaw`,README 内容与官方高度相似。
|
||||
以 star 数(官方 34.7k)与组织归属判断,官方仓库在 agentscope-ai 组织下;
|
||||
但同名仓库的存在会让"按名字搜仓库"直接得到错误结果。
|
||||
source: "GitHub 搜索结果与 repo API 交叉核对(agentscope-ai/QwenPaw = 34758 star,非 fork)"
|
||||
maturity: |-
|
||||
工程治理(巴士系数最健康、安全分层最完整)明显强于它的星标邻居们,
|
||||
但**发布纪律是短板**——所有 release 都是 beta,且一天能发多个 beta。
|
||||
功能面广、迭代快,适合自用与尝鲜;不适合作为团队关键链路的基础设施。
|
||||
maturity_level: "beta 活跃期"
|
||||
|
||||
chart:
|
||||
# 与 OpenClaw 同为"个人助理",但安全默认值与本地能力都更强,形态更传统。
|
||||
form_depth: 5 # Web 控制台 + TUI + 桌面 beta,形态传统,无原生设备节点
|
||||
engine_neutral: 2 # 自身即引擎(不代理外部 agent),但模型层 14+ provider 真中立
|
||||
local_first_score: 9 # 内置 llama.cpp + 自研 Flash 模型,无需 API key 即可跑
|
||||
deliverable_depth: 4 # Coding Mode 三栏 IDE + 文档处理 + 定时推送,但非可编辑交付物体系
|
||||
chart_note: "与 OpenClaw 同赛道对照看:形态略浅、本地优先更强、安全默认值显著更高"
|
||||
verdict:
|
||||
one_liner: |-
|
||||
七个样本里安全默认值最完整、巴士系数最健康的个人助理——
|
||||
但至今没有发过一个正式版,且 `--defaults` 安装路径会默认打开遥测。
|
||||
who_should_use: |-
|
||||
把数据与隐私放第一位、希望助理完全跑在本地的个人与小团队;
|
||||
需要在钉钉 / 飞书 / 微信 / QQ 渠道里用助理的国内团队;
|
||||
想不买 API key 先把流程跑通的尝鲜者。
|
||||
who_should_not: |-
|
||||
需要正式版与稳定升级路径的团队(它全是 beta);
|
||||
指望 2B / 4B 本地模型扛复杂 agent 任务的人;
|
||||
把"五层安全"当成不可绕过硬边界的人(Tool Guard 有 OFF 档)。
|
||||
mirror:
|
||||
gitea_repo: gitinbox/qwenpaw
|
||||
visibility: public
|
||||
upstream: "https://github.com/agentscope-ai/QwenPaw"
|
||||
last_sync: 2026-09-01
|
||||
mode: source-only
|
||||
sync_note: |-
|
||||
109 MB,理论可行(约 36 分钟拉完),但超过 Gitea 50 MB 推送上限,
|
||||
需走 mirror_sync.sh 的 source-only 快照降级。尚未执行,待带宽窗口。
|
||||
article:
|
||||
emlog_id: 0 # emlog 文章 ID,发布后回写
|
||||
published_at: ""
|
||||
url: ""
|
||||
@@ -0,0 +1,302 @@
|
||||
# tutti · 项目档案
|
||||
# 生成于 2026-09-01 · 由 scripts/new_project.py 从 schema 生成
|
||||
# 人工补完重点:business / scenario / tech / risk.claim_vs_reality / verdict
|
||||
# 字段规范见 schema/project.schema.yaml
|
||||
#
|
||||
# ⚠️ 本档案的技术维度基于**本地源码实测**(/Users/figmarlite/.../tutti_repo,
|
||||
# Apache-2.0 浅克隆 8291 文件),不是从 README 转述。所有行数均为 wc -l 实测。
|
||||
|
||||
id: tutti
|
||||
name: "Tutti"
|
||||
repo: "tutti-os/tutti"
|
||||
homepage: "https://tutti.sh/"
|
||||
added_at: "2026-09-01"
|
||||
status: active
|
||||
identity:
|
||||
tagline: "Where people and agents build in tune."
|
||||
vendor: "Nexight(tutti.sh)"
|
||||
vendor_type: "vendor"
|
||||
region: "未公开(NOTICE 声明 'developed at Nexight')"
|
||||
first_seen: "2026-06-12"
|
||||
name_note: |-
|
||||
本体系里**最年轻的样本**(建仓至今 2.5 个月),也是 star 最少的(3.6k),
|
||||
但工程规范度排在前列——见下方 risk 与 tech 的实测数据。
|
||||
business:
|
||||
|
||||
positioning: |-
|
||||
站在「多人 × 多 Agent 的实时协作空间层」,是七个样本里**唯一把"多人"写进定位的**。
|
||||
它不造引擎、不卖模型,做的是"让你已有的 agent 订阅在同一个工作区里协同":
|
||||
Claude 写了一半的活儿交给 Codex 接着干,中间不用重新讲一遍背景。
|
||||
但它的商业模式是清晰的 open-core:**开源版只给"单人 + 多 Agent",
|
||||
"多人 + 多设备 + 云同步"全在闭源的 Tutti · VM 侧**(Early Access,需邀请码)。
|
||||
target_users:
|
||||
- 同时用多个 agent 订阅(Claude Code + Codex + Hermes)的重度开发者
|
||||
- 需要 agent 之间共享上下文、接力同一件事的小团队
|
||||
- 想让 agent 产出不止代码(设计稿 / 文档 / PPT)的人
|
||||
- 需要多人 × 多 Agent 同屏协作的团队(但这类需求会被引流到闭源 VM 版)
|
||||
monetization: |-
|
||||
**Open-core 双轨**:开源版(Apache-2.0)免费且自托管;Tutti · VM 为 Early Access
|
||||
商业版,需邀请码创建 Cloud Room。Tutti 内置 Agent 在 Early Access 期免费,
|
||||
README 明示"后续可能按用量计费"。
|
||||
这是七个样本里**变现路径最清晰的一个**。
|
||||
license:
|
||||
spdx: "Apache-2.0"
|
||||
name: "Apache License 2.0"
|
||||
openness: L1
|
||||
redistributable: true
|
||||
key_restrictions:
|
||||
- 需保留 NOTICE 文件——且本项目的 NOTICE 内容相当长(见 tech 备注)
|
||||
- 商标条款:不授予 Tutti / Nexight 商标使用许可
|
||||
- ⚠️ NOTICE 中有一处 **CC-BY-4.0**(VS Code Codicons 的 inspect 图标),
|
||||
这是比 Apache-2.0 更严格的署名要求,再分发时必须保留署名
|
||||
moat: |-
|
||||
① 双层引擎接入架构(ACP 协议层 + runtimeprep 运行时准备层),把"接引擎"
|
||||
拆成了协议适配与运行时准备两件事,这是其余样本没有做的分层;
|
||||
② Workbench 节点模型 + 内置 Apps(AI Canvas / UI 原型 / Docs / AI PPT / 群聊);
|
||||
③ 多 Agent 实时文件协同编辑(daemon 负责落盘与冲突投影)。
|
||||
真正的壁垒在**多人协同的工程实现**(Cloud Room + DeviceLink 的 ICE/QUIC),
|
||||
而这部分恰好不在开源侧。
|
||||
competitive_risk: |-
|
||||
最容易被 Anthropic / OpenAI 官方的协作能力吃掉——Tutti 不拥有任何引擎与模型。
|
||||
更直接的威胁:它宣传的"agent 之间共享上下文"能力,各家引擎自己在做
|
||||
(Claude Code 的 subagent、Codex 的 session resume),Tutti 的跨引擎优势
|
||||
会随着引擎自身变强而稀释。
|
||||
|
||||
scenario:
|
||||
|
||||
primary:
|
||||
- 同一 workspace 里并行驱动多个 agent,共享文件与上下文
|
||||
- agent 之间接力:Codex 接着 Claude 写了一半的活儿继续,无需重述背景
|
||||
- 用 Big @ 跨 agent / 跨会话引用产出与上下文,用 + 快速引用文件
|
||||
- 多 agent 实时协同编辑同一批文件,daemon 负责落盘与冲突投影
|
||||
- 通过内置 Apps 让 agent 直接产出设计稿 / 文档 / PPT(不只是代码)
|
||||
- 【闭源 VM 版】多人同屏、跨设备、借用他人 agent、免部署分享
|
||||
typical_use_cases:
|
||||
- Claude 写完 PRD,让 agent 调设计 App 直接出视觉稿
|
||||
- 描述一个目标,Tutti 拆成子任务后分派给最合适的 agent
|
||||
- 用已有订阅额度驱动 Tutti 里的所有内置 App,不额外付费
|
||||
- 【VM】本地跑的 localhost 站点直接在 Room 里给别人预览,不用部署
|
||||
industries:
|
||||
- 软件研发
|
||||
- 产品与设计协作
|
||||
- 内容生产
|
||||
interaction_mode:
|
||||
- 桌面应用(Electron)
|
||||
- TUI / CLI(Go)
|
||||
- Workbench 节点(Browser / Terminal / App Center)
|
||||
- 【闭源 VM】Cloud Room 多人多设备
|
||||
human_in_the_loop: |-
|
||||
Agent Board 可视化所有 agent 的任务与状态,统一调度;goal review / plan feedback
|
||||
(Tutti Mode 执行)。活动复制与状态探针(agentstatus + account-usage)提供过程可见性。
|
||||
deliverables:
|
||||
- code
|
||||
- 设计稿(AI Canvas / UI-UX 原型)
|
||||
- 文档 / PPT(Docs / AI PPT 内置 App)
|
||||
- 会话回放(session-replay)
|
||||
|
||||
tech:
|
||||
|
||||
form_factor: |-
|
||||
pnpm + Go Workspace 混合 monorepo;桌面端 Electron;守护进程 tuttid(Go);
|
||||
CLI(Go);Agent 运行时基于 **ACP(Agent Client Protocol)** + uv / npm / pnpm
|
||||
托管运行时。语言构成 TypeScript 48.8% / Go 45.4% —— **后端用 Go 而不是 Node,
|
||||
这是它和其余 Electron 系样本的关键差异**(守护进程的稳定性与并发模型更好)。
|
||||
stack:
|
||||
- TypeScript 48.8%
|
||||
- Go 45.4%(守护进程 tuttid + CLI)
|
||||
- JavaScript 4.2%
|
||||
- CSS 0.9%
|
||||
- Kotlin 0.3%(Android)
|
||||
- Shell 0.1%
|
||||
engine_abstraction:
|
||||
supported:
|
||||
- Codex(接入最深)
|
||||
- Claude Code
|
||||
- Cursor
|
||||
- OpenCode
|
||||
- Kimi Code
|
||||
- Hermes
|
||||
- OpenClaw(in development)
|
||||
- Computer Use
|
||||
- Browser Use
|
||||
- Tutti 内置 Agent
|
||||
mechanism: |-
|
||||
**双层架构**,这是 Tutti 在引擎接入上最值得记的一笔:
|
||||
第 1 层 `packages/agent/daemon/runtime/acp_provider_*.go` —— ACP 协议适配
|
||||
第 2 层 `packages/agent/runtimeprep/` —— 运行时准备(配置注入、skill 装配、
|
||||
Windows 兼容、模型缓存、目录同步)
|
||||
全仓有 363 个文件引用 ACP,**是真集成,不是营销词**。
|
||||
abstraction_layer: "ACP(Agent Client Protocol)+ runtimeprep 准备层"
|
||||
depth_notes: |-
|
||||
⚠️ **接入深度极不对等,实测数据如下**(packages/agent/runtimeprep/,非测试行数):
|
||||
Codex 16 文件 2170 行 ← 一国独大
|
||||
Tutti 内置 2 文件 653 行
|
||||
Cursor 2 文件 446 行
|
||||
Claude 3 文件 410 行
|
||||
OpenCode 2 文件 392 行
|
||||
Kimi 1 文件 127 行
|
||||
ComputerUse 1 文件 43 行
|
||||
BrowserUse 1 文件 43 行
|
||||
**Codex 是 Kimi 的 17 倍。** 且只有 Codex 有 Windows 变体文件
|
||||
(codex_directory_windows.go 149 行、codex_file_windows.go、
|
||||
codex_models_cache_windows.go 等 4 个),其余引擎一个 Windows 变体都没有
|
||||
——说明**只有 Codex 在 Windows 上被真正验证过**。
|
||||
|
||||
更有意思的是**测试密度与实现规模成反比**:
|
||||
OpenCode 392 行实现 / 218 行测试 = 0.56(密度最高)
|
||||
Cursor 446 / 187 = 0.42
|
||||
Tutti 内置 653 / 274 = 0.42
|
||||
Claude 410 / 136 = 0.33
|
||||
Codex 2170 / 261 = **0.12(投入最大,保障最薄)**
|
||||
Kimi 127 / 0 = 0.00
|
||||
ComputerUse / BrowserUse 43 / 0 = 0.00
|
||||
即:**投入最重的 Codex 恰恰是质量保障最薄弱的地方**,因为它的边界情况最多
|
||||
(Windows 兼容、模型缓存、配置依赖、skill roots、用户指令),测试却没跟上。
|
||||
另有 19 个通用测试文件共 7851 行(preparer_test.go 单文件 2906 行)
|
||||
覆盖跨引擎路径,部分弥补了单引擎测试的缺失。
|
||||
extension_system:
|
||||
skills: "provider_skill.go(655 行)+ stable_skill_bundle.go(308 行)+ codex_skill_roots.go;支持 personal skill"
|
||||
plugins: "extension_runtime.go(735 行):为 Hermes 提供 RTK Python 插件机制(命令重写)"
|
||||
mcp: "codex_mcp.go(65 行)—— 注意:MCP 实现挂在 Codex 名下,不是通用层"
|
||||
model_binding: |-
|
||||
不绑定模型,但**绑定 agent 订阅**:README 明确"用你已有的 Claude / Codex /
|
||||
其他订阅"。没有订阅的用户可用 Tutti 内置 Agent(Early Access 期免费)。
|
||||
local_first: true
|
||||
multi_agent: |-
|
||||
Agent Board 统一调度 + Big @ 跨 agent 引用 + 多 agent 实时文件协同编辑
|
||||
(daemon 落盘与冲突投影)+ 工作流与自动化规则 + Issue/Task/Run 工作流。
|
||||
会话回放(session-replay)与活动复制(activity-replication)是它的特色。
|
||||
permission_sandbox: |-
|
||||
tutti_cli_policy.go(140 行)提供 CLI 策略控制;workspace 级权限与 provision 流程。
|
||||
相较 QwenPaw(内核级沙箱默认开)与 OpenClaw(沙箱默认关),
|
||||
Tutti 的开源侧没有看到同等强度的执行隔离——它的安全边界更多落在
|
||||
workspace 与 daemon 层,而非内核沙箱。
|
||||
observability: |-
|
||||
这是 Tutti 的强项:Agent Board 看板 + 状态探针(agentstatus + account-usage)+
|
||||
会话回放 + 活动复制 + goal review / plan feedback。执行过程可追溯性
|
||||
在七个样本里仅次于 Maka。
|
||||
|
||||
ecosystem:
|
||||
metrics:
|
||||
stars: 3660
|
||||
forks: 371
|
||||
open_issues: 185
|
||||
subscribers: 115
|
||||
created_at: 2026-06-12
|
||||
pushed_at: 2026-09-01
|
||||
size_kb: 248635
|
||||
languages: {TypeScript: 48.8, Go: 45.4, JavaScript: 4.2, CSS: 0.9, Kotlin: 0.3, Shell: 0.1}
|
||||
latest_release: stable
|
||||
release_cadence: 约 3 天/版本
|
||||
data_date: 2026-09-01
|
||||
stale: false
|
||||
community: |-
|
||||
3.6k star、371 fork、185 issue,规模是七个里最小的,但**发布纪律是七个里最好的**:
|
||||
最近 8 个 release 全部 prerelease=False(v0.2.25 → v0.2.31,约 3 天一版)。
|
||||
另维护一个名为 `stable` 的**滚动 tag**(始终指向最新稳定版,会随发版移动)——
|
||||
方便用户固定引用,代价是该 tag 的历史不可追溯。
|
||||
对比:OpenClaw 版本号倒挂(9.1-beta 早于 8.1 正式)、QwenPaw 全是 beta,
|
||||
star 数最少的 Tutti 反而是唯一持续发正式版的。
|
||||
standards:
|
||||
- "ACP(Agent Client Protocol)——363 个文件引用,深度采纳"
|
||||
notable_events:
|
||||
- "2026-06-12:建仓"
|
||||
- "2026-07-23:docs/specs/2026-07-23-hermes-agent-extension-acceptance.md(Hermes 以扩展方式接入的验收规格)"
|
||||
- "2026-09-01:v0.2.31 与滚动 tag stable 同日发布"
|
||||
|
||||
risk:
|
||||
license_risk: |-
|
||||
Apache-2.0 本身无风险,但**NOTICE 必须完整保留**:它记录了 5 处第三方代码,
|
||||
且其中 VS Code Codicons 的 inspect 图标用的是 **CC-BY-4.0**(署名要求
|
||||
比 Apache-2.0 更严),再分发时漏掉署名即构成侵权。
|
||||
vendor_lockin: |-
|
||||
**锁定在"协作"而非"代码"**:开源版能跑,但 Group chat / 多人协作 /
|
||||
同时编辑 / 跨设备 / agent 借用 / 免部署分享这六项功能全在闭源 VM 侧,
|
||||
且创建 Room 需要邀请码(waitlist)。一旦团队依赖上协作能力,就上了商业版的船。
|
||||
这是七个样本里 open-core 切分最干脆的一个。
|
||||
claim_vs_reality:
|
||||
- claim: "(README)Currently Claude Code, Codex, and Hermes;OpenClaw is in development"
|
||||
actual: |-
|
||||
**README 与代码对不上,两个方向都偏。**
|
||||
宣称"当前支持"的 Hermes,在 runtimeprep 里**没有 hermes.go** —— 它走的是
|
||||
extension_runtime.go 的 RTK Python 插件机制(provider 标识 `acp:hermes`,
|
||||
用 Python 插件重写命令),只有测试文件 hermes_test.go(580) 与
|
||||
hermes_verify_test.go(77),没有原生 adapter。
|
||||
宣称"in development"的 OpenClaw,确实只有 acp_provider_openclaw.go **52 行、
|
||||
零测试**(对比 OpenCode 的 301 行 + 540 行测试)—— README 这处倒是诚实的。
|
||||
反过来,**Cursor / OpenCode / Kimi / ComputerUse / BrowserUse 在代码里都有
|
||||
完整实现,README 的支持列表却一个字没提。**
|
||||
结论:README 的支持列表更像"营销优先级排序",不是代码覆盖的如实反映。
|
||||
source: "本地源码实测:runtimeprep 目录文件清单 + daemon/runtime/acp_provider_*.go 行数 + grep hermes 引用"
|
||||
- claim: "多引擎中立"
|
||||
actual: |-
|
||||
协议层中立(都走 ACP),**深度层远不中立**。Codex 2170 行 vs Kimi 127 行,
|
||||
17 倍差距;只有 Codex 有 Windows 变体,其余引擎在 Windows 上未验证。
|
||||
而且测试密度反常:Codex 0.12(最低)vs OpenCode 0.56(最高),
|
||||
Kimi / ComputerUse / BrowserUse 测试为零。
|
||||
所谓"中立"是**接入方式的中立**,不是**投入与保障的中立**。
|
||||
source: "本地源码 wc -l 实测(实现文件与测试文件分别统计)"
|
||||
- claim: "Where people and agents build in tune(多人 × 多 Agent)"
|
||||
actual: |-
|
||||
开源版里只有 "agents",**"people" 那部分在闭源侧**。README 的
|
||||
Two Versions 对照表明确:Group chat / Work with others /
|
||||
Work with others' agents / Simultaneous editing / Agent borrowing /
|
||||
Across devices / No-deploy sharing —— 七项全部是 VM 版专属,
|
||||
开源版一格 ✓ 都没有。而 VM 版是 Early Access,**创建 Room 需要邀请码**。
|
||||
Big @ 在开源版里只能在"你自己的 agent 之间"引用,跨人引用要 VM 版。
|
||||
source: "README 'Two Versions of Tutti' 与 'Tutti vs Tutti · VM' 两张对照表原文"
|
||||
- claim: "Apache-2.0 开源"
|
||||
actual: |-
|
||||
许可证属实且 NOTICE 写得极其规范(5 处第三方代码全部精确到文件路径、
|
||||
上游 revision hash 与适配说明,是七个样本里 NOTICE 质量最高的)。
|
||||
但"开源"不等于"功能完整"——结合上一条,开源版的功能完整度约一半,
|
||||
核心价值(协作)在闭源侧。Apache-2.0 保证了你能自由改代码,
|
||||
不保证你能用到它宣传的完整体验。
|
||||
source: "本地源码 NOTICE 全文 + README 版本对照表"
|
||||
- claim: "(隐含)体量小 = 成熟度低"
|
||||
actual: |-
|
||||
反例。它是七个样本里 star 最少(3.6k)、建仓最晚(2026-06-12)的,
|
||||
但**发布纪律最好**:8 个 release 全是正式版,且维护 `stable` 滚动 tag。
|
||||
工程规范度(NOTICE 精度、测试投入 7851 行通用测试、Go 守护进程)
|
||||
明显超过 star 数比它高一个数量级的 OpenClaw 与 QwenPaw。
|
||||
**star 数与工程成熟度在本体系的七个样本里呈负相关。**
|
||||
source: "GitHub releases API + 本地源码 NOTICE 与测试文件实测"
|
||||
maturity: |-
|
||||
建仓仅 2.5 个月,处在快速成长期。发布纪律是七个样本里最好的(全部正式版 +
|
||||
stable 滚动 tag),工程规范度高(NOTICE 精确到 revision hash、通用测试 7851 行、
|
||||
Go 守护进程),但引擎接入深度严重向 Codex 倾斜、开源版功能完整度约一半。
|
||||
适合自用与"多 agent 接力"场景,不适合指望开源版承担团队协同。
|
||||
maturity_level: "快速成长期"
|
||||
|
||||
chart:
|
||||
form_depth: 8 # Electron + Workbench 节点 + 内置 Apps,形态最完整之一
|
||||
engine_neutral: 8 # ACP 协议层真统一(363 文件),但深度极不对等(见 depth_notes)
|
||||
local_first_score: 7 # 开源版本地跑,但协作能力全在云端 VM 侧
|
||||
deliverable_depth: 7 # 内置 Apps 出设计稿 / 文档 / PPT,不止代码
|
||||
chart_note: "引擎中立项给的是协议层统一;若按投入对等度重评,该项应下调至 4 左右"
|
||||
verdict:
|
||||
one_liner: |-
|
||||
把「多 agent 共享上下文、接力干活」做成了产品,且是七个里发布纪律最好的——
|
||||
但接入深度严重偏袒 Codex(17 倍差距),而宣传的「多人协作」全在闭源 VM 版。
|
||||
who_should_use: |-
|
||||
手里已有多个 agent 订阅、想让它们在同一工作区里接力与共享上下文的开发者;
|
||||
想让 agent 产出设计稿 / 文档 / PPT 而不只是代码的人;
|
||||
看重发布纪律与工程规范(NOTICE 精度、正式版节奏)的人。
|
||||
who_should_not: |-
|
||||
指望开源版做团队多人协作的人(那七项功能全在闭源 VM 侧,且需邀请码);
|
||||
主要用 Kimi / ComputerUse / BrowserUse 的人(这三个接入最薄、测试为零);
|
||||
Windows 用户且主力引擎不是 Codex 的人(只有 Codex 做了 Windows 适配)。
|
||||
mirror:
|
||||
gitea_repo: "gitinbox/tutti"
|
||||
visibility: public
|
||||
upstream: "https://github.com/tutti-os/tutti"
|
||||
last_sync: ""
|
||||
mode: "pending"
|
||||
sync_note: |-
|
||||
243 MB。本地已有浅克隆(/Users/figmarlite/.../tutti_repo,8291 文件),
|
||||
技术维度分析即基于此,可直接复用做快照,无需重新下载。
|
||||
仍需 unshallow 补全历史后走 source-only 降级(超 Gitea 50 MB 上限)。尚未执行。
|
||||
article:
|
||||
emlog_id: 0 # emlog 文章 ID,发布后回写
|
||||
published_at: ""
|
||||
url: ""
|
||||
Reference in New Issue
Block a user