Галоўная / Артыкулы

Агентнае праграмаванне з кантролем выдаткаў

Агентнае праграмаванне з кантролем выдаткаў: лакальная LLM прадакшн-узроўню з маршрутызацыяй праз LiteLLM, кэшаваннем промптаў і іншым.

Выдавец: REACTAPP.TOP17 хв чытання3886 слоў

Крыніцы: Cost-Engineered Agentic Coding: Building a Production-Grade Local LLM Proxy, Multi-Agent Architecture, and Secure Tooling with Zoo Code, TensorX, and DeepInfra

У гэтым керавані перакладзены маршрут ад сыр'ёў да рабочай сістэмы для: Cost-Engineered Agentic Coding: стварэння проксі LLM класу прадукцыі, архітэктуры з калькамі агентаў, а таксама безпечных інструментаў з выкарыстаннем Zoo Code, TensorX і DeepInfra. Акцэнт ставіцца на практычныя крокі, чысткія пераконтрацыі і код, які можна проста дадаць у рэпазітарый без неабясненых спадзяванняў.

Короткае падсумованне

Для кораткага падсумовання неабходна з'явіць вхідныя даны, адпаведальнага за крок і крытэрыя завершэння пры перадзмене коду. Аперацыйныя працавнікі должны магчымае перадзначыць крок з вядомай точкі контролю, не спадзяваючыся на схованы стан. Неабходна фіксаваць час выкарыстання і вартасць токеноў або запытанняя разам з функцыйнальнымі рэзултатамі. Відразувыя даны пра вартасці запобегаюць неспадзяваным рахункам, калі маршрут пераходзіць з дэмаверсіі ў спяльныя сераўы. Калі наступны крок — гэта код або вызов інструмента, лепш выкарыстоўваць структураваныя выходны даны з перакананнем схэмы, чым вільнае пісьменне.

1. Архітэктурны ўзгляд: Патэран локальнага проксі

Для раздзела «1. Архітэктурны ўзгляд: Патэран локальнага проксі» неабходна практычна апісацыя вхідных дадзеных, адпаведальнага за выкананне крока і крэтарыяў завершэння працы перад змінайом коду. Аператары должны магчымае перзапускаць крок з вядомай точкі контролю, не прабуючы спадарацца прыватны стан. Конфігурацыю трэба залічваць паза кодам прыемленае. Файлы сэравісаў, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаяўшы весь ланцуг задач. Калі наступны крок — гэта код чыя-небудзь вызов інструмента, лепш выкарыстоўваць структураваныя выходны даныя з перакананням ў правамільнасці схемы, чым вольныя тэкстовыя апісанні.

Шар перакладу пратакола

Для шара перакладу пратакола неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крытэрыя завершэння перш чым зменіць код. Аператары должны магчымае запускаць крок з вядомай точкі контролю, не прабуючы спадарожваць схованы стан. Неабяжна задокументаваць як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкі контроль і обработка некорэктных паведамленняў ёсць часткай продукту, а не етапамі далейшай наладкі. Калі наступны крок — гэта код або вызов інструмента, лепш выкарыстоўваць структураваныя выходныя даны з пераверкай схемы, чым вільнападобны прозаўскі тэкст.

2. Глэбокая наладка: дэталізавана інформацыя пра litellm_config.yaml

Для 2. Настаўлення мастэра: дакладна адзірніце litellm_config.yaml, задаце вхідныя даны, адпаведальнага за крок і крытэрыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае перзапускаць крок з вядомай точкі контролю, не прабуючы спадарацца пра схованы стан. Валідзіце маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выконваецца, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны працэс. Калі наступны крок — гэта код або вызов інструмента, валідзіце структураваныя выходныя даны з парадаксамі, а не вольная проза.

# litellm_config.yaml

litellm_settings:
  drop_params: true
  modify_params: true

