样本 - openwork (different-ai/openwork) 23.2k★ 能力分发层,DCO + evals + worlds - orca (stablyai/orca) 58.8k★ 并行编排外壳,5000 issue 实为团队自开任务板 - maka (apache/maka) 4.4k★ 执行记录层,Apache 孵化但无正式 release 档案 - 三份五维档案填完,risk.claim_vs_reality 均已核实到证据 - ipollowork 象限坐标从占位 9/9/9/9 校准为 8/7/7/7(与新样本同一标尺) 文章 - 新增横评文《四个 Agent 工作台的路线分野:把「多引擎中立」拆开看》(emlog id=99) - 总纲文回填四项目矩阵 + 双视图象限图 (emlog id=98) 镜像 - gitinbox/maka 已推送(public,source-only 快照 12 MB) - openwork(291MB) / orca(671MB) 受 50KB/s 带宽约束,档案标 mode: pending 规则 - license-tiers.yaml 新增「目录切分许可」降级流程(OpenWork 判例: 排除 ee/ 后为纯 MIT → public,完整镜像 → private) - registry.yaml openwork 可见性改 public + mirror_excludes: ["ee/"] 脚本修复 - _common.py 新增 upsert_block:手工整块覆盖 ecosystem 删掉 metrics 时能自愈 - mirror_sync.sh:SOURCE_ONLY 未初始化(set -u 下偶发炸); 浅仓推送被服务端拒绝 → 自动 --unshallow,失败降级快照; 量体积前先 repack(此前新 commit 全是 loose object,恒打印 0 MB) - build_matrix.py:成熟度长文本移出表格(新增 maturity_level 短标签); 象限图标签靠右时翻转到左侧防溢出;SVG 加 max-width 防窄屏溢出; 文章索引改为自动生成(原先手抄,横评文发了索引里却没有) - publish_emlog.py:ID 回写按「有无同名档案」分流, 00-* 跨项目文章落到 articles/<id>.meta.yaml(此前 ID 无处可写)
229 lines
10 KiB
YAML
229 lines
10 KiB
YAML
# maka · 项目档案
|
||
# 生成于 2026-09-01 · 由 scripts/new_project.py 从 schema 生成
|
||
# 人工补完重点:business / scenario / tech / risk.claim_vs_reality / verdict
|
||
# 字段规范见 schema/project.schema.yaml
|
||
|
||
id: maka
|
||
name: "maka"
|
||
repo: "apache/maka"
|
||
homepage: ""
|
||
added_at: "2026-09-01"
|
||
status: active
|
||
identity:
|
||
tagline: "Apache Maka (Incubating) is a local-first AI agent workspace. Model messages, tool calls, tool results, permission decisions, and termination events are recorded as an append-only log."
|
||
vendor: "Apache 软件基金会(Incubating)"
|
||
vendor_type: "foundation"
|
||
region: "国际(ASF 孵化)"
|
||
first_seen: "2026-05-27"
|
||
business:
|
||
|
||
positioning: |-
|
||
站在「执行记录层」:不追功能广度,把「agent 干过什么必须可复现、
|
||
可审计、可评测」做成地基。同时是四个里唯一自带评测框架的项目。
|
||
target_users:
|
||
- 对可审计性与数据主权有硬要求的团队
|
||
- 需要横向评测不同 agent / 模型的研究者与工程团队
|
||
- 愿意用功能丰富度换确定性的自用开发者
|
||
monetization: |-
|
||
无。Apache 孵化项目,无商业实体、无双许可、无付费层。
|
||
license:
|
||
spdx: "Apache-2.0"
|
||
name: "Apache License 2.0"
|
||
openness: L1
|
||
redistributable: true
|
||
key_restrictions:
|
||
- 含明确的专利授权与反诉终止条款(Apache-2.0 固有)
|
||
- 修改需声明,NOTICE 文件须随分发保留
|
||
- 不授予商标使用权(Apache / ASF 商标政策单列)
|
||
moat: |-
|
||
执行记录模型 + 可复现评测框架 + ASF 治理背书。
|
||
三者都需要长期投入,不能靠快速迭代速成。
|
||
competitive_risk: |-
|
||
最容易被上游引擎把「记录与评测」原生化——
|
||
一旦 Codex / Claude Code 自己把 event log 与 eval 做进产品,
|
||
Maka 的地基优势会被稀释成一层「合规装饰」。
|
||
|
||
scenario:
|
||
|
||
primary:
|
||
- 本地优先的 agent 工作区(数据与执行记录不出机器)
|
||
- 可复现的 agent 评测实验(multi-arm experiments)
|
||
- 崩溃恢复与中断续跑
|
||
typical_use_cases:
|
||
- 在保密项目里用本地模型跑 agent,所有 tool call 与权限决策落 append-only 日志备查
|
||
- 用 maka eval run <spec> 对同一任务跑 task × repetition × subject 的多臂实验,横向比较得分/成本/耗时
|
||
- 会话崩了以后从执行记录恢复,并从任一 Turn 分叉出新会话继续
|
||
industries:
|
||
- 软件研发
|
||
- 受监管行业(金融、政务等有审计要求的场景)
|
||
- AI 评测与研究
|
||
interaction_mode:
|
||
- 桌面应用
|
||
- TUI / CLI
|
||
- 评测框架
|
||
human_in_the_loop: |-
|
||
强:工具越过沙箱边界必须审批;运行可中止;失败被分类。
|
||
deliverables:
|
||
- code
|
||
- artifact
|
||
- eval-report
|
||
- execution-record
|
||
|
||
tech:
|
||
|
||
form_factor: 桌面应用 + TUI/CLI + 评测框架,三者共用同一 Runtime Host
|
||
stack:
|
||
- Electron
|
||
- React
|
||
- TypeScript
|
||
- Node.js
|
||
- SQLite
|
||
- Rust(peer mesh 的 native addon)
|
||
- ripgrep(Runtime 的 Grep 工具依赖)
|
||
engine_abstraction:
|
||
supported:
|
||
- Maka 自带 Runtime(AgentRun)
|
||
mechanism: |-
|
||
不做外挂接入——自带完整 agent runtime,
|
||
Desktop / TUI / CLI / Eval 全部经同一个 Runtime Host 执行。
|
||
对外部 agent 只在评测环节通过 external subject adapter 对接,
|
||
不做执行层兼容。
|
||
abstraction_layer: Runtime Host(单一所有者的生命周期 + 协议 + 客户端引导)
|
||
depth_notes: |-
|
||
与另外三家正好相反:Maka 对**自己的**引擎深度是满分
|
||
(一个 Runtime Host 统管所有入口),对**外部**引擎深度是零
|
||
(只在 eval 里当被测对象)。
|
||
它压根不参与「多引擎中立」这条赛道的竞争——这是定位选择而非能力缺陷,
|
||
但读者必须知道它和 Orca / OpenWork / iPolloWork 不是同一类选手。
|
||
extension_system:
|
||
skills: catalog skills 存在,但可选且**默认关闭**
|
||
plugins: 无独立插件市场
|
||
mcp: packages/mcp 提供 provider-neutral 的 MCP 客户端集成
|
||
model_binding: |-
|
||
完全 BYO:云 API、本地模型或兼容网关,
|
||
不捆绑任何共享账号(README 明确 "You bring the model")。
|
||
local_first: true
|
||
multi_agent: |-
|
||
Graph 模式,实现算子跑在独立 git worktree
|
||
(要求源项目是干净 worktree)。
|
||
permission_sandbox: |-
|
||
沙箱边界明确:写文件 / 跑 shell 的工具必须先过边界;
|
||
运行可中止;失败被分类;支持崩溃恢复与可选续跑。
|
||
observability: |-
|
||
最强项。append-only 执行记录:model 消息、tool call、tool result、
|
||
turn 结束方式全部落盘。
|
||
上下文压缩只省略下次 prompt 里的旧 tool 输出,不删已存证据——
|
||
README 原话 "Shorter context is not deleted history"。
|
||
|
||
ecosystem:
|
||
|
||
community: |-
|
||
ASF 孵化治理:有 DISCLAIMER-WIP、ASF_SOURCE_RELEASE 候选契约、
|
||
CONTRIBUTING、SECURITY 等完整治理文件。中文文档齐全,
|
||
另挂 DeepWiki 第三方 AI 生成文档。
|
||
standards:
|
||
- Apache 软件基金会(Incubator)
|
||
notable_events:
|
||
- 2026-05-27 建仓(进入 ASF 孵化)
|
||
- 截至 2026-09-01 尚未产出任何 Apache 正式 release,对外只有 Desktop Nightly
|
||
- 2026-09-01 达 4372 star,版本 v0.2.0-dev.9.20260831
|
||
|
||
metrics:
|
||
stars: 4373
|
||
forks: 406
|
||
open_issues: 398
|
||
subscribers: 23
|
||
created_at: 2026-05-27
|
||
pushed_at: 2026-09-01
|
||
size_kb: 102390
|
||
languages: {TypeScript: 91.7, JavaScript: 4.5, Rust: 1.7, CSS: 1.3, Python: 0.5, PowerShell: 0.2}
|
||
latest_release: v0.2.0-dev.9.20260831
|
||
release_cadence: 一天多版
|
||
data_date: 2026-09-01
|
||
stale: false
|
||
risk:
|
||
maturity_level: "孵化期"
|
||
|
||
license_risk: |-
|
||
Apache-2.0,四个里最干净:可自由镜像与再分发,且自带专利授权条款,
|
||
无任何商业条款陷阱。
|
||
vendor_lockin: |-
|
||
锁定点最低:无商业实体、无付费层、数据落在本地 SQLite、
|
||
执行记录是自有格式但结构公开。退出成本主要是迁移历史会话记录。
|
||
claim_vs_reality:
|
||
- claim: |-
|
||
Apache 品牌 = 成熟稳定、可用于生产
|
||
actual: |-
|
||
孵化状态恰恰是「尚未被 ASF 完全背书」的标记,README 自带官方免责声明。
|
||
且截至 2026-09-01 **没有任何 Apache 正式 release**,
|
||
对外分发的只有 Desktop Nightly,README 明确标注
|
||
「not an ASF release, not intended for production use」。
|
||
平台支持也最窄:macOS arm64 是唯一正式档,
|
||
Windows 为未签名预览,Linux 标注 soon。
|
||
source: README 的 NOTE / IMPORTANT 段、Releases and downloads 段、平台 badge
|
||
- claim: |-
|
||
「Your machine, your data」本地优先、数据主权
|
||
actual: |-
|
||
数据确实不出机器,但 **API key 以明文文件存放**——
|
||
README 原文承认 credential-vault.json 是
|
||
「local plaintext file, readable only by your OS account」。
|
||
防护依赖操作系统账户权限,而非加密或系统钥匙串。
|
||
renderer 进程拿不到,但同机任一以你身份运行的进程都能读到。
|
||
source: README「Local data and recovery」段
|
||
- claim: |-
|
||
崩溃恢复与可选续跑
|
||
actual: |-
|
||
续跑**默认关闭**,需手动设 MAKA_RUNTIME_SAFE_BOUNDARY_RESUME=1,
|
||
且 README 明确警告该调用会打模型、消耗 token。
|
||
另存在**升级断代**:旧版 JSONL transcripts 与 Electron safeStorage
|
||
凭据不会被导入,升级后的工作区可能出现空线程,凭据必须重新录入。
|
||
source: README「Local data and recovery」段
|
||
- claim: |-
|
||
(无明确宣称,但易被期待为开箱即用的完整工作台)
|
||
actual: |-
|
||
内置工具只有 Read / Write / Edit / Bash / Glob / Grep 六个;
|
||
Computer Use 与 catalog skills 属可选且默认关闭;
|
||
IM bot(聊天应用接入)标注 experimental。
|
||
功能面是四个里最保守的——取舍很明确:用广度换确定性。
|
||
source: README「Current capabilities」段
|
||
- claim: |-
|
||
支持 Graph 多算子并行
|
||
actual: |-
|
||
Graph 的实现算子跑在独立 git worktree,且**要求源项目是干净 worktree**——
|
||
有未提交改动就用不了。相比 Orca 的并行 worktree(产品级封装),
|
||
Maka 的 Graph 更接近实验性能力。
|
||
source: README「Terminal entry points」段
|
||
maturity: |-
|
||
治理成熟度最高(ASF 流程 + 评测框架 + 文档契约),
|
||
产品成熟度最低(无正式 release、平台只支持 arm64 macOS、功能默认保守)。
|
||
属于「地基打得最实,房子盖得最慢」。
|
||
|
||
chart:
|
||
|
||
form_depth: 6 # 桌面 + TUI + CLI + Eval 统一于 Runtime Host,但平台窄
|
||
engine_neutral: 1 # 只跑自己的 Runtime,不参与多引擎竞争
|
||
local_first_score: 10 # 完全本地,数据不出机器
|
||
deliverable_depth: 6 # 代码 + artifact + 评测报告 + 执行记录
|
||
|
||
verdict:
|
||
|
||
one_liner: 四个里唯一把「执行记录」当地基的项目——治理与可复现性最强,产品成熟度最弱。
|
||
who_should_use: |-
|
||
对审计、数据主权、可复现评测有硬要求的团队;
|
||
做 agent 横向对比研究的工程团队。
|
||
who_should_not: |-
|
||
要开箱即用、要 Windows / Linux、要丰富第三方集成的人;
|
||
以为 ASF 品牌等于生产可用的决策者。
|
||
|
||
mirror:
|
||
gitea_repo: gitinbox/maka
|
||
visibility: public
|
||
upstream: "https://github.com/apache/maka"
|
||
last_sync: 2026-09-01
|
||
sync_note: "depth=1 浅仓被 Gitea 拒绝(shallow update not allowed),脚本自动 --unshallow 补齐完整历史后达 147 MB,超过 nginx 约 50 MB 的 client_max_body_size,遂降级为源码快照(12 MB,剔除 png/gif/mp4/字体等非源码素材)。完整保真裸仓保留在本地 .mirrors/maka.git(163 MB)。服务器放开 nginx 上限后可推送完整版。"
|
||
mode: source-only
|
||
article:
|
||
emlog_id: 0 # emlog 文章 ID,发布后回写
|
||
published_at: ""
|
||
url: ""
|