Главная / Статьи / Практические советы: ваш агент может самостоятельно настроить свой промпт. Вот как это сделать.

Практические советы: ваш агент может самостоятельно настроить свой промпт. Вот как это сделать.

Пошаговое руководство по практическим советам: ваш агент может самостоятельно настраивать свои промпты. Вот как это сделать: контракты, проверки и слоты для вставки кода для команд, использующих эту схему.

4018 слов

В этом руководстве показано, как пройти путь от сырья до рабочей системы для функции «Ваш агент может самостоятельно исправлять свои запросы». Вот как это сделать. Основное внимание уделяется практическим шагам, четкой проверке и коду, который можно просто добавить в репозиторий без необходимости угадывать намерения автора. На этапе обзора необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не пытаясь угадать скрытое состояние. Рядом с функциональными результатами следует записывать время выполнения и стоимость токенов или запросов. Отображение затрат с самого начала помогает избежать неожиданных счетов при переходе от демо-среды к общедоступным средам.

Научите вашего агента учиться на собственных ошибках и создавать более совершенные версии себя

При работе над руководством «Научите вашего агента ставить этапы» сначала запишите условия контракта: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код. Храните в кэше стабильные инструкции системы и схемы инструментов. Пересылка одинаковых заголовков — частая причина избыточных расходов.

Агент

При работе над этапом агента сначала запишите условия контракта: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой список поможет сохранять честность при последующих изменениях кода. Документируйте одновременно успешный и восстановительный сценарии работы. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не элементами последующей доработки. Храните в кэше стабильные инструкции системы и схемы инструментов. Пересылка одинаковых заголовков — распространенная причина избыточных ресурсов.

You are a helpful company information assistant.
You have the following knowledge about company policies:
- PTO: 20 days per year, accrued monthly. Up to 5 unused days roll over.
- Sick leave: 10 days per year, does not roll over.
- Remote work: Up to 3 days per week with manager approval.
- Benefits: The company offers competitive benefits.
Answer questions using only the information above. If a question is about
a topic not listed above, tell the user you do not have that information
and suggest they contact HR.

Основные компоненты

На этапе создания базовых компонентов сначала запишите условия работы: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Если какой-то шаг не сработает, причина должна быть связана с конкретной функцией, а не с запутанной цепочкой операций. Храните в кэше стабильные инструкции системы и схемы инструментов. Повторная отправка одинаковых данных — распространенная причина избыточных затрат. На этапе создания базовых компонентов сначала запишите условия работы: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Регистрируйте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Отслеживание затрат на раннем этапе предотвращает неожиданные расходы при переходе от демо-версии к общедоступным средам.

Цикл улучшений

Этап цикла улучшений работает наилучшим образом, когда его рассматривают как измеримую структуру. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объема работ. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код. Установите лимиты на количество токенов за раунд и за сессию. Инструменты типа агентов активно расширяют контекст; жесткие ограничения предотвращают появление неожиданных счетов.

git clone https://github.com/GoogleCloudPlatform/BigQuery-Agent-Analytics-SDK.git
cd examples/agent_improvement_cycle

export PROJECT_ID=<your-project-id>

./setup.sh
./run_cycle.sh               # single cycle, 10 questions, ~3-4 min
./run_cycle.sh --auto --cycles 3 --traffic-count 100

Шаг за шагом

Пошаговая модель работает наилучшим образом, если рассматривать её как измеримую структуру. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объёма работ. Документируйте одновременно успешный и восстановительный сценарии. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не последующими доработками. Установите лимиты на количество токенов за один ход и за сессию. Инструменты агентов активно расширяют объём контекста; жесткие ограничения предотвращают появление неожиданных счетов при демонстрациях.

Предполётная проверка: запустите идеальный набор тестов

