LoongSuite AgentScope Instrumentation
Project description
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 secondsgen_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 stepspans for ReActAgent (via instance hooks); nested overrides that callsuper()._reasoning/super()._actingstill 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.namegen_ai.skill.idgen_ai.skill.descriptiongen_ai.skill.version
The matching is intentionally conservative:
- only registered skills can match
- only the top-level
SKILL.mdcounts as a skill load - reads under other paths such as
scripts/orreferences/do not emitgen_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:
- Alibaba Cloud Managed Service for OpenTelemetry
- AgentScope Studio
- Any OpenTelemetry-compatible backend (Jaeger, Zipkin, etc.)
Examples
See the main README for complete usage examples.
License
Apache License 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file loongsuite_instrumentation_agentscope-0.5.0-py3-none-any.whl.
File metadata
- Download URL: loongsuite_instrumentation_agentscope-0.5.0-py3-none-any.whl
- Upload date:
- Size: 27.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8027057fa881c71587921d2dbcf21550d86d8a1053c6725add85369a972fbc25
|
|
| MD5 |
afc84e4f32d72778eece8710e487be6d
|
|
| BLAKE2b-256 |
2a2cdb8c02cad23bd8c5afeeb8b3da899a611a5f10d32c707de65b5a08b25203
|