TL;DR

Apache Maka (Incubating) 是一个采用 Event Sourcing 架构的本地优先 AI Agent Workspace。它将模型交互、工具调用及权限决策记录为不可变日志,通过投影重建会话状态,旨在解决 Agent 执行过程缺乏可追溯性和确定性恢复的问题。

它解决什么问题

当前大多数 AI Agent 框架将对话历史视为简单的上下文窗口,缺乏对执行事实(Execution Facts)的结构化记录。这导致 Agent 在复杂任务中难以实现精确的状态恢复、权限审计以及可复现的实验评估。Maka 的出现动机在于将 Agent Runtime 从“黑盒”转变为可审计、可回溯的确定性系统,特别适用于需要高可靠性和本地数据隐私的工程场景。

核心做法

Maka 的核心架构基于 Event Sourcing: - Runtime Event Log:所有模型消息、Tool Calls、Results 和终止事件均追加写入不可变日志。Session、UI 状态和模型上下文均为该日志的投影(Projections)。 - Runtime Host:统一拥有 Session、Turn 生命周期及工具执行权限。通过 AgentRun ledger 记录执行事实,支持 Turn Evidence 和 Tool Result Pruning。 - 存储层:使用 SQLite (runtime.sqlite)作为唯一操作权威,存储事件、会话元数据及工作流状态。凭证存储在本地明文文件 (credential-vault.json),受 OS 权限保护。 - 多入口支持:通过统一的 Runtime Host 暴露 Desktop (Electron)、TUI/CLI 和 Eval 接口,确保执行语义一致。

作者

项目由 Apache Software Foundation 托管,目前处于 Incubating(孵化)阶段。README 未列出具体核心维护者名单或之前的个人项目背景,但作为 Apache 孵化项目,其开发流程遵循 ASF 的治理规范。从代码质量和文档完备度来看,团队具备成熟的开源工程经验。

社区反应

项目于 2026 年 5 月创建,截至最后推送(8 月),Stars 已达 2,014,Forks 为 240。考虑到其极短的发布周期和“早期公开版本”的定位,这一增长势头强劲。 - Open Issues (283):Issue 数量较多,主要集中在新功能请求、Bug 报告及平台适配(Windows/Linux)上。这符合 MVP 阶段快速迭代但稳定性尚待验证的特征。 - 语言生态:TypeScript 为主,主要面向前端/全栈开发者及 Electron 用户。 - 判断:社区关注度极高,但作为孵化期项目,API 和数据结构仍可能频繁变动,适合早期采用者和技术评估。

怎么上手

环境要求: - Node.js >= 22.19 (CI 使用 v24) - npm (v11+) - Git - ripgrep (用于 Runtime 的 Grep 工具)

最小复现步骤: 1. 克隆与安装: bash git clone https://github.com/apache/maka.git && cd maka npm ci 2. 启动开发环境: - Desktop (HMR): npm run dev - 完整构建: npm run dev:full 3. 首次运行配置: - 打开 Desktop,进入 Settings → Models。 - 配置外部 API Key、本地模型或兼容网关(Maka 不捆绑共享账号)。 - 测试连接并选择默认模型后开始任务。

注意: macOS Apple Silicon Desktop Build 为早期发布版;Windows 仅为未签名的 Preview,Linux/Intel Mac 暂不支持。

争议与局限

  • 数据迁移风险(推断/明确声明):README 明确指出,当前版本不导入旧的 JSONL/File 格式会话历史。升级后旧对话将显示为空线程,且 safeStorage 加密凭证不迁移需重新认证。这是有意为之的设计取舍。
  • 本地存储安全:凭证以明文存储在 credential-vault.json 中,虽受 OS 文件权限 (0600) 保护,但相比加密存储方案(如 Keychain/Windows Credential Manager)安全性较低。README 承认这是当前边界,Phase 2-3 将改进。
  • 平台支持不全:仅 macOS Apple Silicon 为正式支持,Windows/Linux 缺失限制了跨团队协作。
  • 恢复机制局限:Runtime Continuation (断点续传) 为 Opt-in,且 Phase 3 的工具副作用冲突解决尚未实现,模糊状态的任务将被挂起而非重试。

相关项目

  • CrewAI — 侧重于多 Agent 协作编排与高层任务分解,缺乏 Maka 这种底层的 Event Sourcing 执行日志和确定性状态恢复机制。
  • LangGraph — 提供基于图的 Agent 工作流控制,但主要运行在云端或无状态环境中;Maka 更强调本地优先、持久化存储及桌面端集成。
  • AutoGen — 微软推出的多 Agent 对话框架,侧重灵活性和研究实验;Maka 则提供更严格的权限控制、工具执行审计和本地数据主权。
  • Windsurf / Cursor — 商业 IDE Agent,提供类似的文件操作和代码生成能力;Maka 是开源的底层 Runtime Workspace,允许用户自定义模型连接和执行逻辑。
  • LangSmith — 专注于 LLM 应用的观测和调试平台;Maka 将“日志即运行时”的理念内置于本地 Workspace,提供原生的执行事实记录而非外部追踪服务。