Процесс предполетных тестов на этапе «золотой вариант» работает наилучшим образом, когда его рассматривают как измеримую поверхность. Соберите один идеальный протокол, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Когда какой-то шаг терпит неудачу, причина сбоя должна указывать на конкретный элемент ответственности, а не на запутанную цепочку операций. Установите лимиты на количество токенов за один ход и за сессию. Инструменты агентов активно расширяют объем контекста; жесткие ограничения предотвращают появление неожиданных счетов. Процесс предполетных тестов на этапе «золотой вариант» работает наилучшим образом, когда его рассматривают как измеримую поверхность. Соберите один идеальный протокол, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Записывайте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Отслеживание затрат на раннем этапе предотвращает неожиданные счета при переходе от демо-версии к общедоступным средам.

{
  "eval_cases": [
    {"id": "pto_balance",     "question": "How many PTO days do I get per year?",
     "category": "pto",        "expected_tool": "lookup_company_policy"},
    {"id": "sick_leave_days", "question": "How many sick days do I have?",
     "category": "sick_leave", "expected_tool": "lookup_company_policy"},
    {"id": "remote_work_days","question": "How many days can I work from home?",
     "category": "remote_work","expected_tool": "lookup_company_policy"}
  ]
}
▶ PRE-FLIGHT: Verifying golden eval set passes with current prompt

PASS: pto_balance
     Answer: You receive 20 PTO days per year, accrued monthly.
             Up to 5 unused days can roll over.
     Tools called: lookup_company_policy
PASS: sick_leave_days
     Answer: You have 10 sick days per year. They do not roll over.
     Tools called: lookup_company_policy
PASS: remote_work_days
     Answer: You can work from home up to 3 days per week
             with manager approval.
     Tools called: lookup_company_policy
All cases pass.

Шаги 1–2: Генерация синтетического трафика и его обработка через агента

На этапе генерации (шаги 1–2) необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг, исходя из известной точки контроля, без необходимости угадывать скрытое состояние. Конфигурацию следует хранить отдельно от кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код. При следующем шаге, представляющем собой выполнение кода или вызов инструмента, предпочтительнее использовать структурированные выходные данные с проверкой соответствия шаблону, а не свободный текст.

▶ STEP 1/5: GENERATE SYNTHETIC TRAFFIC
Goal:    Produce diverse user questions that differ from the golden eval set
  Method:  Gemini generates 100 questions

  ...

  Sample questions:
    - How many PTO days do I earn per month?
    - What's the maximum number of PTO days I can roll over into the next year?
    - I want to take a full week off for vacation. What is the advance notice required?

  ...

▶ STEP 2/5: RUN TRAFFIC THROUGH AGENT
Goal:    Send questions to the agent, log every session to BigQuery
...
  [62/100] traffic_expenses_window_to_submit: What is the timeframe for submitting expense reports?
           -> Business expenses must be submitted within 30 days.
  [64/100] traffic_benefits_health_company_contribution: What percentage of my health insurance premium does the company cover?
           -> The company covers 80% of health insurance premiums for employees.
  [65/100] traffic_benefits_dental_coverage: What does the dental insurance plan cover?
           -> I do not have specific information about what the dental insurance plan covers. The company offers competitive benefits, but details about specific plans like dental insurance are not something I have access to. Please contact HR for more information on dental insurance coverage.
  [67/100] traffic_benefits_401k_match: What is the company's 401k match policy?
           -> I do not have information about the company's 401k match policy. Please contact HR for details on this topic.
  [68/100] traffic_benefits_401k_vesting: How long do I need to be employed to be fully vested in the 401k match?
           -> I do not have information about 401k vesting. Please contact HR for details regarding the 401k match and vesting schedule.
  [69/100] traffic_benefits_parental_leave_primary: What is the parental leave duration for a primary caregiver?
           -> I do not have information about parental leave. Please contact HR for details on this policy.
  [66/100] traffic_benefits_vision_frames: How often can I get new frames under the vision plan?
           -> I do not have information about the vision plan or how often you can get new frames. Please contact HR for details about the vision plan.
  [60/100] traffic_expenses_receipt_required_over_x: Expenses over what amount require a receipt?
           -> I do not have information about the company's expense policy. Please contact HR for details.
  [89/100] traffic_holidays_next_company_holiday: When is the next company holiday?
           -> I do not have information about company holidays. Please contact HR for details.
