From 87dc8f78fa2dc4a168ca919a9f59ddf3faf52861 Mon Sep 17 00:00:00 2001 From: gitea-publish Date: Wed, 2 Sep 2026 01:44:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=80=BB=E7=BA=B2=E5=8E=BB=E9=99=A4?= =?UTF-8?q?=E8=BF=87=E6=97=B6=E7=9A=84=E3=80=8C=E5=9B=9B=E4=B8=AA=E9=87=8C?= =?UTF-8?q?=E3=80=8D=E8=AE=A1=E6=95=B0=EF=BC=88YAML+=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E6=BA=90=EF=BC=89=EF=BC=8Cmirror=5Fsync=20=E5=A2=9E=20--bloble?= =?UTF-8?q?ss=20=E4=B8=8E=E5=85=8B=E9=9A=86=E9=87=8D=E8=AF=95=E5=8A=A0?= =?UTF-8?q?=E5=9B=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - data/projects/*.yaml:maka/openclaw/openwork 的 positioning 文案去掉样本计数比较级 (扩到 7 样本后「四个里唯一…」已不成立或表述失真),改事实陈述 - articles/00-overview.md(id=98 源):同步 4 处,已重发线上覆盖 - scripts/mirror_sync.sh:新增 --blobless(--filter=blob:none 懒拉 blob,大仓可省 10x 传输); 克隆重试 3→8 次且退避 10→80s,抗沙箱代理 502 抖动 --- articles/00-overview.md | 8 ++++---- data/projects/maka.yaml | 6 +++--- data/projects/openclaw.yaml | 2 +- data/projects/openwork.yaml | 4 ++-- scripts/mirror_sync.sh | 20 ++++++++++++++++---- 5 files changed, 26 insertions(+), 14 deletions(-) diff --git a/articles/00-overview.md b/articles/00-overview.md index a64c1b2..da87488 100644 --- a/articles/00-overview.md +++ b/articles/00-overview.md @@ -70,8 +70,8 @@ Codex Harness 开放、DeepSeek Harness 开放,一个个执行引擎被拆出 | 项目 | 定位 | 目标用户 | 变现 | 许可证 | 成色 | | --- | --- | --- | --- | --- | --- | | **iPolloWork** | 站在 Agent 工具链的**工作台层**而非引擎层:不替代 Codex / DSH / OpenCode 中任何一个,而是把它们收进同一个项目空间,并把交付物从代码延伸到文档、演示稿、网站、设计与视频 | 企业研发团队、需要人机协作的 agent 团队、需要产出并持续修改 PPT / 网页 / 设计 / 视频的内容团队 | 双轨:个人自用与少于 3 人的小规模内部使用免费;3 人及以上、以及任何售卖 / 转售 / 付费服务 / SaaS / 托管 / 白标 / 市场分发 / 面向客户的使用,均需书面授权。配套 iPolloCloud 承载身份、组织、权益与商业 App | iPolloWork Source Available License 1.0 | L3 | -| **maka** | 站在「执行记录层」:不追功能广度,把「agent 干过什么必须可复现、 可审计、可评测」做成地基。同时是四个里唯一自带评测框架的项目。 | 对可审计性与数据主权有硬要求的团队、需要横向评测不同 agent / 模型的研究者与工程团队、愿意用功能丰富度换确定性的自用开发者 | 无。Apache 孵化项目,无商业实体、无双许可、无付费层。 | Apache License 2.0 | L1 | -| **OpenClaw** | 站在「个人助理执行层」,而且是**唯一一个不面向开发者的样本**。 它不接入别的 agent,自己就是 agent;不产出代码交付物,产出的是"事儿办完了"—— 邮件发了、日程改了、值机办了。入口是用户已经在用的聊天软件,不是 IDE 也不是桌面工作台。 这一条把它和本体系其余 6 个样本彻底分开:**它们的用户是开发者,OpenClaw 的用户是普通人。** | 想让 AI 接管日常事务(收件箱、日历、出行)的非技术用户、重度聊天软件用户(WhatsApp / Telegram / iMessage / Signal)、想在自己机器上跑私人助理、拒绝 SaaS 托管的数据敏感用户 | 免费开源 + 赞助(README 有 Sponsors 段)。创始人 2026-02 加入 OpenAI 后, OpenAI 承诺在保持 MIT 的前提下继续赞助,项目转由独立基金会运营。 这是四个样本里唯一"没有商业变现路径"的——目前看不到收费层。 | MIT(SPDX 误判,人工复核确认) | L1 | +| **maka** | 站在「执行记录层」:不追功能广度,把「agent 干过什么必须可复现、 可审计、可评测」做成地基。同时是唯一自带评测框架的项目。 | 对可审计性与数据主权有硬要求的团队、需要横向评测不同 agent / 模型的研究者与工程团队、愿意用功能丰富度换确定性的自用开发者 | 无。Apache 孵化项目,无商业实体、无双许可、无付费层。 | Apache License 2.0 | L1 | +| **OpenClaw** | 站在「个人助理执行层」,而且是**唯一一个不面向开发者的样本**。 它不接入别的 agent,自己就是 agent;不产出代码交付物,产出的是"事儿办完了"—— 邮件发了、日程改了、值机办了。入口是用户已经在用的聊天软件,不是 IDE 也不是桌面工作台。 这一条把它和本体系其余 6 个样本彻底分开:**它们的用户是开发者,OpenClaw 的用户是普通人。** | 想让 AI 接管日常事务(收件箱、日历、出行)的非技术用户、重度聊天软件用户(WhatsApp / Telegram / iMessage / Signal)、想在自己机器上跑私人助理、拒绝 SaaS 托管的数据敏感用户 | 免费开源 + 赞助(README 有 Sponsors 段)。创始人 2026-02 加入 OpenAI 后, OpenAI 承诺在保持 MIT 的前提下继续赞助,项目转由独立基金会运营。 目前看不到收费层。 | MIT(SPDX 误判,人工复核确认) | L1 | | **openwork** | 站在「能力分发层」,不争桌面入口。核心资产是 OpenWork MCP 与 Den 控制面—— 把 skills / MCP / 连接服务做成可跨工具、跨人、跨机器复用的组织级能力包。 | 已在使用 Codex / Claude Code / Cursor 且不想换工具的开发者、需要统一管控 agent 能力的中大型组织、想把自己搭好的工作流分发给同事或朋友的团队 | Den 订阅(组织控制面)。免费额度写得很明确: 5 人以下组织的非 Enterprise 功能全免、任意规模 30 天评估、开发测试永久免费。 | 目录切分许可(GitLab 式):ee/ 之外为 MIT;ee/ 为 OpenWork EE License | L3 | | **orca** | 站在「执行编排层」:不造引擎、不卖模型,只做并行 agent 的调度与可观测外壳。 上游是各家 CLI agent,下游是开发者的本机/远程 worktree。 | 自称 100x builders 的重度个人开发者、需要同时试多种实现方案再择优合并的小团队、已在用 Codex / Claude Code / OpenCode 并想并行跑的人 | 未明示,且这是它最大的商业不确定性。MIT 全开源、无企业版、无订阅层, README 明确不提供模型也不代买订阅。收入路径尚未公开。 | MIT License | L1 | | **QwenPaw** | 与 OpenClaw 同处「个人助理执行层」,是本项目在本体系中唯一的正面对手。 但立足点不同:OpenClaw 靠**渠道覆盖与生态规模**取胜,QwenPaw 靠**安全默认值与 本地可跑**取胜。它把自己定位成"能长期记住你、数据不离开你机器的私人助理", 而不是功能最全的助理。 团队背景决定了差异化:背靠 AgentScope(AgentScope / AgentScope Runtime / ReMe), 记忆系统直接建在 ReMe 个人知识框架上。 | 对数据主权与隐私有硬要求、希望助理完全跑在本地的个人用户、需要在钉钉 / 飞书 / 微信 / QQ 等国内渠道里用助理的团队、想不买 API key 就先跑起来的尝鲜用户(QwenPaw-Flash 本地模型)、愿意用功能广度换安全确定性的自用开发者 | Apache-2.0 全开源,未见收费层;提供 Docker / 阿里云 ECS / AgentScope 平台 / ModelScope 创空间等多条部署路径(云部署路径隐含云厂商导流)。 与 OpenClaw 一样**没有明示的变现路径**。 | Apache License 2.0 | L1 | @@ -150,7 +150,7 @@ Go 守护进程),但引擎接入深度严重向 Codex 倾斜、开源版功 | **maka** | Apache 品牌 = 成熟稳定、可用于生产 | 孵化状态恰恰是「尚未被 ASF 完全背书」的标记,README 自带官方免责声明。 且截至 2026-09-01 **没有任何 Apache 正式 release**, 对外分发的只有 Desktop Nightly,README 明确标注 「not an ASF release, not intended for production use」。 平台支持也最窄:macOS arm64 是唯一正式档, Windows 为未签名预览,Linux 标注 soon。 | README 的 NOTE / IMPORTANT 段、Releases and downloads 段、平台 badge | | **maka** | 「Your machine, your data」本地优先、数据主权 | 数据确实不出机器,但 **API key 以明文文件存放**—— README 原文承认 credential-vault.json 是 「local plaintext file, readable only by your OS account」。 防护依赖操作系统账户权限,而非加密或系统钥匙串。 renderer 进程拿不到,但同机任一以你身份运行的进程都能读到。 | README「Local data and recovery」段 | | **maka** | 崩溃恢复与可选续跑 | 续跑**默认关闭**,需手动设 MAKA_RUNTIME_SAFE_BOUNDARY_RESUME=1, 且 README 明确警告该调用会打模型、消耗 token。 另存在**升级断代**:旧版 JSONL transcripts 与 Electron safeStorage 凭据不会被导入,升级后的工作区可能出现空线程,凭据必须重新录入。 | README「Local data and recovery」段 | -| **maka** | (无明确宣称,但易被期待为开箱即用的完整工作台) | 内置工具只有 Read / Write / Edit / Bash / Glob / Grep 六个; Computer Use 与 catalog skills 属可选且默认关闭; IM bot(聊天应用接入)标注 experimental。 功能面是四个里最保守的——取舍很明确:用广度换确定性。 | README「Current capabilities」段 | +| **maka** | (无明确宣称,但易被期待为开箱即用的完整工作台) | 内置工具只有 Read / Write / Edit / Bash / Glob / Grep 六个; Computer Use 与 catalog skills 属可选且默认关闭; IM bot(聊天应用接入)标注 experimental。 功能面是七个项目里最保守的——取舍很明确:用广度换确定性。 | README「Current capabilities」段 | | **maka** | 支持 Graph 多算子并行 | Graph 的实现算子跑在独立 git worktree,且**要求源项目是干净 worktree**—— 有未提交改动就用不了。相比 Orca 的并行 worktree(产品级封装), Maka 的 Graph 更接近实验性能力。 | README「Terminal entry points」段 | | **OpenClaw** | 停更 7 周(多家媒体转述,指 7 月中旬 v2026.7.1 之后断更) | 失真。查 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)。 多线并行导致版本号与实际时间顺序倒挂。 | GitHub releases API(2026-09-01 取最近 12 个 release 的 published_at) | | **OpenClaw** | 3001 名贡献者 / 933 人共建 2.0(项目方与媒体反复引用) | 数字属实,但不能推导出"去中心化"。抽样最近 100 次提交:创始人 steipete 独占 64 次(64%),第二名 vincentkoc 仅 4 次,去重作者 27 人。 **巴士系数接近 1** —— 贡献者基数和实际决策集中度是两回事。 | GitHub commits API(2026-09-01 取 main 分支最近 100 次提交的 author.login 分布) | @@ -160,7 +160,7 @@ Go 守护进程),但引擎接入深度严重向 Codex 倾斜、开源版功 | **openwork** | 「Claude Cowork 的开源替代品」 | 形态完全不同。Cowork 是桌面操控型 agent(直接操作你的电脑完成工作); OpenWork 是能力分发型 MCP 层,桌面 app 被明确定位为可选—— README 原文「The desktop app is there when you want a dedicated workspace, but it is not required」。 它替代的是 Cowork 唤起的「能力复用」诉求,不是 Cowork 本身。 | README 开篇与「Use OpenWork from any agent」段 | | **openwork** | 跨 Codex / Claude Code / Cursor / OpenCode 多引擎通用 | 对 OpenCode 是原生的(仓库描述 powered by opencode,桌面端属其生态); 对其余引擎只通过自己暴露的两个 MCP 工具对接。 这是能力调用面,不是引擎执行面——OpenWork 不接管这些引擎的执行循环、 上下文与权限。对外宣称的「跨引擎」与内部实际的主从关系存在落差。 | README「It exposes two tools」段;仓库 description「powered by opencode」 | | **openwork** | free, open-source(免费开源) | 需要分目录看:ee/ 之外确实 MIT 且免费;但 ee/(Den 组织控制面、 MCP 网关、推理)属 source-available,生产使用需付费订阅, 只有 5 人以下组织、30 天评估、开发测试三种情形豁免。 个人免费,团队与企业要付费。 | README Licensing 段 + ee/LICENSE 原文 72 行 | -| **openwork** | (无明确宣称,但 SPDX 为 NOASSERTION,易被误读为「不够开源」) | 恰恰相反——它是四个项目里工程治理最规范的:强制 DCO sign-off、 ee/ 需额外 CLA、evals/ 目录放可执行测试规格并要求 PR 附测试证据、 worlds/ 放声明式的开发与测试环境定义。 NOASSERTION 只因根目录 LICENSE 是混合声明文件,不代表开放度低。 | README「Getting started (contributors)」与「Sending a pull request」段 | +| **openwork** | (无明确宣称,但 SPDX 为 NOASSERTION,易被误读为「不够开源」) | 恰恰相反——它是七个项目里工程治理最规范的:强制 DCO sign-off、 ee/ 需额外 CLA、evals/ 目录放可执行测试规格并要求 PR 附测试证据、 worlds/ 放声明式的开发与测试环境定义。 NOASSERTION 只因根目录 LICENSE 是混合声明文件,不代表开放度低。 | README「Getting started (contributors)」与「Sending a pull request」段 | | **orca** | 5000 个 open issue 反映社区问题积压与项目质量压力 | 抽样最近 100 条:全部创建于 2026-09-01 同一天,94% 无任何标签, 标题为 fix(ssh) / refactor / fix(task-page) 等内部任务口吻; 提交者 TOP3 为 nwparker(51)、OrcaWin(13)、klaidliadon(12)。 实为「团队自开的任务待办板」,且带明显 AI 批量生成痕迹 (如 OrcaWin 提交的「pty.spawn can leak a running agent process unboundedly: host holds the door open」)。 它不是社区投诉,也不构成 triage 压力——但同样说明这 5000 条 从未被当作对外承诺来管理。 | GitHub API /repos/stablyai/orca/issues?state=open,2026-09-01 抽样 100 条 | | **orca** | 「100x builders 的 AI Orchestrator」,面向多人协作的成熟开发环境 | 巴士系数为 1:最近 100 次提交中 nwparker 独占 79 次, 第二名 AmethystLiang 仅 9 次。功能面由单人 + AI 高强度驱动, 而非团队协作成果。 | GitHub API /repos/stablyai/orca/commits?per_page=100,2026-09-01 | | **orca** | 支持 30+ 种 agent,生态最开放 | 兼容判据是「能在终端里跑」,靠 PTY 拉起而非协议对接。 广度最大但深度最浅——所有引擎都拿不到结构化 tool call 与统一的权限回调。与 iPolloWork 为 OpenCode 做原生 Engine Protocol adapter 相比,Orca 与任一单引擎的耦合都更浅。 | README「Works with any CLI agent — if it runs in a terminal, it runs in Orca」 | diff --git a/data/projects/maka.yaml b/data/projects/maka.yaml index 424160f..b7c60cb 100644 --- a/data/projects/maka.yaml +++ b/data/projects/maka.yaml @@ -19,7 +19,7 @@ business: positioning: |- 站在「执行记录层」:不追功能广度,把「agent 干过什么必须可复现、 - 可审计、可评测」做成地基。同时是四个里唯一自带评测框架的项目。 + 可审计、可评测」做成地基。同时是唯一自带评测框架的项目。 target_users: - 对可审计性与数据主权有硬要求的团队 - 需要横向评测不同 agent / 模型的研究者与工程团队 @@ -145,7 +145,7 @@ risk: maturity_level: "孵化期" license_risk: |- - Apache-2.0,四个里最干净:可自由镜像与再分发,且自带专利授权条款, + Apache-2.0:可自由镜像与再分发,且自带专利授权条款, 无任何商业条款陷阱。 vendor_lockin: |- 锁定点最低:无商业实体、无付费层、数据落在本地 SQLite、 @@ -184,7 +184,7 @@ risk: 内置工具只有 Read / Write / Edit / Bash / Glob / Grep 六个; Computer Use 与 catalog skills 属可选且默认关闭; IM bot(聊天应用接入)标注 experimental。 - 功能面是四个里最保守的——取舍很明确:用广度换确定性。 + 功能面是七个项目里最保守的——取舍很明确:用广度换确定性。 source: README「Current capabilities」段 - claim: |- 支持 Graph 多算子并行 diff --git a/data/projects/openclaw.yaml b/data/projects/openclaw.yaml index b18d2e9..9054dbe 100644 --- a/data/projects/openclaw.yaml +++ b/data/projects/openclaw.yaml @@ -33,7 +33,7 @@ business: monetization: |- 免费开源 + 赞助(README 有 Sponsors 段)。创始人 2026-02 加入 OpenAI 后, OpenAI 承诺在保持 MIT 的前提下继续赞助,项目转由独立基金会运营。 - 这是四个样本里唯一"没有商业变现路径"的——目前看不到收费层。 + 目前看不到收费层。 # ⚠️ 自动定级把本项目判为 L3/private,**人工复核后推翻**。 # SPDX=NOASSERTION 的原因:LICENSE 末尾多了一段 # "Third-party notices for incorporated or adapted code are recorded in diff --git a/data/projects/openwork.yaml b/data/projects/openwork.yaml index 492eef8..aa76599 100644 --- a/data/projects/openwork.yaml +++ b/data/projects/openwork.yaml @@ -130,7 +130,7 @@ tech: ecosystem: community: |- - YC 背书,23k star。贡献门槛是四个里最高的: + YC 背书,23k star。贡献门槛是七个项目里最高的: 强制 DCO sign-off(每个 commit 都要 Signed-off-by), ee/ 目录的改动还需额外 CLA。 standards: @@ -195,7 +195,7 @@ risk: - claim: |- (无明确宣称,但 SPDX 为 NOASSERTION,易被误读为「不够开源」) actual: |- - 恰恰相反——它是四个项目里工程治理最规范的:强制 DCO sign-off、 + 恰恰相反——它是七个项目里工程治理最规范的:强制 DCO sign-off、 ee/ 需额外 CLA、evals/ 目录放可执行测试规格并要求 PR 附测试证据、 worlds/ 放声明式的开发与测试环境定义。 NOASSERTION 只因根目录 LICENSE 是混合声明文件,不代表开放度低。 diff --git a/scripts/mirror_sync.sh b/scripts/mirror_sync.sh index 2d8a85c..2dd0e65 100755 --- a/scripts/mirror_sync.sh +++ b/scripts/mirror_sync.sh @@ -4,6 +4,7 @@ # 用法: # bash scripts/mirror_sync.sh --id ipollowork # bash scripts/mirror_sync.sh --id ipollowork --depth 200 # 超大仓只取近期历史 +# bash scripts/mirror_sync.sh --id orca --blobless # 大仓懒拉 blob,只走源码快照 # # 可见性由档案的 business.license.redistributable 决定(L1/L2 → public,L3 → private)。 # 这条规则不能手工绕过:把 source-available 项目公开镜像,等于替对方做了一次 @@ -26,6 +27,10 @@ SET_PUBLIC="0" EXCLUDE_COUNT="0" # 跳过上游更新(本地裸仓已完整,只为重做快照时用) NO_FETCH="0" +# blobless 克隆:--filter=blob:none,初始只拉 commits+trees,checkout 时按需懒拉 blob。 +# 大仓(尤其 blob 占比高)可把传输量从整包几百 MB 砍到几十 MB,且具备"克隆成功即落盘、 +# 之后懒拉 blob 失败可重跑续传"的容错;代价是只能走源码快照(partial clone 不能按 mirror 推送)。 +BLOBLESS="0" while [[ $# -gt 0 ]]; do case "$1" in @@ -36,6 +41,7 @@ while [[ $# -gt 0 ]]; do --no-source-only) SOURCE_ONLY="no"; shift;; --set-public) SET_PUBLIC="1"; shift;; --no-fetch) NO_FETCH="1"; shift;; + --blobless) BLOBLESS="1"; shift;; *) echo "未知参数: $1" >&2; exit 1;; esac done @@ -232,19 +238,23 @@ else # 失败不保留已下载内容,所以首次克隆必须带重试。 CLONE_ARGS=(clone --mirror) [[ -n "${DEPTH}" ]] && CLONE_ARGS+=(--depth "${DEPTH}") + [[ "${BLOBLESS}" == "1" ]] && CLONE_ARGS+=(--filter=blob:none) if [[ -n "${DEPTH}" ]]; then echo " 首次镜像(--depth ${DEPTH},只取近期历史)..." else echo " 首次全量镜像(大仓请耐心)..." fi - for attempt in 1 2 3; do + # 沙箱代理对 GitHub 偶发 502(CONNECT tunnel failed),且大仓传输动辄几小时, + # 一次 502 就可能断在半途。所以克隆重试要够多、退避够长:8 次、10→80s 递增。 + # blobless 模式下"克隆成功即落盘"还能在 checkout 阶段继续容错(见下)。 + for attempt in $(seq 1 8); do if git "${CLONE_ARGS[@]}" "${UPSTREAM}" "${MIRROR_DIR}"; then break fi - echo " ⚠ 第 ${attempt} 次克隆失败,8s 后重试 ..." + echo " ⚠ 第 ${attempt} 次克隆失败,$(( attempt * 10 ))s 后重试 ..." rm -rf "${MIRROR_DIR}" - sleep 8 - [[ ${attempt} -eq 3 ]] && { echo "克隆三次均失败,请检查网络/代理" >&2; exit 1; } + sleep $(( attempt * 10 )) + [[ ${attempt} -eq 8 ]] && { echo "克隆八次均失败,请检查网络/代理" >&2; exit 1; } done fi @@ -287,6 +297,8 @@ P_ENC="$(/Users/figmarlite/.workbuddy/binaries/python/envs/default/bin/python -c MAX_PUSH_MB="${MAX_PUSH_MB:-45}" PACK_KB="$(git -C "${MIRROR_DIR}" count-objects -v | awk '/^size-pack:/{print $2}')" PACK_MB=$(( PACK_KB / 1024 )) +# blobless 镜像只能走源码快照:partial clone 不能按 mirror 推送。 +[[ "${BLOBLESS}" == "1" ]] && SOURCE_ONLY_FORCE="yes" MIRROR_MODE="full" echo " 本地裸仓打包体积: ${PACK_MB} MB(推送上限 ${MAX_PUSH_MB} MB)"