แชร์ผ่าน


ความสามารถในการสังเกตของตัวแทน

สำคัญ

คุณจําเป็นต้องเป็นส่วนหนึ่งของโปรแกรมการแสดงตัวอย่าง Frontier เพื่อเข้าถึง Microsoft Agent 365 ก่อน Frontier เชื่อมต่อคุณโดยตรงกับนวัตกรรม AI ล่าสุดของ Microsoft การแสดงตัวอย่างในส่วนหน้าจะต้องอยู่ภายใต้ข้อกําหนดการแสดงตัวอย่างที่มีอยู่ของข้อตกลงของลูกค้าของคุณ เนื่องจากคุณลักษณะเหล่านี้ยังคงอยู่ในการพัฒนา ความพร้อมใช้งานและความสามารถของพวกเขาอาจเปลี่ยนแปลงเมื่อเวลาผ่านไป

หากต้องการเข้าร่วมในระบบนิเวศของ Agent 365 คุณต้องเพิ่มความสามารถในการสังเกตการณ์ของ Agent 365 ลงในตัวแทนของคุณ การสังเกตการณ์ของตัวแทน 365 สร้างขึ้นบน OpenTelemetry (OTel) และมีเฟรมเวิร์กแบบครบวงจรสําหรับการจับภาพการวัดและส่งข้อมูลทางไกลอย่างสม่ําเสมอและปลอดภัยทั่วทั้งแพลตฟอร์มของบริษัทตัวแทนทั้งหมด ด้วยการใช้คอมโพเนนต์ที่จําเป็นนี้ คุณสามารถให้ผู้ดูแลระบบ IT ตรวจสอบกิจกรรมของบริษัทตัวแทนของคุณใน Microsoft Admin Center (MAC) และอนุญาตให้ทีมรักษาความปลอดภัยใช้ Defender และ Purview สําหรับการตรวจหาการปฏิบัติตามกฎระเบียบและการตรวจจับภัยคุกคาม

ประโยชน์ที่สำคัญ

  • การมองเห็นแบบครบวงจร: จับภาพการวัดและส่งข้อมูลทางไกลที่ครอบคลุมสําหรับการเรียกใช้ตัวแทนทุกคน รวมถึงเซสชัน การเรียกใช้เครื่องมือ และข้อยกเว้น ช่วยให้คุณตรวจสอบย้อนกลับได้เต็มรูปแบบบนแพลตฟอร์ม
  • การเปิดใช้งานระบบความปลอดภัยและการปฏิบัติตามกฎระเบียบ: ป้อนบันทึกการตรวจสอบแบบรวมเข้าไปยัง Defender และ Purview เปิดใช้งานสถานการณ์ความปลอดภัยขั้นสูงและการรายงานการปฏิบัติตามกฎระเบียบสําหรับตัวแทนของคุณ
  • ความยืดหยุ่นข้ามแพลตฟอร์ม: สร้างตามมาตรฐาน OTel และสนับสนุนรันไทม์และแพลตฟอร์มที่หลากหลาย เช่น Copilot Studio, Foundry และเฟรมเวิร์กตัวแทนในอนาคต
  • ประสิทธิภาพในการดําเนินงานสําหรับผู้ดูแลระบบ: ให้ความสามารถในการสังเกตการณ์แบบรวมศูนย์ใน MAC ลดเวลาการแก้ไขปัญหาและปรับปรุงการกํากับดูแลด้วยการควบคุมการเข้าถึงตามบทบาทสําหรับทีมไอทีที่จัดการตัวแทนของคุณ

การติดตั้ง

ใช้คําสั่งเหล่านี้เพื่อติดตั้งโมดูลความสามารถในการสังเกตได้สําหรับภาษาที่สนับสนุนโดย Agent 365

pip install microsoft-agents-a365-observability-core
pip install microsoft-agents-a365-runtime

การตั้งค่าคอนฟิก

ตัวแปรสภาพแวดล้อมที่จําเป็นสําหรับการสังเกตการณ์คือ:

