RepoDaily · 2026-08-26 · Infrastructure / Runtime

Apache Maka(孵化中):把执行过程写成只追加日志的本地优先 Agent 工作台

#14 Infrastructure / Runtime TypeScript +538 apache/maka 打开仓库

Apache 孵化中的 TypeScript 桌面应用:所有工具调用经由单一 Runtime Host,模型消息、工具结果与权限决策以只追加日志的形式保存在你自己的机器上。

项目类型Infrastructure / Runtime
最适合macOS Apple Silicon 开发者:希望每一轮模型对话、每一次工具调用、每一次权限决策都写进本地可审计的只追加日志
风险等级中等:孵化中、macOS 优先的早期版本,未发布的 0.2.0 仍在修改 Runtime Host API
评估时间半天:克隆仓库、根目录 npm install、npm run build,跑完一个会话后检查运行记录

核心问题: 相比跨平台成熟度,你是否更需要一份可恢复的本地执行审计?

91/100

RepoDaily 采用评分

RepoDaily 将该项目的采用分评为 91/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。

基于 RepoDaily 来源和采用说明的方向性评分,不是基准测试。风险: 中
100证据质量

包含 6 个来源、覆盖 4 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。

100可安装/可试用性

检测到 6 个工作流步骤、5 个下一步动作,以及 4 个命令/安装信号。

64维护可信度

趋势热度为 +538 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。

96生产准备度

采纳风险标记为 medium,并包含 6 条安全说明与 4 条跳过条件。

100差异化

3 个机会视角、4 个替代方案,以及 4 个类型化模块支撑差异化判断。

68许可证清晰度

文章中包含许可证来源或许可证表述。

90Agent / AI 适配度

文章正文和元数据中检测到 7 个 AI/Agent 相关信号。

项目概览

Apache Maka(孵化中)在本期以 538 颗星排在趋势榜第 14 位,它的定位在 Agent 工具里相当具体:用 TypeScript 编写的本地优先 Agent 工作台,检查项目、在沙箱边界内运行工具,并把模型消息与工具调用记录为可恢复的执行事实——一切通过单一 Runtime Host 在你自己的机器上完成。会话、设置和运行记录默认留在本地,模型由你自带:云端 API、本地模型或兼容网关均可。

让 Maka 区别于聊天式助手的是记录本身。模型消息、工具调用、工具结果、权限决策和终止事件全部写入只追加日志;UI 和下一次模型调用只是这份记录的视图,而不是唯一副本。因此压缩上下文不等于删除历史——未发布的 0.2.0 版本会把模型可见的归档占位符按需通过有界的 ArchiveRead 调用读回,旧的工具输出离开的是提示词,不是证据。

