watch-ask адкрыты са жніўня. Гэта праграма для Galaxy Watch і невялікі сервер на Node. Я цісну кнопку і задаю пытанне голасам. Гадзіннік распазнае словы на самой прыладзе і адпраўляе тэкст на маю машыну, дзе адказвае Claude Code без інтэрфейсу. У README я напісаў “$0 in API”. Ніжэй дадаў, што на маім сэтапе адзін адказ з’еў прыкладна $0,07 ліміту падпіскі і забраў каля 27 тысяч токенаў кантэксту.
Гэты сказ узяўся з аднаго адказу. Я паглядзеў радок лога, убачыў 7 цэнтаў, запісаў і пайшоў далей. Пра сябе я лічыў, што гэта цана халоднага старту, а кэш промпта зробіць наступныя пытанні амаль бясплатнымі. Я гэтага ні разу не правяраў, таму на гэтым тыдні праверыў.
Як я мераў
Сервер гэта публічны рэпазіторый на каміце edc8cae, Node 22.23.1, усе 43 яго тэсты праходзяць. Бэкенд гэта адаптар claude-cli па змаўчанні: ён запускае claude -p --output-format json і падае пытанне ў stdin. Я запускаў Claude Code 2.1.292 з мадэллю claude-opus-5 і рэжымам правоў default.
Гадзінніка на гэтай машыне няма. Скрыпт пытаецца гэтак жа, як праграма на гадзінніку: POST /ask?mode=async, потым GET /result/<id> раз на 2000 мс, гэта POLL_INTERVAL_MS у MainActivity.kt. Сервер піша ў лог толькі суму ў доларах, а мне патрэбныя былі токены. Таму ў ASK_CLAUDE_BIN я падставіў маленькую абгортку, якая запускае сапраўдны CLI і захоўвае копію канверта, які ён аддае ў JSON. На гэтай нодзе сам CLI працуе на іншай машыне праз ssh. Гэта дадае 0,29 с да кожнага выкліку на баку гадзінніка, але не да часу ўнутры CLI.
Сума ў доларах гэта тое, што CLI піша ў total_cost_usd. На падпісцы рахунак за яе ніхто не выстаўляе, яна спісваецца з ліміту. Іншага ліку для гэтага ліміту ў мяне няма.
Другі праход і няправільная выснова
Першы праход задаў 10 пытанняў. 5 агульных, накшталт “What does HTTP status 502 mean?”. Астатнія 5 пра сам рэпазіторый, накшталт “How many tests does the server have?”. Агульныя каштавалі па $0,07, першае $0,096. Потым я прагнаў тыя ж 10 яшчэ раз і агульныя каштавалі ўжо ад $0,010 да $0,014.
Цёплая цана выйшла ў 7 разоў ніжэйшай за лік з README. Я ўжо напалову напісаў гэты сказ, калі паглядзеў, што менавіта задаваў другі праход. Ён задаваў тыя ж пытанні, слова ў слова. Кэш супаў з усім промптам, уключна з пытаннем. А я не пытаюся ў гадзінніка пра адно і тое ж двойчы за гадзіну.
Значыць, патрэбныя былі пытанні, якіх мадэль яшчэ не бачыла. Я напісаў 10 новых агульных пытанняў і задаў кожнае двойчы.
Усе 10 новых пытанняў каштавалі ад $0,0702 да $0,0718. Іх паўторы каштавалі ад $0,0107 да $0,0123. Чаму, відаць па канверце. Перад кожным агульным пытаннем ідзе каля 20 000 токенаў кантэксту. Прыкладна 13 700 з іх кожны раз прыходзяць з кэша. Астатнія, ад 6317 да 6330 токенаў на новае пытанне, запісваюцца ў кэш нанова. Прачытаць іх назад можа толькі дакладны паўтор.
Дарагая частка гэта запіс у кэш. Цану дае першы выклік. $0,0962 мінус 10 959 токенаў з кэша па $0,50 за мільён, мінус 8 выходных токенаў, застаецца $0,0905 за 9052 запісаныя токены. Гэта $10 за мільён, удвая даражэй за звычайны ўваход Opus 5, які каштуе $5 за мільён. У канверце гэтыя токены палічаныя ў полі ephemeral_1h_input_tokens, гэта значыць, што CLI піша ў гадзінны кэш. Каля 6300 токенаў запісваюцца так на кожнае новае пытанне. Ніводнае наступнае пытанне іх не чытае.
Чаму CLI перапісвае 6300 токенаў, а не толькі пытанне, я не ведаю. Мая здагадка ў тым, што CLI кладзе частку свайго кантэксту пасля апошняй кропкі кэша, побач з пытаннем. Тады для кожнага пытання яна новая. Калі скараціць інструменты, перазапіс таксама сціскаецца прыкладна да 700 токенаў. Са здагадкай гэта сыходзіцца, але самую здагадку я не правяраў. Так што 7 цэнтаў з README гэта цана кожнага новага пытання.
Адкуль 20 000 токенаў
Большая частка сыходзіць разам з інструментамі. На гэтай машыне CLI яшчэ і пералічвае 13 навыкаў і ўсталяваныя плагіны. Так што частка з 20 000 гэта мой сэтап, а не сам Claude Code. Гэтыя дзве долі я не падзяляў. Я задаў 5 новых агульных пытанняў наўпрост праз CLI з тым жа сістэмным промптам і --tools "".
Без інструментаў кантэкст сціскаецца прыкладна да 3800 токенаў, а новае пытанне піша каля 700. Пасля першага выкліку гэта ад $0,009 да $0,010. Агульнаму пытанню з гадзінніка інструменты не патрэбныя. Пытанню пра мой код патрэбныя, таму я паспрабаваў вузейшы набор, --tools "Read,Grep,Glob". Кантэкст выйшаў каля 6300 токенаў, новае агульнае пытанне каштавала ад $0,011 да $0,012. 2 пытанні пра рэпазіторый каштавалі $0,073 і $0,098. Абодва адказы былі правільныя.
Сёння адаптар так не ўмее. Ён перадае --allowed-tools з ASK_CLAUDE_ALLOWED_TOOLS. Гэты сцяг вырашае толькі тое, што можна запускаць без запыту. Мадэлі ўсё роўна распавядаюць пра кожны інструмент, бо --tools не перадаецца ніколі. Гэты радок я б і дадаў, а па змаўчанні даў бы толькі інструменты для чытання.
Пытанні пра код
Усе 10 адказаў былі правільныя. Я звярыў іх з кодам. Порт 8787, на няправільны токен прыходзіць 401. Праз 300 секунд гадзіннік кідае чакаць. Тэстаў 43, па файлах яны дзеляцца на 14, 11, 10 і 8. Апошні каміт дадае CITATION.cff. На адказы пайшло ад 2 да 7 хадоў і ад $0,05 да $0,21, медыяна $0,12.
У 4 выкліках з 10 мадэль спрабавала Bash і рэжым правоў default ёй адмовіў. Яна вярнулася да чытання файлаў і ўсё роўна адказала правільна, як і абяцае README. На ўласныя вочы я гэтага раней не бачыў.
Апытанне сервера дадае часу на запясці. Агульнае пытанне заняло ўнутры CLI 2,1 с па медыяне. Скрыпт атрымаў адказ праз 6 с, бо гадзіннік пытаецца толькі раз на 2 секунды. Адаптар echo, які адказвае імгненна, кожны раз вяртаўся за 2,0 с, найдаўжэй за 2,06 с. Пытанне пра код заняло па медыяне 8,6 с у CLI і 12 с на гадзінніку. У README адказ прыходзіць праз 15 секунд. Для 7 з гэтых 10 пытанняў гэта так, астатнія 3 занялі ад 16 да 18 с. І гэта яшчэ без распазнавання маўлення і голасу на сапраўдным гадзінніку.
Чаго я не правяраў
Сам гадзіннік. Я не правяраў распазнаванне, перазапуск сегментаў праслухоўвання, памылку 11 у пачатку сесіі і голас, які чытае адказ уголас. Гэты код я толькі чытаў. У README ў мяне было 27 тысяч токенаў, а тут 20 тысяч. Здагадваюся, што справа ў іншай машыне з іншым наборам навыкаў і плагінаў, але тую машыну я не мераў. Я не ведаю, як $0,07 па рахунку CLI кладуцца на тыднёвы ліміт. Прагон з паўзамі 10 і 60 секунд паміж пытаннямі я пачаў і спыніў пасля 2 выклікаў. Гадзінны кэш праз такія кароткія паўзы не астывае. Колькі каштуе пытанне пасля больш чым гадзіны цішыні, а на прагулцы гэта звычайны выпадак, пакуль адкрытае пытанне.
Радок “$0 in API” у README можна пакінуць, грошай там сапраўды нуль. А сказ пад ім трэба перапісаць, каб там стаялі 7 цэнтаў за кожнае новае пытанне і тое, куды яны сыходзяць.