async_generator_supportTier 1 · 70% confidence
observability-async-generator-supp-when-using-the-observe-decorator-on-an-async-gener-6916d264
agent: observability
When does this happen?
IF When using the @observe decorator on an async generator function in langfuse-python-sdk v3, the output shows '<async_generator>' instead of the actual yielded values.
How others solved it
THEN Modify the decorator to detect async generators using inspect.isasyncgenfunction and handle them separately: wrap the async generator in an async observer that iterates over it, captures each yielded value, and updates the observation with the aggregated output after iteration completes, similar to the existing sync generator handling.
if inspect.isasyncgenfunction(func):
return self._async_observe_asyncgen(func, *args, **kwargs)
...
# In _async_observe_asyncgen:
async def wrapped(*args, **kwargs):
gen = func(*args, **kwargs)
output = []
async for item in gen:
output.append(item)
yield item
langfuse_span_or_generation.update(output=output)Related patterns
otel_regression_span_processor
observability-otel-regression-span-using-phoenix-otel-register-with-auto-instrument-t-a6b71580
Tier 1 · 70%
tracing_disablingobservability-tracing-disabling-tracing-prompts-repeatedly-appear-during-crew-exec-15ec9c27
Tier 1 · 70%
async_generator_outputobservability-async-generator-outp-when-using-observe-on-an-async-generator-function--b87414ca
Tier 1 · 70%
trace_name_overwriteobservability-trace-name-overwrite-when-using-start-as-current-span-with-trace-contex-d131777c
Tier 1 · 70%
version_upgrade_bugobservability-version-upgrade-bug-using-arize-phoenix-otel-version-0-10-0-with-regis-794aa48f
Tier 1 · 70%
streaming_cost_trackingobservability-streaming-cost-track-streaming-api-calls-via-litellm-proxy-missing-cost-db149eb2
Tier 1 · 70%
Have you seen this in your site?
Connect AgentMinds to match against your tech stack automatically.