Skip to main content

LoongSuite AgentScope Instrumentation

LoongSuite instrumentation for AgentScope framework.

Features

  • Traces: Distributed tracing for agents, LLMs, tools, and formatters
  • Metrics: Performance metrics following OpenTelemetry GenAI semantic conventions
    • gen_ai.client.operation.duration: Operation duration in seconds
    • gen_ai.client.token.usage: Token usage for input and output
  • Events: Detailed event logging for messages and choices

Installation

# Step 1: install LoongSuite distro
pip install loongsuite-distro

# Step 2 (Option C): install this instrumentation from PyPI
pip install loongsuite-instrumentation-agentscope

# Optional app dependency
pip install agentscope

Usage

Auto-instrumentation

loongsuite-instrument \
    --traces_exporter console \
    --metrics_exporter console \
    python your_agentscope_app.py

Manual instrumentation

from opentelemetry.instrumentation.agentscope import AgentScopeInstrumentor
from agentscope.models import DashScopeChatModel
import agentscope

AgentScopeInstrumentor().instrument()

agentscope.init(project="my_project")
model = DashScopeChatModel(model_name="qwen-max")
result = await model(messages)

AgentScopeInstrumentor().uninstrument()

Configuration

Export to OTLP Backend

export OTEL_SERVICE_NAME=my-agentscope-app
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=<trace_endpoint>
export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=<metrics_endpoint>

loongsuite-instrument python your_app.py

Content Capture

Control message content capture using environment variables:

# Enable experimental GenAI semantic conventions
export OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental

# Capture content in spans only
export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=SPAN_ONLY

# Capture content in events only
export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=EVENT_ONLY

# Capture in both spans and events
export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=SPAN_AND_EVENT

# Disable content capture (default)
export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=NO_CONTENT

Supported Components

  • Models: ChatModelBase and all subclasses (nested __call__ / proxy chains emit a single LLM span per logical invocation)
  • Agents: AgentBase and all subclasses (same for stacked AgentBase.__call__)
  • ReAct Steps: Per-iteration react step spans for ReActAgent (via instance hooks); nested overrides that call super()._reasoning / super()._acting still produce one step per logical iteration
  • Tools: Toolkit.call_tool_function
  • Formatters: TruncatedFormatterBase.format

Skill metadata on tool spans

When a tool execution reads the top-level SKILL.md of a skill already registered in toolkit.skills, AgentScope enriches that execute_tool span with:

  • gen_ai.skill.name
  • gen_ai.skill.id
  • gen_ai.skill.description
  • gen_ai.skill.version

AgentScope v2 exposes skill loading through its built-in Skill viewer tool. The v2 middleware records the requested skill argument as gen_ai.skill.name and gen_ai.skill.id; when QwenPaw or AgentScope exposes the registered skill directory, it also resolves the available description, workspace-scoped id, and version metadata.

The matching is intentionally conservative:

  • only registered skills can match
  • only the top-level SKILL.md counts as a skill load
  • reads under other paths such as scripts/ or references/ do not emit gen_ai.skill.*

For CoPaw-style workspace layouts, gen_ai.skill.version is resolved from SKILL.md frontmatter first and falls back to workspace skill.json metadata.version_text when needed.

Concurrency (agents)

ReAct step tracing stores temporary state on the agent instance for the duration of each AgentBase.__call__. AgentScope itself models a single in-flight reply per instance (see AgentBase._reply_task / _reply_id in agentscope): concurrent overlapping await agent(...) on the same instance is unsupported and can corrupt traces, hook state, and interrupt behavior. Use one instance per concurrent conversation, or serialize calls with a lock or queue.

Visualization

Export telemetry data to:

Examples

See the main README for complete usage examples.

License

Apache License 2.0

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

File details

Details for the file loongsuite_instrumentation_agentscope-0.8.0-py3-none-any.whl.

File metadata

File hashes

Hashes for loongsuite_instrumentation_agentscope-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 80a9065de451454847fd97678c8ad6ff5dd6194aa1c4c56e9a3348b6be5cb20e
MD5 2758edcadf129a9acfa0f769d6866c1f
BLAKE2b-256 861607e2c17dd22e34b189e8058b7a9ad1b9456f378a45c6e06da0336148bc3d

See more details on using hashes here.

Supported by

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