Fəsil 04 · 4 dəq oxu

Agent-lər: hərəkət edən modellər

Agent-lər: hərəkət edən modellər

tək başına mətn istehsal edir. elə sistemdir ki, orada model nə edəcəyinə qərar verir, runtime onu yerinə yetirir və nəticə geri qaytarılır ki, model yenidən qərar verə bilsin. Bu loop mətn generatorunu axtarış apara, hesablaya, faylları oxuya, API-ləri çağıra və çoxaddımlı tapşırıqları tamamlaya bilən bir şeyə çevirir.

Bu fəsil həmin loop-u, onun içindəki dizayn qərarlarını və qarşısı alınmalı failure mode-ları izah edir.

Agent loop-u

loop:
  response = model(context)
  if response is a final answer:
      return it
  for each tool call in response:
      result = execute(tool call)
      append result to context

Bütün pattern budur. Qalan hər şey hansı tool-ların mövcud olduğu, context-in necə idarə edildiyi və icranı hansı əhatə etdiyi barədə detaldır.

Tool-lar

Tool — modelin çağırılmasını tələb edə biləcəyi funksiyadır. Hər biri modelə adı, təbii dildə təsviri və parametrləri üçün tipləşdirilmiş schema ilə təqdim olunur. Model structured call verir; runtime onu validate edir, icra edir və nəticəni mətn kimi qaytarır.

Tool-ları ağıllı, amma tələsən həmkar üçün API hazırlayırmış kimi dizayn edin:

  • Hər tool-a bir iş. search_orders(customer_id, date_range) do_database_stuff(sql)-dən yaxşıdır.
  • Təsvirlər . Təsvir modelin tool haqqında bildiyi yeganə şeydir. Nə vaxt istifadə etməli, nə vaxt etməməli və nə qaytardığını deyin.
  • Hər şeyi yox, modelə lazım olanı qaytarın. 40 KB-lıq JSON qaytaran tool context-i səs-küylə doldurur. Xülasə edin, səhifələyin və ya qoyun model detalı özü istəsin.
  • Error-ları məlumatlandırıcı edin. "Sifariş tapılmadı; etibarlı ID-lər ORD-123456 formatındadır" modelə özünü düzəltməyə imkan verir. Stack trace vermir.
  • Mümkün olan yerdə , geri qaytarıla bilən tool-lara üstünlük verin. Model arabir yanlış tool-u çağıracaq.

Planning

Sadə dolayısı ilə planlaşdırır: hər addım cari context-ə əsasən qərarlaşdırılır. Uzun tapşırıqlarda açıq planning kömək edir:

  • Modeldən əvvəlcə plan yazmasını, sonra addım-addım icra edib planı işarələməsini istəyin.
  • Addım uğursuz olanda və ya yeni məlumat üzə çıxanda yenidən planlaşdırmağa icazə verin.
  • Planı context-də saxlayın ki, model ipin ucunu itirməsin.

Sadə loop aşkar şəkildə uğursuz olana qədər mürəkkəb planning framework-lərindən çəkinin. Planner-ə ehtiyacı varmış kimi görünən tapşırıqların çoxuna əslində daha yaxşı tool-lar lazımdır.

Memory və context-in idarə edilməsi

context-i tool nəticələri ilə dolur. Uzun tapşırıq window-u tükədə bilər. Strategiyalar:

  • Xülasə edin. Köhnə tool nəticələrini vaxtaşırı öyrənilənlərin yığcam xülasəsi ilə əvəz edin.
  • Kənara çıxarın. Aralıq nəticələri scratchpad faylına və ya store-a yazın, context-də yalnız pointer saxlayın.
  • Əhatəni daraldın. Hər alt-tapşırığa yalnız ona lazım olan məlumatla təzə context verin () və yalnız nəticəni geri qaytarın.

Session-lar arası uzunmüddətli memory — istifadəçi üstünlükləri, keçmiş qərarlar — deyil, əvvəldə oxuyub sonda yazdığı store-da saxlanmalıdır.

