4 ms·
The writing is slop. It doesn't mention a detail I have seen people actually not get: that LLMs wrap tool calls in special tokens, so they are "out of band" and
by stratos123 18d ago
The writing is slop. It doesn't mention a detail I have seen people actually not get: that LLMs wrap tool calls in special tokens, so they are "out of band" and can't be mistaken with normal output.
It also spends an entire section trying to convey that large tools waste tokens:
A read_file that returns an 8k-token source file on turn 2 of a ten-turn agent gets resent on the eight requests that follow: 8 × 8k = +64k input tokens, $0.32, from one tool result.
but surely that's wrong - it's part of the same conversation, it only gets processed once and then cached. Otherwise doing long conversations would always cost an amount quadratic with length.
- dvt 18d ago> I have seen people actually not get: that LLMs wrap tool calls in special tokens This isn't necessarily true. I'm working on a local harness that doesn't do this and instead coerces everything to YAML (including tool calls) for better bucketing. Some models are indeed trained on the `<|tool_call>...<tool_call|>` token schema (or something similar—e.g. jinja), but it's vendor-specific and often times inconsistent (so you're constantly fixing calls or going back to the LLM).
- stephenblum 18d agonice! like HTML tags. I remember seeing this back with meta Llama 2. the <|start_header_id|>assistant<|end_header_id|> style. And [TOOL_CALLS] ... [/TOOL_CALLS] style with Mistral
- stephenblum 18d agoYou a are right as The article doesn't mention KV cache. Also, yes the writing is slop, and does not mention the LLM special tokens. Only discusses the use through the OpenAI-style JSON wrapper that allows you to define the schema of a tool call in JSON. For most of the audience, they are looking to build AI agents, and the high-level tool calling interface is what they would be using