model_list:
  # =========================================================================
  # WILDCARD CATCH-ALL ROUTES
  # Allows on-the-fly usage of any model published by TensorX or DeepInfra
  # Example: tensorx/qwen/qwen3.8-2.4t-a95b
  # =========================================================================
  - model_name: "tensorx/*"
    litellm_params:
      model: "openai/*"
      api_base: https://api.tensorx.ai/v1
      api_key: "PLACEHOLDER_TENSORX_KEY"
      use_chat_completions_api: true

  - model_name: "deepinfra/*"
    litellm_params:
      model: "openai/*"
      api_base: https://api.deepinfra.com/v1/openai
      api_key: "PLACEHOLDER_DEEPINFRA_KEY"
      use_chat_completions_api: true

  # =========================================================================
  # TENSORX NAMED SHORT ALIASES
  # =========================================================================
  - model_name: kimi-k3
    litellm_params:
      model: openai/moonshotai/kimi-k3
      api_base: https://api.tensorx.ai/v1
      api_key: "PLACEHOLDER_TENSORX_KEY"
      use_chat_completions_api: true

  - model_name: glm-5.2
    litellm_params:
      model: openai/z-ai/glm-5.2
      api_base: https://api.tensorx.ai/v1
      api_key: "PLACEHOLDER_TENSORX_KEY"
      use_chat_completions_api: true

  - model_name: kimi-k2.7-code
    litellm_params:
      model: openai/moonshotai/kimi-k2.7-code
      api_base: https://api.tensorx.ai/v1
      api_key: "PLACEHOLDER_TENSORX_KEY"
      use_chat_completions_api: true

  - model_name: glm-5.1
    litellm_params:
      model: openai/z-ai/glm-5.1
      api_base: https://api.tensorx.ai/v1
      api_key: "PLACEHOLDER_TENSORX_KEY"
      use_chat_completions_api: true

  # =========================================================================
  # DEEPINFRA NAMED SHORT ALIASES
  # =========================================================================
  - model_name: deepseek-v4-pro
    litellm_params:
      model: openai/deepseek-ai/DeepSeek-V4-Pro
      api_base: https://api.deepinfra.com/v1/openai
      api_key: "PLACEHOLDER_DEEPINFRA_KEY"
      use_chat_completions_api: true

  - model_name: qwen3-coder-480b
    litellm_params:
      model: openai/Qwen/Qwen3-Coder-480B-A35B-Instruct
      api_base: https://api.deepinfra.com/v1/openai
      api_key: "PLACEHOLDER_DEEPINFRA_KEY"
      use_chat_completions_api: true

  - model_name: qwen3.6-35b
    litellm_params:
      model: openai/Qwen/Qwen3.6-35B-A3B
      api_base: https://api.deepinfra.com/v1/openai
      api_key: "PLACEHOLDER_DEEPINFRA_KEY"
      use_chat_completions_api: true

  - model_name: glm-4.7-flash
    litellm_params:
      model: openai/zai-org/GLM-4.7-Flash
      api_base: https://api.deepinfra.com/v1/openai
      api_key: "PLACEHOLDER_DEEPINFRA_KEY"
      use_chat_completions_api: true

  - model_name: nemotron-3-ultra
    litellm_params:
      model: openai/nvidia/Nemotron-3-Ultra
      api_base: https://api.deepinfra.com/v1/openai
      api_key: "PLACEHOLDER_DEEPINFRA_KEY"
      use_chat_completions_api: true

# =========================================================================
# PROXY AUTHENTICATION GATEWAY
# =========================================================================
general_settings:
  master_key: "PLACEHOLDER_MASTER_KEY"

Крытычныя механізмы настаўлення

Для крытычных механізмав канфігурацыі неабяжна прадзефінаваць вхідныя даны, адпаведальную особу за выкананне кроку і крытэрыі завершэння пры змяне коду. Аперацыйныя працавнікі должны магчымасць перывыканне кроку з вядомай точкі контролю без неабяжнага адгадвання захаванога стану. Спрыяйце цім этапу як даговору межа вхіднымі данымі і падтверджанымі выходнымі рэзультатамі. Даўце назвы артыфактам, прадзефінаваць перакананняя успеху і адмовіцеся ад беззвучнага частковага завершэння. Калі наступны крок — гэта код або вызов інструмента, валідаваць структураваныя выходныя даны з валідацыёю схемы лепш, чым прозу без стройлогіі. Для крытычных механізмав канфігурацыі неабяжна прадзефінаваць вхідныя даны, адпаведальную особу за выкананне кроку і крытэрыі завершэння пры змяне коду. Аперацыйныя працавнікі должны магчымасць перывыканне кроку з вядомай точкі контролю без неабяжнага адгадвання захаванога стану. Зберагачыце канфігурацыю параду коду прыкладнення. Файлы сераўіса, хранальнікі секрэтных дадзеных і флагі функцый должны знаходзіцца ў аднам месцы, якое працавнікі можуць аўдытаваць без чытання всей структуры.

