![]()
Somu hii itajumuisha:
Baada ya kukamilisha somu hii, utajua jinsi ya:
Sampuli za msimbo kwa Microsoft Agent Framework (MAF) zinaweza kupatikana katika hazina hii chini ya faili za xx-python-agent-framework na xx-dotnet-agent-framework.

Microsoft Agent Framework (MAF) ni mfumo wa pamoja wa Microsoft kwa ajili ya kujenga mawakala wa AI. Inatoa unyumbufu wa kushughulikia aina mbalimbali za matumizi ya wakala kama inavyoonekana katika mazingira ya uzalishaji na utafiti ikiwa ni pamoja na:
Ili kuwasilisha Wakala AI katika Uzalishaji, MAF pia ina vipengele vilivyojumuishwa vya:
Mfumo wa Microsoft Agent pia unalenga kuwa rafiki wa mzunguko kwa:
Tuchunguze jinsi vipengele hivi vinavyotumika kwa baadhi ya dhana kuu za Mfumo wa Microsoft Agent.

Kuunda Mawakala
Uundaji wa wakala hufanywa kwa kufafanua huduma ya inference (Mtoa LLM), seti ya maelekezo kwa Wakala wa AI kufuata, na jina lililopewa:
agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent( instructions="You are good at recommending trips to customers based on their preferences.", name="TripRecommender" )
Hapo juu inatumia Azure OpenAI lakini mawakala yanaweza kuundwa kwa kutumia huduma mbalimbali ikiwa ni pamoja na Microsoft Foundry Agent Service:
AzureAIAgentClient(async_credential=credential).create_agent( name="HelperAgent", instructions="You are a helpful assistant." ) as agent
API za OpenAI Responses, ChatCompletion
agent = OpenAIResponsesClient().create_agent( name="WeatherBot", instructions="You are a helpful weather assistant.", )
agent = OpenAIChatClient().create_agent( name="HelpfulAssistant", instructions="You are a helpful assistant.", )
au MiniMax, ambayo hutoa API inayolingana na OpenAI yenye dirisha kubwa la muktadha (hadi tokens 204K):
agent = OpenAIChatClient(base_url="https://api.minimax.io/v1", api_key=os.environ["MINIMAX_API_KEY"], model_id="MiniMax-M2.7").create_agent( name="HelpfulAssistant", instructions="You are a helpful assistant.", )
au mawakala wa mbali kwa kutumia itifaki ya A2A:
agent = A2AAgent( name=agent_card.name, description=agent_card.description, agent_card=agent_card, url="https://your-a2a-agent-host" )
Kuendesha Mawakala
Mawakala huendeshwa kwa kutumia mbinu .run au .run_stream kwa majibu yasiyo ya mtiririko au ya mtiririko.
result = await agent.run("What are good places to visit in Amsterdam?")
print(result.text)
async for update in agent.run_stream("What are the good places to visit in Amsterdam?"):
if update.text:
print(update.text, end="", flush=True)
Kiasi cha kila mara cha kuendesha wakala kinaweza pia kuwa na chaguo za kubinafsisha vigezo kama max_tokens vinavyotumiwa na wakala, tools ambazo wakala anaweza kuitisha, na hata model yenyewe inayotumika kwa wakala.
Hii ni muhimu katika kesi ambapo mifano maalum au zana zinahitajika kumaliza kazi ya mtumiaji.
Zana
Zana zinaweza kufafanuliwa wakati wa kufafanua wakala:
def get_attractions( location: Annotated[str, Field(description="The location to get the top tourist attractions for")], ) -> str: """Get the top tourist attractions for a given location.""" return f"The top attractions for {location} are."
# Wakati wa kuunda ChatAgent moja kwa moja
agent = ChatAgent( chat_client=OpenAIChatClient(), instructions="You are a helpful assistant", tools=[get_attractions]
na pia wakati wa kuendesha wakala:
result1 = await agent.run( "What's the best place to visit in Seattle?", tools=[get_attractions] # Zana iliyotolewa kwa ajili ya kukimbia hii tu )
Nyuzi za Wakala
Nyuzi za Wakala hutumika kushughulikia mazungumzo yenye kurudia-rudia. Nyuzi zinaweza kuundwa kwa:
get_new_thread() ambayo inaruhusu nyuzi kuhifadhiwa kwa mudaIli kuunda nyuzi, msimbo ni kama ifuatavyo:
# Unda thread mpya.
thread = agent.get_new_thread() # Endesha wakala na thread.
response = await agent.run("Hello, I am here to help you book travel. Where would you like to go?", thread=thread)
Kisha unaweza kusafirisha nyuzi kuhifadhiwa kwa matumizi ya baadaye:
# Unda thread mpya.
thread = agent.get_new_thread()
# Endesha wakala na thread.
response = await agent.run("Hello, how are you?", thread=thread)
# Serialize thread kwa ajili ya uhifadhi.
serialized_thread = await thread.serialize()
# Deserialize hali ya thread baada ya kupakiwa kutoka kwa uhifadhi.
resumed_thread = await agent.deserialize_thread(serialized_thread)
Middleware ya Wakala
Mawakala hufanya kazi na zana na LLM kumaliza kazi za mtumiaji. Katika matukio fulani, tunataka kutekeleza au kufuatilia kati ya mwingiliano huu. Middleware ya wakala inatuwezesha kufanya hivi kupitia:
Middleware ya Kazi
Middleware hii inaturuhusu kutekeleza kitendo kati ya wakala na kazi/zaana ambayo itaitwa. Mfano wa matumizi ni pale ambapo unaweza kutaka kufanya ukusanyaji wa matukio ya kuitwa kwa kazi.
Katika msimbo wa chini next huamua kama middleware inayofuata au kazi halisi inapaswa kuitwa.
async def logging_function_middleware(
context: FunctionInvocationContext,
next: Callable[[FunctionInvocationContext], Awaitable[None]],
) -> None:
"""Function middleware that logs function execution."""
# Utangulizi: Andika kumbukumbu kabla ya utekelezaji wa kazi
print(f"[Function] Calling {context.function.name}")
# Endelea kwa middleware inayofuata au utekelezaji wa kazi
await next(context)
# Ufuatiliaji wa mwisho: Andika kumbukumbu baada ya utekelezaji wa kazi
print(f"[Function] {context.function.name} completed")
Middleware ya Mazungumzo
Middleware hii inaturuhusu kutekeleza au kurekodi kitendo kati ya wakala na maombi kati ya LLM.
Hii ina habari muhimu kama vile messages zinazotumwa kwa huduma ya AI.
async def logging_chat_middleware(
context: ChatContext,
next: Callable[[ChatContext], Awaitable[None]],
) -> None:
"""Chat middleware that logs AI interactions."""
# Usindikaji wa awali: Rekodi kabla ya wito la AI
print(f"[Chat] Sending {len(context.messages)} messages to AI")
# Endelea kwa middleware inayofuata au huduma ya AI
await next(context)
# Usindikaji wa baadae: Rekodi baada ya jibu la AI
print("[Chat] AI response received")
Kumbukumbu ya Wakala
Kama ilivyozungumzwa katika somu ya Agentic Memory, kumbukumbu ni kipengele muhimu kuwezesha wakala kufanya kazi kwenye muktadha mbalimbali. MAF hutoa aina kadhaa za kumbukumbu:
Kuhifadhi Kumbukumbu Ndani ya Kumbukumbu
Hii ni kumbukumbu iliyohifadhiwa katika nyuzi wakati wa kuendesha programu.
# Unda thread mpya.
thread = agent.get_new_thread() # Endesha wakala na thread.
response = await agent.run("Hello, I am here to help you book travel. Where would you like to go?", thread=thread)
Ujumbe Endelevu
Kumbukumbu hii hutumiwa kuhifadhi historia ya mazungumzo kati ya vikao tofauti. Imefafanuliwa kwa kutumia chat_message_store_factory :
from agent_framework import ChatMessageStore
# Unda duka la ujumbe la kipekee
def create_message_store():
return ChatMessageStore()
agent = ChatAgent(
chat_client=OpenAIChatClient(),
instructions="You are a Travel assistant.",
chat_message_store_factory=create_message_store
)
Kumbukumbu Dinamiki
Kumbukumbu hii inaongezwa kwenye muktadha kabla mawakala kuendesha. Kumbukumbu hizi zinaweza kuhifadhiwa katika huduma za nje kama mem0:
from agent_framework.mem0 import Mem0Provider
# Kutumia Mem0 kwa uwezo wa hali ya juu wa kumbukumbu
memory_provider = Mem0Provider(
api_key="your-mem0-api-key",
user_id="user_123",
application_id="my_app"
)
agent = ChatAgent(
chat_client=OpenAIChatClient(),
instructions="You are a helpful assistant with memory.",
context_providers=memory_provider
)
Uangalifu wa Wakala
Uangalifu ni muhimu kujenga mifumo ya wakala inayotegemewa na inayotunzwa. MAF inaunganishwa na OpenTelemetry kutoa njia za kufuatilia na meter kwa uangalifu bora.
from agent_framework.observability import get_tracer, get_meter
tracer = get_tracer()
meter = get_meter()
with tracer.start_as_current_span("my_custom_span"):
# fanya kitu
pass
counter = meter.create_counter("my_custom_counter")
counter.add(1, {"key": "value"})
MAF inatoa mifumo ya kazi ambayo ni hatua zilizobainishwa kabla kumaliza kazi na kujumuisha mawakala wa AI kama vipengele katika hatua hizo.
Mifumo ya kazi inajumuisha vipengele vyenye kuruhusu mzunguko bora wa kudhibiti. Mifumo ya kazi pia inaruhusu uratibu wa mawakala wengi na kuhifadhi hatua kwa ajili ya kuhifadhi hali ya mfumo.
Vipengele vikuu vya mfumo wa kazi ni:
Watekelezaji
Watekelezaji hupokea ujumbe wa ingizo, kutekeleza kazi walizopewa, na kutoa ujumbe wa matokeo. Hii husogeza mfumo wa kazi kuelekea kumaliza kazi kubwa. Watekelezaji wanaweza kuwa wakala wa AI au mantiki maalum.
Mikondo
Mikondo hutumika kufafanua mtiririko wa ujumbe katika mfumo wa kazi. Hii inaweza kuwa:
Mikondo ya Moja kwa Moja - Muunganisho rahisi wa mmoja kwa mmoja kati ya watekelezaji:
from agent_framework import WorkflowBuilder
builder = WorkflowBuilder()
builder.add_edge(source_executor, target_executor)
builder.set_start_executor(source_executor)
workflow = builder.build()
Mikondo Yenye Masharti - Huitwa baada ya hali fulani kutimizwa. Kwa mfano, wakati vyumba vya hoteli havipatikani, mtendaji anaweza kupendekeza chaguzi zingine.
Mikondo ya Swichi-matumizi - Kuongoza ujumbe kwa watekelezaji mbalimbali kulingana na masharti yaliyofafanuliwa. Kwa mfano, ikiwa mteja wa usafiri ana upatikanaji wa kipaumbele na kazi zao zitatendewa kupitia mfumo mwingine.
Mikondo ya Kuenea - Kutuma ujumbe mmoja kwa malengo mengi.
Mikondo ya Kukusanya - Kukusanya ujumbe mbalimbali kutoka kwa watekelezaji tofauti na kutuma kwa lengo moja.
Matukio
Ili kutoa uangalifu bora katika mifumo ya kazi, MAF inatoa matukio yaliyojengewa kwa ajili ya utekelezaji ikiwa ni pamoja na:
WorkflowStartedEvent - Utekelezaji wa mfumo wa kazi unaanzaWorkflowOutputEvent - Mfumo wa kazi unatoa matokeoWorkflowErrorEvent - Mfumo wa kazi unakutana na kosaExecutorInvokeEvent - Mtendaji anaanza kuchakataExecutorCompleteEvent - Mtendaji anakamilisha kuchakataRequestInfoEvent - Ombi limefanywaSehemu zilizo juu zinashughulikia dhana kuu za Mfumo wa Microsoft Agent. Unapojenga mawakala tata zaidi, hapa kuna mifumo ya juu ya kuzingatia:
Sampuli za msimbo kwa Mfumo wa Microsoft Agent zinaweza kupatikana katika hazina hii chini ya faili za xx-python-agent-framework na xx-dotnet-agent-framework.
Jiunge na Microsoft Foundry Discord kukutana na wasomaji wengine, kuhudhuria saa za ofisi na kupata majibu ya maswali yako kuhusu Wakala wa AI.
Kielelezo cha majibu:
Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI Co-op Translator. Wakati tunajitahidi kwa usahihi, tafadhali fahamu kuwa tafsiri za otomatiki zinaweza kuwa na makosa au ukosefu wa usahihi. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inashauriwa. Hatuwajibiki kwa kutoelewana au tafsiri potofu zinazotokana na matumizi ya tafsiri hii.