average-processor-75195
08/24/2026, 1:07 PMaverage-processor-75195
08/24/2026, 1:08 PMaverage-processor-75195
08/24/2026, 1:08 PMaverage-processor-75195
08/24/2026, 1:10 PMcalm-artist-7206
08/24/2026, 1:50 PMstraight-dog-12443
08/24/2026, 1:50 PMaverage-processor-75195
08/24/2026, 1:52 PMstraight-dog-12443
08/24/2026, 1:53 PMstrong-ice-84145
08/24/2026, 1:54 PMBy the final call, OpenHands was sending 97,500 tokens, compared with 57,700 for OpenCode and 73,900 for Pi. This could be irrelevant: for long tasks there might have been condensation.calm-artist-7206
08/24/2026, 2:03 PMaverage-processor-75195
08/24/2026, 2:10 PMstraight-dog-12443
08/24/2026, 2:15 PMaverage-processor-75195
08/24/2026, 2:21 PMThe token numbers measure what each harness spent attempting the same detailed contract. They do not, by themselves, establish that the resulting implementations were equally good.Your database example was controlled for the persistence projects because SQLite was mandatory. But subtler choices were still open: schema design, transaction strategy, amount of testing, abstractions, UI polish, and whether to add extra functionality. Those choices can materially change token use.
average-processor-75195
08/24/2026, 2:27 PMstraight-dog-12443
08/24/2026, 2:29 PMaverage-processor-75195
08/24/2026, 2:31 PMcalm-artist-7206
08/24/2026, 2:33 PMcalm-artist-7206
08/24/2026, 2:34 PMaverage-processor-75195
08/24/2026, 2:37 PMaverage-processor-75195
08/24/2026, 2:38 PMstraight-dog-12443
08/24/2026, 2:39 PMlimited-student-10747
08/24/2026, 2:41 PMaverage-processor-75195
08/24/2026, 2:42 PMlimited-student-10747
08/24/2026, 2:48 PMaverage-processor-75195
08/24/2026, 2:52 PMcalm-artist-7206
08/24/2026, 3:37 PMaverage-processor-75195
08/24/2026, 6:12 PMcalm-artist-7206
08/24/2026, 6:31 PMcalm-artist-7206
08/24/2026, 6:31 PMcalm-artist-7206
08/24/2026, 6:35 PMlimited-student-10747
08/24/2026, 6:49 PMaverage-processor-75195
08/24/2026, 6:50 PMlimited-student-10747
08/24/2026, 6:53 PMstraight-dog-12443
08/24/2026, 6:53 PMlimited-student-10747
08/24/2026, 6:53 PMaverage-processor-75195
08/24/2026, 6:58 PMlimited-student-10747
08/24/2026, 6:58 PMmodern-fireman-99755
08/24/2026, 7:03 PMYea, I have tried sharing everything in the github - @modern-fireman-99755 is always asking for the trajectories 🙂Haha 🙂 I don't believe if I don't see the trajectories...
limited-student-10747
08/24/2026, 7:55 PMaverage-processor-75195
08/24/2026, 7:55 PMmodern-fireman-99755
08/24/2026, 7:56 PMlimited-student-10747
08/24/2026, 7:56 PMlimited-student-10747
08/24/2026, 7:56 PMaverage-processor-75195
08/24/2026, 7:59 PMlimited-student-10747
08/24/2026, 8:00 PMmodern-fireman-99755
08/24/2026, 8:02 PMaverage-processor-75195
08/24/2026, 8:04 PMaverage-processor-75195
08/24/2026, 8:31 PMstraight-dog-12443
08/24/2026, 8:47 PMstraight-dog-12443
08/24/2026, 8:48 PMWhat each one does:
PR 1 — code (, branchsoftware-agent-sdk, 4 commits ready):feat/llm-prompt-composition-metrics
Adds arecord to the SDK'sPromptComposition. Every LLM call now stores how many tokens went to system prompt, tool schemas, history, and the latest message, flagged as an estimate, joinable to the provider's real billing record byMetrics. Always on, ~17 ms overhead, breaks nothing if counting fails. Ships with the evidence attached as reviewer context: both model lanes' per-call data underresponse_id(their convention for PR-only material, auto-removed after approval)..pr/
PR 2 — docs (, same branch name, 2 commits ready):OpenHands/docs
One new guide page explaining the feature — what it records, that estimates defer to provider billing, a working code example — registered in the site's navigation and cross-linked from the existing Metrics page. Small by design; it exists because the rules require it.
What they do once merged, the part that matters: OpenHands' Agent Server is built on this SDK, so every Agent Canvas conversation, Rajiv's benchmark runner, and your own context-window-meter branch all inherit the measurement without another line of code. Rajiv's "we cannot say which part" gap closes by default on his next run. And #4083's lazy-loading discussion gets a public instrument that can prove whether deferring tool schemas actually saves what it promises.
Nothing is pushed yet — both branches sit local until you say go.
straight-dog-12443
08/24/2026, 9:36 PMaverage-processor-75195
08/25/2026, 12:10 AMlimited-student-10747
08/25/2026, 12:12 AMaverage-processor-75195
08/25/2026, 12:13 AMaverage-processor-75195
08/25/2026, 12:14 AMcalm-artist-7206
08/25/2026, 12:15 AMlimited-student-10747
08/25/2026, 12:23 AMaverage-processor-75195
08/25/2026, 12:25 AMcalm-artist-7206
08/25/2026, 12:30 AMaverage-processor-75195
08/25/2026, 12:48 AMlimited-student-10747
08/25/2026, 12:57 AMlimited-student-10747
08/25/2026, 12:58 AMaverage-processor-75195
08/25/2026, 1:03 AMlimited-student-10747
08/25/2026, 1:04 AMlimited-student-10747
08/25/2026, 1:05 AMaverage-processor-75195
08/25/2026, 1:07 AMaverage-processor-75195
08/25/2026, 1:37 AMstraight-dog-12443
08/25/2026, 6:57 AMstraight-dog-12443
08/25/2026, 7:27 AMmodern-fireman-99755
08/25/2026, 8:25 AMRemoving skills should help, but I don’t think it would help that much because we do progressive disclosure.Yes, but we went from circa 60 skills to just 11 skills. So there is already a lot of context less.
Exactly, part of the task required using a browser interface.Can you do that with the terminal? Which kind of browser interface?
So i suppose there could be a cases where the browser does make a difference, but in this case, as Opencode shows you can get away without a browser and rewards fewer tokens.This is really on the web task that you are looking on. For example, fetching information can be done with the terminal. But you cannot understand JS parts in a browser with the terminal
• OpenHands declared 14 browser tools on all 35 calls
• It made *zero browser actions*— not a single one
• The 14 browser schemas added roughly *12,000–19,000 prompt tokens per call*(the avg prompt was 35,814 tokens with 22 tools vs. what would be ~15–18K with the 8 core tools alone)I'm suspicious here: 12,000–19,000 prompt tokens per call . This number should be fix and constant during all the conversation (per call) as OH never used the broswer. The big problem is that this part is present from the beginning. So for every turn you pay cache on that.
Total prompt tokens for that run: 1,253,493 — so the unused browser schemas account for roughly 33*–52% of the entire token spend* on a pure backend taskAre you taking in account new tokens and cached one? The first time you pay full price then you are using cache. I agree that the web-broswer is generating a lot of costs. (not difficult to see 🙂 ) Perhaps we should think to switch to a web-broswer tool in the philosophy of Claude and Gemini CLI (and Codex)
average-processor-75195
08/25/2026, 10:58 AMaverage-processor-75195
08/25/2026, 11:05 AMlimited-student-10747
08/25/2026, 11:14 AMcalm-artist-7206
08/25/2026, 11:17 AMaverage-processor-75195
08/25/2026, 11:25 AMlimited-student-10747
08/25/2026, 11:26 AMaverage-processor-75195
08/25/2026, 11:31 AMaverage-processor-75195
08/25/2026, 11:56 AMstrong-ice-84145
08/25/2026, 6:58 PMaverage-processor-75195
08/26/2026, 12:55 AM