fix: 总纲去除过时的「四个里」计数(YAML+文章源),mirror_sync 增 --blobless 与克隆重试加固

- 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 抖动
This commit is contained in:
gitea-publish
2026-09-02 01:44:08 +08:00
parent ec9b234936
commit 87dc8f78fa
5 changed files with 26 additions and 14 deletions
+4 -4
View File
@@ -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」 |
+3 -3
View File
@@ -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 多算子并行
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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 是混合声明文件,不代表开放度低。
+16 -4
View File
@@ -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)"