Apache Maka
面向真实项目、保留可恢复执行记录的本地优先智能体工作区。
证据清楚描述默认 ask 权限策略、危险工具确认、渲染进程隔离、本地数据流、凭据掩码、备份恢复及第三方归属。扣分在于工具默认仍以用户完整 OS 权限在进程内运行,权限引擎仅被定义为启发式安全网;凭据以明文 JSON 保存;网络和模型调用可产生外部影响;不确定工具副作用尚不能协调恢复。依赖方面有锁文件安装、固定提交的 CI Action、生产依赖审计和许可清单检查,但材料未展示持续漏洞处置机制或全部传递依赖状态。
README、SECURITY、包脚本和 CI 对运行架构、权限、测试及发布流程的描述相互一致,因此自洽性充分。依赖安装使用 npm ci,构建、类型检查、工作区测试、沙箱冒烟和发布检查均有明确入口;但模型服务、Electron、ripgrep、bubblewrap及特定 OS 能力属于外部前提,桌面正式支持也仅限 macOS Apple Silicon。材料显示提供错误分类、供应商错误归一化和 WebSearch 失败关闭消息,但没有证明所有工具、恢复和安装路径都有同等完整的可操作错误信息。
桌面、TUI、非交互 CLI 和评测场景均有明确受众与用途,支持云 API、本地模型和兼容网关。能力边界尤其清楚,包括无默认进程/容器隔离、Computer Use 未随首版提供、Windows 仅预览及续跑开关。扣分在于触发精度主要由权限表、动态工具可用性和隐私门控的说明支撑,未提供完整策略表或误触发分析;环境适配受 macOS arm64 正式支持范围、Node 版本及额外系统工具限制。
文档提供架构图、目录地图、权威文档入口、安装步骤、命令示例、安全报告渠道和详尽限制说明;许可证正文、NOTICE 指引及第三方组件归属完整。扣分在于项目明确处于早期开发,数据格式、CLI 命令和实验能力可能变化;示例丰富但没有实际 FAQ;只看到版本号和安全维护范围,未看到独立 changelog、兼容性承诺或迁移版本历史。维护入口清楚,但所给材料没有验证发布者身份,且旧版本明确不受主动安全维护。
产品将对话、工具调用、权限决定、终止事实、恢复、分支、工件和评测结果整合为可用工作空间,输出可追踪并可供桌面与终端消费,相比普通聊天界面有明显增量价值。扣分在成本收益方面:需要用户自备模型连接,续跑可能消耗令牌,还需较新的 Node、平台依赖及部分手动配置;虽然有用量、可归属成本和结果核算,但材料没有提供资源开销或收益基准。
核心主张可追溯到具体架构、存储位置、策略名称、测试文件、脚本和 CI 步骤,并由 README、SECURITY、package.json 与两个工作流交叉印证。事实、承诺和限制区分得很明确,例如将权限引擎及脱敏器称为启发式而非安全边界,并明确未实现的副作用协调、平台限制和迁移数据损失;因此静态材料在这三项上证据充分。
- 工具以当前 OS 用户权限运行,默认没有实际接入的进程或容器沙箱;不要在管理员账户或含高价值凭据的宽权限环境中运行不可信任务。
- API、OAuth、代理及搜索凭据保存在权限受限但仍为明文的本地 JSON 文件中;应依赖磁盘加密、严格账户隔离和可靠备份。
- 升级不会迁移仅存在于旧转录文件中的对话,也不会导入旧 safeStorage 凭据;升级前应备份并准备重新认证。
- 不确定的工具副作用目前会被停放而非自动协调;在确认外部状态前不要盲目重试可能产生写入、费用或网络操作的任务。
- 该项目仍处早期开发阶段,正式桌面支持限于 macOS Apple Silicon,Windows 为未签名预览,Intel macOS 与 Linux 安装包尚不受支持。
这个 Agent 能做什么,适合哪些场景?
Apache Maka(孵化中)是一个本地优先的智能体工作区,提供 Electron 桌面端、终端 TUI、非交互式 CLI 和评测系统。桌面端、CLI 与 Maka 评测对象都通过 Runtime Host 执行,由它统一管理会话、轮次、智能体生命周期、工具、权限和事件。模型消息、工具调用、工具结果、权限决定及终止事实会写入追加式 Runtime Event Log,并投影为会话、界面、模型上下文与恢复状态。运行时可使用 Read、Write、Edit、Bash、Glob 和 Grep 等本地工具,并支持流式输出、上下文压缩、工具结果裁剪、启动恢复及使用量核算。运行数据默认保存在本机,用户可以配置云 API、本地模型或兼容网关;但目前正式桌面发行版仅支持 Apple Silicon Mac,且项目仍在快速演进。
用户从 Desktop、maka TUI 或 maka run 提交任务后,Runtime Host 创建并推进 Session、Turn 和 AgentRun,通过已配置的模型连接进行推理,并根据权限策略调用 Read、Write、Edit、Bash、Glob、Grep 等工具。工具参数会经过模式校验,文件写入、Shell 和危险调用进入权限引擎,同时 watchdog、abort 与错误分类负责约束执行。模型消息、Tool Calls、Tool Results 和终止事实被写入 Runtime Event Log;会话界面、模型上下文、恢复流程和 Turn Evidence 从日志生成。桌面端还能管理、搜索、重命名、重试、重新生成及分支会话,并展示 Artifact 列表、预览和工具时间线。maka eval run <spec> --out <directory> 可展开任务、重复次数与评测对象组合,记录不可变尝试,并输出评分、标准化用量、可归属成本、耗时、状态、失败原因和产物。
- 希望智能体直接检查和修改本地代码库的开发者,可通过桌面端或 TUI 使用文件、搜索与 Shell 工具,并逐项审批敏感操作。
- 需要在脚本或 CI 风格流程中执行单轮任务的工程师,可用
maka run提交提示并读取最终输出。 - 需要拆分并行实现工作的维护者,可在干净的 Git 工作树中使用
--graph,让实现操作在隔离 worktree 中运行并等待持久化 Graph 完成。 - 重视可追溯性与故障恢复的团队,可利用追加式事件日志、AgentRun ledger、Turn Evidence、备份校验和启动恢复保存执行事实。
- 比较 Maka 与外部评测对象的研究者,可用声明式多臂实验生成任务 × 重复 × 对象的评测单元,并收集成本、耗时、失败和产物数据。
- 不希望把会话默认托管到远端的个人用户,可将工作区数据保留在本机,并自行选择云 API、本地模型或兼容网关。
这个 Agent 有哪些优点和局限?
- 以 Runtime Event Log 作为执行事实来源,模型消息、工具调用、结果和终止事件均可追踪,并支持会话投影与恢复。
- Desktop、TUI、非交互式 CLI 和 Maka 评测对象共享 Runtime Host,减少不同入口产生不一致执行语义的风险。
- 本地优先保存会话、设置与运行记录,同时允许用户选择云 API、本地模型或兼容网关,避免绑定单一模型提供方。
- 内置工具模式校验、动态可用性、权限策略、watchdog、abort 和错误分类,对文件写入、Shell 与危险调用设置明确控制点。
- 评测系统提供声明式多臂实验、不可变尝试和统一结果指标,适合复现实验及比较不同执行对象。
- 项目处于积极开发阶段,数据格式、CLI 命令和实验功能仍可能变化。
- 正式桌面发行版目前只支持 Apple Silicon Mac;Windows x64 仍是未签名预览,Intel Mac 和 Linux 尚无支持包。
- Maka 不提供共享模型账户,采用者必须自行配置 API、本地模型或兼容网关,并承担相应模型费用与可用性风险。
- 连接 API/OAuth 材料、请求头、搜索密钥和代理密码保存在本地明文
credential-vault.json中,安全性依赖操作系统账户边界和文件权限。 - 当前存储版本不会导入旧的 File/JSONL 会话历史或旧版、safeStorage 加密的凭据;升级可能出现空会话,相关用户还需重新认证。
- 对结果不确定的工具副作用尚未实现 Phase 3 对账;这类执行会被搁置,而不会自动重试。
如何安装或部署这个 Agent?
源码运行要求 Node.js 22.19 或更高版本、npm、Git 和 ripgrep;CI 使用 Node.js 24,当前 packageManager 为 npm 11。执行:
git clone https://github.com/apache/maka.git
cd maka
npm ci
npm run dev其中 npm run dev 启动带 HMR 的桌面开发环境;若需先构建全部 workspace,可运行 npm run dev:full。若安装依赖时设置了 ELECTRON_SKIP_BINARY_DOWNLOAD=1,启动前执行 node node_modules/electron/install.js。Apple Silicon Mac 也可从 GitHub Releases 下载已签名并公证的 Maka-<version>-mac-arm64.dmg,拖入 Applications,并用 brew install ripgrep 启用 Grep。Windows x64 仅为未签名预览;Intel Mac、Linux 和正式 Windows 安装包尚不受支持。
如何使用这个 Agent?
首次启动后打开 Settings → Models,添加 API、本地模型或受支持的账户连接,测试连接并选择默认模型,然后返回工作区提交任务;Maka 不附带共享模型账户。源码版终端入口需先执行 npm run build。启动 TUI:npm run cli:dev。执行单轮任务:npm run cli:dev -- run "Summarize this repository and identify its most important risk"。执行 Graph 任务:npm run cli:dev -- run --graph "Implement two independent slices, integrate them, then review the result";Graph 实现操作使用隔离的 Git worktree,因此源项目必须是干净工作树。运行评测:maka eval run <spec> --out <directory>。安全边界恢复默认关闭;设置 MAKA_RUNTIME_SAFE_BOUNDARY_RESUME=1 后,桌面端 Safe resume、CLI/TUI 的 /resume 和桌面启动自动恢复才会启用,并可能调用模型及消耗令牌。
常见问题
Maka 是否自带可直接使用的模型额度?
智能体可以不经确认直接修改文件或运行命令吗?
数据默认存在哪里?
userData 下的 workspaces/default/。运行状态主要保存在 runtime.sqlite,Artifact 内容保存在 artifacts/,连接、凭据和设置则保存在独立配置文件中。中断后会自动继续执行吗?
MAKA_RUNTIME_SAFE_BOUNDARY_RESUME=1 后,Safe resume、/resume 和桌面启动自动恢复才可用;恢复可能再次调用模型并消耗令牌,结果不确定的工具副作用仍会保持搁置。