loongsuite-python 0.9.0
QwenPaw / AgentScope highlights
- Normalize cumulative AgentScope v2 assistant/tool history without changing application messages.
- Inherit Entry session/user baggage through Agent, ReAct, LLM, and tool spans.
- Collect framework-provided cache token usage and mark cancellation as control flow.
- Attribute QwenPaw Dream LLM calls to the owning agent name, without adding an agent ID.
Validation and known limitations
- Release wheels were installed in an isolated QwenPaw 2.2.1b1 / AgentScope 2.0.7.post1 environment. Real-model non-streaming, streaming, and tool-calling Runtime smoke tests passed: 3 traces / 15 locally exported spans, complete Entry input/output, and session propagation to Agent/LLM/tool spans. This release smoke did not export to ARMS.
- AgentScope and QwenPaw's 18 test jobs on the release base passed. Repository-wide CI is not fully green: Google GenAI, Qwen Agent, and Mem0 test jobs, plus multimodal util-genai lint/type checks, have unresolved failures. Publishing with these failures was explicitly accepted by the release owner; this release does not claim those failures are fixed.
- Interrupted Agent replies can carry cancellation/interrupted attributes while an output message still has the existing default
finish_reason: stop. Missing provider-final usage is not fabricated. Tool content is captured as produced by the framework; unsupported example return objects are not reparsed by the probe. - The release-only
opentelemetry-util-genaitoloongsuite-otel-util-genairename is not resolved by the source-workspaceuv-lockhook. Release wheel metadata and isolated wheel installation were checked separately; this is not a claim that the release branch's workspace lock check passes.
Installation
pip install loongsuite-distro==0.9.0
loongsuite-bootstrap -a install --version 0.9.0Package Versions
- loongsuite-* packages: 0.9.0
- opentelemetry-* packages: 0.60b1
PyPI packages
The following distributions are built and uploaded to PyPI for this release:
loongsuite-otel-util-genailoongsuite-distroloongsuite-site-bootstraploongsuite-instrumentation-agentscopeloongsuite-instrumentation-algotuneloongsuite-instrumentation-autogenloongsuite-instrumentation-bfclv4loongsuite-instrumentation-claude-agent-sdkloongsuite-instrumentation-claw-evalloongsuite-instrumentation-crewailoongsuite-instrumentation-dashscopeloongsuite-instrumentation-deepagentsloongsuite-instrumentation-google-adkloongsuite-instrumentation-google-genailoongsuite-instrumentation-hermes-agentloongsuite-instrumentation-langchainloongsuite-instrumentation-langgraphloongsuite-instrumentation-litellmloongsuite-instrumentation-mem0loongsuite-instrumentation-microsoft-agent-frameworkloongsuite-instrumentation-minisweagentloongsuite-instrumentation-openhandsloongsuite-instrumentation-qwen-agentloongsuite-instrumentation-qwenpawloongsuite-instrumentation-slop-codeloongsuite-instrumentation-strandsloongsuite-instrumentation-terminus2loongsuite-instrumentation-vitaloongsuite-instrumentation-webarenaloongsuite-instrumentation-widesearchloongsuite-instrumentation-wildtool
loongsuite
Added
- Add Strands Agents instrumentation using the shared LoongSuite GenAI utility
lifecycle for agent, ReAct step, model, and tool spans.
loongsuite-instrumentation-agentscope
Fixed
- Treat AgentScope v2 cancellation as control flow, with an explicit
agentscope.cancelledattribute, including interrupted reply events when
the framework consumes the exception. Preserve business exceptions and do
not invent final LLM usage or finish reasons for interrupted streams. - Capture cache-read and cache-creation input tokens in AgentScope v1 and v2,
including final streaming and v2 agent usage, without adding cached tokens
to input totals. - Split AgentScope v2 cumulative assistant history at tool results, preserving
chronological assistant/tool roles without changing the application context. - Respect the model formatter's thinking-input capability in LLM history and
limit agent output to final visible text, leaving reasoning and tools on child spans. - Prefer Entry session/user baggage over AgentScope's internal session identity
and propagate the conversation to ReAct, LLM, and tool spans. - Fail open when v2 input conversion fails and finalize agent spans even when
output conversion raises.
loongsuite-instrumentation-google-genai
Added
- Align provider hooks and tests with the canonical
opentelemetry-instrumentation-google-genai==1.0b1baseline. - Support
interactions.createand automatic function-call
execute_toolspans in addition to generation, streaming, and embeddings. - Retain LoongSuite
ExtendedTelemetryHandlermetrics, multimodal handling,
standard instrumentation suppression, reasoning-part capture, Python 3.9,
and completion-hook support through an isolated compatibility layer. - Document that the provider runs on LoongSuite's shared GenAI util, while
Robin adds ARMS metrics and private lower-level SDK suppression as a
commercial overlay. - Fix reusable-config mutation, stream-construction span leaks, Google async
stream closing, streaming TTFT, real Interactions SSE completion parsing,
and embedding raw-response state isolation found during the upstream delta
audit. - Add local opt-in real Gemini API tests and redacted VCR coverage for public
CI without provider credentials. - Apply the shared
hook_advicefail-open contract to generation,
Interactions, embeddings, automatic tool calls, and sync/async streams so
probe failures cannot change SDK call count, results, chunks, cancellation,
GeneratorExit, or original provider exceptions. - Detach streaming context before returning SDK streams, make finalization
idempotent across close/aclose/error/GC paths, and cover cross-Context and
one-fault-among-many isolation. - Keep OSS package metadata at Python 3.9 while avoiding Python 3.9/3.10-only
typing syntax so Robin can repackage the instrumentation wheel for its
Python 3.8 commercial install floor.
Fixed
- Aggregate Google GenAI streaming deltas by candidate so
gen_ai.output.messagescontains complete logical responses instead of
one message per SSE chunk.
loongsuite-instrumentation-qwenpaw
Fixed
-
Limit Dream tests to the QwenPaw 2 runtime and verify that QwenPaw 1 and
legacy CoPaw retain Entry instrumentation without enabling Dream hooks. -
Propagate the owning agent name during QwenPaw 2 ReMe Dream calls so
instrumented downstream LLM spans carrygen_ai.agent.name. Restore the
caller context on completion, failure, or cancellation; no agent ID is added. -
Treat
asyncio.CancelledErroras control flow at Entry finalization while
preserving the original exception. Recordqwenpaw.cancelledand a bounded
qwenpaw.cancellation.reasonfrom explicit cancellation codes; missing or
unrecognized reasons areunknown, not inferred from partial responses.
loongsuite-instrumentation-strands
Added
- Add Strands Agents instrumentation for Agent, ReAct step, model, and tool
spans using the shared LoongSuite GenAI telemetry utility. - Preserve application parent context while suppressing duplicate Strands SDK
native spans.
Changed
- Report
strands-agentsas the framework provider on agent spans while
keeping the model provider on LLM spans. - Always emit framework-level LLM spans without suppressing nested provider
instrumentation in the open-source package. - Finalize remaining LLM, tool, step, and agent spans best-effort when one
telemetry finalizer fails during invocation or stream cleanup. - Isolate failures raised by an underlying stream's
aclose()while still
finalizing the active invocation and restoring application context. - Preserve cancellation and generator-exit error types, retain the original
model error when a failure reporter also fails, and mark model-span startup
failures as an explicit ReAct-step telemetry error. - Capture the first model call's input from the Strands agent message snapshot,
before invocation state is populated by tool execution.