ตัวแปรของสภาพแวดล้อม รายละเอียด
ENABLE_OBSERVABILITY=true ค่าสถานะเพื่อเปิด/ปิดใช้งานการติดตาม ตามค่าเริ่มต้น
ENABLE_A365_OBSERVABILITY_EXPORTER=true True ส่งออกบันทึกไปยังบริการของเรา มิฉะนั้นจะกลับสู่ตัวส่งออกคอนโซล
from microsoft_agents_a365.observability.core import config

def token_resolver(agent_id: str, tenant_id: str) -> str | None:
    # Implement secure token retrieval here
    return "Bearer <token>"

config.configure(
    service_name="my-agent-service",
    service_namespace="my.namespace",
    token_resolver=token_resolver,
)

ไม่รวมตัวแก้ไขโทเค็นในการเข้าสู่ระบบคอนโซล

แอตทริบิวต์ของรูป

ใช้ BaggageBuilder เพื่อตั้งค่าข้อมูลตามบริบทที่ดําเนินการผ่านทุกช่วงเวลาในคําขอ SDK ใช้ SpanProcessor สําเนารายการสัมภาระที่ไม่ว่างทั้งหมดไปยังช่วงที่เริ่มต้นใหม่โดยไม่ต้องเขียนทับแอตทริบิวต์ที่มีอยู่

from microsoft_agents_a365.observability.core.middleware.baggage_builder import BaggageBuilder

with (
    BaggageBuilder()
    .tenant_id("tenant-123")
    .agent_id("agent-456")
    .correlation_id("corr-789")
    .build()
):
    # Any spans started in this context will receive these as attributes
    pass

ตัวแก้ไขโทเค็น

เมื่อใช้ตัวส่งออกตัวแทน 365 คุณต้องมีฟังก์ชันตัวแก้ไขโทเค็นที่ส่งกลับโทเค็นการรับรองความถูกต้อง เมื่อใช้ SDK ความสามารถในการสังเกตการณ์ของตัวแทน 365 ด้วยเฟรมเวิร์กตัวแทนโฮสติ้งคุณสามารถสร้างโทเค็นโดยใช้ TurnContext จากกิจกรรมของตัวแทน

from microsoft_agents.activity import load_configuration_from_env
from microsoft_agents.authentication.msal import MsalConnectionManager
from microsoft_agents.hosting.aiohttp import CloudAdapter
from microsoft_agents.hosting.core import (
    AgentApplication,
    Authorization,
    MemoryStorage,
    TurnContext,
    TurnState,
)
from microsoft_agents_a365.runtime.environment_utils import (
    get_observability_authentication_scope,
)

agents_sdk_config = load_configuration_from_env(environ)

STORAGE = MemoryStorage()
CONNECTION_MANAGER = MsalConnectionManager(**agents_sdk_config)
ADAPTER = CloudAdapter(connection_manager=CONNECTION_MANAGER)
ADAPTER.use(TranscriptLoggerMiddleware(ConsoleTranscriptLogger()))
AUTHORIZATION = Authorization(STORAGE, CONNECTION_MANAGER, **agents_sdk_config)

AGENT_APP = AgentApplication[TurnState](
    storage=STORAGE, adapter=ADAPTER, authorization=AUTHORIZATION, **agents_sdk_config
)

@AGENT_APP.activity("message", auth_handlers=["AGENTIC"])
async def on_message(context: TurnContext, _state: TurnState):
    aau_auth_token = await AGENT_APP.auth.exchange_token(
                        context,
                        scopes=get_observability_authentication_scope(),
                        auth_handler_id="AGENTIC",
                    )
    # cache this auth token and return via token resolver

การใช้เครื่องมือโค้ด

การใช้เครื่องมืออัตโนมัติจะฟังเฟรมเวิร์กตัวแทน (SDKs) สัญญาณการวัดและส่งข้อมูลทางไกลที่มีอยู่โดยอัตโนมัติสําหรับการติดตามและส่งต่อไปยังบริการสังเกตการณ์ตัวแทน 365 วิธีนี้จะช่วยลดความจําเป็นสําหรับนักพัฒนาในการเขียนรหัสตรวจสอบด้วยตนเอง ทําให้การตั้งค่าง่ายขึ้น และช่วยให้มั่นใจว่ามีการติดตามประสิทธิภาพการทํางานที่สอดคล้องกัน