3. Модэлюванне апяшчэнняў і безпека на базе багатаслоявай захопнай сістэмы

Кал працуеце над раздзелам 3. Модэлюванне апяшчэнняў і безпека на базе багатаслоявай захопнай сістэмы, спачатку запісаце контракт: неабяжныя даны, сігнал успеху і тое, што выканаецца у разы ўзельнага неяксамоўства. Такі чарт дапамагае заліцвачыць змяны ў кодзе пазнейша. Адначасова задокументавайце шлях успеху і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некорэктных паведамленняў ёсць часткай продукту, а не дадатковым элементам пасляўпрацоўкі. Зберагаюце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перасылка ідэнтычных паведамленняў ёсць частым выклікам для рэсурсаў.

Шаблон уразлівасці Open Relay

Калі працуеце над модэллю уязвемасця The Open Relay, спачатку запісайце шаблон: неабяжныя вхідныя даны, сігнал успеху і тое, што выходзіць у разе частковага невыпання. Такі спіс контроля дапамагае залічыць змяны ў кодзе праз адны час. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшоў, невыпанне должна паказваць на адну адпаведальнасць, а не на заплутаны ланцюг задач. Зберагаеце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадзял у тое ж самае прамэру — частая прычына вітрачання рэсурсаў.

Стандарт двухслойнай мітгеняцыі

Калі працуеце над Стандартам двухслойнага смягчэння, спачатку запісайце угоду: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць пад частыя неудачы. Такі спіс контроля дапамагае заліцьваты змяны ў кодзе чыстымі. Спрэцьвачайце гэты этап як угоду межа данымі і перакананымі выходамі. Дайце назвы элементам, задаць правіла пераканання успеху і адмовіцеся ад тыхоўскага частковага завершэння. Зберагачыце інструкціі стабільнай сістэмы і схемы інструментаў у кэшы. Перадача ідэнтычных прамуров ёсць частым выклікам зношэння рэсурсаў. Калі працуеце над Стандартам двухслойнага смягчэння, спачатку запісайце угоду: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць пад частыя неудачы. Такі спіс контроля дапамагае заліцьваты змяны ў кодзе чыстымі. Зберагачыце настройкі за межамі коду прыемлівача. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аўдыт без неабяжлівага чытання всей структуры.

# Executable Proxy Invocation Command
LITELLM_USE_CHAT_COMPLETIONS_URL_FOR_ANTHROPIC_MESSAGES=true \
litellm --config ~/.claude/litellm_config.yaml \
        --host 127.0.0.1 \
        --port 4000
# Authentication Enforcement inside litellm_config.yaml
general_settings:
  master_key: "sk-7i9UOL9jkji09löOIhM..."

Архітэктура раздзелення секрэтаў

Архітэктура раздзелення секрэтаў працюе наякша, калі яе спрыявае можласць вімеры парадактов. Зберагучы адны «золаты» прыклад працы, адны прыклад неудачы і запісы па правілу анулювання, перш чым расшырваць масштабы. Неабходна адразу задокументаваць як шлях успеху, так і шлях вяснавання сітуацыі. Практыка падзеяў, людзкі контроль і обработка некорэктных паведамленняў ёсць часткай самага продукту, а не дадатковым элементам, які дагэчуецца пазней.