第二根支柱是 Runtime Host。桌面、终端和 Maka 评测全部经由它,评测内核只拥有实验和分数。0.1.11 版(2026-08-18)把 Runtime Host 从本地执行服务扩展为多个已连接 Host 的共享权威,覆盖远程项目注册、实时运行状态和归档会话生命周期(issue #3097、#3145、#3079、#3074、#3151)。同一版本还加入了可安装的 Maka CLI 包及其受保护的分阶段 npm 发布流水线(含跨平台产物与 Eval 校验),以及代理式 Windows AppContainer 沙箱和更严格的本地 IPC ACL 执行。

成熟度是必须直说的短板。README 明确 macOS Apple Silicon 桌面构建是早期公开发布,数据格式、CLI 命令和实验能力仍可能变化;Windows 是未签名预览版,Linux 徽章写着尚未支持。项目采用 Apache-2.0 许可证,正在 Apache 孵化器 PMC 之下孵化,这意味着 ASF 尚未完全背书;DISCLAIMER-WIP 记录了项目已知的问题。

解决什么问题

  • Agent 的对话记录通常只活在 UI 里:窗口一关,推理过程、工具输出和失败原因随之消失
  • 上下文压缩用证据换 token;旧工具结果一旦被丢弃,缺陷复现时无法回读
  • 多数助手的权限决策是一次性的——谁在什么时候批准了哪个工具调用,没有持久答案
  • 桌面应用、终端 Agent 和评测框架各自实现执行循环,行为和分数在不同界面之间漂移

工作原理

  1. 自带模型:云端 API、本地模型或兼容网关;会话、设置和运行记录默认留在本地
  2. Agent 进程即 Electron 主进程,加上 @maka/core、@maka/runtime、@maka/storage、@maka/ui、内置工具和用户技能
  3. 每次工具调用都由 @maka/core/permission 的权限引擎按 PERMISSION_MODES、TOOL_CATEGORIES、PERMISSION_POLICY 评估;ask 是默认会话模式
  4. 模型消息、工具调用、工具结果、权限决策和终止事件追加进运行记录——UI 与下一次模型调用都读取它
  5. 上下文增长时,由 Runtime 统一拥有的策略从下一个提示词中修剪旧工具输出;0.2.0 通过有界 ArchiveRead 调用按需读回归档,而非急切水合
  6. 桌面、TUI 和 Maka 评测全部连接 Runtime Host;评测内核只拥有实验与分数

架构解读:Runtime Host 是唯一所有者

docs/README.md 自称 Maka 文档的权威地图,并声明当文档与实现冲突时,代码与契约测试才是最终权威。从这张地图看,承重件是后端的 ARCHITECTURE.md、Electron 外壳的 apps/desktop/README.md 与渲染层 README、Runtime 包 packages/runtime、评测内核 packages/eval。Runtime Host 居于中心:桌面、终端、评测都同它对话,这才让一份运行记录可以跨界面复用。相邻契约还包括运行恢复(runtime-resume-architecture.md)、远程 Host(runtime-host-remote-access.md)、Work Board(work-board-contract.md)与 Agent Swarm(agent-swarm.md)。

内部结构正在收敛。未发布的 0.2.0 把 RuntimeRunner/Flow/Invocation 外壳合并为单一 RuntimeKernel——后端分发、终端合并、停止/排空与持久续跑准入有了唯一的生产所有者——同时不可变请求快照仍在 AgentRun 接受和后端分发处强制执行。类型化的 request() 成为 Runtime Host 唯一的直接操作 API,17 个转发别名从直连与重连连接中移除。现在做集成的人应瞄准 request(),而不是那些别名。

命令面:构建步骤、TUI 导航与环境开关

  • 从源码构建:git clone https://github.com/apache/maka.git,随后只在仓库根目录执行 npm install——CONTRIBUTING.md 明确说绝不在 workspace 内执行——再 npm run build,按依赖顺序构建所有 workspace
  • 工具链要求来自根 package.json:Node >=22.19.0 与 npm 11.19.0;桌面开发还需要 macOS Apple Silicon
  • TUI 中的 /transcript 可脱离终端回滚缓冲浏览长会话,支持行、页与首/尾导航(0.2.0 加入)
  • 升级后 MAKA_CONTEXT_* 环境变量覆盖会被忽略:压缩与 Tool Result 修剪不再可调节或关闭,原本设为 off 的修剪会被重新启用,目前没有替代的退出方式
  • 在原生 Windows 与 Windows Terminal 上,任务栏进度保活默认关闭,因为反复的 OSC 9;4 更新可能让资源管理器任务栏失去响应;MAKA_TASKBAR_PROGRESS=1 可重新启用
  • CLI/TUI 分发与 npm 发布路径由 docs/cli-distribution.md 和 docs/cli-npm-release.md 约束

维护风险:孵化中、macOS 优先、契约仍在变动

  • README 同时带有 ASF 孵化免责声明(尚未获得 ASF 完全背书)和提醒:macOS Apple Silicon 构建是早期公开发布,数据格式、CLI 命令和实验能力仍可能变化
  • 平台徽章:macOS arm64 已发布、Windows 未签名预览(基线见 docs/windows-support.md)、Linux 尚未支持
  • 0.1.11(2026-08-18)是最新打标版本;0.2.0 尚未发布,却已移除 17 个 Runtime Host 转发别名并无开关地重新启用 Tool Result 修剪
  • 治理真实但年轻:合入 main 的每个 PR 都需要作者之外的 committer 批准加上通过的 test 检查,由 .asf.yaml 分支保护强制执行;项目方向在 [email protected] 公开讨论
  • CONTRIBUTING.md 要求每项变更都有人类责任贡献者,实质性 AI 生成内容需加 Generated-by 尾注,遵循 ASF 生成式工具指南

替代品矩阵:Maka 的差异在哪

  • 对比 OpenHands:Maka 是以你自己 OS 账户运行的单租户桌面助手,不是容器沙箱化的自托管平台——差异点在本地只追加日志
  • 对比 Codex CLI 与 Claude Code:Maka 以工作台为先(桌面加 TUI),并通过云端 API、本地模型或网关做到模型无关,而非终端优先、绑定单一厂商
  • 对比 hermes-agent:Maka 的 SECURITY.md 明确参考 NousResearch/hermes-agent 的诚实原则——两者都承认操作系统是唯一真正的边界——但 Maka 额外提供权限决策账本与运行恢复架构
  • 对比纯聊天 UI:Maka 把工具调用、工具结果、权限决策和终止事件记录为一等执行事实,而不只是对话轮次

谁适合关注

适合关注

  • macOS Apple Silicon 上想要一份本地可审计执行记录的开发者
  • 需要在上下文压缩后回读旧工具输出的人——归档仍可通过有界 ArchiveRead 调用访问
  • Agent 评测:Runtime Host 拥有执行,评测内核只拥有实验与分数,例如公平多臂 Eval 与 DeepSeek Harness 臂(#2668、#2971、#3176)
  • 贡献者:仓库带有 help-wanted 和 good-first-issue 标签,.asf.yaml 分支保护下的评审流程已经在运转

可以先跳过

  • Linux 用户——README 徽章写得明确:Linux 尚未支持
  • 在 0.2.0 落地前需要稳定 CLI/API 契约的人——request() 刚成为 Runtime Host 唯一的直接操作 API
  • 要求签名安装包的 Windows 环境——尽管 0.1.11 加固了安装器,Windows 构建仍是未签名预览
  • 多租户或服务器部署——SECURITY.md 将 Maka 定义为单租户个人桌面 AI 助手

风险与注意事项

中

Apache-2.0 许可、文档异常诚实,但仍处孵化期、以 macOS 为主,Runtime Host 与上下文管理的破坏性变更正在途中。

  • 孵化状态意味着 ASF 尚未完全背书;DISCLAIMER-WIP 记录已知问题
  • macOS arm64 是早期公开发布,Windows 是未签名预览,Linux 不支持
  • 未发布的 0.2.0 移除 17 个转发别名并无替代退出方式地重新启用 Tool Result 修剪
  • README 警告数据格式与 CLI 命令仍可能变化
  • SECURITY.md 的核心论断:面对对抗性 LLM,唯一的执行边界是操作系统——权限引擎、输出脱敏、URL 白名单、查询规范化等进程内机制都只是作用于受攻击者影响字符串的启发式
  • 漏洞报告发送至 [email protected] 或私有 GitHub 安全公告;明确禁止以公开 issue 报告安全问题
  • 权限引擎位于 @maka/core/permission,PERMISSION_MODES、TOOL_CATEGORIES、PERMISSION_POLICY 是精确权威;ask 为默认会话模式
  • Electron 渲染进程仅通过 apps/desktop/src/preload/preload.ts 的预加载 IPC 桥接收数据
  • 信任模型点名的输入面:聊天输入、文件读取、网页抓取、已启用的机器人平台消息、工具结果;信任信封包含文件系统、网络、钥匙串、麦克风与屏幕录制权限
  • 0.1.11 加入代理式 Windows AppContainer 沙箱,并收紧本地 IPC 所有权与 ACL 执行(#2961、#3179、#3182)

替代方案比较

方案适用场景代价
OpenHands
你需要面向团队、容器沙箱化的自托管 Agent 平台,而不是单租户桌面助手开源;自付容器与模型调用成本
你想要 OpenAI 出品、命令面精简的终端原生编码 Agent客户端开源;用量按 OpenAI 账户计费
你想要绑定 Anthropic 模型与工具链、成熟的终端 Agent订阅或 API 计费;GitHub 仓库承载 issue 与文档
你想要研究型 Agent;Maka 的安全政策明确以它为范本开源;模型成本取决于运行方式

这个趋势说明了什么

在共享 Runtime Host 上加评测臂

执行归 Runtime Host 所有、评测内核只管实验与分数,新评测臂可以像 0.1.11 加入 DeepSeek Harness 臂那样插入,同时把被测对象的计量与框架计量隔离。

按文档地图阅读 packages/eval,复现一次多臂运行,确认计量隔离后再信任分数。

用远程 Runtime Host 接入第二台机器

0.1.11 把 Runtime Host 升级为多 Host 共享权威,支持远程项目注册、实时运行状态与归档会话生命周期(#3097、#3145、#3079);docs/runtime-host-remote-access.md 记录了设置方法。

按远程接入文档从备用机器注册一个项目,再在桌面构建里观察实时运行状态。

围绕权限决策做审计工具

权限决策是只追加日志里的一等条目,外部审阅者可以按会话重建批准模式——这是聊天记录导出做不到的。

以 ask 模式跑一个包含批准与拒绝的会话,确认每个决策都作为条目出现在本地运行记录里。

下一步建议

跑一个会话,再审计它留下的记录

检验 Maka 核心主张最快的方式:让它以 ask 模式完成一个小任务,然后验证消息、工具结果、权限决策和终止事件是否全部留存。

  1. 确认 Node >=22.19.0 与 npm 11.19.0,然后 git clone https://github.com/apache/maka.git
  2. 只在仓库根目录执行 npm install(绝不在 workspace 内),随后 npm run build
  3. 在 macOS Apple Silicon 上启动桌面会话,让 Agent 执行几次工具调用,并在 ask 模式下回应每个权限提示
  4. 在 TUI 打开 /transcript,确认可对完整会话做行级导航而不依赖终端回滚
  5. 阅读 SECURITY.md 第 2 节与 ARCHITECTURE.md,再判断'操作系统是唯一边界'的信任模型是否适合你要运行的机器

RepoDaily 判断

Maka 押注的是:Agent 执行应当被记录而非被摘要——把模型消息、工具调用、工具结果、权限决策和终止事件写进只追加日志,全部经由单一 Runtime Host 并留在你的机器上。这一主张今天就能在 macOS Apple Silicon 上以 Apache-2.0 许可验证;投入生产则应等到 0.2.0 的 Runtime Host 契约与上下文策略稳定、Linux 支持到位之后。

信息来源