เครื่องมืออัตโนมัติได้รับการสนับสนุนใน SDK และแพลตฟอร์มหลายตัว:

แฟลตฟอร์ม SDK / เฟรมเวิร์กที่รองรับ
ตาข่าย เฟรมเวิร์กเอเจนต์ Semantic Kernel
หลาม เคอร์เนลความหมาย, OpenAI, กรอบตัวแทน, LangChain
Node.js OpenAI

หมายเหตุ

การสนับสนุนสําหรับการใช้เครื่องมืออัตโนมัติแตกต่างกันไปตามแพลตฟอร์มและการใช้งาน SDK

Semantic Kernel

การใช้เครื่องมืออัตโนมัติจําเป็นต้องใช้ตัวสร้างสัมภาระ ตั้งค่า ID ตัวแทนและรหัสผู้เช่าโดยใช้BaggageBuilder

ถอนการติดตั้งแพคเกจ

pip install microsoft-agents-a365-observability-extensions-semantic-kernel

กําหนดค่าความสามารถในการสังเกตการณ์

from microsoft_agents_a365.observability.core.config import configure
from microsoft_agents_a365.observability.extensions.semantic_kernel import SemanticKernelInstrumentor

# Configure observability
configure(
    service_name="my-semantic-kernel-agent",
    service_namespace="ai.agents"
)

# Enable auto-instrumentation
instrumentor = SemanticKernelInstrumentor()
instrumentor.instrument()

# Your Semantic Kernel code is now automatically traced

OpenAI

การใช้เครื่องมืออัตโนมัติจําเป็นต้องใช้ตัวสร้างสัมภาระ ตั้งค่า ID ตัวแทนและรหัสผู้เช่าโดยใช้BaggageBuilder

ถอนการติดตั้งแพคเกจ

pip install microsoft-agents-a365-observability-extensions-openai

กําหนดค่าความสามารถในการสังเกตได้

from microsoft_agents_a365.observability.core.config import configure
from microsoft_agents_a365.observability.extensions.openai_agents import OpenAIAgentsTraceInstrumentor

# Configure observability
configure(
    service_name="my-openai-agent",
    service_namespace="ai.agents"
)

# Enable auto-instrumentation
instrumentor = OpenAIAgentsTraceInstrumentor()
instrumentor.instrument()

# Your OpenAI Agents code is now automatically traced

เฟรมเวิร์กตัวแทน

การใช้เครื่องมืออัตโนมัติจําเป็นต้องใช้ตัวสร้างสัมภาระ ตั้งค่า ID ตัวแทนและรหัสผู้เช่าโดยใช้ BaggageBuilder

ถอนการติดตั้งแพคเกจ

pip install microsoft-agents-a365-observability-extensions-agent-framework

กําหนดค่าความสามารถในการสังเกตการณ์

from microsoft_agents_a365.observability.core.config import configure
from microsoft_agents_a365.observability.extensions.agentframework.trace_instrumentor import (
    AgentFrameworkInstrumentor,
)

# Configure observability
configure(
    service_name="AgentFrameworkTracingWithAzureOpenAI",
    service_namespace="AgentFrameworkTesting",
)

# Enable auto-instrumentation
AgentFrameworkInstrumentor().instrument()

กรอบงาน LangChain

การใช้เครื่องมืออัตโนมัติจําเป็นต้องใช้ตัวสร้างสัมภาระ ตั้งค่า ID ตัวแทนและรหัสผู้เช่าโดยใช้BaggageBuilder

ถอนการติดตั้งแพคเกจ

pip install microsoft-agents-a365-observability-extensions-langchain

กําหนดค่าความสามารถในการสังเกตการณ์

from microsoft_agents_a365.observability.core.config import configure
from microsoft_agents_a365.observability.extensions.langchain import CustomLangChainInstrumentor

# Configure observability
configure(
    service_name="my-langchain-agent",
    service_namespace="ai.agents"
)

# Enable auto-instrumentation
CustomLangChainInstrumentor()

# Your LangChain code is now automatically traced

การใช้เครื่องมือด้วยตนเอง