4. Інжынерыя віткоў у мульты-агентах: Оркестрактор, Скаут і дэшавы кодавальнік

  1. Інжыніерыя костоў у мульты-агентах: Orchestrator, Scout і Cheap Coder работаюць наяўней, калі іх розглядаць як вімерную структуру. Перш чым расшырваць масштаб, зафіксавайце адна ідэальная працэздатнае сіткаванне, адын случай неудачы і прыметкі па поверненню да попярэдня стану. Валіце маленькія, тэставальныя елементы замест большых скрыптов. Калі якісь крок не выходзіць, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Задаўце ліміты на колькасць токенав за раунд і за сесыю. Інструменты агентаў актыўна расшырваюць кантэкст; строгі ліміты не дазволяюць дэманстрацыям ператварыцца на неспакоючыя рахункі.

Проблема падыходжання кантэксту агентаў

Проблема расшырэння кантэксту агентам працюе наяўней, калі яе спрыявае можласць яе вімеры. Зберагчыце адну ідэальную версію транскрыпцыі, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расшырваць масштабы. Спрыяйце цім этапу як кантракту межа вхіднымі дадзеннямі і перакананымі выходнымі рэзультатамі. Даўце назвы всім элементам, задаць крытэрыя успеху і не падзеўляйцеся частым, непূরным выкананням задач. Задаць ліміт токенав на кожны раунд і на кожную сесію. Агентскія інструменты агрэсывна расшырваюць кантэкст; жорсткія ліміты не дазволяюць дэманстрацыям ператварыцца на неспакоўныя рахункі. Проблема расшырэння кантэксту агентам працюе наяўней, калі яе спрыявае можласць яе вімеры. Зберагчыце адну ідэальную версію транскрыпцыі, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расшырваць масштабы. Зберагчыце настройкі параду ад коду прыемлівача. Файлы сяродавішча, хранільнікі секрэтных дадзенняў і флагі функцый должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабходнасці чытання всей структуры.

Рашэнне з трыма агентамі

Для рашыяння The Tri-Agent неабходна прадзефініраванне вхідных дадзеных, адпавядаючага за крок адпаведнага абонента і крэтарыяў завершэння працы перад зменым коду. Аператары должны магчымае запускаваць крок з вядомай точкі контролю, не падозрываючы прыхованы статус. Неабходна адначасова документаванне шляху успеху і шляху вярнення. Перапрыбуткі, людзкія перакрыцця і апрацоўка некорэктных паведамленняў ёсць часткай продукту, а не элементамі пазнейшага доўнелення. Калі наступны крок — гэта код або вызов інструмента, лепш выкарыстоўваць структураваныя выходныя даныя з перакананням ў схеме, чым вольнай формы тэкст.

Порэванне костаў у кантэксце

Для парадоксу споравнення костаў неабходна пазначыць вхідныя даны, абавесця крока і крытэрыі завершэння пры перадзмене коду. Аперацыйныя працавнікі должны магчымае перадзначыць крок з вядомай точкі контролю, не падозрываючы схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына неудачы должна вказываць на адну абавесць, а не на заплутаны ланцюг задач. Калі наступны крок — гэта код або вызов інструмента, лепш выкарыстоўваць структураваныя выходныя даны з перакананнем схэмы, а не вольныя тэкстовыя выказванні.

Заявы пра рэжым «Custom» (custom_modes.yaml)

Для заявленнях у рэжыме «Custom» (custom_modes.yaml) неабяцо практычна апісацыя вхідных дадзеных, адпаведнага власніка крока і крэтарыяў завершэння працы перад зменыма коду. Аперацыйныя працавнікі павінны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы прыхованы стан. Спрыяйце цэму этапу як кантракту межа вхіднымі дадзенымі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, практычная перакананні на успех і адмовіцеся ад беззвучнага частковага завершэння. Калі наступны крок — гэта код або вызов інструмента, валідаванне за дапамою схемы лепша, чым вольная форма тэксту. Для заявленнях у рэжыме «Custom» (custom_modes.yaml) неабяцо практычна апісацыя вхідных дадзеных, адпаведнага власніка крока і крэтарыяў завершэння працы перад зменыма коду. Аперацыйныя працавнікі павінны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы прыхованы стан. Хавайце настройкі за межамі коду прыемленае. Файлы сераўіса, храненні секрэтных дадзеных і флагі функцыяў павінны знаходзіцца ў адном месцы, якое працавнікі можуць пераглядаць.