...
Answer questions using only the information above. If a question is about
a topic not listed above, tell the user you do not have that information
and suggest they contact HR.

Шаг 3: Оценка качества

На этапе оценки качества, соответствующем шагу 3, необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг, исходя из известной точки контроля, без необходимости угадывать скрытое состояние. Необходимо документировать как успешный, так и аварийный сценарии работы. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не этапом последующей доработки. При следующем шаге, представляющем собой код или вызов инструмента, следует отдавать предпочтение структурированным выводам с проверкой по схеме перед свободным текстовым описанием.

QUALITY SUMMARY
  Total sessions evaluated : 100
  Meaningful               : 64
  Partial                  : 1
  Unhelpful                : 35
  Unhelpful rate           : 35.0%

[response_usefulness]
    HELPFUL         :   64  ( 64.0%) ################################
    NOT HELPFUL     :   35  ( 35.0%) #################
    PARTIAL         :    1  (  1.0%)
  [task_grounding]
    GROUNDED        :   90  ( 90.0%) #############################################
    NOT GROUNDED    :    9  (  9.0%) ####
    NO TOOL NEEDED  :    1  (  1.0%)
UNHELPFUL Sessions (showing 10 of 35)

Session:     52282245-d2a4-4998-9ad9-4373612019e8  → company_info_agent
  Question:    For what amount do I need to submit a receipt for expenses?
  Response:    "I do not have information about the specific amount for which you need to submit a receipt for expenses. Please contact HR for details on the expense policy."
  Usefulness:    ❌ NOT HELPFUL
  Reason:        The agent explicitly states it does not have the requested information and directs the user elsewhere, thus not providing a substantive answer to the user's question.
  Grounding:     ❌ NOT GROUNDED
  Reason:        The agent's response indicates a lack of specific information and directs the user to HR, suggesting it did not retrieve specific data from a tool to answer the question. The response is a generic LLM statement rather than tool-derived data.

Session:     3821b327-43d8-47c6-b922-dd8d7988c366  → company_info_agent
  Question:    After how many days of illness is a doctor's note mandatory?
  Response:    "I do not have information about when a doctor's note is mandatory for illness. Please contact HR for this information."
  Usefulness:    ❌ NOT HELPFUL
  Reason:        The agent explicitly states it does not have the requested information and directs the user elsewhere, failing to answer the user's question substantively.
  Grounding:     ❌ NOT GROUNDED
  Reason:        The agent's response indicates a lack of information, meaning it was not grounded in actual data retrieved from its tools. The question required tool usage, but no relevant data was found or presented.
...
Metric              V1              Budget        Status
-----------         -----------     -----------   ------
Avg latency         1482.3 ms       10000 ms      PASS
Total tokens        811.4 tokens    50000 tokens  PASS
Turn count          1 turns         10 turns      PASS
Tool error rate     0.0 rate        0.1 rate      PASS

Шаг 4: Улучшение промпта

На этапе 4 «Улучшение» необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Лучше использовать небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое шага причина должна быть связана с конкретной функцией, а не с запутанной структурой обработки данных. При следующем шаге, представляющем собой код или вызов инструмента, лучше использовать структурированные результаты с проверкой соответствия шаблону вместо свободного текста. На этапе 4 «Улучшение» необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рядом с функциональными результатами следует записывать время выполнения и стоимость токенов или запросов. Отображение затрат на раннем этапе предотвращает неожиданные расходы при переходе с демо-среды в общедоступные среды.

