![]()
ഈ കോഴ്സിൽ ഇതുവരെ നിങ്ങൾ ലാപ്ടോപിൽ, ഒരു നോട്ട്ബുക്കിനുള്ളിൽ, az login എതയും ചില എൻവയോൺമെന്റ് വേരിയബിളുകളും ഉപയോഗിച്ച് ഓടുന്ന ഏജന്റുകൾ നിർമ്മിച്ചു. പഠിക്കാൻ അത് ശരിയായ വഴിയാണ്. എന്നാൽ ആയിരക്കണക്കിന് ഉപഭോക്താക്കൾ രാവിലെ 3 മണിക്ക് ആശ്രയിക്കുന്ന ഒരു ഏജന്റിനെ ഓടിക്കാൻ അത് ശരിയായ മാർഗം അല്ല.
ഈ പാഠം “എന്റെ യന്ത്രത്തിൽ അത് പ്രവർത്തിക്കുന്നു” എന്നതും “പ്രൊഡക്ഷനിൽ വിശ്വസനീയമായി, കുറഞ്ഞ ചെലവിൽ അത് പ്രവർത്തിക്കുന്നു” എന്നതിനും ഇടയിലുള്ള വ്യത്യാസത്തെക്കുറിച്ചാണ്. Microsoft Foundryയും Microsoft Foundry Agent Serviceഉം ഉപയോഗിച്ച് ആ വിടവ് പൂരിപ്പിക്കുന്നു, കൂടാതെ ടൂളുകൾ, റിട്രീവൽ, മെമ്മറി, വിലയിരുത്തൽ, മോണിറ്ററിംഗ് എന്നിവയുള്ള ഒരു യഥാർത്ഥ ഉപഭോക്തൃ പിന്തുണ ഏജന്റിനെ നിർമ്മിക്കുന്ന വഴിയാണ് ഞങ്ങൾ ചെയ്യുന്നത്.
ഈ പാഠത്തിൽ ഉൾപ്പെടുന്നത്:
ഈ പാഠം പൂർത്തിയാക്കിയ ശേഷം നിങ്ങൾക്ക് അറിയാൻ സാധിക്കും:
ഈ പാഠം ആരംഭിക്കുന്നതിന് മുമ്പ് നിങ്ങൾ ഈ പാഠങ്ങൾ പൂർത്തിയാക്കിയിരിക്കണം, കൂടാതെ ഈ വിഷയങ്ങളിൽ സുഖമായി പ്രവർത്തിക്കണം:
നിങ്ങൾക്ക് കൂടാതെ വേണം:
az login).requirements.txt.ഒരു പ്രോട്ടോടൈപ്പ് ഏജന്റും പ്രൊഡക്ഷൻ ഏജന്റും ഒരേ മുള്ളിൽ ഓടുന്ന ലൂപ്പ് പങ്കുവെക്കുന്നു — ചിന്തിച്ചു, ടൂളുകൾ കോൾ ചെയ്യുക, പ്രതികരിക്കുക. ലൂപ്പിനുള്ളിൽ ചുറ്റിപ്പറ്റിയത് മാത്രം മാറുന്നു. മോഡൽ പ്രൊഡക്ഷൻ ഏജന്റിന്റെ ഏകദേശം 20% ആണ്; ബാക്കി 80% ഓപ്പറേഷണൽ ഘടനയാണ്.
| ആശങ്ക | പ്രോട്ടോടൈപ്പ് | പ്രൊഡക്ഷൻ |
|---|---|---|
| ഹോസ്റ്റിംഗ് | നിങ്ങളുടെ നോട്ട്ബുക്കിൽ ഓടുന്നു | ഹോസ്റ്റുചെയ്ത സേവനമായി, പതിപ്പിച്ച് വിപുലപ്പെടുത്തിയിട്ടുണ്ട് |
| ഐഡന്റിറ്റി | നിങ്ങളുടെ az login ടോക്കൺ |
സ്കോപ്പുചെയ്ത RBAC ഉള്ള മാനേജഡ് ഐഡന്റിറ്റി |
| റാഷ്ട്രം | ഇൻ-മെമ്മറി, റസ്റ്റാർട്ടിൽ നഷ്ടപ്പെടുന്നു | ബാഹ്യമായി (ത്രീഡ് സ്റ്റോർ, മെമ്മറി സേവനം) |
| പ്രതിഷേധം | ട്രെയ്സ്ബാക്ക് നിങ്ങൾ കാണുന്നു | റിട്രൈകൾ, ഫൾബാക്ക്, ഡെഡ്-ലെറ്റർ, അലർട്ടുകൾ |
| ചെലവ് | “ചില സെന്റുകൾ മാത്രം” | അഭ്യർത്ഥനയുടെ അടിസ്ഥാനത്തിൽ ട്രാക്ക് ചെയ്യുന്നു, റൂട്ടുചെയ്തു, കാഷ് ചെയ്തു, ബജറ്റ് ചെയ്യുന്നു |
| ഗുണമേന്മ | നിങ്ങളുടെ കണ്ണ് പരിശോധിക്കുന്നു | ഓരോ റിലീസിന് മുമ്പും സ്വയം വിലയിരുത്തുന്നു |
| വിശ്വാസം | നിങ്ങൾ ഓരോ പ്രവർത്തനവും അംഗീകരിക്കുന്നു | നയം + അപകടം ഉള്ള പ്രവർത്തനങ്ങൾക്ക് മനുഷ്യ ഇടപെടൽ |
ഈ പട്ടിക മനസ്സിലാക്കുക. താഴെ വരുന്ന ഓരോ വിഭാഗവും ഇതിലെ ഒരു വരിയ്ക്ക് സമാനമാണ്.
പൊതുവായി നിങ്ങൾ മൂന്ന് മാതൃകകൾ ഉപയോഗിക്കും, പലപ്പോഴും ചേർന്ന്.
ഏജന്റ് ഒബ്ജക്റ്റ് നിങ്ങളുടെ അപ്ലിക്കേഷൻ പ്രോസസിനുള്ളിലാണ്. നിങ്ങളുടെ കോഡ് മോഡൽ പ്രൊവൈഡറെ നേരിട്ട് വിളിക്കുന്നു; ചിന്തന ലൂപ്പ് നിങ്ങളുടെ സേവനത്തിലാകും. ഇതാണ് മുമ്പ് പാഠങ്ങളിൽ ചെയ്തതു.
ഏജന്റ് മൈക്രോസോഫ്റ്റ് ഫൗണ്ട്രിയിൽ റിസോഴ്സ് ആയി രജിസ്റ്റർ ചെയ്യപ്പെടുന്നു. Foundry ചിന്തന ലൂപ്പ് ഹോസ്റ്റ് ചെയ്യുകയും, ത്രീഡുകൾ സൂക്ഷിക്കുകയും, കോൺറന്റ് സുരക്ഷയും RBACയും പ്രയോഗിക്കുകയും, ഏജന്റിനെ Foundry പോർട്ടലിൽ കാണിക്കുകയും ചെയ്യുന്നു. നിങ്ങളുടെ ആപ്പ് തൊട്ടു തീർക്കുന്ന ക്ലയന്റായി മാറി ത്രീഡുകൾ സൃഷ്ടിക്കുകയും പ്രതികരണങ്ങൾ വായിക്കുകയും ചെയ്യുന്നു.
പല ഏജന്റുകളും (ടൂളുകളും) സെക്വൻഷ്യൽ ഘട്ടങ്ങൾ, ബ്രാഞ്ചിംഗ്, മനുഷ്യ അംഗീകാരം, ദീർഘകാല ചെക്ക്പോയിന്റുകൾ എന്നിവയുള്ള ഗ്രാഫായി ചേർന്ന് ക്രമീകരിക്കപ്പെടുന്നു. ഇത് Microsoft Agent Framework Workflows സവിശേഷതയുടെ വിനിയോഗ സ്കെയിലിലേക്കുള്ള പ്രയോഗമാണ്.
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 സ്കെയ്ൽ ചെയ്യുന്നതിൽ നിന്ന് വ്യത്യസ്തമാണ്, കാരണം ഓരോ അഭ്യർത്ഥനയും ഒരേ സമയം ചിലവേറിയ മോഡൽ, ടൂൾ കോൾ മടങ്ങിപ്പോക്ക് ചെയ്യാം. നാല് സാങ്കേതിക വിദ്യകൾ മിക്ക ഭാരം ഏറ്റെടുക്കുന്നു.
സ്റ്റേറ്റ്ലസ് അഭ്യർത്ഥന കൈകാര്യം ചെയ്യൽ. ഓരോ യൂസറുടെയും സ്റ്റേറ്റ് പ്രോസസ്സ് മെമ്മറിയിൽ സൂക്ഷിക്കരുത്. സംഭാഷണ ത്രീഡുകൾ Foundry ത്രീഡ് സ്റ്റോർ അല്ലെങ്കിൽ മെമ്മറി സേവനത്തിൽ സ്ഥിരമാക്കി ഏത് ഇൻസ്റ്റൻസ് അഭ്യർത്ഥന കൈകാര്യം ചെയ്യാനും കഴിയും. ഇതുവഴിയാണ് നിങ്ങൾ ഹൊറിസൊൻറലി സ്കെയ്ൽ ചെയ്യുന്നത് — ഇൻസ്റ്റൻസുകൾ കൂട്ടി, സ്റ്റിക്കി സെഷനുകൾ ഇല്ലാതെ.
മോഡൽ റൂട്ടിംഗ്. ഓരോ അഭ്യർത്ഥനക്കും നിങ്ങളുടെ ഏറ്റവും ശക്തമായ (അതേ സമയം ഏറ്റവും ചെലവേറിയ) മോഡലും ആവശ്യമില്ല. ലളിതമായ അഭ്യർത്ഥനകൾ — ഉദ്ദേശ്യ വർഗ്ഗീകരണം, ചെറുതായുള്ള വാസ്തവ ഉത്തരം — ചെറിയ, വേഗത്തിലുള്ള മോഡലിലേക്ക് റൂട്ടുചെയ്യുക, യഥാർത്ഥ ചിന്തനത്തിനായി വലിയ മോഡൽ മാറ്റിയിരിക്കുക. Foundry-യുടെ Model Router ഇത് ചെയ്യുന്നു, അല്ലെങ്കിൽ നിങ്ങൾ തന്നെ ലളിതമായ ക്ലാസിഫയർ നിർമിക്കാം. നിങ്ങൾ ലാബിൽ DIY പതിപ്പ് നിർമ്മിക്കും.
പ്രതികരണ കാഷിംഗ്. ചില പിന്തുണാ ചോദ്യങ്ങൾ ഏകദേശം സമാനമാണ് (“എങ്ങിനെയാണ് പാസ്വേഡ് റീസെറ്റ് ചെയ്യുന്നത്?”). സാധാരണ ചോദ്യങ്ങൾക്ക് ഉത്തരം കാഷ് ചെയ്ത് മോഡലിനെ തൊടാതെ സേർവ് ചെയ്യുക. കാഷ് ഹിറ്റ് നിരക്ക് ചെറുതായാലും ചെലവ്, ലാറ്റൻസി കുറയ്ക്കുന്നു.
സമാന്തര പ്രോസസ്സിംഗ്, ബാക്ക്പ്രഷർ. മോഡൽ പ്രൊവൈഡറും റേറ്റു പരിധികൾ ഉണ്ട്. നിങ്ങളുടെ concurrency നിയന്ത്രിക്കുക, എക്സ്പൊണീഷ്യൽ ബാക്ക്ഓഫുമായുള്ള റിട്രൈകൾ ഉപയോഗിക്കുക, നിശബ്ദമായി പരാജയപ്പെടുക (ക്യൂടിവായ “നാം അതിൽ പ്രവർത്തിക്കുന്നു” പ്രകാശനം 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-4.1-mini")
# ഈ സ്പാനിൽ ഏജന്റ് എക്സിക്യൂഷൻ സ്വയം പിന്നോട്ടം ചെയ്യപ്പെടുന്നു
customer.tierനും routed.modelനും പോലുള്ള ഗുണനിലവാരങ്ങൾ ഒരു ട്രേസുകളുടെ മതിൽ ഉത്തരം നൽകാനുള്ള ചോദ്യങ്ങളായി മാറ്റുന്നു (“എന്റർപ്രൈസ് ഉപഭോക്താക്കൾക്ക് ചെറിയ മോഡലിലേക്ക് കൂടെപ്പൊക്കുന്നത് വളരെവാറുള്ളതാണോ?”).
പ്രൊഡക്ഷൻ ഏജന്റുകളിൽ ചെലവ് ടോക്കൺസ് പ്രകാരം നിർണ്ണയിക്കപ്പെടുന്നു. മൂന്നു ലെവർസ്, പ്രാധാന്യമനുസരിച്ച്:
വിലയിരുത്തൽ ഗേറ്റുകളും ചെലവ് നിയന്ത്രണവുമാണ് ഒരേ നൈപുണ്യം രണ്ട് ഭാഗത്ത് നിന്നും നോക്കുന്നത്: വിലയിരുത്തൽ നിങ്ങൾക്ക് ഗുണമേന്മയുടെ നിലമേൽപ്പാടും പറയുന്നു, റൂട്ടിംഗ്, കാഷിംഗ് ചെലവ് നില താഴെയായി ഇಡುವുണ്ട്.
ഗവൺൻസ്. ഹോസ്റ്റുചെയ്ത ഏജന്റുകൾ Foundry-യുടെ RBAC, കോൺറന്റ് സുരക്ഷ, ഓഡിറ്റ് ലോഗിംഗ് ഉരുത്തിരിയ്ക്കുന്നു. ഓരോ ഏജന്റിനും അതിന്റെ കുറഞ്ഞ അവകാശവും(scoped) മാനേജ്ഡ് ഐഡന്റിറ്റി നൽകുക — അറിവു ബേസ് വായ_only_ , ടിക്കറ്റ് API-യ്ക്ക് സ്കോപ്പുചെയ്ത ആക്സസ്, അതിലധികമൊരു അവകാശമല്ല.
മനുഷ്യ-ഇൻ-ലൂപ്. ചില പ്രവർത്തനങ്ങൾ നേരിട്ടും ഓട്ടോമേഷന് തെറ്റാണ് — റീഫണ്ട് അനുവദിക്കൽ, അക്കൗണ്ട് ഇല്ലാതാക്കൽ, നിയമസംഘത്തിലേക്ക് ഉന്നതിപ്പിക്കൽ. Microsoft Agent Framework അംഗീകാരം ആവശ്യമായ ടൂളുകൾ പിന്തുണയ്ക്കുന്നു: ഏജന്റ് പ്രവർത്തനം നിർദേശിക്കുന്നു, എക്സിക്യൂഷൻ നിർത്തുന്നു, മനുഷ്യ അംഗീകരിക്കുന്നു അല്ലെങ്കിൽ നിഷേധിക്കുന്നു, വർക്ഫ്ലോ തുടരും. നിങ്ങൾ മുൻപ് പാഠം 6-ൽ പ്രാഥമിക രൂപം കണ്ടിരുന്നു; ഇവിടെ നിങ്ങൾ അത് വിനിയോഗിക്കുന്നു.
പ്രൊഡക്ഷനിൽ MCP. MCP നിങ്ങളുടെ ഏജന്റിന് ബാഹ്യ ടൂളുകൾ സ്റ്റാന്റേർഡ് ഇന്റർഫേസിലൂടെ ഉപഭോഗിക്കാൻ അനുവദിക്കുന്നു. പ്രൊഡക്ഷനിൽ ഓരോ MCP സെർവറും വിശ്വാസം ഇല്ലാത്ത അതിരുവഴി എന്ന് പരിഗണിക്കുക: സെർവർ പതിപ്പ് പിനിടുക, സ്കോപ്പുചെയ്ത ഐഡന്റിറ്റി ഉപയോഗിച്ചു ഓടിക്കുക, ഔട്ട്പുട്ടുകൾ സാധൂകരിക്കുക, രഹസ്യങ്ങൾ അതിലേക്ക് വെളിപ്പെടുത്തരുത്. MCP സെർവർ ഒരു ആശ്രിതമാണെന്നും ആശ്രിതങ്ങൾ പാച്ച് ചെയ്യപ്പെടുന്നു, ഓഡിറ്റ് ചെയ്യപ്പെടുന്നു, റേറ്റ് പരിധിയുണ്ട്.
flowchart TB
subgraph Dev[വികസന ശൈതി<br/>]
D1[നോട്ട്ബുക്ക്<br/>] --> D2[ഏജന്റ് ഫ്രെയിംവർക്ക്<br/>]
D2 --> D3[മോഡൽ പ്രൊവൈഡർ<br/>]
D2 --> D4[പ്രാദേശിക ഉപകരണങ്ങൾ<br/>]
end
subgraph Deploy[വിന്യാസ ശൈതി<br/>]
E1[CI പൈപ്പ്ലൈൻ<br/>] --> E2[വിലയിരുത്തൽ ഗേറ്റ്<br/>]
E2 -->|പാസ്<br/>| E3[ഫൗണ്ടറി ഏജന്റ് സർവീസ്<br/>]
E3 --> E4[വേർഷൻ ചെയ്ത ഹോസ്റ്റ് ചെയ്ത ഏജന്റ്<br/>]
end
subgraph Run[റൺടൈം ശൈതി<br/>]
F1[ക്ലയന്റ് ആപ്<br/>] --> F2[ഹോസ്റ്റ് ചെയ്ത ഏജന്റ്<br/>]
F2 --> F3[മോഡൽ റൂട്ടർ<br/>]
F2 --> F4[ആസ്യൂർ AI സെർച്ച് RAG<br/>]
F2 --> F5[മെമ്മറി സേവനം<br/>]
F2 --> F6[MCP ഉപകരണങ്ങൾ<br/>]
F2 --> F7[OTel -> ഫൗണ്ടറി ട്രേസിംഗ്<br/>]
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-4.1-mini" if is_simple(query) else "gpt-4.1"
# 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
നിങ്ങളുടെ ഏജന്റ് വിന്യസിച്ചതിന് ശേഷം, നിങ്ങളുടെ Foundry പ്രോജക്ട് എൻഡ്പോയിന്റും ഏജന്റ് നാമവും നൽകി Actions ടാബിൽ നിന്ന് ഇത് പ്രവർത്തിപ്പിക്കുക. ഫെഡറേറ്റഡ് ഐഡന്റിറ്റിക്ക് Foundry പ്രോജക്ട് പരിധിയിൽ Azure AI User റോളു വേണം. പിരമിഡ് പോലെ ലെയറുകളായി ചിന്തിക്കുക: സാധാരണദിശയിലെ പരിശോധനകൾ (തെത്താനാകുന്നതും പ്രതികരിക്കുന്നതും ആണോ?) എല്ലാ വിന്യസനത്തിലും നടത്തപ്പെടുന്നു, ഓഫ്ലൈൻ മൂല്യനിർണ്ണയം (പുറത്താഴ് ചെയ്യുന്നതിനായി മതിയാണോ?) പ്രമോഷനിനു മുൻപായി നടത്തപ്പെടുന്നു, ഓൺലൈൻ മൂല്യനിർണ്ണയം (വനംഭൂമിയിൽ എങ്ങനെയാണ് പ്രവർത്തിക്കുന്നത്?) തുടർച്ചയായി നടത്തപ്പെടുന്നു.
അസൈൻമെന്റ് തുടരുന്നതിന് മുമ്പ് നിങ്ങളുടെ മനസിലാക്കൽ പരിശോധിക്കുക.
1. ഒരു നിർമ്മാണ ഏജന്റിന്റെ “മോഡൽ” എത്രത്തോളം ആണ്, ബാക്കി എന്താണ്?
2. ഏതെന്ന് നിങ്ങളുടെ സ്വന്തം ക്ലയന്റ് ഹോസ്റ്റുചെയ്യുന്ന ഏജന്റിനെക്കാൾ ഹോസ്റ്റുചെയ്ത ഏജന്റ് തിരഞ്ഞെടുക്കും?
3. ഒരു സ്കേയിലബിൾ ഏജന്റ് തന്റെ പ്രോസസ്സ് മെമ്മറിയിൽ സ്റ്റേറ്റ്ലെസ് ആയിരിക്കണം എന്ന് എന്തുകൊണ്ട്?
4. മോഡൽ റൂട്ടിംഗ് ഏത് പ്രശ്നം പരിഹരിക്കുന്നു, ഇത് മൂല്യനിർണ്ണയവുമായി എങ്ങനെ ബന്ധപ്പെട്ടിരിക്കുന്നു?
5. “മൂല്യനിർണ്ണയ ഗേറ്റ്” എന്താണ്, അത് ജീവിതചക്രത്തിൽ എവിടെയുണ്ട്?
6. നിർമ്മാണത്തിൽ MCP സർവറെ അന്യമായ പരിധിയായി പരിഗണിക്കേണ്ടത് എന്തുകൊണ്ടാണ്?
7. നിർമ്മാണ ഏജന്റിന്റെ ചെലവിൽ ഏറ്റവും വലിയ സ്വാധീനം ചെലുത്തുന്ന ഏക മാറ്റം ഏതാണും എന്തുകൊണ്ട്?
8. customer.tier , routed.model പോലുള്ള സ്പാൻ ആട്രിബ്യൂട്ടുകൾ ശ്രദ്ധയിലേക്ക് എന്ത് പങ്ക് വഹിക്കുന്നു?
ലാബിലെ കസ്റ്റമർ സപ്പോർട്ട് ഏജന്റിനെ ഒരു പ്രത്യേക ഘടകത്തിനായി വായു: ഒരു SaaS കമ്പനിയുടെ സബ്സ്ക്രിപ്ഷൻ ബില്ലിംഗ് സപ്പോർട്ട് ഏജന്റ്.
നിങ്ങളുടെ സമർപ്പണം ചെയ്യേണ്ടത്:
get_subscription_status, get_invoice, issue_credit (ആദ്യത്തെ $50 മേലുള്ള ക്രെഡിറ്റുകൾക്ക് മനുഷ്യ അംഗീകാരം വേണം).ഒരു മാര്ക്ഡൗൺ സെല്ലിൽ ചെറു പാരഗ്രാഫ് എഴുതുക, നിങ്ങൾ തിരഞ്ഞെടുത്ത മോഡൽ റൂട്ടിംഗ് നിലയുടെയും യഥാർത്ഥ ട്രാഫിക്കിൽ അത് എങ്ങനെ പരിശോധിക്കുമെന്ന് വിശദീകരിക്കുക. ഒരുപാട് ശരിയായ ഉത്തരം ഇല്ല — നിർമ്മാണ ആശങ്കകൾ ഏകസാരമായി ബന്ധിപ്പിച്ചതിന്റെ അടിസ്ഥാനത്തിലാണ് നിങ്ങൾ വിലയിരുത്തപ്പെടുന്നത്.
ഈ പാഠത്തിൽ നിങ്ങളുടെ ഏജന്റിനെ പ്രോട്ടോടൈപ്പിൽ നിന്നും Microsoft Foundry ഉപയോഗിച്ച് നിർമ്മാണത്തിലേക്ക് മാറ്റി:
അടുത്ത പാഠം വിപരീത യാത്രയാണ്: ക്ലൗഡിലേക്ക് ഏജന്റുകൾ സ്കെയിൽ ചെയ്യുന്നതിന് പകരം, അത് ഒരു ഡെവലപ്പർ യന്ത്രത്തിലാണ് പോയി വളരെ കുറവായി പ്രാദേശികമായി പ്രവർത്തിപ്പിക്കും.
കമ്പ്യൂട്ടർ ഉപയോഗ ഏജന്റുകൾ നിർമ്മിക്കൽ (CUA)
പ്രാദേശിക AI ഏജന്റുകൾ സൃഷ്ടിക്കൽ
അറിയിപ്പ്: ഈ രേഖ AI പരിഭാഷാ സേവനം Co-op Translator ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. ഞങ്ങൾ കൃത്യതയ്ക്കായി ശ്രമിക്കുന്നുവെങ്കിലും, ഓട്ടോമേറ്റഡ് പരിഭാഷകളിൽ പിഴവുകൾ അല്ലെങ്കിൽ തെറ്റായ വിവരങ്ങൾ ഉണ്ടാകാൻ സാധ്യതയുണ്ട്. അതിന്റെ സ്വാഭാവിക ഭാഷയിലുള്ള അസൽ രേഖയാണ് പ്രാമാണികമായ ഉറവിടമായി പരിഗണിക്കേണ്ടത്. നിർണായകമായ വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ ശുപാർശ ചെയ്യുന്നു. ഈ പരിഭാഷ ഉപയോഗിച്ച് ഉണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾ അല്ലെങ്കിൽ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കായി ഞങ്ങൾ ഉത്തരവാദികളല്ല.