Apache Maka:日志即运行时,把 AI Agent 的每一步都变成可回放的真相

你是否曾经被 AI Agent 的”黑盒感”折磨过——它调用过哪些工具、为什么被拒绝、上下文是怎么被裁剪的、上一次跑挂了之后到底丢没丢数据,全靠猜?Apache Maka (Incubating) 的出现,正是为了彻底解决这个问题。它是一个本地优先(local-first)的 AI Agent 工作台,用”追加写入的事件日志”作为整个运行时的唯一事实来源:模型消息、工具调用、工具结果、权限决策、终止事件,全部记录为一条条不可变写的 RuntimeEvent。本文将带你全面了解这个正在 Apache 孵化器中的潜力新星。

换句话说,Maka 的野心不是再做一个”更聪明的 Agent”,而是做一个可度量、可审计、可恢复的 Agent 运行底座。它甚至直接把评测结果摊在台面上:同一模型、同一官方验证器、逐任务完整记录,全部随报告一起发布在仓库的 docs/eval/ 目录里——”Measured, not claimed”(用度量说话,而不是靠宣称)。

截至收录:
Apache Maka项目stars数:5525
Apache Maka项目forks数:511

Apache Maka项目目录截图

Apache Maka核心亮点

📜 亮点一:日志即运行时(The Log is the Runtime)
这是 Maka 最核心的设计哲学。每一次模型消息、工具调用、权限决策与终止,都会成为一条仅追加(append-only)的 RuntimeEvent。UI 是日志的投影,下一个提示词是日志的投影,崩溃恢复同样是日志的投影——它们都不是唯一的那一份拷贝。这带来一个非常实用的能力:旧的工具输出可以从”下一个提示词”里退场,却永远不会从日志里消失。上下文可以瘦身,历史不会被抹掉。

📊 亮点二:Measured, not claimed(可度量,而非自夸)
Maka 把”Agent 框架好不好用”这件事拉回到一个硬指标上:任务完成率和成本。它用同一模型、同一官方验证器与其他 harness 横向对比,并且把逐任务的完整运行记录随报告一起公开。对做 Agent 研究的团队来说,这种透明度比任何 benchmark 榜单截图都有说服力。

🏠 亮点三:你的机器,你的模型(Local-first)
会话、配置、运行记录全部留在本地。Maka 不捆绑任何共享模型账号,模型由你自己带入:云端 API、本地模型,或者任何兼容网关。默认情况下,工作区数据落在 Electron 的 userData 目录下:

<Electron userData>/workspaces/default/
  runtime.sqlite            # 实时运行记录(唯一活数据)
  connection-catalog.json
  credential-vault.json     # API Key 等密钥,本地明文文件
  settings.json
  artifacts/

密钥只对当前操作系统账户可读,渲染进程(Renderer)永远看不到它们;而任何写文件或执行 Shell 的工具,都必须先穿过沙箱边界。

🧭 亮点四:One Runtime Host(一个执行权威,多种前端形态)
Desktop、TUI、CLI 以及 Eval,全都是同一个执行权威 Runtime Host 的瘦客户端;Eval 只负责实验与打分本身。后端主干非常清晰:

Desktop / TUI / CLI → Runtime Host → SessionManager → AgentRun
                                             ↓
                         Model + Tool Runtime → Runtime Event Log
                                             ↓
                              Context / Session / UI projections

Experiment → Cells → Attempts → Results
                    ↓
       Runtime Host executes Maka subjects

🛟 亮点五:可恢复与安全边界
中断的一轮对话可以恢复——但默认关闭,因为恢复会真正打模型、消耗 token。只有在你显式设置 MAKA_RUNTIME_SAFE_BOUNDARY_RESUME=1 后,Desktop Safe 恢复、CLI 的 /resume 以及启动时自动恢复才会生效。此外,开发者还可以在 npm run check:release、smoke:real-window、e2e 等命令下做真实窗口与视觉验证。

🔌 亮点六:MCP 与计算机使用(Computer Use)原生支持
仓库中 packages/mcp/ 提供与供应商无关的 Model Context Protocol 客户端集成,packages/computer-use/ 则负责计算机使用后端的选择、宿主生命周期与协议适配;native/ 下还有用 Rust 编写的 direct-peer 原生插件与 gitoxide 辅助模块。扩展性从架构层面就已经预留好了。

Apache Maka快速开始

需要说明的是,Maka 目前尚未发布 Apache 正式版本(Apache Release)。官方渠道提供的是每日构建的 Desktop Nightly(支持 macOS Apple Silicon / Intel、Windows x64、Linux x64 与 arm64,其中 Windows 与 Linux 为未签名预览版,不适用于生产环境)。如果你想尝鲜或参与开发,从源码构建是最直接的路径。

