【免费下载链接】makiAn efficient AI coding agent extendable by neovim-like Lua plugins项目地址https://gitcode.com/gh_mirrors/maki3/maki点击查看免费下载Maki是一款可以用 Neovim 风格 Lua 插件扩展的AI 编程代理AI coding agent它的核心设计目标只有一个把每轮对话的Token 消耗压到最低。本文带你看懂index、code_execution、task三大省 Token 机制的工作原理以及如何用/usage命令亲眼看清楚省了多少钱。为什么 Token 越用越贵对话每轮都在重复付费理解 Maki 的 Token 经济要先明白一条残酷的规律Agent 的每轮对话都会把整个上下文重新发送给模型。turn 1 [system prompt] ─► 模型 ─► 工具调用 turn 2 [system prompt 结果1] ─► 模型 ─► 工具调用 turn 3 [system prompt 结果1 2] ─► 模型 ─► ...也就是说一次工具结果的 Token不是只付一次钱。假如你在第 2 轮read了一个 2000 行的文件而整个会话有 40 轮那么这 2000 行还要被再重复计费 38 次。Prompt 缓存只是让价格变软不能改变原理——缓存读取依然要花钱而且臃肿的上下文还会让模型变笨。所以 Maki 从两个乘数下手进攻每一步给上下文增加多少小结果一共有多少步少往返省 Token 第一招index 骨架索引比读全文小 70-90%index工具是整个省 Token 体系的地基。它不会把文件整个塞给模型而是用tree-sitter语法解析出一棵骨架导入语句、类型定义、函数签名、以及行号区间。read main.rs index main.rs ───────────── ───────────────────────────── 1400 行全部进入上下文 60 行签名 行号 再用 read offset812 limit40 精准读取典型场景一个 1400 行的 Rust 文件read会把 1400 行永久留在上下文里而index只返回约 60 行签名模型先定位再用read的offset/limit参数只读需要的段落。官方描述直言这比读整个文件高效 70-90%。 小技巧Maki 还会向系统提示词注入一条使用规则主动教模型先用 index再用 read你可以看到这条提示词注册在 plugins/index/init.lua而骨架生成逻辑在 plugins/index/indexer.lua 中实现了 30 种语言的映射表。⚠️ 边界情况超过 2MB 的文件会被index拒绝此时应退回read分段读取见 plugins/index/init.lua 的大小检查。省 Token 第二招code_execution 把 300 轮折叠成 1 轮如果index解决每步多大code_execution解决的就是多少步。它给模型提供一个Python 沙箱所有工具都能以async 函数的形式在脚本里调用。链式调用、循环、过滤全部发生在沙箱内部只有脚本print或return的内容才进入上下文。没有 code_execution 使用 code_execution ───────────────────────── ───────────────────────────── glob → 300 个路径 results gather(read × 300) read × 300 → 300 个文件内容 在 Python 里过滤 300 轮往返每个文件 print(3 个文件调用了 foo_v1) 永久留在上下文 1 轮往返上下文只进 1 行一个直观的对比方式上下文开销模型看到的传统 300 次read300 个文件全文 × 剩余轮数全部文件内容code_executiongather1 行汇总3 个文件调用了 foo_v1而且从 Python 里调用工具时不走输出上限和 RTK 改写脚本能拿到完整输出做解析——这是给程序化处理专门开的后门。沙箱预置了容错的gather并发原语单个子调用失败不会炸掉整批实现见 plugins/code_execution/init.lua。省 Token 第三招task 子代理充当垃圾回收器task是最优雅的一招给子代理一个一次性throwaway上下文。子代理想怎么 grep、怎么 read、怎么走弯路都行只有它最终的 summary 会回到你的主对话。它探索过程中的几万 Token 混乱随会话退出一起被回收。主上下文 子代理上下文用完即弃 ───────────── ─────────────────────────── task(find auth) ───────► glob、grep ×6、read ×9 …… ◄────────── JWT 中间件auth.rs:120 只留 1 行 约 20k Token 从未进入主上下文task还支持model_tier参数把搜索这类简单活派给便宜的弱模型如 Haiku 档把强模型留给需要判断力的环节成本进一步打折。它的三种模型档位、以及research只读/general可写两种子代理类型定义在 plugins/task/init.lua。其他隐藏的省 Token 机制除了三大主力Maki 还藏了几个小而美的优化batch批量调用独立的工具调用在一轮里打包发出一次请求换 N 个结果往返次数直接减半。MCP 工具延迟加载一个带 100 个工具的 MCP 服务器不会每次请求都带 100 份定义而是只加载一个tool_search模型需要时才搜索并加载命中的那几个。输出上限工具输出有agent.max_output_bytes/agent.max_output_lines双上限read和grep的超长行会被裁剪。压缩Compaction长会话时把旧轮次总结后丢弃重置重复付费的乘数详见 site/docs/content/context/_index.md。中断不浪费按 Esc 中断长任务时已打印的部分会标记为 partial 交给模型避免下一轮从零开始重付。如何验证/usage 看 Token 账单省 Token 不是玄学是可测量的功能。Maki 提供两种核对方式输入/usage显示当前会话的 Token 消耗分解Headless 模式下加--output-format json每次运行报告total_cost_usd总花费更妙的是Maki 在每一轮发生时实时计价并把数字存进会话——因为价格会波动比如某些供应商在 UTC 高峰时段翻倍事后重算的价格只是猜测。你看到的就是实际被扣的。命令完整列表见 site/docs/content/commands/_index.mdToken 经济的官方设计说明在 site/docs/content/token-economy/_index.md。总结一张表看懂 Maki 的省 Token 三板斧机制解决的问题省多少index单步注入量太大比read全文小 70-90%code_execution往返轮次太多300 轮折叠成 1 轮task探索过程污染主上下文探索 Token 用完即弃batch 压缩长会话重复计费重置重复乘数Maki 的哲学很简单便宜是一种可以被测量的功能。下次当你的 AI 编码助手开始烧钱不妨打开 Maki 的/usage亲眼看看到底是哪一步在悄悄重复付费。赞分享【免费下载链接】makiAn efficient AI coding agent extendable by neovim-like Lua plugins项目地址https://gitcode.com/gh_mirrors/maki3/maki点击查看免费下载相关推荐如何实时省下一半AI编码Token账单gortex savings节省仪表盘从原理到实战完整指南如何实时省下一半AI编码Token账单gortex savings节省仪表盘从原理到实战完整指南 Gortex 是一款 100% 本地的代码智能引擎为 AI如何省下70%的AI Token成本MoAI-ADK Token经济学之模型路由、提示缓存与上下文瘦身完整指南如何省下70%的AI Token成本MoAI ADK Token经济学之模型路由、提示缓存与上下文瘦身完整指南 MoAI ADK 是一个面向 Claude CAgent Teams Lite Token 经济学深度剖析为什么委托子代理能在大功能上省下 100,000 TokensAgent Teams Lite Token 经济学深度剖析为什么委托子代理能在大功能上省下 100,000 Tokens 在 AI 编程助手中Token创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?