![]()
അടിയന്തരമായി, കോഴ്സിന്റെ ഇതുവരെയുള്ള ഭാഗങ്ങളിൽ നിങ്ങൾ ലൈപ്ടോപ്പിലും, നോക്ക്ബുക്കിനുള്ളിൽ നിന്നും, az login എന്നതും ചില എൻവയോൺമെന്റ് വേരിയബിൾസും ഉപയോഗിച്ച് ഓടുന്ന ഏജന്റുകൾ നിർമ്മിച്ചിട്ടുണ്ട്. ഇവ പഠിക്കാൻ ശരിയായ മാർഗമാണ്. ആൺ ആക്രമണകാലത്ത് ആയിരക്കണക്കിന് ഉപഭോക്താക്കൾ ആശ്രയിക്കുന്ന ഏജന്റിനെ ഓടിക്കുന്നത് ഇതല്ല ശരിയായ മാർഗം.
“എന്റെ മെഷീൻ ആശ്രയിച്ചാൽ പ്രവർത്തിക്കുന്നു” എന്നതും “ഉത്പാദനത്തിൽ വിശ്വസനീയമായി, ചെലവു കുറഞ്ഞതായും പ്രവർത്തിക്കുന്നു” എന്നതുമായിടയിലുള്ള വ്യത്യാസത്തെക്കുറിച്ചാണ് ഈ പಾಠം. ഇത് Microsoft Foundry-ഉം Microsoft Foundry Agent Service-ഉം ഉപയോഗിച്ച് അനുഭവവേദിയാക്കുന്നു, ഉപകരണങ്ങൾ, തിരികെപിടിക്കൽ, ഓർമ്മ, മൂല്യനിർണ്ണയം, നിരീക്ഷണം എന്നിവ ഉള്ള യഥാർത്ഥ ഉപഭോക്തൃ സഹായ ഏജენტი നിർമ്മിക്കാനാണ് നമ്മൾ ശ്രമിക്കുന്നത്.
ഈ പാഠം ഉൾപ്പെടുന്നതും:
ഈ പാഠം പൂർത്തിയാക്കിയ ശേഷം നിങ്ങൾക്ക് അറിയാം:
മുൻപുള്ള പാഠങ്ങൾ നിങ്ങൾ പൂർത്തിയാക്കിയിട്ടുണ്ട്, അതിനോടൊപ്പം നിങ്ങൾക്ക് സുഖകരമാണ്:
നിങ്ങള്ക്ക് താഴെപ്പറയുന്നവയും വേണം:
az login).requirements.txt.ഒരു പ്രോട്ടോടൈപ്പ് ഏജന്റും ഉത്പാദന ഏജന്റും ഒരേ കോർ ലൂപ്പ് പങ്കിടുന്നു—കാരണം കണ്ടെത്തൽ, ടൂൾസ് വിളിക്കൽ, പ്രതികരണം. മാറ്റം വരുന്നത് ആ ലൂപ്പിന്റെ ചുറ്റുമുള്ള എല്ലാ കാര്യങ്ങളിലും ആണ്. ഒരു മോഡൽ ഉത്പാദന ഏജന്റിന്റെ ഏകദേശം 20% ആണെന്ന് കരുതുക; ബാക്കി 80% ഓപ്പറേഷണൽ സ്കെലിറ്റൺ (സഞ്ചാര ഘടന).
| വിഷയം | പ്രോട്ടോടൈപ്പ് | ഉത്പാദനം |
|---|---|---|
| ഹോസ്റ്റിംഗ് | നിങ്ങളുടെ നോക്ക്ബുക്കിൽ ഓടുന്നു | ഹോസ്റ്റുചെയ്ത സർവീസായി ഓടുന്നു, വേർഷൻ ചെയ്തും റോളൗട്ടും ചെയ്യപ്പെടുന്നു |
| ഐഡൻറിറ്റി | നിങ്ങളുടെ az login ടോക്കൺ |
സ്കോപ്പ്ഡ് RBAC ഉള്ള മാനേജുചെയ്ത ഐഡൻറിറ്റി |
| സ്റ്റേറ്റ് | മെമ്മറിയിൽ, പുനരാരംഭിക്കുമ്പോൾ നഷ്ടപ്പെടുന്നു | ബാഹ്യമായി ഹാൻഡിൽ ചെയ്യുന്നു (ത്രീഡ് സ്റ്റോർ, മെമ്മറി സർവീസ്) |
| ഫെയില്യർ | ട്രെയ്സ്ബാക്ക് കാണുന്നു | റീട്രൈകൾ, ഫാൾബാക്കുകൾ, ഡെഡ്-ലറ്റർ, അലർട്ടുകൾ |
| ചിലവ് | “റോ few സെന്റുകൾ മാത്രം” | ഓരോ അഭ്യർത്ഥനയ്ക്കും ട്രാക്കുചെയ്യുന്നു, റൂട്ട് ചെയ്യുന്നു, കാഷ് ചെയ്യുന്നു, ബജറ്റ് ചെയ്യുന്നു |
| ഗുണമേന്മ | നിങ്ങൾ നേർക്കാഴിക്കുന്നു | ഓരോ റിലീസിന് മുമ്പും സ്വയം മൂല്യനിർണ്ണയം ചെയ്യുന്നു |
| വിശ്വാസം | നിങ്ങൾ എല്ലാ പ്രവർത്തനവും അംഗീകരിക്കുന്നു | പോളിസിയും മനുഷ്യ-ഇൻ-ദ-ലൂപ്പും ഉണ്ട് അപകടകരമായ പ്രവർത്തനങ്ങൾക്ക് |
ഈ പട്ടിക മനസിലാക്കി വെക്കുക. താഴെ വരുന്ന ഓരോ വിഭാഗവും ഇവയിൽ ഒന്നിനോടോ അതിനോട് സമാനമായ ഒന്നിനോടോ അനുബന്ധമാണ്.
നിങ്ങൾ ഉപയോഗിക്കാൻ പോകുന്ന മൂന്ന് മാതൃകകളാണ് പ്രധാനമായും.
ഏജന്റ് ഒബ്ജക്റ്റ് നിങ്ങളുടെ ആപ്ലിക്കേഷൻ പ്രോസസ്സിനുള്ളിൽ ജീവിക്കുന്നു. നിങ്ങളുടെ കോഡ് നേരിട്ട് മോഡൽ പ്രൊവൈഡറെ വിളിക്കുന്നു; രീസണിംഗ് ലൂപ്പ് നിങ്ങളുടെ സർവീസിനുള്ളിൽ ഓടുന്നു. ഇതിനകം പൃഥ്വി പൂര്വ്വ പാഠങ്ങൾ നടത്തിയതാണ്.
ഏജന്റ് Microsoft Foundry-യിൽ ഒരു റിസോഴ്സായി രജിസ്റ്റര് ചെയ്യും. ഫൗൺഡറി രീസണിംഗ് ലൂപ്പ് ഹോസ്റ്റ് ചെയ്യുകയും, ത്രീഡുകൾ സൂക്ഷിക്കുകയും, ഉള്ളടക്ക സുരക്ഷയും RBAC ഉറപ്പാക്കുകയും, ഫൗൺഡറി പോർട്ടലിൽ ഏജന്റ് ദൃശ്യമായി കാണിക്കുകയും ചെയ്യും. നിങ്ങളുടെ ആപ്പ് ഒരു തിന് ക്ലയന്റ് ആയി മാറുകയും ത്രീഡുകൾ സൃഷ്ടിക്കുകയും പ്രതികരണങ്ങൾ വായിക്കുകയും ചെയ്യും.
നിരവധി ഏജന്റുകൾ (മറ്റും ടൂളുകളും) നിയന്ത്രണ പ്രവാഹം വ്യക്തമാക്കുന്ന ഗ്രാഫിൽ ചേർക്കുന്നു — പരമ്പരാഗത ഘട്ടങ്ങൾ, ശാഖീകരണം, മനുഷ്യ അംഗീകാരം നോട്ടുകൾ, പാസും റിസ്യൂം ചെയ്യാവുന്ന ദൃഢമായ ചെക്ക്പോയിന്റുകൾ. ഇതാണ് Microsoft Agent Framework വർക്ക്ഫ്ലോകൾ കഴിവ് വിന്യാസ സ്കെയ്ലിൽ പ്രയോഗിക്കുന്നത്.
flowchart TB
subgraph P1[ക്ലയന്റ്-ഹോസ്റ്റഡ്]
A1[നിങ്ങളുടെ ആപ്പ് പ്രോസസ്] --> M1[മോഡൽ പ്രൊവൈഡർ]
end
subgraph P2[ഹോസ്റ്റഡ് ഏജന്റ്]
A2[തിന്ന് ക്ലയന്റ്] --> F2[ഫൗണ്ട്രി ഏജന്റ് സർവീസ്]
F2 --> M2[മോഡൽ + ടൂളുകൾ + ത്രെഡ് സ്റ്റോർ]
end
subgraph P3[ഏജന്റ് വർക്ക്ഫ്ലോ]
A3[ഓർക്കസ്ട്രേറ്റർ] --> S1[ട്രിയാജ് ഏജന്റ്]
S1 --> S2[റിസൊൾവർ ഏജന്റ്]
S2 --> H[മാനവ അംഗീകാരം നോഡ്]
H --> S3[ആക്ഷൻ ഏജന്റ്]
end
ഒരു ഏജന്റ് വിന്യസിക്കൽ ഒറ്റത്തവണ push അല്ല. ഇത് ഒരു ലൂപ്പാണ്; സോഫ്റ്റ്വെയർ റിലീസ് ചക്രത്തിനുപോലെ തന്നെ കാണപ്പെടുന്നു.
flowchart LR
Create[സൃഷ്ടിക്കുക / രചിക്കുക] --> Version[പതിപ്പ്]
Version --> Evaluate[ഓഫ്ലൈനിൽ വിലയിരുത്തുക]
Evaluate -->|ഗേറ്റ് കടക്കുന്നു| Deploy[ഹോസ്റ്റുചെയ്ത് വിന്യസിക്കുക]
Evaluate -->|ഗേറ്റ് പരാജയപ്പെടുന്നു| Create
Deploy --> Observe[ഓൺലൈനിൽ നിരീക്ഷിക്കുക]
Observe --> Improve[പരാജയങ്ങൾ ശേഖരിക്കുക]
Improve --> Create
Deploy --> Retire[പഴയ പതിപ്പ് വിരമിക്കുക]
പ്രധാന ആശയം, പാഠം 10 നിന്നാണ് എടുത്തത്: ഓഫ്ലൈൻ മൂല്യനിർണ്ണയം ഒരു ഗേറ്റ് ആണ്, ഒരു അപൂർവചിന്ത അല്ല. പുതിയ ഏജന്റ് വേർഷൻ നിങ്ങളുടെ മൂല്യനിർണ്ണയ കളമ്പുകൾ കടത്തിക്കാത്തപക്ഷം പുറത്തിറങ്ങാൻ പോവുകയില്ല. ഓൺലൈൻ നിരീക്ഷണം യാഥാർത്ഥ ലോകത്തിലെ പരാജയങ്ങളെ നിങ്ങളുടെ ഓഫ്ലൈൻ ടെസ്റ്റ് സെറ്റിലേക്ക് ഫീഡ് ചെയ്യുന്നു. ഇതാണ് മുഴുവൻ ലൂപ്പ്.
ഏജന്റ് സ്കെയിൽ ചെയ്യുന്നത് സ്റ്റേറ്റ്ലസ് വെബ് API സ്കെയിലിങ്ങിൽ നിന്ന് വ്യത്യസ്തമാണ്, കാരണം ഓരോ അഭ്യർത്ഥനയും നാനാർത്ഥകമായ മോഡൽ-ടൂൾ വിളികൾ ഉണ്ടാക്കാം. പ്രധാനമായും നാല് സാങ്കേതിക വിദ്യകൾ മുഖ്യഭാരമേற்கുന്നു.
സ്റ്റേറ്റ് ഇല്ലാത്ത അഭ്യർത്ഥന കൈകാര്യം. നിങ്ങളുടെ പ്രോസസ്സ് മെമ്മറിയിൽ ഓരോ ഉപയോക്താവിനും സ്റ്റേറ്റ് സൂക്ഷിക്കരുത്. സംഭാഷണ ത്രീഡുകൾ ഫൗൺഡറി ത്രീഡ് സ്റ്റോർ അല്ലെങ്കിൽ മെമ്മറി സർവീസ് ഉപയോഗിച്ച് പാഴ്സിസ്റ്റ് ചെയ്യുക, അങ്ങിങ്ങനെ ഏതൊരു ഇൻസ്റൻസും ഏതു അഭ്യർത്ഥനയും കൈകാര്യം ചെയ്യാം. ഇത് നിങ്ങൾക്ക് പക്കൽനിരായി സ്കെയിൽ ചെയ്യാൻ സഹായിക്കുന്നു — ഇൻസ്റൻസുകൾ കൂട്ടിച്ചേർക്കാം, സ്റ്റിക്കി സെഷനുകൾ ഇല്ല.
മോഡൽ റൂട്ടിംഗ്. എല്ലാം അഭ്യർത്ഥനകളും നിങ്ങളുടെ ഏറ്റവും ശേഷിയുള്ള (അതും ചെലവുയർന്ന) മോഡലിൽ പോകേണ്ടതില്ല. ലഘുവായ അഭ്യർത്ഥനകൾ — ഉദ്ദേശ്യവർഗ്ഗീകരണം, ചുരുങ്ങിയ സത്യസന്ധ ഉത്തരങ്ങൾ — ചെറിയ വേഗത്തിൽ പ്രവർത്തിക്കുന്ന ഒരു മോഡലിലേക്ക് റൂട്ടുചെയ്യുക; വളരെയധികം കണക്കുകൂട്ടലുകൾക്ക് വലിയ മോഡൽ നിലനിർത്തുക. ഫൗൺഡറിയുടെ Model Router ഇത് ചെയ്യാം, അല്ലെങ്കില് നിങ്ങൾക്ക് ചെറുതായി ക്ലാസിഫയർ നിർമ്മിക്കാം. ലാബ് ചെയ്യുമ്പോൾ ഇത് നിങ്ങൾ തന്നെ നിർമ്മിക്കും.
പ്രതികരണ കാഷിംഗ്. പല സഹായ ചോദ്യങ്ങളും സാമാന്യ സാമ്യപൂർണ്ണ (“എങ്ങനെ ഞാൻ പാസ്സ്വേഡ് റീസെറ്റ് ചെയ്യാം?”). പൊതുവായ ചോദ്യങ്ങൾക്ക് ഉത്തരങ്ങൾ കാഷ് ചെയ്ത്, മോഡലിനെ പ്രയോഗിക്കാതെ തന്നെ ലഭ്യമാക്കാം. ചെറിയ തോതിലുള്ള കാഷ് ഹിറ്റ് നിരക്കും ചെലവിലും വൈകിയും കുറയ്ക്കുന്നു.
സമകാലികതയും പശ്ചാത്തല സമ്മർദ്ദവും. മോഡൽ പ്രൊവൈഡർമാർക്ക് നിരക്ക് പരിമിതികൾ ഉണ്ട്. നിങ്ങളുടെ സമകാലികത പരിധി നിശ്ചയിക്കുക, എക്സ്പോനൻഷ്യൽ ബാക്കോഫ് ഉള്ള റീട്രൈകൾ ഉപയോഗിക്കുക, ദയനീയമായി പരാജയം വരുത്തുക (ക്യുബിലെ “നാം അതിൽ പ്രവർത്തിക്കുന്നു” പ്രതികരണം 500 ഉത്തരം നൽകുന്നത് നല്ലതായിരിക്കും).
flowchart LR
Q[ഉപയോക്തൃ ചോദ്യം] --> C{കാഷെ ഹിറ്റ്?}
C -->|അതെ| R[കാഷിൽ ചിട്ടപ്പെടുത്തിയ ഉത്തരം തിരിച്ചു നൽകുക]
C -->|ഇല്ല| Router{സങ്കീർണത?}
Router -->|ലളിതം| SLM[ചെറിയ മോഡൽ]
Router -->|സങ്കീർണമైంది| LLM[വലിയ മോഡൽ]
SLM --> Out[പ്രതികരണം]
LLM --> Out
Out --> Store[കാഷേ + ട്രേസ്]
നിങ്ങൾ കാണാത്തത് പ്രവർത്തിപ്പിക്കാൻ കഴിയില്ല. പാഠം 10-ൽ ഉൾപ്പെടുത്തിയതുപോലെ, Microsoft Agent Framework സ്വാഭാവികമായി OpenTelemetry ട്രേസുകൾ സൃഷ്ടിക്കുന്നു — ഓരോ മോഡൽ വിളിയും, ടൂൾ ഇൻവൊക്കേഷനും, ഓർക്കസ്ട്രേഷൻ ഘട്ടവും ഒരു സ്പാൻ ആകുന്നു. ഉത്പാദനത്തിൽ ഈ സ്പാനുകൾ Microsoft Foundry-ൽ (അല്ലെങ്കിൽ ഏതെങ്കിലും OTel-സമർത്ഥിത ബേക്ക്എൻഡിൽ) ഇറക്കുമതി ചെയ്യാം, അതിലൂടെ നിങ്ങൾക്ക്:
from agent_framework.observability import get_tracer
tracer = get_tracer()
with tracer.start_as_current_span("support_request") as span:
span.set_attribute("customer.tier", "enterprise")
span.set_attribute("routed.model", "gpt-5-nano")
# ഏജന്റ് നിർവഹണം സ്വയം ഈ സ്പാനിനുള്ളിൽ ട്രേസ് ചെയ്യപ്പെടുന്നു
customer.tier ഉം routed.model ഉം പോലുള്ള അമേരിക്കകൾ ട്രേസുകളുടെ മതിൽ മറികടന്ന് ഉത്തരം കിട്ടാനുള്ള ചോദ്യങ്ങളാക്കുന്നു (“ഏറ്റവും ചെറിയ മോഡലിലേക്ക് എന്റർപ്രൈസ് ഉപഭോക്താക്കൾ കൂടിയായുള്ള റൂട്ടിംഗ് തവണകൾ കൂടുതലോ?”).
ഉത്പാദന ഏജന്റുകളുടെ ചിലവ് ടോക്കണുകൾ നിയന്ത്രിക്കുന്നു. മുന്നിൽ മൂന്നു കൈമാറ്റങ്ങൾ:
മൂല്യനിർണ്ണയ ഗേറ്റുകളും ചിലവ് നിയന്ത്രണവും രണ്ട് ദിശകളിൽ നിന്നുള്ള ഏകയൂജിതമായ ശാസ്ത്രവും കൂടിയാണ്: മൂല്യനിർണ്ണയം നിങ്ങൾക്ക് ഗുണനിലവാര പാത കാണിക്കുന്നു, റൂട്ടിംഗ് ഉം കാഷിംഗ് ഉം ആ പാതയുടെ ചിലവ് കുറവാക്കുന്നു.
ഗവർണൻസ്. ഹോസ്റ്റുചെയ്ത ഏജന്റുകൾ ഫൗൺഡറിയുടെ RBAC, ഉള്ളടക്ക സുരക്ഷ, ഓഡിറ്റ് ലോഗിംഗ് എന്നിവ ഏറ്റെടുക്കുന്നു. ഓരോ ഏജന്റിനും ഏറ്റവും കുറഞ്ഞ അധികാരമുള്ള മാനേജുചെയ്ത ഐഡൻറിറ്റി നൽകുക—കോണ അറിവിന്റെ വായനയ്ക്കുള്ള ആക്സസ്, ടിക്കറ്റ് API-യുടെ സ്കോപ്പ്ഡ് ആക്സസ്സ്, മറ്റ് ഒന്നും തന്നെ വേണ്ട.
മനുഷ്യൻ-ഇൻ-ദ-ലൂപ്പ്. ചില പ്രവർത്തനങ്ങൾ സ്വന്തം സ്വവ്യാപാര നടപടികളാൽ ആക്കാൻ കഴിയുന്നില്ല — പണം തിരികെ നൽകൽ, അക്കൗണ്ട് ഇല്ലാതാക്കൽ, നിയമസംഘത്തോട് escalatiion. Microsoft Agent Framework approval-required ടൂളുകൾ പിന്തുണയ്ക്കുന്നു: ഏജന്റ് പ്രവർത്തനം നിർദേശിക്കുന്നു, നിർവഹണം നിർത്തുന്നു, മനുഷ്യൻ അംഗീകരിക്കുകയും നിരസിക്കുകയും ചെയ്യുന്നു, ഉൾപ്പെടുത്തൽ വീണ്ടും ആരംഭിക്കുന്നു. നിങ്ങൾ പാഠം 6 ൽ ഇത് കണ്ടു; ഇവിടെ തീർച്ചയായും വിന്യസിക്കുന്നു.
ഉത്പാദനത്തിൽ MCP. MCP നിങ്ങളുടെ ഏജന്റ് ഒരു സ്റ്റാൻഡേർഡ് ഇന്റർഫേസ് വഴി പുറം ടൂളുകൾ ഉപയോഗിക്കാൻ അനുവദിക്കുന്നു. ഉത്പാദനത്തിൽ എല്ലാ MCP സേർവറുകളെയും വിശ്വസനീയമല്ലാത്ത പരിധികളായി കാണുക: സേർവർ വേർഷൻ പിന്യിട്ടുക, സ്കോപ്പ്ഡ് ഐഡന്റിറ്റിയോടുകൂടെ ഓടിക്കുക, ഔട്ട്പുട്ടുകൾ സ്ഥിരീകരിക്കുക, രഹസ്യങ്ങൾ ചിത്രീകരിക്കരുത്. MCP സേർവർ ഒരു ആശ്രിതമാണ്, ആശ്രിതങ്ങൾക്ക് പാച്ച്, ഓഡിറ്റ്, നിരക്ക് നിയന്ത്രണം ഉണ്ടായിരിക്കും.
flowchart TB
subgraph Dev[വികസന ആർക്കിടെക്ചർ]
D1[നോട്ട്ബുക്ക്] --> D2[ഏജന്റ് ഫ്രെയിംവർക്ക്]
D2 --> D3[മോഡൽ പ്രൊവൈഡർ]
D2 --> D4[ലൊക്കൽ ഉപകരണങ്ങൾ]
end
subgraph Deploy[വിന്യാസ ആർക്കിടെക്ചർ]
E1[CI പൈപ്പ്ലൈൻ] --> E2[മൂല്യനിർണയ ഗേറ്റ്]
E2 -->|പാസ്| E3[ഫൗണ്ടറി ഏജന്റ് സർവീസ്]
E3 --> E4[വേർഷൻ ചെയ്ത ഹോസ്റ്റഡ് ഏജന്റ്]
end
subgraph Run[റൺടൈം ആർക്കിടെക്ചർ]
F1[ക്ലയന്റ് ആപ്പ്] --> F2[ഹോസ്റ്റഡ് ഏജന്റ്]
F2 --> F3[മോഡൽ റൂട്ടർ]
F2 --> F4[അസ്യൂർ AI സേർച്ച് RAG]
F2 --> F5[മെമ്മറി സർവീസ്]
F2 --> F6[MCP ഉപകരണങ്ങൾ]
F2 --> F7[OTel -> ഫൗണ്ടറി ട്രേസിംഗ്]
F2 --> F8[മനുഷ്യ അംഗീകാരം]
end
ആ മൂന്ന് രൂപരേഖകൾ — വികസനം, വിന്യാസം, റൺടൈം — ഒരേ ഏജന്റിനെയാണ് അതിന്റെ ജീവിതത്തിന്റെ മൂന്ന് ഘട്ടങ്ങളിൽ കാണിക്കുന്നത്. തുടർന്ന് വരുന്ന ലാബ് ഇത് നിർമ്മിക്കാൻ വഴി കാണിക്കും.
തുറക്കുക code_samples/16-python-agent-framework.ipynb തുടങ്ങിയുള്ളത് മുഴുവൻ പ്രവർത്തിപ്പിക്കുക. നിങ്ങൾ ഒരു Contoso ഉപഭോക്തൃ സഹായ ഏജന്റ് അണിയിച്ചൊരുക്കും, ഓരോ ഉത്പാദന പ്രശ്നവും പരിഗണിച്ചുകൊണ്ട്:
നോക്ക്ബുക്ക് ഓരോ ഉത്പാദന പ്രശ്നവും സ്വയം സാമർത്ഥ്യമുള്ള, ഓടാനാവുന്ന വിഭാഗങ്ങളായി ക്രമീകരിച്ചു. ഇതിന്റെ ഹൃദയം റൂട്ടിംഗ്-പ്ലസ്-കാഷിംഗ് അഭ്യർത്ഥന കൈകാര്യംചെയ്യുന്ന ഹാൻഡ്ലറാണ്:
async def handle_support_request(query: str, customer_id: str) -> str:
# 1. കഴിവുള്ളപ്പോൾ കാഷെയിൽ നിന്ന് സേവനം നൽകുക.
cached = response_cache.get(normalize(query))
if cached:
return cached
# 2. ചെലവ് നിയന്ത്രിക്കാൻ സങ്കീർണ്ണത പ്രകാരം മാർഗ്ഗനിർദ്ദേശം നൽകുക.
model = "gpt-5-nano" if is_simple(query) else "gpt-5-mini"
# 3. കാണാൻ കഴിയുന്ന വിധം ട്രേസ് സ്പാനിനുള്ളിൽ ഏജന്റ് ഓടിക്കുക.
with tracer.start_as_current_span("support_request") as span:
span.set_attribute("routed.model", model)
span.set_attribute("customer.id", customer_id)
response = await support_agent.run(query, model=model)
# 4. കാഷെ ചെയ്യുകയും തിരിച്ചയയ്ക്കുകയും ചെയ്യുക.
response_cache.set(normalize(query), response.text)
return response.text
റിലീസ് സംരക്ഷിക്കുന്ന മൂല്യനിർണ്ണയ ഗേറ്റ് ഇങ്ങനെ കാണപ്പെടുന്നു:
async def evaluation_gate(agent, test_cases, threshold: float = 0.8) -> bool:
passed = 0
for case in test_cases:
result = await agent.run(case["input"])
if score_response(result.text, case["expected"]) >= 0.8:
passed += 1
pass_rate = passed / len(test_cases)
print(f"Evaluation pass rate: {pass_rate:.0%} (gate: {threshold:.0%})")
return pass_rate >= threshold # ഗേറ്റ് തെറ്റ് ചെയ്യാതിരുന്നാൽ മാത്രം വിന്യസിക്കുക
ഓരോ വരിയും വായിക്കുക — നോക്ക്ബുക്ക് പ്രിചേസുകൾ ചെറിയവയുടെ ഗോപുരം സൂക്ഷിച്ചുകൊണ്ട്, ഫ്രെയിമ്വർക്കിന്റെ അടയാളത്തിന് പിറകിൽ ഒന്നും മറയ്ക്കുന്നില്ല.
മുകളിലുള്ള മൂല്യനിർണ്ണയ ഗേറ്റ് നിങ്ങളുടെ ഏജന്റ് ഒബ്ജക്റ്റിന്റെ മേൽ ഓഫ്ലൈൻ ഓടുന്നു. ഹോസ്റ്റുചെയ്ത ഏജന്റ് ആയി വിന്യസിച്ചതിനുശേഷം നിങ്ങള്ക്ക് മറ്റൊരു ചെലവ് കുറഞ്ഞ പരിശോധന വേണം: വിന്യാസം ചെയ്ത എൻഡ്പോയിന്റ് യഥാർത്ഥത്തിൽ മറുപടി നൽകുന്നുണ്ടോ?
“വിജയകരമായി” വിന്യസിക്കൽ മാത്രം നിർവാഹ മാനദണ്ഡം അംഗീകരിച്ചതായി തെളിയിക്കുന്നു — ഏജന്റ് മറുപടി നൽകുമോ എന്നതല്ല. നഷ്ടപ്പെട്ട ആശ്രിതം, മോഡൽ റൂട്ടിംഗ് തെറ്റായത്, എക്സ്പയർ ചെയ്ത കണക്ഷൻ ഇവ മുഴുവൻ ഒന്നും കാണിക്കുന്നില്ലാത്ത വിതരണങ്ങൾ സൃഷ്ടിക്കാം. പുക പരിശോധന ഇതിനായി സെക്കൻഡുകൾക്കകം ഓരോ വിന്യാസത്തിലും പ്രവർത്തിക്കുന്നു, പൂർണ്ണ മൂല്യനിർണ്ണയ ചിലവുണർത്താതെ.
ഈ റിപോസിറ്ററി ഉപയോഗത്തിനർഹമായ ഒരു പുക-ചെക്കിങ് പൈപ്പ്ലൈനും കൊണ്ടുവരുന്നു, AI Smoke Test GitHub പ്രവർത്തനം അടിസ്ഥാനമാക്കി:
tests/lesson-16-smoke-tests.json Contoso സഹായ ഏജന്റിന് പ്രോമ്പ്റ്റുകളും സ്ഥിരീകരണങ്ങളുമാണ് ഉൾക്കൊള്ളുന്നത് (ഇടത് നയം ഉത്തരങ്ങൾ, ഓർഡർ പരിശോധിക്കൽ, വിഷയത്തിൽ തുടരൽ, മൾട്ടി-ടേൺ സംഭാഷണ തുടർച്ച). മറ്റ് പാഠങ്ങളുടെ ഏജന്റുകൾക്കുള്ള കാറ്റലോഗുകളും ഇത് കൂടെയുണ്ട് — കാണുക tests/README.md..github/workflows/smoke-test.yml Azure OIDC ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യുകയും, ഓരോ പ്രോമ്പ്റ്റും ഏജന്റിന്റെ Responses എൻഡ്പോയിന്റിലേക്ക് POST ചെയ്യുകയും, ഏതെങ്കിലും പരിശോധന വിജയം ഇല്ലെങ്കിൽ ജോബ് പരാജയപ്പെടുത്തുകയും ചെയ്യുന്നു.- name: Smoke-test hosted agent
uses: JFolberth/ai-smoketest@v1
with:
project_endpoint: $
agent_name: ContosoSupportAgent
tests_file: tests/lesson-16-smoke-tests.json
നിങ്ങളുടെ ഏജന്റ് ഡിപ്ലോയ് ചെയ്തശേഷം, Actions ടാബിൽ നിന്നു പ്രവർത്തിപ്പിക്കുക, നിങ്ങളുടെ Foundry പ്രോജക്ട് എൻഡ്പോയിന്റും ഏജന്റിന്റെ പേരും നൽകി. ഫെഡറേറ്റഡ് ഐഡന്റിറ്റിക്ക് Foundry പ്രോജക്ട് സ്കോപ്പിൽ Azure AI User റോളുണ്ടാകണം. ലെയറുകൾ പിരമിഡ് പോലെ ചിന്തിക്കൂ: പ്രധാനമായ ടെസ്റ്റ് (ലഭ്യമാണോ, പ്രതികരിക്കുകയാണോ?) എല്ലാ ഡിപ്ലോയിലും നടത്തപ്പെടും, ഓഫ്ലൈൻ മൂല്യനിർണ്ണയം (പാക്കേജുക്കും പോകുന്നതിന് മതിയാകുമോ?) പ്രമോഷനിന് മുമ്പ് നടന്നു, ഒൺലൈൻ മൂല്യനിർണ്ണയം (വൈൽഡിൽ എങ്ങനെ പ്രവർത്തിക്കുന്നു?) തുടർച്ചയായി നടക്കുന്നു.
അസൈൻമെന്റിലേക്ക് പോകുന്നതിനുമുമ്പ് നിങ്ങളുടെ മനസിലാക്കൽ പരിശോധിക്കുക.
1. ഉത്പാദന ഏജന്റിന്റെ “മോഡൽ” എത്രത്തോളം ആണ്, ബാക്കിയുള്ളത് എന്ത്?
2. ക്ലയന്റ്-ഹോസ്റ്റുചെയ്യുന്ന ഏജന്റിന് പകരം ഹോസ്റ്റുചെയ്യുന്ന ഏജന്റ് തിരഞ്ഞെടുക്കുന്നത് എപ്പോൾ?
3. സ്കെയിലബിള് ഏജന്റ് അതിന്റെ പ്രോസസ് മെമ്മറിയിൽ സ്റ്റേറ്റ്ലെസ്സായിരിക്കേണ്ടത് എന്തുകൊണ്ടാണ്?
4. മോഡൽ റൂട്ടിംഗ് ഏത് പ്രശ്നം പരിഹരിക്കുന്നു, ഇത് മൂല്യനിർണ്ണയവുമായി എങ്ങനെ ബന്ധപ്പെട്ടിരിക്കുന്നു?
5. “മൂല്യനിർണ്ണയ ഗേറ്റ്” എന്താണ്, അത് വേൾഡ്സൈക്കിളിൽ എവിടെയാണ്?
6. MCP സർവർ ഉത്പാദനത്തിൽ വിശ്വസിക്കാനാകാത്ത പരിധിയായി പരിഗണിക്കേണ്ടത് എന്തുകൊണ്ടാണ്?
7. സാധാരണയായി ഉത്പാദന ഏജന്റിന്റെ ചെലവിൽ ഏറ്റവും വലിയ ഫലപ്രാപ്തി ഏത് മാറ്റമാണുള്ളത്, അതെന്തുകൊണ്ടാണ്?
8. customer.tier , routed.model പോലുള്ള സ്പാൻ ഗുണങ്ങൾ ഓബ്സർവബിലിറ്റിയിൽ എന്ത് പങ്ക് വഹിക്കുന്നു?
ലാബിൽ നിന്നുള്ള കസ്റ്റമർ പിന്തുണ ഏജന്റിനെ എടുത്ത് ഒരു പ്രത്യേക സാഹചര്യത്തിന് ശക്തിപ്പെടുത്തുക: ഒരു സാസ് കമ്പനിയ്ക്കുള്ള സബ്സ്ക്രിപ്ഷൻ ബില്ലിംഗ് പിന്തുണ ഏജന്റ്.
നിങ്ങളുടെ സമർപ്പണം:
get_subscription_status, get_invoice, issue_credit (50 ഡോളറിൽമേൽ ക്രെഡിറ്റ് സാധനം മനുഷ്യ അംഗീകാരമാകണം).നിങ്ങൾ തിരഞ്ഞെടുക്കുന്ന മോഡൽ-റൂട്ടിംഗ് നിയമവും അതിനെ യഥാർത്ഥ ട്രാഫിക്കുമായി എങ്ങനെ പരിശോധന ചെയ്യുമെന്ന് അഞ്ച് വാക്കുകളിൽ (markdown സെല്ലിൽ) ചെറിയ പാരഗ്രാഫ് എഴുതുക. ഏകദേശ ശരിയാകുന്ന ഉത്തരം ഒന്നുമില്ല — ഉത്പാദന ആശങ്കകൾ എല്ലാം സംയോജിപ്പിച്ചിട്ടുണ്ടോ എന്ന് വിലയിരുത്തുകയാണ്.
ഈ പാഠത്തിൽ, മൈക്രോസോഫ്റ്റ് ഫൗണ്ടറിയിലൂടെ ഒരു ഏജന്റ് പ്രൊട്ടോടൈപ്പ് മുതൽ ഉത്പാദനത്തിലേക്ക് മാറ്റി:
അടുത്ത പാഠം വിപരീത യാത്രയാണ്: ഏജന്റുകൾ മേഘത്തിലേക്ക് സ്കെയിൽ ചെയ്യാതെ, അവയെ ഒരു ഡെവലപ്പർ മെഷീൻ വരെ കുറച്ച് പൂർണമായി ലൊക്കലായി പ്രവർത്തിപ്പിക്കുകയായിരിക്കും.
Building Computer Use Agents (CUA)
അറിയിപ്പ്: ഈ രേഖ AI പരിഭാഷാ സേവനം Co-op Translator ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. ഞങ്ങൾ കൃത്യതയ്ക്കായി ശ്രമിക്കുന്നുവെങ്കിലും, ഓട്ടോമേറ്റഡ് പരിഭാഷകളിൽ പിഴവുകൾ അല്ലെങ്കിൽ തെറ്റായ വിവരങ്ങൾ ഉണ്ടാകാൻ സാധ്യതയുണ്ട്. അതിന്റെ സ്വാഭാവിക ഭാഷയിലുള്ള അസൽ രേഖയാണ് പ്രാമാണികമായ ഉറവിടമായി പരിഗണിക്കേണ്ടത്. നിർണായകമായ വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ ശുപാർശ ചെയ്യുന്നു. ഈ പരിഭാഷ ഉപയോഗിച്ച് ഉണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾ അല്ലെങ്കിൽ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കായി ഞങ്ങൾ ഉത്തരവാദികളല്ല.