1. 环境准备

  • Node.js 22.19 或更高版本(CI 使用 Node.js 24)
  • npm(锁文件与脚本均基于 npm,当前 packageManager 为 npm 11)
  • Git
  • ripgrep(Runtime 的 Grep 工具依赖它)

若要开发 Direct Peer 与 Peer Mesh,还需要 Rust stable 1.98+ 以及对应平台的链接器(macOS 上的 Xcode Command Line Tools、Windows 上的 MSVC Build Tools)。

2. 克隆并启动 Desktop

git clone https://github.com/apache/maka.git
cd maka
npm ci
npm run dev

npm run dev 会以 HMR 模式启动 Desktop 开发环境。若希望先构建全部 workspace 再启动 Electron:

npm run dev:full

启用 peer 能力的入口(会先构建原生插件):

npm run dev:peer       # HMR
npm run dev:full:peer  # 全量构建

3. 首次运行:接入你自己的模型

Maka 不附带共享模型账号,首次启动后请按下面四步操作:

  1. 打开 Settings → Models;
  2. 添加 API、本地模型或受支持的账号连接;
  3. 测试连接并选择默认模型;
  4. 回到工作区,开始你的第一个任务。

应用会明确区分”已配置””可发送””实验性”三种连接状态——一个尚未接入 Runtime 的账号流程,不会被伪装成可用模型。

4. 终端入口:TUI 与 CLI

先构建 workspace:

npm run build

然后启动 TUI,或直接跑一个 Turn:

npm run cli:dev
npm run cli:dev -- run "Summarize this repository and identify its most important risk"
npm run cli:dev -- run --graph "Implement two independent slices, integrate them, then review the result"
npm run cli:dev -- --help

TUI 中同样支持 /graph on、/graph off 与 /graph <task>。非交互式的 --graph 运行会等待持久化 Graph 完成后再打印最终 supervisor 输出;而 Graph 的实现算子使用相互隔离的 Git worktree,因此源项目必须是一个干净的 Git 工作树。

5. 开发与验证

提交改动前建议按变更范围执行:

npm run build
npm run typecheck
npm test
npm run check:release

也可以单独隔离运行某个 workspace 的测试:

npm --workspace @maka/runtime run test:dist
npm --workspace @maka/eval run test:dist
npm --workspace @maka/desktop run test:dist

Apache Maka应用场景

场景一:长链路、多步任务的编排与复盘
当你需要 Agent 完成”实现两个独立切片 → 集成 → 审查结果”这类复杂任务时,可以用 --graph 让多个算子在不同 Git worktree 中并行工作,再由 supervisor 汇总。由于全程以事件日志记录,事后复盘每一步决策与工具输出都非常直接。

场景二:隐私敏感场景下的本地 Agent 助手
代码审查、内部文档处理、涉及凭据的操作——这类场景往往不允许把数据送到第三方托管平台。Maka 的会话、设置与运行记录都留在本机,模型可以走本地推理或你自己的兼容网关,密钥仅以本地文件形式存在且对渲染层不可见。

场景三:Agent 框架的评测与研究
packages/eval/ 提供 Experiment → Cells → Attempts → Results 的完整抽象,以及执行器与受试对象适配器。研究者可以用同一模型、同一官方验证器横向对比不同 harness,并把逐任务记录随报告一并公开,让结论经得起检验。

场景四:桌面、终端、批处理三态通吃的工作流
同一个人,可能上午在 Desktop 上做交互式探索,下午在 TUI 里盯着 /graph 跑批量重构,晚上在 CI 中用 CLI 跑一次非交互任务。因为三者都是同一个 Runtime Host 的瘦客户端,行为一致、记录同源。

用户案例:作为 Apache 软件基金会孵化器项目,Maka 由 Apache Incubator PMC 赞助。项目仍在积极开发中,数据格式、CLI 命令与实验性能力都可能发生变化;DESCLAIMER-WIP 中记录了当前已知的问题。

Apache Maka链接

 


结语:大多数 Agent 项目的卖点是”更聪明”,而 Maka 的卖点是”更诚实”——它把每一步都写进不可篡改的日志里,把每一次评测的原始记录都放进仓库里,把每一个模型选择权都交还给你。如果你正在寻找一个可审计、可恢复、本地优先的 Agent 工作台,Apache Maka 值得加入你的关注列表。apache / maka项目地址:https://github.com/apache/maka

本文地址:https://www.tgoos.com/46674

声明:本站资源均整理自互联网,版权归原作者所有,仅供学习交流使用,请勿直接商用,若需商用请购买正版授权。因违规使用产生的版权及法律责任由使用者自负。部分资源可能包含水印或引流信息,请自行甄别。若链接失效可联系站长尝试补链。若侵犯您的权益,请邮件(将 # 替换为 @)至 feedback#tgoos.com,我们将及时处理删除。转载请保留原文链接,感谢支持原创。