Skip to main content

No project description provided

Project description

agentic-layer-sdk-msaf

Microsoft Agent Framework adapter for the Agentic Layer SDK.

This package provides utilities to convert a Microsoft Agent Framework agent into an instrumented A2A Starlette web application.

Usage

import os
from agent_framework import Agent
from agent_framework_openai import OpenAIChatCompletionClient
from agenticlayer.msaf import create_metrics_middleware
from agenticlayer.msaf.agent_to_a2a import to_a2a

agent = Agent(
    client=OpenAIChatCompletionClient(
        model=os.environ.get("AGENT_MODEL", "gemini-2.5-flash"),
        base_url=os.environ.get("LITELLM_PROXY_API_BASE"),
        api_key=os.environ.get("LITELLM_PROXY_API_KEY"),
    ),
    name="MyAgent",
    instructions="You are a helpful assistant.",
    middleware=create_metrics_middleware(),
)
app = to_a2a(agent, name="MyAgent", rpc_url="http://localhost:8000/")
# Then run with: uvicorn module:app

Configuration

Observability

OpenTelemetry setup

Call setup_otel() before creating agents to configure OTLP exporters and enable instrumentation:

from agenticlayer.msaf.otel import setup_otel

setup_otel()

This reads standard OTEL_EXPORTER_OTLP_ENDPOINT / OTEL_EXPORTER_OTLP_PROTOCOL environment variables, sets up trace/log/metric providers, and enables the built-in Agent Framework telemetry layers.

Metrics

The SDK emits the following OpenTelemetry metrics:

Built-in (provided by Agent Framework telemetry layers, enabled by setup_otel()):

Metric Type Description
gen_ai.client.token.usage Histogram Input and output token counts per LLM call
gen_ai.client.operation.duration Histogram Duration of LLM / agent operations

Custom (provided by create_metrics_middleware(), must be added to the agent):

Metric Type Description
agent.invocations Counter Number of agent invocations
agent.llm.calls Counter Number of LLM calls
agent.tool.calls Counter Number of tool calls
agent.errors Counter Number of errors (with error_source attribute)

Add the metrics middleware to your agent:

import os
from agent_framework import Agent
from agent_framework_openai import OpenAIChatCompletionClient
from agenticlayer.msaf import create_metrics_middleware

agent = Agent(
    client=OpenAIChatCompletionClient(
        model=os.environ.get("AGENT_MODEL", "gemini-2.5-flash"),
        base_url=os.environ.get("LITELLM_PROXY_API_BASE"),
        api_key=os.environ.get("LITELLM_PROXY_API_KEY"),
    ),
    instructions="You are a helpful assistant.",
    middleware=create_metrics_middleware(),
)

If you already have other middleware, combine them:

import os
from agent_framework import Agent
from agent_framework_openai import OpenAIChatCompletionClient

agent = Agent(
    client=OpenAIChatCompletionClient(
        model=os.environ.get("AGENT_MODEL", "gemini-2.5-flash"),
        base_url=os.environ.get("LITELLM_PROXY_API_BASE"),
        api_key=os.environ.get("LITELLM_PROXY_API_KEY"),
    ),
    instructions="You are a helpful assistant.",
    middleware=[MyCustomMiddleware(), *create_metrics_middleware()],
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentic_layer_sdk_msaf-0.16.0.tar.gz (83.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentic_layer_sdk_msaf-0.16.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file agentic_layer_sdk_msaf-0.16.0.tar.gz.

File metadata

  • Download URL: agentic_layer_sdk_msaf-0.16.0.tar.gz
  • Upload date:
  • Size: 83.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agentic_layer_sdk_msaf-0.16.0.tar.gz
Algorithm Hash digest
SHA256 a5c016cf11f99005ba4a2f804d4a35b6e0447b038afebde457259fdb2b9890b0
MD5 e7481316f6d135d3605190a5debe4397
BLAKE2b-256 3a18a52c5f4941b5ef543b9a6bae3bbc108a97729336352826a5fffdf05e4b51

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_layer_sdk_msaf-0.16.0.tar.gz:

Publisher: publish.yml on agentic-layer/sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentic_layer_sdk_msaf-0.16.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agentic_layer_sdk_msaf-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9658282ae1f36375f82c0d5a4af22caa78888e2e0426e4825ef715f37eaa1412
MD5 7f7a8ca96c84a2a219721696f24e11ef
BLAKE2b-256 b94eb7ec8b90ae1fa325534b43f626e7968cf1a39e2c64d0e16886ffb7b30eda

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_layer_sdk_msaf-0.16.0-py3-none-any.whl:

Publisher: publish.yml on agentic-layer/sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page