без чытання всіх дадзеных графа.

customModes:
  - slug: scout
    name: 🔍 Scout
    roleDefinition: >-
      You are a reconnaissance specialist. The orchestrator cannot read files,
      so you read them on its behalf and return the smallest set of facts it
      needs to write a precise implementation brief: exact paths, exact symbol
      locations, and only the excerpts that matter.
    whenToUse: >-
      Use as the first subtask whenever the orchestrator does not already know
      the exact file paths and code shape involved. Always run a scout before
      delegating implementation into a codebase area that has not been mapped.
    groups:
      - read
    customInstructions: >-
      WHY YOU EXIST: Your report is pasted into the orchestrator's context,
      which runs on the most expensive model in this system. Raw file dumps
      read there cost many times what they cost here. Your job is to convert
      a lot of cheap reading into a little expensive context.

      WHAT TO RETURN: Exact repo-relative paths with line numbers. The signature
      or declaration of every symbol that matters. Only excerpts directly relevant
      to the task. Maximum budget: ~40 lines of total quoted code across all files.
      NEVER paste full files. NEVER suggest solutions or fixes—report facts only.

  - slug: cheap-coder
    name: 💸 Cheap Coder
    roleDefinition: >-
      You are a focused implementation worker. You receive a precise,
      self-contained task brief from an orchestrator and apply the smallest
      correct code change that satisfies it. You do not design architecture,
      you do not explore the repository on your own, and you do not invent requirements.
    whenToUse: >-
      Use for delegated single-purpose implementation subtasks whose target files
      and intent are already named in the brief. Do not use for investigation
      or architectural design.
    groups:
      - read
      - edit
      - command
    customInstructions: >-
      SCOPE: Work only from the files and excerpts named in your task brief.
      Do not search or browse the repository to build your own picture; the
      orchestrator already paid for exploration and passed you the result.
      If the brief is missing a file or fact, stop and report exactly what is
      missing instead of hunting for it.

      EDITS: Apply the minimal diff that satisfies the brief. Preserve surrounding
      style, type annotations, and conventions. Run only the single verification
      command specified in the brief. If verification fails twice, stop and report.

Спецыяльныя інструкцыі Orchestrator

Калі працуеце з спецыяльнымі інструкцыямі Orchestrator, спачатку запісайце умовы працы: неабяжлівыя даныя, сігнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі спіс дапамагае заліцварыць будучыя змены ў кодзе. Дакументавайце як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкі контроль і обработка некорэктных паведамленняў ёсць часткай продукту, а не дадатковымі удосконаленнямі. Зберагаюце ў кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перасылка ідэнтычных паведамленняў ёсць частым выкліком для рэсурсаў.

You cannot read files. Before delegating any implementation into code you have
not yet mapped, delegate a `scout` subtask first and use its report to write the
implementation brief.

Delegate implementation with new_task to `cheap-coder`, never to `code`. Every
brief must be self-contained—the worker cannot see this conversation. Include:
the exact file paths from the scout report, the excerpts the scout returned, the
precise change wanted, and the single verification command to run.

Never paste a scout report into a brief wholesale; pass only the part that
subtask needs.

After an implementation subtask reports success, do not accept its self-assessment.
Delegate a separate `scout` subtask to verify: have it confirm the changed files now
contain what was asked and report the verification command's output verbatim. Decide
on the scout's facts, not the implementer's summary.

Once the scout's verification confirms the change is correct, use
ask_followup_question to ask the user for permission to commit, and separately ask
for permission to push—approval of one is never approval of the other. If the user
approves committing, delegate to `cheap-coder` with a brief naming only the exact
relative paths of the files that actually changed to stage (never `git add .` or
`git add -A`) and the exact commit message to use: a single short line, imperative
mood, no `Co-Authored-By` trailer, no "Generated with" attribution line. Only include
a push step in that brief if the user separately approved pushing.

5. Эканаміка модэляў і выкарыстанне кэша запытоў

