Skip to content

[Model] Add step-deepresearch tool parser #3

Merged
randzero merged 1 commit intomainfrom
feat-stepdr_tool_parser
Nov 28, 2025
Merged

[Model] Add step-deepresearch tool parser #3
randzero merged 1 commit intomainfrom
feat-stepdr_tool_parser

Conversation

@randzero
Copy link
Collaborator

@randzero randzero commented Nov 27, 2025

Purpose

Added native tool parser support for Step DeepResearch model in vLLM.

This PR introduces StepDRToolParser which handles the steptml XML format for tool calls:

<steptml:toolcall>
<steptml:invoke name="function_name">
<steptml:parameter name="param1">value1</steptml:parameter>
</steptml:invoke>
</steptml:toolcall>

Test Plan

python vllm/entrypoints/openai/tool_parsers/stepdr_tool_parser.py

Test Result

--- TEST 1: Non-streaming with array parameter ---
Tools called: True
Content: None
Tool 0: web_search - {"query": ["AI news", "latest developments"], "topk": 10}

**************************

--- TEST 2: Streaming with content before/after ---
Streaming output:
  Content: 'Let'
  Content: ' me'
  Content: ' search'
  Content: ' for'
  Content: ' that'
  Content: ' information'
  Content: '...\n'
  ToolCall[0]: name=web_search
  ToolCall[0]: arguments={"query": ["machine learning", "deep learning"]}
  ToolCall[1]: name=open_url
  ToolCall[1]: arguments={"url": "https://example.com/article"}
  Content: '\n'
  Content: 'Here'
  Content: ' is'
  Content: ' the'
  Content: ' summary'
  Content: '.'

--- TEST 3: Streaming with simple array ---
Streaming output:
  ToolCall[0]: name=web_search
  ToolCall[0]: arguments={"query": ["python", "tutorial", "beginner", "examples"]}

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.
  • (Optional) Release notes update. If your change is user facing, please update the release notes draft in the Google Doc.

@randzero randzero force-pushed the feat-stepdr_tool_parser branch 7 times, most recently from 8b47a77 to 0a2f924 Compare November 27, 2025 09:26
@randzero randzero force-pushed the feat-stepdr_tool_parser branch from 0a2f924 to 06e3022 Compare November 27, 2025 09:44
@randzero randzero merged commit f2e9404 into main Nov 28, 2025
1 check 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.

1 participant