通过更好的工具输出减少编码代理的Token使用

通过更好的工具输出减少编码代理的Token使用

💡 原文英文,约1000词,阅读约需4分钟。
📝

内容提要

AI编码代理处理大量结构化数据时,JSON格式重复字段名会浪费token。TOON格式通过表头加行数据,减少字符和token消耗,如25条问题列表可省49%字符。选择格式需考虑数据形状和消费者,并测量实际效果,以优化代理成本。

🔎

延伸解读

格式选择需权衡数据形状与消费者

文章指出,JSON并非总是最优选择,对于大型、均匀的数据集合,如问题列表,TOON格式通过表头加行数据可显著减少字符和token消耗。但JSON在嵌套或不规则数据上可能更紧凑。因此,选择格式应基于数据形状和消费者(如编码代理)的需求,而非一刀切。

测量实际效果而非依赖通用百分比

文章强调,字符数减少不等于token减少,因为不同模型的token化方式不同。建议团队捕获代表性响应,使用相关tokenizer或格式工具进行测量,并与当前默认格式比较。例如,Sonar CLI可输出JSON或TOON,通过统计命令评估实际节省。这样能确保优化针对实际工作流有效。

成本优化需兼顾决策质量

文章提醒,更紧凑的格式必须保留代理决策所需字段,且需被工具链接受。若因压缩导致代理决策质量下降,则不是真正的成本改进。应同时评估token消耗、响应质量和任务完成情况,确保优化不损害核心目标。

从高容量调用入手,逐步优化

文章建议从代理工作流中最高容量的结构化调用开始,测量基线,更改一个格式设置,然后综合评估。这种方法避免大规模重写,使权衡可见。随着AI辅助开发普及,对代理所见内容的格式进行精细调整,将成为控制成本的关键。

Q&A

AI编码代理在处理结构化数据时,为什么JSON格式会浪费token?

因为JSON格式会为每条记录重复字段名、引号和结构语法,当处理大量相似记录时,这些重复内容会消耗大量token,而实际有用的信息只是其中的值。

TOON格式是什么?它如何减少token使用?

TOON(Token-Oriented Object Notation)是一种面向token的格式,它通过表头定义字段名,然后每行只包含值,从而避免重复字段名,减少字符和token消耗。它是一种无损编码,适用于统一形状的数据。

在什么情况下应该选择TOON而不是JSON?

当模型需要消费大量统一形状的数据(如问题列表)时,TOON更节省token;但对于嵌套或不规则数据,JSON可能更紧凑。选择格式应基于数据形状和消费者(即模型)的需求。

如何测量TOON格式的实际token节省效果?

可以使用Sonar CLI获取JSON和TOON格式的输出,然后通过TOON CLI的--stats选项查看字符节省,但更准确的是使用实际模型对代表性响应进行token化比较。例如,文中提到25个问题的列表,TOON比pretty-printed JSON节省49%字符,比minified JSON节省33%。

除了格式选择,还有哪些方法可以减少AI编码代理的token消耗?

其他方法包括:只检索相关文件、控制工具结果的详细程度、避免重复传输结构开销。这些方法可以互补,且不影响代码或安全质量。

在优化代理成本时,为什么不能只追求更便宜的上下文?

因为如果更便宜的上下文导致代理做出更弱的决策,那就不是真正的成本改进。格式必须保留代理做出正确决策所需的字段,并确保任务完成质量。

如何开始优化代理工作流中的token使用?

从工作流中最高容量的结构化调用开始,测量基线,更改一个格式设置,然后同时评估token消耗、响应质量和任务完成情况。这种方法简单且能清晰看到权衡。

🏷️

标签

➡️

继续阅读