Калі працюеце над раздзелам 5. «Эканоміка модэляў і выкарыстоўванне кэша патрактаванняў», спачатку запісайце контракт: неабходныя даны, сігнал успеху і тое, што выходзіць па частковай нявыполненасці. Такі спіс контроля дапамагае залічыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, нявыполненасць павінна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Кэшавайце стабільныя інструкцыі сістэмы і схемы інструментаў. Перадзесланне ідэнтычных прамаўляючых частак — частая прычына змарнавання рэсурсаў.

Увага да модэля: qwen3.8-2.4t-a95b (TensorX)

Калі працюеце з Model Spotlight: qwen3.8-2.4t-a95b (TensorX), спачатку запісайце умовы вікорыстоўвання: неабходныя даныя, сігнал успеху і тое, што выходзіць пад частым невыпаннем задачы. Такі спіс дапамагае заліцварыць пазнейшыя змены ў кодзе. Спрыймайце гэты этап як угоду межа данымі і перакананымі выходамі. Дайце назвы элементам, задаце крытэрыя успеху і не падпісваюцеся на тыхое частыя завершэння задачы. Зберагаюце у кешы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадача ідэнтычных прамулі ўсё часта становіцца прычыной змарнавання рэсурсаў.

Механізмы кэшавання запрошэнняў

Калі працюеце над кнігай «The Mechanics of Prompt Caching», спачатку запісацеце кантракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага неудачы. Такі спіс контроля дапамагае заліцьварыцца пасляэйшныя змены коду. Запісваце час выканання і кост токена або запыту праз сума рэзультатаў функцыі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмавай версіі ў спяльныя сераўры. Зберагачвайце стабільныя інструкцыі сістэмы і схемы інструментаў у кэшы. Перадзял падобных прамаўлянняў ёсць частым выклікам затрат.

Turn 1: [System Prompt + Tool Definitions + File Map] -> Written to Cache ($2.50 / 1M)
Turn 2: [System Prompt + Tool Definitions + File Map] -> CACHE HIT ($0.63 / 1M) -> 75% Savings
Turn 3: [System Prompt + Tool Definitions + File Map] -> CACHE HIT ($0.63 / 1M) -> 75% Savings

6. Тэлеметрыя, прыватнасць і аўдыт локальнага выканання

Калі працюеце над раздзелам 6. Тэлеметрыя, прыватнасць і аўдыт локальнай експаняціі, спачатку запісаце кантракт: неабяжлівыя даныя, сігнал працявання і тое, што выконваецца у разе частковага абярэння. Такі спіс контроля дапамагае заліцьваты чыстасцю пазнейшых змян у кодзе. Храніце настройкі парадульна коду прыемлі. Файлы сераўнавання, хранальнікі секрэтных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можуць адрабоўваць аўдыт без неабяжлівага чытання всей структуры. Кэшавайце стабільныя інструкцыі сістэмы і схемы інструментаў. Перадача ідэнтычных прамулкіў ёсць частым выкарыстоўваннем рэсурсаў.

Рэзультаты аўдыту

Калі працюеце над нарадзеннямі аўдыту, спачатку запісайце угоду: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі спіс пераконтроўвае чыстасць пазнейшых змян у кодзе. Дакументавайце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некорэктных паведамленняў ёсць часткаю продукту, а не пазнейшым дапрацоўкам. Зберагайце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадача ідэнтычных паведамленняў яе ёсць частай прычыной працоўных труднасцей.

Ужошчанне тэлеметрыі да нуля

Калі працюеце над процэсам змяркавання стабільнасці да нуля, спачатку запішыце умовы: неабяжлівыя даны, сігнал успеху і тое, што выходзіць пад частыя неудачы. Такі спіс контролю дапамагае заліцварыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест вялікіх скрыптав. Калі якісь крок не выйшае, неудача должна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Зберагаеце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадзесланне ідэнтычных даных — частая прычына зношвання рэсурсаў.

{
  "telemetry.telemetryLevel": "off"
}

7. Аднае-з-аднаго адказвальныя інструкцыі па наладзе працы

Калі працуеце над «Практычным карэткам для налагоджэння працы», спачатку запісайце угоду: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць пад частыя неудачы. Такі карэтк прымае на увагу будучыя змены коду. Спрэцьвуйце да гэтага этапу як да угоды межа данымі і перакананымі рэзультатамі. Дайце назвы элементам, задаце крытэрыі успеху і не падзволяйце на тыхамую частую рэалізацыю задачы. Зберагайце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадача тых самых прамуслов яе часты прычына выканання зайвых робатаў.