Extracted 12 failed cases, added 12 new to golden set (15 total).
Q: As a primary caregiver, how many weeks of parental leave am I eligible for?
  Agent:   I do not have information about parental leave. Contact HR.
  Teacher: As a primary caregiver, you are eligible for 16 weeks of paid parental leave.
Q: What percentage of my contributions does the company match for 401k?
  Agent:   I do not have information about 401k matching. Contact HR.
  Teacher: The company matches 4% of your contributions to the 401k. Fully vested after 1 year.
Q: When is the next company holiday?
  Agent:   I do not have information about company holidays. Contact HR.
  Teacher: The next company holiday is May 25, 2026.
Q: What are the core hours I need to be available if I'm working remotely?
  Agent:   I do not have information about core hours. Contact HR.
  Teacher: Core collaboration hours for remote employees are 10am-3pm in your local timezone.
Calling Vertex AI Prompt Optimizer with 12 ground truth examples...
(The optimizer is a server-side job -- typically 2-4 minutes.)
... still optimizing (15s elapsed)
... still optimizing (30s elapsed)
... still optimizing (45s elapsed)
Optimizer returned a candidate prompt.
PASS: pto_balance
       Question: How many PTO days do I get per year?
       Answer: You get 20 PTO days per year, which are accrued monthly...
       Tools called: lookup_company_policy | Expected: lookup_company_policy
  PASS: extracted_as_a_primary_caregiver_how_many_weeks_of
       Question: As a primary caregiver, how many weeks of parental leave am I eligible for?
       Answer: As a primary caregiver, you are eligible for 16 weeks of paid parental leave.
       Tools called: lookup_company_policy | Expected: lookup_company_policy
  PASS: extracted_what_percentage_of_my_contributions_does
       Question: What percentage of my contributions does the company match for 401k?
       Answer: The company matches 4% of your 401(k) contributions, and you are fully vested after 1 year of employment.
       Tools called: lookup_company_policy | Expected: lookup_company_policy
  PASS: extracted_what_does_the_dental_insurance_plan_cove
       Question: What does the dental insurance plan cover?
       Answer: The dental insurance plan covers full preventive care and 80% for major procedures.
       Tools called: lookup_company_policy | Expected: lookup_company_policy
  PASS: extracted_when_is_the_next_company_holiday
       Question: When is the next company holiday?
       Answer: The next company holiday is Memorial Day on May 25, 2026.
       Tools called: lookup_company_policy, get_current_date | Expected: lookup_company_policy
  ...
  15/15 passed

Prompt:      V1 -> V2
  Golden set:  3 -> 15 cases

Шаг 5: Оценка улучшений

При работе над этапом Шаг 5 «Оценка улучшений» сначала запишите условия контракта: необходимые входные данные, сигнал успеха и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код. Храните в кэше стабильные инструкции системы и схемы инструментов. Пересылка одинаковых заголовков является распространенной причиной избыточных затрат.

[44/100] traffic_expenses_004: I booked a flight for $600 for a business trip. Do I need pre-approval?
           -> Travel expenses over $500 require pre-approval from your manager. Since your flight is $600, you will need pre-approval.
  [80/100] traffic_benefits_020: If I leave the company after 6 months, will I get to keep the 401k match?
           -> No, the company 401(k) match is fully vested after 1 year of employment. If you leave after 6 months, you will not get to keep the 401k match.
  [84/100] traffic_holidays_004: Is the day after Thanksgiving a paid holiday?
           -> Yes, the day after Thanksgiving is a paid holiday.
  [19/100] traffic_sick_004: I was sick for two days; do I need to provide any documentation?
           -> Employees receive 10 sick days per year. A doctor's note is required for absences longer than 3 consecutive days. Since you were sick for two days, you do not need to provide any documentation.
QUALITY SUMMARY
  Total sessions evaluated : 100
  Meaningful               : 99
  Partial                  : 1
  Unhelpful                : 0
  Unhelpful rate           : 0.0%

