ai-agents-for-beginners

மைக்ரோசாஃப்ட் முகவர் கூறமைப்பை ஆய்வு செய்வோம்

Agent Framework

அறிமுகம்

இந்த பாடத்தில் பேசப்படும் বিষয়ங்கள்:

கற்றல் இலக்குகள்

இந்த பாடத்தை முடித்ததும், நீங்கள் அறிவீர்கள்:

குறியீட்டு மாதிரிகள்

Microsoft Agent Framework (MAF) குறியீட்டு மாதிரிகளை இந்த தொகுப்பில் xx-python-agent-framework மற்றும் xx-dotnet-agent-framework கோப்புகளில் காணலாம்.

மைக்ரோசாஃப்ட் முகவர் கூறமைப்பை புரிந்துகொள்வது

Framework Intro

Microsoft Agent Framework (MAF) என்பது AI முகவர்களை உருவாக்கும் மைக்ரோசாஃப்டின் ஒருங்கிணைந்த கூறமைப்பாகும். இது பல்வேறு முகவர் பயன்பாடுகளுக்கு இன்னும் ஆராய்ச்சி சூழ்நிலையிலும் பயன்படும் வகையில் தொகுத்தமைக்கப்பட்டுள்ளது:

தயாரிப்பு AI முகவர்களை வழங்க MAF இல் உள்ளடக்கப்பட்டுள்ள அம்சங்கள்:

மைக்ரோசாஃப்ட் முகவர் கூறமைப்பு பின்வரும் அம்சங்களுடன் ஒத்திசைவானதாக உள்ளது:

இப்போ நாம் இந்த அம்சங்கள் மைக்ரோசாஃப்ட் முகவர் கூறமைப்பின் முக்கிய கருத்துக்களில் எவ்வாறு பயன்படுகின்றன என்று பார்ப்போம்.

மைக்ரோசாஃப்ட் முகவர் கூறமைப்பின் முக்கிய கருத்துக்கள்

முகவர்கள்

Agent Framework

முகவர்களை உருவாக்குதல்

முகவர் உருவாக்கல் என்பது inference சேவையை (LLM வழங்குநர்) வரையறுத்து, AI முகவர் பின்பற்ற வேண்டிய வழிமுறைகளின் தொகுப்பையும் மற்றும் ஒரு name எனும் பெயரிடலைக் குறிப்பிடுவதுமாகும்:

agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent( instructions="You are good at recommending trips to customers based on their preferences.", name="TripRecommender" )

மேலே Azure OpenAI பயன்படுத்தி உள்ளது, ஆனால் Microsoft Foundry Agent Service உட்பட பல்வேறு சேவைகளைப் பயன்படுத்தி முகவர்கள் உருவாக்க முடியும்:

AzureAIAgentClient(async_credential=credential).create_agent( name="HelperAgent", instructions="You are a helpful assistant." ) as agent

OpenAI Responses, ChatCompletion APIகள்

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.", )

அல்லது MiniMax, இது பெரிய உரையாடல் சாளரங்களுடன் (204K டோக்கன்கள் வரை) OpenAI-உடை API வழங்குகிறது:

agent = OpenAIChatClient(base_url="https://api.minimax.io/v1", api_key=os.environ["MINIMAX_API_KEY"], model_id="MiniMax-M3").create_agent( name="HelpfulAssistant", instructions="You are a helpful assistant.", )

அல்லது A2A நெறிமுறையை பயன்படுத்தி தொலை முகவர்கள்:

agent = A2AAgent( name=agent_card.name, description=agent_card.description, agent_card=agent_card, url="https://your-a2a-agent-host" )

முகவர்களை இயக்குதல்

முகவர்கள் .run அல்லது .run_stream முறைகளை பயன்படுத்தி சகமில்லாத அல்லது ஓட்ட ஊர்வலம் பதில்களை இயக்கப்படுகின்றன.

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)

ஒவ்வொரு முகவர் இயக்கமும் முகவரின் பயன்படுத்தும் max_tokens, அழைக்கக் கூடிய tools மற்றும் முகவருக்கு பயன்படுத்தப்படும் model போன்ற அளவுரைகள் தனிப்பயனாக்கப்படக்கூடும்.

இது பயனர் பணிகளை முடிக்க குறிப்பிட்ட மாதிரிகள் அல்லது கருவிகள் தேவைப்படும் நேரங்களில் பயனுள்ளதாக இருக்கும்.

கருவிகள்