Шаг 1: Ініцыялізацыя асяроддзя

Калі вы працуеце над Крокам 1: Абыякаванне асяроддзя, спачатку запісайце умовы вікорыстання: неабяжлівыя даны, сігнал успеху і тое, што выходзіць на падзею частковага невыпання. Такі спіс контроля дапамагае заліцварваць можлівыя змены ў кодзе. Запісуйце час выканання і кост токена або запіту праза функцыональныя рэзультаты. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі праця пераходзіць з дэмавайнага рэжыма ў спяльныя асяроддзя. Зберагайце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадзесланне ідэнтычных даных — частая прычына некальканадзесятага выкарыстання рэсурсаў.

# Start LiteLLM Proxy in foreground
alias claude-proxy='LITELLM_USE_CHAT_COMPLETIONS_URL_FOR_ANTHROPIC_MESSAGES=true litellm --config ~/.claude/litellm_config.yaml --host 127.0.0.1 --port 4000'

# Start LiteLLM Proxy in background with health check
cx-proxy-up() {
    if ! ss -ltn | grep -q ":4000 "; then
        echo "Starting LiteLLM Proxy on 127.0.0.1:4000..."
        LITELLM_USE_CHAT_COMPLETIONS_URL_FOR_ANTHROPIC_MESSAGES=true \
        nohup litellm --config ~/.claude/litellm_config.yaml --host 127.0.0.1 --port 4000 > /tmp/litellm-proxy.log 2>&1 &

        # Wait for readiness endpoint
        until curl -s http://127.0.0.1:4000/health/readiness | grep -q '"status":"healthy"'; do
            sleep 0.5
        done
        echo "LiteLLM Proxy is online and healthy."
    else
        echo "LiteLLM Proxy is already running on port 4000."
    fi
}

# CLI model catalog search tool
cx-find() {
    python3 ~/.claude/cx-find.py "$@"
}
source ~/.bashrc

Крок 2: Абыякаванне проксі

Калі вы працуеце над 2-м крокам: ініцыявацыя проксі, спачатку запішыце контракт: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць на падзею частковага нявыпання. Такі спіс перакладзець пазнейшыя змены коду ў правільным напрамку. Зберагаеце настройкі паза кодам прыемлена. Файлы сераўнавання, хранільнікі секрэтных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можуць адбавіць аўдыт без неабяжлівага чытання всей структуры. Зберагаеце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадача таго ж самога прамэра ёсць частым выклікам затрат энергіі.

cx-proxy-up
ss -ltnp | grep :4000
# Expected output: LISTEN 0 128 127.0.0.1:4000 ...
curl -s http://127.0.0.1:4000/health/readiness
# Expected output: {"status":"healthy","db":"Not connected"}

3-й крок: Настройка профіляў расшырэння коду Zoo

Калі вы працуеце над крокам 3: Налаштаванне профіляў расшырэння Zoo Code, спачатку запісайце умовы працы: неабходныя даны, сігнал успеху і тое, што выканаецца у разы ўзельнага неякшага рэзультата. Такі чарточны план дапамагае заставіць будучыя змены коду быць чыстымі. Документавайце як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкі контроль і обработка некорэктных паведамленняў ёсць часткай продукту, а не чымсь, што дадаецца пазней.

Профілі

Калі працуеце з профілямі, спачатку запісайце угоду: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі спіс пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Валічыце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, нявыпанне должна паказваць на адну адпаведальнасць, а не на заплутаны ланцужок задач. Зберагаеце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадзял у тое ж самае прамаргінале — частая прычына праблем.

Крок 4: Связі межаў рэжыму і профіля

