Skip to content

[Tool Parser] poolside_v1: migrate to the declarative parser engine - #47167

Open
joerowell wants to merge 1 commit into
vllm-project:mainfrom
joerowell:joerowell/poolside-parser-engine
Open

joerowell wants to merge 1 commit into
vllm-project:mainfrom
joerowell:joerowell/poolside-parser-engine

Conversation

@joerowell

@joerowell joerowell commented Jun 30, 2026 •

Copy link
Copy Markdown
Contributor

Re-implements the poolside_v1 tool parser (poolside Laguna) on the declarative parser engine instead of the standalone regex parser. Laguna emits the GLM-4.7 tool-call format verbatim (<tool_call>name<arg_key>k</arg_key><arg_value>v</arg_value> </tool_call>, function name inline with no newline separator), so it is backed by a new PoolsideParser whose poolside_v1_config mirrors glm47_moe_config. This inherits the engine's incremental string streaming and schema-aware argument coercion. This was initially suggested to us by @sfeng33 in #46486.

Purpose

Test Plan

Test Result


Essential Elements of an Effective PR Description Checklist
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan, such as providing test command.
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@mergify

mergify Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @joerowell.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase label Jun 30, 2026
Re-implements the poolside_v1 tool parser (poolside Laguna) on the declarative
parser engine instead of the standalone regex parser. Laguna emits the GLM-4.7
tool-call format verbatim (<tool_call>name<arg_key>k</arg_key><arg_value>v</arg_value>
</tool_call>, function name inline with no newline separator), so it is backed by
a new PoolsideParser whose poolside_v1_config mirrors glm47_moe_config. This
inherits the engine's incremental string streaming and schema-aware argument
coercion, and retires ~590 lines of bespoke parsing.

- vllm/parser/poolside.py: PoolsideParser + poolside_v1_config (own config,
  structurally identical to glm47_moe_config).
- vllm/parser/engine/registered_adapters.py: make_adapters(PoolsideParser).
- vllm/tool_parsers/poolside_v1_tool_parser.py: thin PoolsideV1ToolParser
  (registry name unchanged).

Scoped to the tool parser; reasoning stays on PoolsideV1ReasoningParser, which
scopes the </think> search to the current assistant turn (Laguna-specific
behaviour the generic engine reasoning parser does not provide).

Equivalence with glm47 confirmed empirically: serving the Laguna-XS-2.1 checkpoint
with --tool-call-parser glm47 parses tool calls cleanly and scores BFCL non-live
simple_python 93.0% / multiple 95.5% (in line with bf16).

Signed-off-by: Joe Rowell <joerowell4@gmail.com>
@joerowell
joerowell force-pushed the joerowell/poolside-parser-engine branch from 864d084 to 9e619a5 Compare July 9, 2026 14:48
@mergify mergify Bot removed the needs-rebase label Jul 9, 2026
@mergify

mergify Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @joerowell.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@github-actions

Copy link
Copy Markdown

This pull request has been automatically marked as stale because it has not had any activity within 90 days. It will be automatically closed if no further activity occurs within 30 days. Leave a comment if you feel this pull request should remain open. Thank you!

@github-actions github-actions Bot added the stale Over 90 days of inactivity label Oct 15, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-rebase stale Over 90 days of inactivity tool-calling

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant