Skip to content

[pull] main from google:main#391

Merged
pull[bot] merged 6 commits into
CrazyForks:mainfrom
google:main
Jul 1, 2026
Merged

[pull] main from google:main#391
pull[bot] merged 6 commits into
CrazyForks:mainfrom
google:main

Conversation

@pull

@pull pull Bot commented Jul 1, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

google-genai-bot and others added 6 commits June 30, 2026 15:18
Adds the two per-invocation call-count metrics from semconv #336
(open-telemetry/semantic-conventions-genai#336):

* gen_ai.invoke_agent.inference_calls: model calls in one invoke_agent span.
* gen_ai.invoke_agent.tool_calls: tool calls in one invoke_agent span.

Both are counted on the per-span TelemetryContext at the call sites
(record_inference_telemetry, record_tool_execution) and flushed in
record_agent_invocation, keyed by gen_ai.agent.name. One point per invoke_agent
span, so a multi-agent invocation does not double count. Failed calls still
count; only client-side tool calls count. Always emitted (a no-op without a
MeterProvider).

PiperOrigin-RevId: 940684383
This moves the transfer loop from _dynamic_node_scheduler to Context.run_node, making run_node the unified entrypoint for transfers in both static workflows and dynamic agent calls.

Co-authored-by: Shangjie Chen <deanchen@google.com>
PiperOrigin-RevId: 940687129
Add replay test fixtures covering the documented flows of the
contributing/samples/models/interactions_api sample (basic text, Google
Search grounding, multi-turn stateful recall, and a custom function
tool), so the sample is exercised by tests/unittests/test_samples.py.

Also fix the shared sample test harness (cli/agent_test_runner.py) to
support the Interactions API:

- Exclude the volatile interaction_id (a server-issued token) and
  turn_complete fields from fixture comparison and from rebuilt
  fixtures, matching how other non-reproducible fields (timestamps,
  usage metadata, etc.) are already handled. The Interactions API
  stamps these onto every model response and the replay MockModel
  cannot reproduce them.
- Drive all turns of a fixture rebuild on a single persistent event
  loop. The sync Runner.run() uses asyncio.run() per call, which closes
  the loop the model's cached async api_client is bound to, so
  subsequent turns fail with "Event loop is closed" and corrupt
  multi-turn fixtures. Reusing one loop keeps the cached client valid
  across the conversation.

Co-authored-by: Haran Rajkumar <haranrk@google.com>
PiperOrigin-RevId: 940691339
…vely

httpx internally normalizes HTTP header keys to lowercase, so the check should be case-insensitive

closes #6200

Co-authored-by: Kathy Wu <wukathy@google.com>
PiperOrigin-RevId: 940719476
Use Context.run_node from within _workflow.py so static graphs also use the unified transfer loop.

Co-authored-by: Shangjie Chen <deanchen@google.com>
PiperOrigin-RevId: 940728866
Adds the two per-invocation call-count metrics from semconv #336
(open-telemetry/semantic-conventions-genai#336):

* gen_ai.invoke_agent.inference_calls: model calls in one invoke_agent span.
* gen_ai.invoke_agent.tool_calls: tool calls in one invoke_agent span.

Both are counted on the per-span TelemetryContext at the call sites
(record_inference_telemetry, record_tool_execution) and flushed in
record_agent_invocation, keyed by gen_ai.agent.name. One point per invoke_agent
span, so a multi-agent invocation does not double count. Failed calls still
count; only client-side tool calls count. Always emitted (a no-op without a
MeterProvider).

PiperOrigin-RevId: 940760757
@pull pull Bot locked and limited conversation to collaborators Jul 1, 2026
@pull pull Bot added the ⤵️ pull label Jul 1, 2026
@pull pull Bot merged commit c6dec00 into CrazyForks:main Jul 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants