# Промт ресёрч-сессии: обзор LLM-транспорта чужих харнессов (research/21) > **АРХИВ (23.07.2026): ОТРАБОТАН ПОЛНОСТЬЮ.** Сдан и залендён `docs/research/21-llm-transport-survey.md` (ревью-шапка с эрратумом и поправкой применимости — там). Все Q1–Q7 закрыты; рекомендации DEFER до после пере-прогона; Q7-кандидаты ждут вендор-сверки. Инструкции ниже не исполнять — только история. **Статус: АКТИВЕН (выдан 20.07.2026, оркестратор №7).** Роль — ресёрч (полигон-профиль). Идёт ПАРАЛЛЕЛЬНО операционному пере-прогону: **`backend/` строго read-only, НИКАКИХ патчей** — рекомендации применяются только после пере-прогона отдельным решением. Это $0-сессия чтения кода: **не запускать чужие CLI, не делать НИ ОДНОГО вызова моделей, ключи не трогать**. ## Материал Склонировано в `/home/ubuntu/projects/tmp/` (shallow, 20.07): `codex` (OpenAI, Apache-2.0) · `gemini-cli` (Apache-2.0) · **`grok-build` (официальный xAI, Apache-2.0, open-sourced 15.07.2026)** · `goose` (Block, Apache-2.0) · `aider` (Apache-2.0) · `cline` (Apache-2.0) · `opencode` (sst, MIT) · `litellm` (MIT-ядро; **`enterprise/` — иная лицензия, НЕ читать**) · `crush` (Charm, **FSL-1.1: читать можно, копировать НЕЛЬЗЯ**) · `openai-go` + `anthropic-sdk-go` (референс официальных SDK). **Периметр:** leaked-форки Claude Code — ВНЕ периметра: не искать, не клонировать, не открывать (контаминация независимой разработки). Официальный трекер/чейнджлог `anthropics/claude-code` — читать ОНЛАЙН (issues/CHANGELOG), код не разбирать. ## Контекст нашей стороны (прочитать ДО чужого кода) 1. `CLAUDE.md` → `docs/README.md` → CURRENT-STATE `docs/PROGRESS.md`. 2. `backend/internal/llm/` (весь пакет — наш транспорт: адаптеры, фейловер, таймауты) + `backend/internal/pipeline/ratelimit.go` + `backend/configs/models.yaml` (капабилити/цены/квирки). 3. `docs/experiments/00-provider-quirks.md` (наш реестр квирков) + `docs/architecture/04-unhappy-paths.md` (~70 режимов отказа) + `docs/experiments/08-cost-model-v2.md` (деньги). ## Вопросы (ранжированы; на каждый — вывод «что берём/что не берём и почему») **Q1 — Prompt-cache дисциплина (потенциально $).** Как харнессы раскладывают запрос под префикс-кеш (стабильный system/tools-префикс, порядок блоков, cache_control-маркеры у Anthropic, implicit/explicit cache Gemini, автокеш DeepSeek/GLM)? Наша боль: инъекция банка меняется от чанка к чанку — какой порядок блоков (промт-константы → банк → исходник) максимизирует cache-hit на deepseek-v4-flash/glm-5? Выход: конкретная рекомендация раскладки + оценка экономии по cost-model (cache-hit $0.0028 vs miss $0.14 — до ×50 на входе). **Q2 — Rate-limit адаптив.** Парсинг `retry-after`/`x-ratelimit-*`, токен-бакеты, адаптивная конкурентность (AIMD?), очереди per-provider. Сверить с нашим rate-guard (фикс-пул волнового исполнителя). Особый интерес: Mistral (замечание к плану — их лимиты жёсткие, mistral = арм редактора пере-прогона). **Q3 — finish_reason таксономия.** Как нормализуют across-provider (stop/length/content_filter/tool_calls + нестандарт), как детектят тихое усечение, что делают с partial-ответом. Сверить с нашим контрактом finish=stop-only и floor `min_max_tokens` (deepseek thinking ⊆ completion — субсет-модель). **Q4 — Таксономия ошибок retry/fatal.** Классификация HTTP/сетевых/провайдерских ошибок, backoff-формы, идемпотентность (у кого есть idempotency-key кроме OpenAI?). Дифф против `04-unhappy-paths.md` — чего у нас нет. **Q5 — Usage-учёт.** Как считают reasoning/thinking-токены по провайдерам, cache-hit поля, атрибуция стоимости. Сверить с нашим ledger (Р7): есть ли поля usage, которые мы теряем/книжим неверно. **Q6 — Streaming vs non-streaming надёжность.** Меньше ли у стриминга обрывов/таймаутов на длинных генерациях (наш режим отказа — тихие пропуски на выходе 2–8k)? SSE-реассемблинг, обработка обрыва посреди стрима, ретрай частичного. Вывод: есть ли довод менять наш non-streaming путь (сейчас — attempt_s 240 + ретраи). **Q7 — Issue-sweep по НАШИМ провайдерам (возможно, самое ценное).** По трекерам всех склонированных + `anthropics/claude-code` онлайн: поиск по deepseek / zai / glm / gemini / mistral / grok / xai / kimi — жатва квирк-репортов (новые finish_reason, игнор параметров, депрекации, флейки) с датами и ссылками. Выход: таблица кандидатов в `00-provider-quirks.md` (кандидаты! абсорбирует оркестратор после вендор-сверки — правило 10.07). ## Метод (жёстко) - Каждое утверждение о чужом коде — с `repo/file:line`. README ≠ код: пересказ документации фактом о коде не считается. - **Мандат самопроверки (12.07):** спорные находки верифицировать чтением второго места в коде (call-site, тест); в отчёте помечать confidence. - Лицензии — в шапке отчёта per-repo. НИКАКОГО копирования чужого кода в textmachine: выход — отчёт-рекомендации; реимплементация — отдельное решение после пере-прогона. - `.env` не читать. Git textmachine не трогать (сессия не коммитит). ## Выход `docs/research/21-llm-transport-survey.md` — НЕ коммитить (лендит оркестратор). Структура: (1) топ-рекомендации, ранжированные по ожидаемому импакту ($ / надёжность), каждая с «какая наша метрика двинется и на сколько (оценка)»; (2) таблица quirk-кандидатов Q7 со ссылками; (3) per-question разборы с цитатами; (4) appendix per-repo (лицензия, что смотрели, что пропустили). Плюс короткое итоговое сообщение оркестратору.