Калі працуеце над Крокам 4: Связыванне рэжыма з прафілем, спачатку запісайце контракт: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць пад частковым невяскам. Такі спіс контроля дапамагае залічыць пазнейшыя змены коду. Спрэтавайцеся да гэтага этапу як да контракта межа данымі і перакананымі выходамі. Дайце назвы элементам, задаць правіла пераканання успеху і не падзеўляйцеся частковым завершэнням без паведамлення. Зберагаюце у кэшы стабільныя інструкцыі сістэмы і схемы інструментаў. Перадача ідэнтычных прамуслов — частая прычына вітрачання рэсурсаў. Калі працуеце над Крокам 4: Связыванне рэжыма з прафілем, спачатку запісайце контракт: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць пад частковым невяскам. Такі спіс контроля дапамагае залічыць пазнейшыя змены коду. Зберагаюце настройкі праза код аплікацыі. Файлы сераўнавання, храненні секрэтных даных і флагі функцый должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабяжлівага чытання всей структуры.

🪃 Orchestrator  --> orchestrator profile
🔍 Scout         --> worker profile
💸 Cheap Coder   --> worker profile
Debug           --> orchestrator profile

8. Канал парабярання і адклекчэння проблем

  1. Канал парабярання і адклекчэння проблем дае найлепыя рэзультаты, калі яго спрыяваць як меравальную плошчу. Зберагачыце адна ідэальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расшырваць масштаб. Дакументавайце як успішны, так і вярнучыся шляхы развіцця. Перапрыбуткі, людзкі контроль і обработка некорэктных паведамленняў ёсць часткай продукту, а не дадатковымі элементамі пасля яго стварэння. Задаце ліміт токенав на кожны раунд і на кожную сесію. Інструменты агента актыўна расшырваюць кантэкст; строгі ліміты запобегаюць таму, каб дэманстрацыі ператварыліся на неспакоўныя рахункі.

Парабяранне актыўных модэляў

Перакантролеўванне актываўных модэляў даходзіць до наяўнасці лепшых рэзультатаў, калі яго спрыяваць як мерыемую паверхню. Зберажыце адна ідэальная транскрыпцію, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расшырваць масштабы. Валідзіруйце маленькія, тэставаныя елементы замест амаль неконтрольваных скрыптав. Калі які-небудзь крок не выйшаў, прычына неудачы павінна адносіцца да конкрэтной адпаведальнасці, а не да заплутанага ланцоўка дзеянняў. Задаць ліміт токенав на кожны раунд і на кожную сесію. Агентныя інструменты агрэсывна расшырваюць кантэкст; строгі ліміты не дазволяюць дэманстрацыям ператварыцца на неспакоючыя рахункі.

curl -si http://localhost:4000/v1/messages \
  -H "Authorization: Bearer YOUR_MASTER_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"kimi-k3","max_tokens":16,"messages":[{"role":"user","content":"hi"}]}' \
  | grep -i x-litellm

Звычайныя коды адказоў на адзінкі і способы ўсунення

«Звычныя коды адзінакоў і способы ўсунення» працуюць наякшэй, калі іх расследваць як мерыябельную сферу. Запісаць адну ідэальную транскрыпцыю, адзіны прыклад неудачы і прыметкі па поверненню да пачатковага стану прычаму розшырэння масштаба. Расследваць гэты этап як кантракт межа вхіднымі дадзеннямі і перакананымі выходнымі рэзультатамі. Даць назвы артыфактам, задаць крытэрыя успеху і не падзеўляцца частым, непавным выкаанням задач. Задаць ліміт токенав на кожны раунд і на кожную сесію. Інструменты-агенты агрэсывна расшырваюць кантэкст; жорсткія ліміты не дазволяюць дэмам ператварыцца на неспакоўлівыя рахункі.

Адзінак: HTTP 400 Не падключана база дадзеных. / HTTP 500 Внутранія памяткай сервера

Адзінак: HTTP 403 Ключ не дазволены да доступу да модэлю

Адзінак: Безпечная завершэння процеса пад час перзапуску проксі

OLD_PID=$(ss -ltnp | grep ":4000" | grep -oE "pid=[0-9]+" | cut -d= -f2 | head -1)
if [ -n "$OLD_PID" ]; then
    kill "$OLD_PID"
    sleep 2
    ss -ltn | grep -q ":4000" || echo "Port 4000 cleared successfully."
fi

Вывык

Чэк-ліст для эксплуатацыі