[response_usefulness]
    HELPFUL         :   99  ( 99.0%) #################################################
    PARTIAL         :    1  (  1.0%)
  [task_grounding]
    GROUNDED        :   99  (100.0%) ##################################################
Session:     4e0ea11d-d4dc-4a59-b337-30415a595c90  → company_info_agent
  Question:    If I'm sick for more than 3 days, what kind of doctor's note is required?
  Response:    "If you are sick for more than 3 consecutive days, a doctor's note is required."
  Usefulness:    PARTIAL
  Reason:        The response confirms a doctor's note is required but does not specify
                 the 'kind' of note, which was part of the user's question.
  Grounding:     GROUNDED
  Reason:        The agent's response directly reflects the information retrieved
                 from the 'lookup_company_policy' tool.
CYCLE 1 RESULTS
  Before (V1):  64.0% meaningful  (64/100 sessions)
  After  (V2):  99.0% meaningful  (98/99 sessions)
Quality 99.0% meets threshold (95%) -- stopping auto-continue.

DONE  (total wall time: 12m 39s)
  Prompt version:   V2
  Golden eval set:  15 cases
Metric              V1              V2              Budget        Status
-----------         -----------     -----------     -----------   ------
Avg latency    (v)  1482.3 ms       1088.4 ms       10000 ms      PASS
Total tokens   (^)  811.4 tokens    1339.7 tokens   50000 tokens  PASS
Turn count     (=)  1 turns         1 turns         10 turns      PASS
Tool error     (=)  0.0 rate        0.0 rate        0.1 rate      PASS

Запрос V2

При работе над этапом формирования запроса V2 сначала запишите условия работы: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой список поможет избежать ошибок при последующих изменениях кода. Одновременно задокументируйте успешный и восстановительный сценарии работы. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не элементами последующей доработки. Сохраняйте в кэше стабильные инструкции системы и схемы инструментов — повторная отправка одинакового входного текста часто приводит к избыточным ресурсозатратам.

You are a helpful company information assistant. Your primary function
is to answer employee questions about company policies by using the
available tools.

Core Directives:
1. Tool-First Approach: For EVERY user question, your first and only
   action should be to use one of the provided tools to find the answer.
2. No Answering from Memory: Do not use any general knowledge. The
   tools are the only source of truth.
3. Mandatory Tool Use: You MUST call the appropriate tool to answer the
   question. Do not state that you don't have the information or direct
   the user to HR for topics that the tools can handle.
4. Topic Inference: Carefully analyze the user's prompt to determine
   the correct topic parameter for the lookup_company_policy tool.
   The user's language may not be an exact match for the available
   topics (e.g., 'parental leave' or '401k' should be mapped to
   the 'benefits' topic).
AVAILABLE TOOLS:
- lookup_company_policy(topic: str)
  - Looks up a company policy by topic.
  - topic: The policy topic to look up. Must be one of: pto, sick_leave,
    remote_work, expenses, benefits, holidays.
- get_current_date()
  - Gets the current date.
Your goal is to successfully call the correct tool with the correct
parameters based on the user's question.

Чему учит этот цикл по разработке запросов

При работе над этапом «Чему учит цикл» сначала запишите условия взаимодействия: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Если какой-то шаг не сработает, причина должна быть связана с конкретной функцией, а не с запутанной цепочкой операций. Храните в кэше стабильные инструкции системы и схемы инструментов. Повторная отправка одинаковых данных — распространённая причина избыточных затрат. При работе над этапом «Чему учит цикл» сначала запишите условия взаимодействия: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Рядом с функциональными результатами записывайте время выполнения и стоимость токенов или запросов. Отслеживание затрат с самого начала предотвращает неожиданные расходы при переходе с демо-среды в общедоступные среды.

Запуск самостоятельно

