
Maki 发布:一款优化上下文 token 用量的 AI 编程代理
来源标题:Maki: An Efficient Coding Agent
Maki 是一款主打上下文 token 高效利用的 AI 编程代理,在保证使用体验的同时减少 token 消耗。它通过 index 工具解析代码结构,每轮多花 59 token 却在读取调用上省下 224 token,净省约 165 token;code_execution 工具可在不污染上下文窗口的情况下过滤和转换数据。任务分派给子代理时,还可按需选择弱、中、强模型。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
一款为最大限度减少 context token 使用量而优化的 AI 编码 agent,同时提供出色的用户体验。 FrontierHarness Eval benchmark 结果,点击此处下载 report.zip Context 效率 index 工具——使用 tree-sitter 解析所支持的编程语言,生成文件的高层骨架,并给出每个条目的精确起止行号(例如某个函数的实现位于第 150-165 行)。建议在读取之前先使用它。以我的使用情况来看,它每轮增加 59 tok,但在 read 调用上每轮节省 224 tok,净省 165 tok/轮。 code_execution 工具——使用 monty 运行一个解释器,该解释器中所有其他工具都以 async 函数的形式可用。Maki 用它来过滤、汇总、转换数据,或将数据通过管道传给其他工具作为输入,而数据全程不会进入并污染 context window。沙箱受时间和内存限制。 task 工具——在将工作委派给子 agent 时,AI 可选择使用所采用 provider 的弱、中、强模型。类似于 haiku、sonnet、opus 的区分。 系统提示词、工具描述和工具示例都保持简洁,我确保不会让你的 context 变得臃肿。 如果你安装了 rtk 就会使用它,可在 init.lua 中通过 maki.setup({ agent = { rtk = false } }) 禁用。它可节省约 50% 的 bash 输出 token。记住 bash 仅占总 token 用量的 12%,所以节省 6% 固然不错,但通过使用 index 在 read(占总量的 65%)上节省的收益更大。我想我会在未来版本中自己实现这样的 bash 输出过滤。 用户体验 启动极快,60 FPS,内存占用低。不运行任何 JavaScript,TUI 使用 ratatui。连启动画面动画都使用了 SIMD。 以类似 neovim 的 Lua 插件方式扩展——内置插件、用户自制插件展示、Lua API 参考。 不隐藏任何信息的原则——当其他编码 agent 随着模型进步而隐藏信息(例如不显示读取的行数)时,maki 让你保持掌控。 在我那块小屏幕笔记本上,UI 也能很好地容纳所有内容。 子 agent 完全可见——每个子 agent 都有自己的“聊天窗口”,你可以通过 /tasks(Ctrl-X)轻松在它们之间切换。 合理的权限系统——当 agent 运行 git diff && rm -rf / 时,你觉得你当前的编码 agent 会发生什么?它会把它当作 git * 来处理。Maki 使用 tree-sitter 解析 bash 命令,判断出所请求的权限是 git * 和 rm *。可用 --yolo 禁用。 webfetch 调用具备 SSRF 防护。 一个用于保存长期 context 的 memory 工具,只需告诉 maki 记住某事即可(有时它会自动使用)。通过 /memory 管理(查看、编辑、删除记忆)。 使用 Ctrl-F 进行模糊搜索。 /btw 可在不干扰当前会话的情况下,携带聊天历史运行一条命令。 按 Escape-Escape 回退(目前还不能回退代码,只能回退聊天历史)。 在提示词中附加图片。 26 种最流行的主题。 恢复会话。 Skills 与 MCP。 可选择启用 OpenTelemetry 导出,格式与 Claude Code 相同。 Plan 模式。 使用 ! 运行 bash 命令,若不想让 maki 知道则用 !!。 /cd 切换目录。 使用 --print --output-format stream-json 以无 UI 方式运行。输出与 Claude Code 兼容,因此你可以轻松替换现有方案。 支持的 provider Anthropic——仅支持 ANTHROPIC_API_KEY(使用 OAuth 违反 TOS)。通过 CLAUDE_CODE_USE_BEDROCK=1 支持 Bedrock。 OpenAI——OPENAI_API_KEY,以及通过 maki auth login openai 使用 OAuth。 xAI——XAI_API_KEY,以及通过 maki auth login xai 使用 OAuth。 Google——GEMINI_API_KEY。 Copilot——GH_COPILOT_TOKEN,或使用位于 ~/.config/github-copilot/ 的现有 GitHub Copilot 登录信息。 Ollama——本地使用 OLLAMA_HOST(例如 http://localhost:11434),云端使用 OLLAMA_API_KEY。 llama.cpp——LLAMA_CPP_HOST(例如 http://localhost:8080),可选 LLAMA_CPP_API_KEY。 Mistral——MISTRAL_API_KEY。 Z.AI——ZHIPU_API_KEY。 DeepSeek——DEEPSEEK_API_KEY。 OpenRouter——OPENROUTER_API_KEY。 Requesty——REQUESTY_API_KEY。EU 区域请设置 REQUESTY_BASE_URL=https://router.eu.requesty.ai/v1。 Synthetic——SYNTHETIC_API_KEY。 Regolo——REGOLO_API_KEY。EU 托管的开放权重模型。 TensorX——TENSORX_API_KEY。 OpenCode Zen——OPENCODE_API_KEY,或使用零成本模型的免费公开 key。模型来自 models.dev 目录。 OpenCode Go——OPENCODE_API_KEY。模型来自 models.dev 目录。 Aperture——APERTURE_HOST(例如 https://your-host.tailnet.ts.net)。无需 API key,由 Tailscale 处理认证。 插件 provider——Lua 插件可通过 maki.provider.register 注册 provider,其模型的行为与任何内置 provider 的模型一致。详见文档。 Linux / macOS
先下载并阅读脚本(不要盲目信任 shell 脚本)。
curl -fsSL https://maki.sh/install.sh -o install.sh cat install.sh
然后运行。
chmod +x install.sh && sh install.sh 一行命令: curl -fsSL https://maki.sh/install.sh | sh 安装到 ~/.local/bin。可用 MAKI_INSTALL_DIR 覆盖。 brew install maki Windows(PowerShell)
先下载并阅读脚本(不要盲目信任远程脚本)。
irm https://maki.sh/install.ps1 -OutFile install.ps1 Get-Content install.ps1
然后运行。
.\install.ps1 一行命令: irm https://maki.sh/install.ps1 | iex Windows(Git Bash) curl -fsSL https://maki.sh/install.sh | sh 两者都安装到 %LOCALAPPDATA%\maki,并将其加入你的用户 PATH。可用 MAKI_INSTALL_DIR / $env:MAKI_INSTALL_DIR 覆盖。 cargo install --locked --git https://github.com/tontinton/maki.git maki 使用 Nix nix run github:tontinton/maki 或从 GitHub Releases 下载预编译二进制文件。 运行 maki acp,或配置你支持 ACP 的编辑器使用 maki,例如在 Zed 的 settings.json 中: "agent_servers": { "Maki": { "default_config_options": { "model": "deepseek/deepseek-flash" "type": "custom
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。