Практичні нотатки: як отримати максимум користі від Gemini Managed Agents у поєднанні з Google Apps.
Покрокове керівництво з практичних нотаток: як ефективно використовувати Gemini Managed Agents з Google Apps: контракти, перевірки та слоти для коду для команд, які застосовують цю модель.
Наступні примітки описують практичний підхід до роботи з темою «Використання керованих агентів Gemini разом із Google Apps Script». Основна увага приділяється контрактам, перевіркам та місцям для вставки коду, а не мотиваційним аспектам.
Анотація
Під час роботи над анотацією спочатку запишіть контракт: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допоможе зберегти чесність пізніших змін у коді. Віддавайте перевагу невеликим, тестованим одиницям коду замість об’ємних скриптів. Якщо якийсь крок зазнає невдачі, причина має вказувати на конкретну відповідальність, а не на складну ієрархію операцій. Записуйте ID запиту, ID моделі та час виконання кожного виклику. Без цих даних періодичні помилки постачальника можуть здаватися багами програми.
Вступ
Під час виконання етапу вступу спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність під час подальших змін у коді. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте безповідомного часткового виконання. Записуйте ідентифікатор запиту, ідентифікатор моделі та час відгуку після кожного виклику. Без цих записів періодичні помилки постачальника можуть здаватися багами програми.
Архітектурний парадигма: чому пряме стрімування від хмари до хмари?
Під час роботи над етапом «Чому прямий підхід» в архітектурному парадигмі спочатку запишіть умови виконання: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Запишіть час виконання та витрати на токени або запити поруч із функціональними результатами. Чітке бачення витрат заздалегідь запобігає несподіваним рахункам, коли процес переходить від демо-версії до спільних середовищ. Фіксуйте ідентифікатор запиту, ідентифікатор моделі та час затримки при кожному виклику. Без цих записів періодичні помилки постачальника виглядають як баги програмного забезпечення.
Значне економія токенів вхідних даних завдяки двонаправленому стрімінгу
Під час роботи над етапом значного скорочення кількості вхідних даних спочатку запишіть контракт: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Зберігайте конфігурацію окремо від коду додатку. Файли середовища, сховища секретів та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь код. Записуйте ідентифікатор запиту, ідентифікатор моделі та час відгуку після кожного виклику. Без цих записів періодичні помилки постачальника виглядають як баги додатку.
Зниження витрат шляхом використання спільних постійних сандбоксів
Під час роботи над зниженням витрат процесу етапами спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність у подальших змінах коду. Документуйте як шлях успішного виконання, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Зафіксуйте ідентифікатор запиту, ідентифікатор моделі та час затримки при кожному виклику. Без цих даних періодичні помилки постачальника виглядають як баги програми. Під час роботи над зниженням витрат процесу етапами спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність у подальших змінах коду. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Назвіть всі елементи, визначте критерії успіху та не допускайте безповідомного часткового виконання.
Робочий процес
Етап робочого процесу працює найкраще, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Записуйте час виконання та витрати на токени чи запити поруч із функціональними результатами. Візуальний контроль витрат заздалегідь запобігає несподіваним рахункам під час переходу від демо-версії до спільних середовищ. Фіксуйте інтерпретатор та файли блокування залежностей перед тим, як пояснювати принцип роботи циклів. Розбіжності між ноутбуком та системою CI є найпоширенішою причиною прихованих збоїв у демонстраціях API.
Репозиторій
Етап Repository працює найкраще, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь код. Забезпечте фіксацію версії інтерпретатора та файлу блокування залежностей перед початком використання циклів. Розбіжності між ноутбуком та системою CI є найпоширенішою причиною прихованих збоїв у демонстраціях API.
Використання
Етап використання працює найкраще, якщо його розглядати як вимірювану поверхню. Запишіть один ідеальний приклад роботи, один випадок збою та примітки щодо скасування змін перед розширенням обсягу. Документуйте як успішний, так і відновлювальний сценарії роботи разом. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Забезпечте фіксацію версії інтерпретатора та файлу блокування залежностей перед початком використання циклів. Розбіжності між ноутбуком та середовищем CI є найпоширенішою причиною прихованих збоїв під час демонстрацій API.
1. Отримати ключ Gemini API
Етап 1 «Отримання API Gemini» найкраще функціонує, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний зразок роботи, один випадок збою та примітку щодо скасування змін перед розширенням обсягу завдань. Віддавайте перевагу невеликим, тестованим одиницям коду перед складними скриптами. Коли якась крок виконується неправильно, причина збою має вказувати на конкретну відповідальність, а не на заплутану послідовність дій. Забезпечте фіксацію версії інтерпретатора та файлу з параметрами залежностей перед тим, як почнете використовувати цикли. Різниця між версіями на ноутбуку та в середовищі CI є найпоширенішою причиною прихованих збоїв під час демонстрацій API.
2. Створення проекту Google Apps Script
Етап 2 «Створення Google Apps» найкраще функціонує, якщо його розглядати як вимірювану поверхню. Зафіксуйте один ідеальний приклад роботи, один випадок невдачі та примітки щодо скасування змін перед розширенням обсягу роботи. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте мовчазного часткового виконання завдань. Закріпіть інтерпретатор та файли з параметрами залежностей перед початком роботи з циклами. Відхилення між ноутбуком та системою CI є найпоширенішою причиною мовчазних збоїв під час демонстрацій API.
3. Розгортання клієнтських скриптів та налаштування їхніх властивостей
Етап 3 «Розгортання клієнтських скриптів» працює найкраще, якщо його розглядати як вимірювану площину. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Записуйте час виконання та витрати на токени чи запити поруч із функціональними результатами. Візуальний контроль витрат заздалегідь запобігає несподіваним рахункам під час переходу від демо-версії до спільних середовищ. Фіксуйте версію інтерпретатора та файли блокування залежностей перед тим, як пояснювати принцип роботи циклів. Розбіжності між ноутбуком та системою CI є найпоширенішою причиною прихованих збоїв у демонстраціях API.
4. Необхідні діапазони авторизації
Етап 4 «Необхідні діапазони авторизації» працює найкраще, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням діапазону. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь код. Забезпечте фіксацію версії інтерпретатора та файлу блокування залежностей перед тим, як пояснювати логіку циклу. Розбіжності між ноутбуком та системою CI є найпоширенішою причиною прихованих збоїв у демонстраціях API.
Тестування в хмарі (Google Apps Script)
Етап тестування в Google Cloud працює найкраще, коли його розглядають як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Документуйте як успішний, так і відновлювальний сценарії. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Забезпечте фіксацію версії інтерпретатора та файлу блокування залежностей перед початком виконання циклів. Розбіжності між ноутбуком та системою CI є найпоширенішою причиною прихованих збоїв під час демонстрацій API. Етап тестування в Google Cloud працює найкраще, коли його розглядають як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте прихованого часткового виконання завдань.
1. Налаштування єдиної Linux Sandbox
Для етапу 1 «Підготовка єдиного середовища» необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Візуалізація витрат заздалегідь запобігає несподіваним рахункам під час переходу з демо-середовища у спільні середовища. Відокремте процес створення клієнта від циклу обробки повідомлень, щоб можна було замінювати постачальників без переписування машини станів розмови.
2. Тест 1: Налаштування User-Agent та перевірка POSIX Socket (runTest1_UserAgentComparison)
Для етапу 2 Test 1 User-Agent необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не здогадуючись про прихований стан. Конфігурацію слід тримати окремо від коду додатку. Файли середовища, сховища секретів та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь код. Необхідно розділити процес створення клієнта від циклу обробки повідомлень, щоб можна було замінювати постачальників без переписування машини станів розмови.
3. Тест 2: Розгортання ggsrun та перевірка прямого доступу (runTest2_GgsrunDirectDeployment)
Для етапу 3 Test 2 ggsrun необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Необхідно документувати як шлях успішного виконання, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Необхідно розділити процес створення клієнта від циклу обробки повідомлень, щоб можна було замінювати постачальників без переписування машини станів розмови. Для етапу 3 Test 2 ggsrun необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте безповідомного часткового завершення роботи.
4. Тест 3: Збір даних за допомогою Playwright Headless для безпосередньої загрузки на диск (runTest3_PlaywrightDirectUpload)
Під час виконання етапу Тест 3 Playwright спочатку запишіть умови використання: необхідні дані вхіду, сигнал про успіх та наслідки часткової невдачі. Такий перелік допоможе зберегти чесність подальших змін у коді. Записуйте час виконання та витрати на токени або запити поруч із результатами функціональності. Відображення витрат заздалегідь запобігає несподіваним рахункам, коли середовище переходить від демо-версії до спільного. У кожному запиті фіксуйте ідентифікатор запиту, ідентифікатор моделі та час затримки. Без цих даних періодичні помилки постачальника можуть здаватися багами програми.
5. Тест 4: Синтез та кодування аудіо за допомогою FFmpeg для безпосередньої загрузки на диск (runTest4_FFmpegAudioDirectUpload)
Під час роботи над 5-м етапом тестування FFmpeg спочатку запишіть умови використання: необхідні вхідні дані, сигнал про успішне виконання та наслідки часткової невдачі. Такий перелік допоможе зберегти чесність подальших змін у коді. Зберігайте конфігурацію окремо від коду додатку. Файли середовища, бази зберігання секретних даних та флаги функцій мають знаходитися в одному місці, щоб оператори могли їх перевіряти, не читаючи весь код. Записуйте ідентифікатор запиту, ідентифікатор моделі та час затримки після кожного виклику. Без цих даних періодичні помилки постачальника можуть здаватися багами додатку.
6. Тест 5: Вилучення AST у TypeScript та пакування за допомогою esbuild для безпосередньої загрузки (runTest5_TypeScriptASTDirectUpload)
Під час роботи над етапом 6 Test 5 TypeScript спочатку запишіть контракт: необхідні вхідні дані, сигнал про успіх та те, що відбувається при частковій невдачі. Цей перелік допомагає зберігати чесність у подальших змінах коду. Одночасно задокументуйте шлях успішного виконання та шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Зафіксуйте ідентифікатор запиту, ідентифікатор моделі та час затримки при кожному виклику. Без цих даних періодичні помилки постачальника виглядають як баги програми. Під час роботи над етапом 6 Test 5 TypeScript спочатку запишіть контракт: необхідні вхідні дані, сигнал про успіх та те, що відбувається при частковій невдачі. Цей перелік допомагає зберігати чесність у подальших змінах коду. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Дайте назви елементам, визначте критерії успіху та не допускайте беззвучного часткового завершення роботи.
7. Тест 6: Порівняння продуктивності: пряме завантаження за допомогою ggsrun проти формату Base64 через GAS (runTest6_DriveUploadPerformanceComparison)
Етап тестування продуктивності 7 Test 6 найкраще функціонує, якщо його розглядати як показник для вимірювання. Збережіть один ідеальний результат, один випадок збою та примітки щодо скасування змін перед розширенням обсягу тестування. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Відображення витрат заздалегідь запобігає несподіваним рахункам під час переходу від демо-середовища до спільних середовищ. Забезпечте фіксацію версії інтерпретатора та файлу з параметрами залежностей перед поясненням роботи циклу. Розбіжності між ноутбуком та середовищем CI є найпоширенішою причиною прихованих збоїв у демонстраціях API.
================================================================================
PERFORMANCE BENCHMARK REPORT: 10,000 BYTES FILE TRANSFER TO GOOGLE DRIVE
================================================================================
| Metric | Approach A: Direct ggsrun Upload | Approach B: Base64 via Gemini API -> GAS |
| :--------------------------- | :------------------------------- | :--------------------------------------- |
| Transfer Method | Direct Sandbox-to-Drive (Go CLI) | Base64 Stream -> GAS -> Drive |
| Drive File Name | benchmark_10kb_ggsrun.bin | benchmark_10kb_gas.bin |
| Verified File Size | 10,000 bytes (9.77 KB) | 10,000 bytes (9.77 KB) |
| API Turns Required | 1 Turn (Direct Offload) | 1 Turn (Base64 Retrieval) |
| Local GAS Processing Time | 0.00 s (Zero CPU overhead) | 1.23 s (Base64 Decode & Blob Creation) |
| Total End-to-End Duration | 16.20 s | 32.13 s |
| Effective Throughput | 0.60 KB/s | 0.30 KB/s |
| Performance Multiplier | 1.98x FASTER | Baseline (Higher Latency & Token Usage) |
================================================================================
Тестування на локальних робочих станціях (Node.js Stream Runner)
Етап тестування на локальних робочих станціях працює найкраще, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис результату, один випадок збою та примітку про скасування змін перед розширенням обсягу тестування. Тримайте конфігурацію окремо від коду програми. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь код. Фіксуйте версію інтерпретатора та файл з інформацією про залежності перед тим, як починати використання циклів. Розбіжності між ноутбуком та системою CI є найпоширенішою причиною прихованих збоїв під час демонстрацій API.
1. Мета та переваги локального виконувача потоків
Етап „1 Мета та переваги“ найкраще функціонує, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Документуйте як успішний, так і відновлювальний сценарії роботи разом. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Забезпечте фіксацію версії інтерпретатора та файлу блокування залежностей перед початком роботи з циклами. Розбіжності між ноутбуком та середовищем CI є найпоширенішою причиною безслухових збоїв під час демонстрацій API. Етап „1 Мета та переваги“ найкраще функціонує, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте безслухового часткового виконання завдань.
2. Локальна налаштування та виконання тестів
Для локальної налаштування та етапу виконання необхідно заздалегідь визначити вхідні дані, відповідального за крок та критерії завершення перед зміною коду. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Записуйте час виконання та витрати на токени чи запити поруч із функціональними результатами. Чітке відображення витрат заздалегідь запобігає несподіваним рахункам під час переходу з демо-середовища у спільні. Розділіть процес створення клієнта від циклу обробки повідомлень, щоб можна було замінювати постачальників без переписування машини станів розмови.
Додаток: Шаблони використання API Gemini Managed Agents
Для етапу Appendix Gemini Managed Agents необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Конфігурацію слід тримати окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь код. Необхідно розділити процес створення клієнта від циклу обробки повідомлень, щоб можна було замінювати постачальників без переписування машини станів розмови.
Базовий кінцевий пункт
На етапі базового кінцевої точки необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Необхідно документувати як шлях успішного виконання, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Необхідно розділити процес створення клієнта від циклу обробки повідомлень, щоб можна було замінювати постачальників без переписування машини станів розмови.
POST https://generativelanguage.googleapis.com/v1beta/interactions?key=${API_KEY}
Content-Type: application/json
Сценарій 1: Спільне використання єдиного постійного сандбоксу між кількома клієнтами
Для сценарію 1 «Розділення сцени» необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Краще використовувати невеликі, перевірювані одиниці коду замість об’ємних скриптів. Коли крок зазнає невдачі, причина має вказувати на конкретну відповідальність, а не на заплутану структуру обробки даних. Розділіть процес створення клієнта від циклу обробки повідомлень, щоб можна було замінювати постачальників без необхідності переписування машини станів розмови.
{
"agent": "antigravity-preview-05-2026",
"input": "Run task in shared container...",
"environment": "environments/env-12345"
}
Сценарій 2: Використання ізольованих пісочниць для кожної виконуваності
Для сценарію 2 з використанням ізольованої стадії необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цю стадію як контракт між вхідними даними та перевіреними результатами. Призначте назви елементів, визначте критерії успіху та не допускайте беззвучного часткового завершення. Відокремте процес створення клієнта від циклу обробки повідомлень, щоб можна було замінювати постачальників без переписування машини станів розмови.
{
"agent": "antigravity-preview-05-2026",
"input": "Execute client-specific isolated task...",
"environment": {
"type": "remote"
}
}
Сценарій 3: Збереження контексту багатокрокової розмови
Для етапу збереження багатокрокової роботи у сценарії 3 необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Візуалізація витрат заздалегідь запобігає несподіваним рахункам під час переходу з демо-середовища у спільні середовища. Відокремте створення клієнта від циклу обробки повідомлень, щоб можна було замінювати постачальників без переписування машини станів розмови.
{
"agent": "antigravity-preview-05-2026",
"input": "Based on the previous output, proceed to step 2...",
"environment": "environments/env-12345",
"previous_interaction_id": "interaction-prev-67890"
}
Сценарій 4: Повторне використання пісочниці з новим контекстом (freshInteraction)
Для етапу повторного використання сандбоксу у сценарії 4 необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Конфігурацію слід тримати окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Необхідно розділити процес створення клієнта від циклу обробки повідомлень, щоб можна було замінювати постачальників без переписування машини станів розмови.
{
"agent": "antigravity-preview-05-2026",
"input": "Execute a completely new task in the existing sandbox...",
"environment": "environments/env-12345"
}
Матриця підсумків
На етапі матриці підсумків необхідно визначити вхідні дані, відповідальну особу за крок та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Необхідно документувати як шлях успішного виконання, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Необхідно розділити процес створення клієнта від циклу обробки повідомлень, щоб можна було замінити постачальників без переписування машини станів розмови.
Підсумок
На етапі підсумку необхідно визначити вхідні дані, відповідальну особу за крок та критерії завершення перед зміною коду. Оператори повинні мати можливість знову виконати крок з відомої точки контролю, не намагаючись вгадати прихований стан.
Чек-лист операцій
На етапі чек-листу операцій також потрібно визначити вхідні дані, відповідальну особу за крок та критерії завершення перед зміною коду. Оператори мають можливість знову виконати крок з відомої точки контролю, не намагаючись вгадати прихований стан.
Віддавайте перевагу малим, тестованим одиницям перед величезними скриптами. Коли якийсь крок зазнає невдачі, причина має вказувати на конкретну відповідальність, а не на заплутану послідовність операцій.
Розділіть процес створення клієнта від циклу обробки повідомлень, щоб можна було замінювати постачальників без переписування машини станів розмови.
Створюйте контрольні точки після дорогих кроків. Функція відновлення не повинна знову оплачувати один і той самий виклик LLM, коли оператор намагається знову виконати пізнішу операцію.
Фіксуйте версії залежностей та записуйте хеш зображення, яке використовувалося під час демонстрації. Відтворюваність краща за „кочові“ знання.
Тримайте конфігурацію поза кодом додатку. Файли середовища, сховища секретів та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф.
Перш ніж запускати стек у продакшн, заморозьте версії, створіть «золотий» запис для критичного шляху та підтвердьте кроки відкату. У спільних середовищах необхідні обмеження швидкості, перевірки прав власності та чіткий власник для зміни секретів. Віддавайте перевагу надійності перед креативними одноразовими демонстраціями.
Примітка до 19215ab8c61f: не включайте ключі постачальника до репозиторію, встановіть ліміт токенів на сеанс та зберігайте записи поруч із фікстурами для оцінки, щоб подальша заміна моделей залишалася порівнянною.