google / google/adk-python

Tracing end user input and agent output

未关闭
#4,593 4 条评论 0 个 reaction 已指派 1 人 已被 @B-Step62 认领 在 GitHub 查看
needs review tracing
主要语言
Python
星标
21.5k
派生
4k
平均合并
1 天 14 小时
30 天内合并 PR
37

描述

## 🔴 Required Information
*Please ensure all items in this section are completed to allow for efficient
triaging. Requests without complete information may be rejected / deprioritized.
If an item is not applicable to you - please mark it as N/A*

### Is your feature request related to a specific problem?

OpenTelemetry trace from Google ADK creates an empty root span and does not capture end user input and output.

Image

### Describe the Solution You'd Like

Optionally record user inputs and agent outputs to the `invocation` span created [here](https://github.com/google/adk-python/blob/7557a929398ec2a1f946500d906cef5a4f86b5d1/src/google/adk/runners.py#L494).

Alternatively, add a callback to the runner execution so we can customize the behavior. The agent callbacks does not help because they are executed after the span is created.

### Impact on your work

Only LLM spans include user input and agent output, which makes it tricky to process traces for downstream operations (e.g. review conversation sessions, evaluate traces, etc).

### Willingness to contribute
Yes. Happy to contribute if the proposal makes sense.

---

## 🟡 Recommended Information

### Describe Alternatives You've Considered

We could dreate a wrapper span and set inputs/outputs. However, invoking agent directly is not the primary way to run/deploy ADK agents. Also handling streaming event requires boilerplate code.

```
with tracer.start_as_current_span as span:
span.set_attributes("user_content", user_content)
async with Aclosing(ctx.agent.run_async(ctx)) as agen:
async for event in agen:
yield event
...
```

### Proposed API / Implementation

Add a new environment variable like `ADK_CAPTURE_END_USER_INPUTS_OUTPUTS` with default to `False`. When it is set, the end user inputs and outputs will be recorded in the root span.

### Additional Context
Add any other context or screenshots about the feature request here.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。