Этап самостоятельной реализации работает наилучшим образом, если рассматривать его как измеримую среду. Зафиксируйте один успешный пример, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код. Установите лимиты на количество токенов за раунд и сессию. Инструменты типа агентов активно расширяют контекст; жесткие ограничения предотвращают появление неожиданных счетов при демонстрациях.

git clone https://github.com/GoogleCloudPlatform/BigQuery-Agent-Analytics-SDK.git
cd examples/agent_improvement_cycle

export PROJECT_ID=<your-project-id>

./setup.sh

./run_cycle.sh
./reset.sh

Выводы

Этап анализа результатов работает наилучшим образом, когда его рассматривают как измеримую основу. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию до расширения объема работ.

Чек-лист операционной деятельности

Этап чек-листа операционной деятельности работает наилучшим образом, когда его рассматривают как измеримую основу. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию до расширения объема работ.

Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия соответствующим документам, определите критерии успеха и не соглашайтесь на молчаливое частичное выполнение задач.

Лимиты бюджета на токены за ход и за сессию. Инструменты агентов активно расширяют контекст; строгие ограничения предотвращают превращение демонстраций в неожиданные счета.

Внедрите человеческое утверждение для операций, связанных с тратой денег или изменением производственных данных. Подключение на этапе компиляции не гарантирует полноты функционала для бизнеса.

Напишите краткий руководство: как обновлять ключи, как опустошать очередь, как откатывать последнюю загрузку данных.

Документируйте как успешный, так и восстановительный пути работы. Повторные попытки, человеческое утверждение и обработка некорректных сообщений являются частью продукта, а не последующими улучшениями.

Перед внедрением всей стек-технологии заморозьте версии, сохраните эталонный отчет для критически важных процессов и убедитесь в наличии шагов отката. В совместных средах необходимы лимиты на частоту запросов, проверки принадлежности и четко определенный ответственный за обновление секретов. Лучше надежность без изысков, чем красивые одноразовые демонстрации.

Примечание к пакету f7bfa970ccb5: не включать ключи поставщиков в репозиторий, установить лимит токенов на сессию и хранить транскрипции рядом с фиксами для оценки, чтобы последующие замены моделей оставались сопоставимыми.

Для этапа 0 по усилению безопасности необходимо определить входные данные, ответственного за шаг и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Необходимо задокументировать как успешный, так и восстановительный пути выполнения. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не последующими улучшениями.

Деталь усиления безопасности 0/963: измерять время выполнения, класс ошибок и расход токенов для этого примечания, затем решать о сохранении изменений на основе фиксированного набора критериев, а не на основе устных замечаний.

При работе над первым этапом записки по укреплению безопасности сначала запишите контракт: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой чек-лист поможет сохранять честность при последующих изменениях кода. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия соответствующим элементам, определите критерии успешности и не допускайте молчаливого частичного выполнения задач.

Подробность укрепления безопасности 1/963: измерьте время выполнения, класс ошибки и расход токенов для данной записки, затем решите, следует ли сохранять изменение на основе фиксированного набора критериев, а не на основе единичных примеров.

Второй этап записки по укреплению безопасности будет работать наилучшим образом, если его рассматривать как измеримую поверхность. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, которое операторы могут проверять, не читая весь кодовый граф.

Подробности усиления безопасности 2/963: измерьте время выполнения, класс ошибки и количество потраченных токенов для этой записи, затем решите, следует ли сохранить изменения на основе фиксированного набора вопросов, а не на основе единичных примеров.

На третьем этапе работы над усилением безопасности определите входные данные, ответственного за шаг и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Предпочтение следует отдавать небольшим, проверяемым единицам кода вместо обширных скриптов. При сбое шага причина сбоя должна указывать на конкретную ответственность, а не на запутанную структуру обработки данных.

Подробности усиления безопасности 3/963: измерьте время выполнения, класс ошибки и количество потраченных токенов для этой записи, затем решите, следует ли сохранить изменения на основе фиксированного набора вопросов, а не на основе единичных примеров.