ตัวแทน 365 SDK สังเกตการณ์สามารถใช้เพื่อทําความเข้าใจการทํางานภายในของตัวแทน SDK มีขอบเขตสามขอบเขตที่สามารถเริ่มต้นได้: InvokeAgentScope, ExecuteToolScopeและInferenceScope

การเรียกใช้ตัวแทน

ขอบเขตนี้ควรใช้ในช่วงเริ่มต้นของกระบวนการตัวแทนของคุณ ด้วยขอบเขตตัวแทนการเรียก คุณจับคุณสมบัติเช่นตัวแทนปัจจุบันจะถูกเรียกใช้ ข้อมูลผู้ใช้ตัวแทน และอื่น ๆ

from microsoft_agents_a365.observability.core.invoke_agent_scope import InvokeAgentScope
from microsoft_agents_a365.observability.core.invoke_agent_details import InvokeAgentDetails
from microsoft_agents_a365.observability.core.tenant_details import TenantDetails
from microsoft_agents_a365.observability.core.request import Request

invoke_details = InvokeAgentDetails(
    details=agent_details,        # AgentDetails instance
    endpoint=my_endpoint,         # Optional endpoint (with hostname/port)
    session_id="session-42"
)
tenant_details = TenantDetails(tenant_id="tenant-123")
req = Request(content="User asks a question")

with InvokeAgentScope.start(invoke_details, tenant_details, req):
    # Perform agent invocation logic
    response = call_agent(...)

การดําเนินการของเครื่องมือ

ตัวอย่างต่อไปนี้สาธิตวิธีการใช้เครื่องมือของตัวแทนของคุณด้วยการติดตามความสามารถในการสังเกตการจับภาพการวัดและส่งข้อมูลทางไกลเพื่อวัตถุประสงค์ในการตรวจสอบและตรวจสอบ

from microsoft_agents_a365.observability.core.execute_tool_scope import ExecuteToolScope
from microsoft_agents_a365.observability.core.tool_call_details import ToolCallDetails

tool_details = ToolCallDetails(
    tool_name="summarize",
    tool_type="function",
    tool_call_id="tc-001",
    arguments="{'text': '...'}",
    description="Summarize provided text",
    endpoint=None  # or endpoint object with hostname/port
)

with ExecuteToolScope.start(tool_details, agent_details, tenant_details):
    result = run_tool(tool_details)

การอนุมาน

ตัวอย่างต่อไปนี้แสดงวิธีการใช้การอนุมานโมเดล AI ด้วยการติดตามความสามารถในการสังเกตการณ์เพื่อจับภาพการใช้โทเค็น รายละเอียดแบบจําลอง และเมตาดาต้าการตอบสนอง

from microsoft_agents_a365.observability.core.inference_scope import InferenceScope
from microsoft_agents_a365.observability.core.inference_call_details import InferenceCallDetails
from microsoft_agents_a365.observability.core.request import Request

inference_details = InferenceCallDetails(
    operationName=SomeEnumOrValue("chat"),
    model="gpt-4o-mini",
    providerName="azure-openai",
    inputTokens=123,
    outputTokens=456,
    finishReasons=["stop"],
    responseId="resp-987"
)
req = Request(content="Explain quantum computing simply.")

with InferenceScope.start(inference_details, agent_details, tenant_details, req):
    completion = call_llm(...)

ตรวจสอบภายในเครื่อง

บันทึกตัวแปรสภาพแวดล้อม การดําเนินการนี้จะขยาย (การติดตาม) ไปยังคอนโซล

ทดสอบตัวแทนของคุณด้วยการสังเกตการณ์

หลังจากใช้งานการสังเกตในตัวแทนของคุณ ทดสอบเพื่อให้แน่ใจว่าการวัดและส่งข้อมูลทางไกลถูกบันทึกอย่างถูกต้อง ทําตามคําแนะนําการทดสอบเพื่อตั้งค่าสภาพแวดล้อมของคุณ จากนั้นมุ่งเน้นไปที่ส่วน ดูบันทึกความสามารถในการสังเกตการณ์ เป็นหลัก เพื่อตรวจสอบการใช้งานการสังเกตการณ์ของคุณทํางานตามที่คาดไว้