Skip to content

fix: web search call output ordering - #157

Merged
franciscojavierarceo merged 4 commits into
vllm-project:mainfrom
EmbeddedLLM:bugfix-websearch-acc-order
Jul 31, 2026
Merged

fix: web search call output ordering#157
franciscojavierarceo merged 4 commits into
vllm-project:mainfrom
EmbeddedLLM:bugfix-websearch-acc-order

Conversation

@maralbahari

@maralbahari maralbahari commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

Fixes #156 by preserving upstream output_index ordering for streaming web_search_call items relative to reasoning, messages, and other output items.

  • Tracks web search calls from response.output_item.added through response.output_item.done, with fallback support for providers that omit the added event.
  • Preserves all documented web-search action variants: search, open_page, and find_in_page.
  • Omits unfinished synthetic placeholders rather than returning fabricated completed calls.
  • Reconciles missing or late item IDs without duplicating output items.
  • Adds accumulator regressions and recorder-generated gateway/OpenAI streaming and non-streaming cassettes.

Test Plan

  • cargo test --workspace -- --test-threads=8
  • cargo clippy --all-targets -- -D warnings
  • cargo fmt --all -- --check
  • GitHub checks: DCO, pre-commit, Rust, and container build/smoke test

Signed-off-by: maral <maralbahari.98@gmail.com>
@maralbahari maralbahari changed the title fix web search call output ordering fix: web search call output ordering Jul 31, 2026
@maralbahari
maralbahari marked this pull request as ready for review July 31, 2026 04:27
@maralbahari
maralbahari marked this pull request as draft July 31, 2026 04:40
Signed-off-by: maral <maralbahari.98@gmail.com>
@maralbahari
maralbahari marked this pull request as ready for review July 31, 2026 05:25
@franciscojavierarceo

Copy link
Copy Markdown
Collaborator

I prepared and validated the follow-up for the accumulator issues found in review:

  • preserve all documented web-search action variants (search, open_page, and find_in_page)
  • omit unfinished synthetic web-search placeholders
  • reconcile missing/late item IDs without duplicate output items

The fix is commit 3cabd2e on vllm-project:codex/pr-157-fix. This PR has maintainer edits disabled and the authenticated maintainer account has no push permission on EmbeddedLLM/agentic-api, so I cannot attach the commit to the head branch directly. Please either cherry-pick 3cabd2e onto bugfix-websearch-acc-order or enable maintainer edits.

Verification: cargo test --workspace, cargo clippy --all-targets --workspace -- -D warnings, cargo fmt --all -- --check, and git diff --check all pass.

franciscojavierarceo and others added 2 commits July 31, 2026 20:48
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: maral <maralbahari.98@gmail.com>
@maralbahari

Copy link
Copy Markdown
Collaborator Author

I prepared and validated the follow-up for the accumulator issues found in review:

  • preserve all documented web-search action variants (search, open_page, and find_in_page)
  • omit unfinished synthetic web-search placeholders
  • reconcile missing/late item IDs without duplicate output items

The fix is commit 3cabd2e on vllm-project:codex/pr-157-fix. This PR has maintainer edits disabled and the authenticated maintainer account has no push permission on EmbeddedLLM/agentic-api, so I cannot attach the commit to the head branch directly. Please either cherry-pick 3cabd2e onto bugfix-websearch-acc-order or enable maintainer edits.

Verification: cargo test --workspace, cargo clippy --all-targets --workspace -- -D warnings, cargo fmt --all -- --check, and git diff --check all pass.

thanks I also re-recoded the cassettes and added integration test for web search action.

@franciscojavierarceo franciscojavierarceo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ordering fix, documented web-search action variants, provisional-item handling, and missing-ID reconciliation are covered by focused regressions and recorded gateway/OpenAI comparisons. The final head is mergeable and all required checks pass.

@franciscojavierarceo
franciscojavierarceo merged commit 67e06ae into vllm-project:main Jul 31, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[bug]: preserve web_search_call order in streaming response accumulation

2 participants