Apache 孵化的 Local-First AI Agent 工作空间:认识Maka
Apache 孵化的 Local-First AI Agent 工作空间:认识Maka
今天在 GitHub Trending 上看到一个有趣的项目——apache/maka。2,000 Stars、Apache 基金会背书、定位独特,值得深入了解。
项目简介
Maka 是 Apache 软件基金会孵化中的 Local-First AI Agent 工作空间。它不只是一款问答工具,而是真正帮你完成实际工作的 Agent 环境:检查项目、执行工具、生成制品,并将模型消息和工具调用记录为可恢复的执行事实。
它的核心抽象非常有意思:Append-Only Log(追加写日志)。模型消息、工具调用、工具结果、权限决策和终止事件,全部作为只追加的事件流记录下来。Session、UI、模型上下文、恢复机制都是这个日志的”投影(Projection)”。这和传统 Agent 框架把执行历史存在上下文窗口里截然不同——日志是源,上下文是衍生品。
核心数据
| 指标 | 数值 |
|---|---|
| ⭐ Stars | 2,016 |
| 🍴 Forks | 240 |
| 🐛 Issues | 283 |
| 💻 语言 | TypeScript |
| 📜 许可证 | Apache License 2.0 |
| 🏷️ 阶段 | Apache 孵化项目 |
技术亮点
1. Append-Only Log 即 Runtime
传统 Agent 的执行历史随上下文压缩而丢失,Maka 反其道而行:完整的执行链(包括每次 LLM 调用、工具调度、权限判断)永久记录在 Runtime Event Log 中。这带来了几个独特能力:
- 可审计:任何工具调用都能追溯其触发条件和权限决策
- 可恢复 / 重试:任意历史 Turn 可重新执行或分支执行
- 上下文可压缩:LLM 上下文不够用时,历史证据不丢失——模型可以遗忘,但 workspace 记得
2. 精细权限控制
每个危险操作(文件写入、Shell 执行等)都经过 Permission Engine:
// 工具调用需经权限策略校验后才会执行
const result = await runtime.executeTool({
name: "Bash",
args: { command: "npm run build" },
// Runtime 自动注入权限上下文,用户可配置允许/拒绝策略
});
3. 三种入口,覆盖不同场景
| 入口 | 场景 |
|---|---|
| Desktop(Electron + React) | 日常交互,支持流式输出、工具时间线、Session 分支与恢复 |
| TUI / CLI | 在当前项目目录快速运行,或非交互式单次 Turn |
| Eval | 可复现的基准测试实验,跨多个 Agent 被试对比评估 |
社区反应
“A quiet milestone on GitHub Trending today: apache/maka… Around 2,000 stars and climbing fast, but the star count isn’t the story. The ASF stamp is.”
— Clauday
社区对Maka的反应集中在两点:
- Append-Only Log 理念被广泛讨论。有文章专门论述”AI 编码 Agent 为什么需要追加写日志”,认为这是 Agent 基础设施成熟化的标志;
- Apache 品牌背书意义重大。Agent 运行时领域长期处于个人仓库和创业公司主导的状态,Maka 进入 Apache 治理体系(Kafka、Spark、Airflow 同款)意味着企业级贡献者可能会跟进。
国内开发者也在关注,V2EX 上有作者分享了项目 7 周的开发过程和数据实测,讨论热度较高。
快速上手
前置依赖:Node.js ≥ 22.19、npm、Git、ripgrep
# 克隆并安装
git clone https://github.com/apache/maka.git
cd maka
npm ci
# 启动 Desktop 开发环境
npm run dev
# 或者使用 CLI 运行一次 Turn(非交互式)
npm run build
npm run cli:dev -- run "Summarize this repository and identify its most important risk"
首次启动 Desktop 后,在 Settings → Models 中配置你自己的模型连接(支持云端 API、本地模型或兼容网关),即可开始任务。
和普通 Agent 框架的区别
普通 Agent 框架:执行历史存在模型上下文里,上下文满了就压缩、丢失。
Maka:执行历史是追加写的只读日志,上下文可以压缩,但日志永不丢失——模型可以遗忘,workspace 记得。
项目地址:https://github.com/apache/maka
当前支持:macOS Apple Silicon(Desktop)、Node.js CLI(TUI)
许可证:Apache License 2.0
评论区
登录后可评论。