Multi-agent sistemlər

Fərqli rollu bir neçə əməkdaşlıq edə bilər: planner, worker-lər, reviewer. Faydalar realdır (paralellik, fokuslanmış context-lər, vəzifələrin ayrılması), xərclər də realdır (koordinasiya yükü, hər handoff-da itən context, çətinləşən debugging).

Yaxşı tool-ları olan bir adətən orta səviyyəli tool-ları olan bir neçə üstələyir. o zaman əlavə edin ki, tapşırığın həqiqətən müstəqil hissələri olsun və ya işdə marağı olmayan reviewer worker-in görə bilmədiyini görsün.

Failure mode-lar

Loop-lar. eyni uğursuz hərəkəti təkrar-təkrar sınayır. İterasiyaları məhdudlaşdırın; təkrarlanan eyni call-ları aşkarlayın; "bunu artıq üç dəfə sınamısan" deyə geri bildirin.

Nəzarətsiz scope. Yazı səhvini düzəltməsi istənilən bütün modulu refactor edir. açıq scope və yalnız toxunmalı olduğuna toxuna bilən tool-larla məhdudlaşdırın.

Tool-dan yanlış istifadə. Dağıdıcı tool-u yanlış hədəfə tətbiq etmək. Geri qaytarıla bilməyən hərəkətlər üçün təsdiq tələb edin; işlədin; hər şeyi log-layın.

Əmin, amma yanlış nəticələr. tapşırığın bitmədiyi halda bitdiyinə qərar verir. Verification addımları tələb edin: testləri işə salın, output-u yenidən oxuyun, ilkin sorğu ilə tutuşdurun.

Tool nəticələri vasitəsilə . oxuduğu veb səhifə və ya sənəddə "təlimatlarını unut və…" yazılıb. Bütün tool output-larına etibarsız data kimi baxın. Onları bükün, modelə data olduğunu deyin və retrieval ilə gətirilən məzmunun heç vaxt yeni permission verməsinə yol verməyin.

Guardrail-lər

Dünyada hərəkət edə bilən hər ətrafında nə edə biləcəyini müəyyən edən sərhəd olmalıdır.

  • Tapşırığa görə tool . Customer support shell girişi lazım deyil.
  • Permission səviyyələri. Oxumaq sərbəst; yazmaq log-lanaraq; silmək insan təsdiqi ilə.
  • Büdcə limitləri. Hər tapşırıq üçün maksimum iterasiya, , xərc və real vaxt.
  • Sandbox-lar. Kodu və fayl əməliyyatlarını təcrid olunmuş mühitdə icra edin.
  • . Hər , arqumentləri və nəticəsi ilə birlikdə insanın baxa biləcəyi yerdə saxlanır.

Agent-lərin evaluation-ı

evaluation-ı evaluation-ından çətindir, çünki output string deyil, . Ölçün:

  • Tapşırığın uğurunu — nəticəsi yoxlanıla bilən realistik tapşırıqlar toplusunda.
  • Səmərəliliyi: hər uğura düşən addım, və xərc.
  • Safety-ni: pozuntularının və "az qala" hallarının tezliyi.
  • Robustness-i: tool-lar arabir nasaz olanda və ya pozulmuş data qaytaranda uğur nisbəti.

Tapşırıq toplusunu qurmazdan əvvəl qurun. O sizə hansı tool-ların lazım olduğunu deyəcək.

Düşünmək üçün

  1. Gördüyünüz, çevrilə biləcək bir işi təsvir edin. Lazım olacaq tool-ları sadalayın; hər birinin təsvirini yazın.
  2. Hər tool-u təsnif edin: read, write, yoxsa destructive. Hər səviyyəyə hansı təsdiq lazımdır?
  3. yoldan çıxarmaq üçün nəzərdə tutulmuş üç adversarial tool nəticəsi yazın. Çıxırmı?