📌 项目地址apache/maka | ⭐ 2,797 颗星 | 🔧 TypeScript | 📜 未标注

项目地址

apache/maka | ⭐ 2,797 | TypeScript | Apache 孵化中

先说它和 Claude Code、Cursor 的本质区别

现在主流编码 Agent 的会话记录只为两件事服务:UI 展示,和下次续聊。上下文一压缩,旧的工具输出就没了;程序一崩,这轮执行大概率作废。

Maka 的做法是把执行过程当事实落盘。模型消息、工具调用、工具结果、一个 Turn 怎么结束的,全部写成持久的本地记录。README 里的说法很准确:UI 和下一次模型调用都只是这个记录的视图,不是唯一副本。

这个设计有两个直接后果:

  1. 崩溃可恢复。有 durable execution record,程序崩了可以恢复,中断的 Turn 支持续跑(optional resume)。
  2. 省 token 不等于删证据。Maka 可以把旧工具输出从下一个 prompt 里剔除,但本地保存的完整记录不动。事后想查当时某次工具到底输出了什么,随时翻得到。

第二点是真正稀缺的。别的工具做上下文压缩是真裁剪——发给模型的内容变短,本地记录跟着丢。查审计、做复盘的时候,这两种做法的差距就出来了。

沙箱边界:越界必须批准

工具跑在 sandbox 里,想越界必须经过批准。运行可以中止,失败会被分类(failures are classified)。内置工具是常见的六个:ReadWriteEditBashGlobGrep。Computer Use 和 catalog skills 是可选项,默认不开。

对你意味着什么:无人值守跑批时,Agent 不会悄悄执行危险操作。代价是你得花时间配置审批策略。对有合规要求的团队,这个交换是划算的。

三个入口,共用一个 Runtime Host

入口 用途
Desktop 日常交互、文件和 Artifact 工作流、模型与权限配置。Electron + React,支持流式会话、工具时间线、分支、搜索、恢复
TUI / CLI 当前项目目录下交互使用,或跑单个非交互 Turn
Eval 可复现的 benchmark 实验,可跨 Maka 和外部对象

关键设计是三个入口共用同一个 Runtime Host。桌面端和终端共享 workspace 和模型连接,CLI 里跑的会话在 Desktop 里能看到。Eval 只拥有实验和评分,Agent 执行仍走 Runtime Host——评测和真实使用是同一套执行环境,不是平行世界。这解决了评测圈一个老问题:跑分时一个 Agent,用时另一个。

模型接入是“你带你的模型”:云 API、本地模型或兼容网关都行。会话、设置、运行记录默认留在本机。

怎么用

README 给出的命令:

  • maka —— 当前项目目录交互式使用
  • maka run —— 执行一个非交互 Turn
  • maka eval run --out <目录> —— 跑评测实验并输出结果

安装的完整步骤 README 没写,要去仓库文档看。桌面端目前只有 macOS Apple Silicon 构建。

现在上手还是观望

三个事实摆在前面:

  • 孵化期项目。ASF 尚未完全背书,README 附了标准孵化声明。
  • API 不稳定。README 明确说数据格式、CLI 命令、实验性能力都可能变。现在采用要做好跟进迁移的准备。
  • 平台单一。桌面端只有 macOS Apple Silicon,Linux 和 Windows 用户暂时没得选。

我的判断:Maka 的差异化不在“Agent 更能干”,而在执行记录的工程化——持久化、含审批决策、可跨入口复用、可恢复中断。如果你要复盘 Agent 到底干了什么(团队内部审计、评测实验归档),现在就值得盯着它。如果只是想要一个开箱即用的编码助手,等它出孵化期、桌面端覆盖更多平台再看,不迟。

这篇文章对你有帮助吗?

发表回复