Przejdź do treści

Napisz instrukcje agenta

Instrukcje są danymi, a nie kodem

Nie ma prompts.py do edycji ani stałej DEFAULT_SYSTEM_PROMPT do nadpisania. Zachowanie agenta to pole instructions jego speca — edytowane w Builderze, wersjonowane przy publikacji i eksportowane jako YAML do repozytorium klienta. Edytowanie Pythona po to, żeby zmienić, co agent mówi, to najczęstsze błędne założenie na temat tego kodu.

Gdzie mieszka ten tekst

Gdzie Kto to edytuje
Instrukcje jednego agenta AgentSpec.instructions, edytowane w Builderze Ten, kto może edytować agenta
Instrukcje wbudowanego specjalisty InlineSpecialistSpec.instructions, w tym samym specu Ten sam
Tekst startowy, który dostaje nowy agent backend/app/agents/default_instructions.py Deploy — to jest wyobrażenie tego deploymentu o asystencie
Procedura współdzielona przez wiele agentów Skill, wiersz w bazie danych Lider wsparcia, we wtorek po południu, bez żadnego deployu

Ostatni wiersz to ten, po który warto sięgać. Dwadzieścia procedur w jednym polu instructions oznacza, że każdy run płaci za wszystkie dwadzieścia; dwadzieścia skilli kosztuje prawie nic, bo model widzi nazwy i wczytuje tylko to, czego potrzebuje.

Co należy do instrukcji

Przeczytaj default_instructions.py, zanim napiszesz własne — to jest przerobiony przykład i sam wyjaśnia swoje wybory. Dwa z nich decydują o większości jakości:

  • Pisz pod odmowy. Akapity, które zarabiają na swoje miejsce, to te o niewymyślaniu faktów, o mówieniu, z którego źródła pochodzi odpowiedź, i o zatrzymaniu się, żeby zapytać, zamiast zgadywać przy czymś destrukcyjnym. "Bądź pomocny" to ozdoba: model już próbuje być pomocny, a potrzebuje informacji, gdzie są krawędzie.
  • To, co jest specyficzne dla tego agenta, umieść na górze. Ktokolwiek otworzy to jako następny, przepisze pierwszy akapit, a resztę zostawi.
You are a customer support agent for Acme.

Answer questions about our products, help people troubleshoot, and escalate
anything involving a refund over £500 — the refund-policy skill has the rule.

Never quote a price you have not read from the knowledge base. If a question
needs an account change, say what you would do and ask them to confirm.

Nie wymieniaj narzędzi agenta w jego instrukcjach

Agent bierze swoje capability ze speca, a narzędzia niosą własne opisy z biblioteki. Prompt, który je wylicza, staje się błędny w chwili, gdy ktoś przełączy któreś — a skutkiem jest agent z przekonaniem odmawiający zrobienia czegoś, co teraz potrafi.

Nie powtarzaj też reguł samej capability

Capability, która potrzebuje, żeby model zachowywał się w określony sposób, wnosi to sama. Format cytowania przy wyszukiwaniu, sposób korzystania z sandboksa, moment, w którym trzeba zapytać człowieka — to przychodzi razem z capability, w każdym agencie, który ją włącza.

Wiedza, skille i pliki kontekstowe

Trzy sposoby, żeby dać agentowi tekst, którego wcześniej nie miał, i nie są wymienne:

Do czego Pobierane przez
collection_idswiedza Tysiące dokumentów: co wiemy Wyszukiwanie semantyczne, z cytatami
skill_idsskille Dziesiątki procedur: jak to robimy Model wybiera nazwę, a potem wczytuje treść
context_ids — pliki kontekstowe Garść plików na tyle małych, żeby były zawsze obecne Wstrzykiwane do instrukcji, bez żadnego wyszukiwania

Wszystkie trzy są sprawdzane wobec dostępu publikującego w momencie publikacji, a nie w momencie uruchomienia. Zobacz Uprawnienia.

Iterowanie nad nimi

  • Draft nie może zostać uruchomiony. Agent uruchamia swoją opublikowaną wersję, więc wypróbowanie nowego promptu oznacza opublikowanie go — co jest tanie z założenia i dlatego rollback jest promocją, a nie przywróceniem. Iteruj na środowisku dev (environment), które podąża za każdą publikacją, a production zostaw czekające na promocję.
  • Testuj prawdziwymi zapytaniami, a nie idealnymi.
  • Trzymaj instrukcje tak krótkie, jak wymaga tego zachowanie. Za dłuższy prompt płaci się przy każdej turze każdego runa, a rozmowa szybciej wypada poza okno.
  • Publikuj, gdy jest dobrze. Publikacja zamraża wersję, więc "co ten agent robił w zeszły wtorek" pozostaje pytaniem z odpowiedzią po kilkunastu edycjach — a rollback publikuje nową wersję skopiowaną ze starej, zamiast kasować historię.
  • Temperatura i reszta to model_settings, per agent i per specjalista, na wierzchu profilu modelu. Nie zmienna środowiskowa.