கருவிகள் முகவர்களை வரையறுக்கும் போது மற்றும் முகவரைக் கையாளும் போது இரண்டும் வரையறுக்கப்பட முடியும்:

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." 


# நேரடியாக ஒரு ChatAgent உருவாக்கும் போது

agent = ChatAgent( chat_client=OpenAIChatClient(), instructions="You are a helpful assistant", tools=[get_attractions]

மற்றும் முகவர்களை இயக்கும் போது:


result1 = await agent.run( "What's the best place to visit in Seattle?", tools=[get_attractions] # இந்த ஓட்டத்திற்கு மட்டும் வழங்கப்பட்ட கருவி )

முகவர் நூல்கள்

முகவர் நூல்கள் பல-திரும்பும் உரையாடல்களை கையாள பயன்படுத்தப்படுகின்றன. நூல்கள் உருவாக்கப்படுகின்றன:

நூல் உருவாக்க குறியீடு இதுமாறு உள்ளது:

# புதிய த்ரெட்டை உருவாக்கவும்.
thread = agent.get_new_thread() # அந்த த்ரெட்டுடன் முகவரியை இயக்கவும்.
response = await agent.run("Hello, I am here to help you book travel. Where would you like to go?", thread=thread)

பின்னர் நூலை சேமிக்கக்கூடிய வகையில் ஒழுங்குபடுத்து:

# ஒரு புதிய துறையை உருவாக்கவும்.
thread = agent.get_new_thread() 

# அந்த துறையுடன் முகவரியை இயக்கவும்.

response = await agent.run("Hello, how are you?", thread=thread) 

# சேமிப்பிற்கு துறையை தொடர் முறைப்படுத்தவும்.

serialized_thread = await thread.serialize() 

# சேமிப்பிலிருந்து ஏற்றிய பிறகு துறை நிலையை தொடர் முறையிலிருந்து மீட்டெடுக்கவும்.

resumed_thread = await agent.deserialize_thread(serialized_thread)

முகவர் நடுநிலைமை

முகவர்கள் கருவி மற்றும் LLMகளுடன் தொடர்பு கொண்டு பயனர் பணிகளை முடிக்கின்றனர். சில சூழ்நிலைகளில் இந்த தொடர்புகளுக்கு இடையில் செயல்பாடுகள் அல்லது கண்காணிப்பு தேவைப்படுகிறது. முகவர் நடுநிலைமை இது மூலம் சாத்தியமாகிறது:

இந்த நடுநிலைமை முகவரும் அழைக்கும் செயல்பாட்டிற்கும் இடையில் செயல் நடாத்துவதற்கு உதவுகிறது. உதாரணமாக, செயல்பாடு அழைப்பில் பதிவு பதிவு செய்யலாம்.

கீழ்காணும் குறியீட்டில் next கடைசியில் அழைக்கப்பட வேண்டியதும், அடுத்த நடுநிலைமை அல்லது செயல்பாடு இருக்கிறதோ என்பதைக் குறிப்பிடுகிறது.

async def logging_function_middleware(
    context: FunctionInvocationContext,
    next: Callable[[FunctionInvocationContext], Awaitable[None]],
) -> None:
    """Function middleware that logs function execution."""
    # முன்-செயலாக்கம்: செயல்பாடு செயல்படுத்துவதற்கு முன் பதிவுசெய்
    print(f"[Function] Calling {context.function.name}")

    # அடுத்து உள்ள மிட்‌லுஸர் அல்லது செயல்பாடு செயல்படுத்த தொடரவும்
    await next(context)

    # பிந்தைய செயலாக்கம்: செயல்பாடு செயல்படுத்தப்பட்ட பிறகு பதிவுசெய்
    print(f"[Function] {context.function.name} completed")

இந்த நடுநிலைமை முகவரும் LLMக்குமான கோரிக்கைகளுக்கு இடையே செயல்பாடுகள் அல்லது பதிவு செய்ய உதவுகிறது.

இதில் AI சேவைக்குக் கட்டணப்படுத்தப்படும் messages போன்ற முக்கிய தகவல்கள் உள்ளன.

async def logging_chat_middleware(
    context: ChatContext,
    next: Callable[[ChatContext], Awaitable[None]],
) -> None:
    """Chat middleware that logs AI interactions."""
    # முன்னணி செயலாக்கம்: AI அழைப்புக்கு முன் பதிவு செய்யவும்
    print(f"[Chat] Sending {len(context.messages)} messages to AI")

    # அடுத்த மிடில்வேர் அல்லது AI சேவைக்கு தொடரவும்
    await next(context)

    # பின் செயலாக்கம்: AI பதிலுக்கு பிறகு பதிவு செய்யவும்
    print("[Chat] AI response received")

முகவர் நினைவகம்

Agentic Memory பாடத்தில் பேசப்பட்டபோல், நினைவகம் முகவரின் பல சூழல்களில் செயல்பட உதவும் முக்கிய கூறு ஆகும். MAF பல்வேறு நினைவக வகைகளை வழங்குகிறது:

நினைவகத்தில் சேமிப்பு

இது பயன்பாட்டு நேரத்தில் நூல்களில் சேமிக்கப்பட்ட நினைவாகும்.

# புதிய திரெட்னை உருவாக்கவும்.
thread = agent.get_new_thread() # அந்த திரெட்டுடன் முகவரியை இயக்குக.
response = await agent.run("Hello, I am here to help you book travel. Where would you like to go?", thread=thread)

நிலையான செய்திகள்

இது வெவ்வேறு அமர்வுகளில் உரையாடல் வரலாற்றை சேமிக்க பயன்படுத்தப்படும். இது chat_message_store_factory மூலம் வரையறுக்கப்படுகிறது:

from agent_framework import ChatMessageStore

# ஒரு தனிப்பயன் செய்தி கடை உருவாக்கவும்
def create_message_store():
    return ChatMessageStore()

agent = ChatAgent(
    chat_client=OpenAIChatClient(),
    instructions="You are a Travel assistant.",
    chat_message_store_factory=create_message_store
)

இடையில் நினைவகம்

முகவர்கள் இயக்கப்படும் முன் சூழலுக்கு இது சேர்க்கப்படுகிறது. இது mem0 போன்ற வெளி சேவைகளில் சேமிக்கப்படலாம்:

from agent_framework.mem0 import Mem0Provider

# மேம்பட்ட நினைவக திறன்களுக்கு Mem0 ஐ பயன்படுத்துதல்
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
)

முகவர் கண்காணிப்பு

கண்காணிப்பு நம்பகமான மற்றும் பராமரிக்கக்கூடிய முகவர் அமைப்புகளை உருவாக்க முக்கியம். MAF OpenTelemetry உடன் இணைந்து கண்காணிப்பு மற்றும் அளவைகள் வழங்குகிறது.

from agent_framework.observability import get_tracer, get_meter

tracer = get_tracer()
meter = get_meter()
with tracer.start_as_current_span("my_custom_span"):
    # எதையாவது செய்யுங்கள்
    pass
counter = meter.create_counter("my_custom_counter")
counter.add(1, {"key": "value"})

பணிச்சுழற்சிகள்

MAF பணிச்சுழற்சிகள் என்பதை முன்நிர்ணயிக்கப்பட்ட படிகள் அமைப்பாக வழங்குகிறது, இதில் AI முகவர்கள் கூறுகளாக இருக்கின்றனர்.

பணிச்சுழற்சிகள் கட்டுப்பாட்டை மேம்படுத்தும் வேறுபட்ட கூறுகளைக் கொண்டிருக்கின்றன. பணிச்சுழற்சிகள் பல-முகவர் ஒருங்கிணைப்பு மற்றும் சேமிப்பு புள்ளிகள் கொண்டுள்ளதாலும் பணிச்சுழற்சி நிலைகளை சேமிக்க உதவுகிறது.

பணிச்சுழற்சியின் முக்கிய கூறுகள்:

இயக்கும் கூறுகள் (Executors)

இயக்கும் கூறுகள் உள்ளீட்டு செய்திகளை பெற்று, ஒதுக்கப்பட்ட பணிகளைச் செய்து, வெளிப்படையான செய்தியை உருவாக்குகின்றன. இது பணிச்சுழற்சியை முன்னெடுத்து பெரிய பணியை முடிக்க உதவுகிறது. இயக்கும் கூறுகள் AI முகவரோ அல்லது தனிப்பயன் தர்க்கமாக இருக்கலாம்.

எட்ஜ்கள்

எட்ஜ்கள் மூலம் பணிச்சுழற்சியில் செய்திகள் ஓட்டத்தை வரையறுக்கலாம். இவை:

நேரடி எட்ஜ்கள் - இயக்கும் கூறுகளுக்கு இடையேயான எளிய ஒருக்கு ஒரு இணைப்புகள்:

from agent_framework import WorkflowBuilder

builder = WorkflowBuilder()
builder.add_edge(source_executor, target_executor)
builder.set_start_executor(source_executor)
workflow = builder.build()

நிலை முறை நாட்கள்(Conditional Edges) - குறிப்பிட்ட நிபந்தனை பூர்த்திக் செய்யும்போது செயல்படும். எடுத்துக்காட்டு, ஓட்டல்கள் கிடைக்காமை நிலைத் தோன்றும்போது, இயக்கும் கூறு மற்ற விருப்பங்களை பரிந்துரைக்கலாம்.

மாற்று வழி எட்ஜ்கள்(Switch-case Edges) - நிபந்தனைகளின் அடிப்படையில் செய்திகள் வேறுபட்ட இயக்கும் கூறுகளுக்கு செல்லும். உதாரணம், பயண வாடிக்கையாளர் முன்னுரிமை அணுகல் இருந்தால், அவர்களின் பணிகள் வேறு பணிச்சுழற்சியில் கையாளப்படும்.

பகிர்தல் எட்ஜ்கள்(Fan-out Edges) - ஒரு செய்தியை பல இலக்குகளுக்கு அனுப்பு.

சேகரிக்கும் எட்ஜ்கள்(Fan-in Edges) - பல இயக்கும் கூறுகளிலிருந்து செய்திகளை சேகரித்து ஒரு இலக்குக்கு அனுப்பல்.

நிகழ்வுகள்

பணிச்சுழற்சிகளுக்குள் மேம்பட்ட கண்காணிப்பை வழங்க MAF பின்வரும் நிகழ்வுகளை கொண்டுள்ளது:

மேம்பட்ட MAF மாதிரிகள்

மேல் பகுதிகள் மைக்ரோசாஃப்ட் முகவர் கூறமைப்பின் முக்கிய கருத்துக்களை வழங்குகின்றன. மேலும் சிக்கலான முகவர்களை உருவாக்கும் போது, பின்வரும் மேம்பட்ட மாதிரிகளை பரிசீலிக்கவும்:

Microsoft Foundry இல் LangChain / LangGraph முகவர்களை வைத்திருத்தல்

Microsoft Agent Framework பகிர்ந்துகொள்ளக்கூடிய கூறமைப்பாகும் — நீங்கள் MAF மூலம் எழுதப்பட்ட முகவர்களுக்கு மட்டுமல்ல. ஏற்கனவே LangChain அல்லது LangGraph உடன் உருவாக்கிய முகவர் இருந்தால், அதை Microsoft Foundry வைத்திருக்கும் முகவராக இயக்க முடியும், அப்போது Foundry இயக்க நேரம், அமர்வுகள், அளவை, அடையாள மற்றும் நெறிமுறை முடிவுகளை மேலாண்மை செய்வது, உங்கள் முகவர் தர்க்கம் LangGraph இல் இருக்கும்.

இது langchain_azure_ai.agents.hosting தொகுப்பால் செய்யப்படுகிறது, இது LangGraph வலைப் பெரிமாணத்தை Foundry வைத்திருக்கும் முகவர்கள் பயன்படுத்தும் ஒரே நெறிமுறைகளுக்கு வெளிக்காட்டுகிறது.

1. hosting கூடுதல் தொகுப்பை நிறுவுக:

pip install -U "langchain-azure-ai[hosting]>=1.2.4" azure-identity

hosting கூடுதல் Foundry நெறிமுறை நூலகங்களை நிறுவுகிறது: azure-ai-agentserver-responses (OpenAI-உடை /responses முடிவு) மற்றும் azure-ai-agentserver-invocations (பொதுவான /invocations முடிவு).

2. ஓர் வைத்திருக்கும் நெறிமுறையை தேர்ந்தெடுக்க:

நெறிமுறை வைத்திருக்கும் வகுப்பு முடிவு எப்போது பயன்படுத்தவும்
Responses ResponsesHostServer /responses OpenAI-உடை உரையாடல், ஓட்ட ஊர்வலம், பதில் வரலாறு மற்றும் உரையாடல் நூல் ஆரம்பிப்பிற்கு பரிந்துரைக்கப்படும் இயல்பு.
Invocations InvocationsHostServer /invocations தனிப்பயன் JSON வடிவமைப்பு, webhook-ஒன்றான முடிவு அல்லது உரையாடல் அல்லாத செயலாக்கத்திற்கு.

Responses API Foundry இல் முகவர் முறையில் முதன்மை API ஆக இருப்பதால், பெரும்பான்மையான முகவர்களுக்கு ResponsesHostServer மூலம் துவங்கு.

3. சுற்றுச் சூழல் மாறிகளைக் கட்டமைக்க (முதலில் az login செய்து DefaultAzureCredential அங்கீகாரம் பெற):

export FOUNDRY_PROJECT_ENDPOINT="https://<resource>.services.ai.azure.com/api/projects/<project>"
export FOUNDRY_MODEL_NAME="gpt-5-mini"

முகவர் பின்னர் Foundry இல் வைத்திருக்கும் முகவராக இயங்கும்போது, தளம் FOUNDRY_PROJECT_ENDPOINT ஐ தானாக சேர்க்கும்.

4. Responses நெறிமுறையில் LangGraph முகவரைக் வெளிப்படுத்த:

import os

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from langchain.agents import create_agent
from langchain_openai import ChatOpenAI
from langchain_azure_ai.agents.hosting import ResponsesHostServer

_AZURE_AI_SCOPE = "https://ai.azure.com/.default"


def build_chat_model() -> ChatOpenAI:
    project_endpoint = os.environ["FOUNDRY_PROJECT_ENDPOINT"].rstrip("/")
    deployment = os.environ.get("FOUNDRY_MODEL_NAME", "gpt-5-mini")
    credential = DefaultAzureCredential()
    project = AIProjectClient(endpoint=project_endpoint, credential=credential)
    openai_client = project.get_openai_client()
    token_provider = get_bearer_token_provider(credential, _AZURE_AI_SCOPE)

    # ChatOpenAI இங்கு Foundry திட்டத்தின் OpenAI-ஐ பொருந்தக்கூடிய (Responses) முடிவுவாய்ச் சேவையை குறிக்கின்றது.
    return ChatOpenAI(
        model=deployment,
        base_url=str(openai_client.base_url),
        api_key=token_provider,
    )


def main() -> None:
    graph = create_agent(build_chat_model(), tools=[])
    port = int(os.environ.get("PORT", "8088"))
    ResponsesHostServer(graph).run(port=port)


if __name__ == "__main__":
    main()

python main.py விட்டு உள்ளூராக இயக்கி, பின்னர் http://localhost:8088/responses க்கு Responses கோரிக்கை அனுப்புங்கள்.

முக்கிய நடத்தை:

இந்த எடுத்துக்காட்டின் இயங்கக்கூடிய பதிப்பு code-samples/14-langchain-hosted-agent.py இல் உள்ளது. முழு அறிவுரைக்கு (Invocations நெறிமுறை, தனிப்பயன் கோரிக்கை வடிவங்கள் மற்றும் பிரச்சினை தீர்வு) Host LangGraph agents as Foundry hosted agents பார்க்கவும்.

குறியீட்டு மாதிரிகள்

மைக்ரோசாஃப்ட் முகவர் கூறமைப்புக்கான குறியீட்டு மாதிரிகள் இந்த தொகுப்பில் xx-python-agent-framework மற்றும் xx-dotnet-agent-framework கோப்புகளில் உள்ளன.

மைக்ரோசாஃப்ட் முகவர் கூறமைப்பைப் பற்றி மேலும் கேள்விகள் உள்ளதா?

மற்ற கற்றுள்ளவர்களைச் சந்திக்க, அலுவலக நேரங்களில் கலந்துகொள்ள மற்றும் உங்கள் AI முகவர் தொடர்பான கேள்விகளுக்கு பதில் பெற Microsoft Foundry Discord இல் சேரவும்.

முந்தய பாடம்

AI முகவர்களின் நினைவகம்

அடுத்த பாடம்

கணினி பயன்முறை முகவர்கள் (CUA) உருவாக்கல்


மறுப்பு: இந்த ஆவணம் AI மொழிபெயர்ப்பு சேவை Co-op Translator பயன்படுத்தி மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் துல்லியத்திற்காக முயற்சி செய்துள்ளோம், ஆனால் தானாக செய்யப்படும் மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறுகள் இருக்கலாம் என்பதை கவனத்தில் கொள்ளவும். அசல் ஆவணம் அதன் தாய்மொழியில் அதிகாரப்பூர்வ ஆதாரமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்நுட்பமான மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பைப் பயன்படுத்துவதால் ஏற்படும் எந்த தவறான புரிதல்கள் அல்லது தவறான விளக்கத்திற்கும் நாங்கள் பொறுப்பில்வில்லை.