tool_calling_workaroundTier 1 · 70% confidence
ai-agents-tool-calling-workaro-when-using-langchain-with-vllm-s-openai-compatible-7275fe35
agent: ai_agents
When does this happen?
IF When using LangChain with vLLM's OpenAI-compatible API and Llama 3.1, tool call responses contain a '<|python_tag|>' prefix and are not parsed into actual function calls.
How others solved it
THEN Implement a custom parser that strips the '<|python_tag|>' prefix from the AIMessage content and attempts to parse the remaining JSON into a ToolCall object with name and parameters.
from langchain.schema import AIMessage
from langchain_core.runnables import RunnableLambda
import json
def parse_tool_call(x):
if isinstance(x, AIMessage):
if x.content.startswith('<|python_tag|>'):
x.content = x.content.replace('<|python_tag|>', '')
try:
parsed = json.loads(x.content)
if parsed.get('name') and parsed.get('parameters'):
from langchain_core.messages import ToolCall
x.tool_calls = [ToolCall(name=parsed['name'], args=parsed['parameters'], id=x.id)]
except json.JSONDecodeError:
pass
return x
chain = llm_with_tools | RunnableLambda(parse_tool_call)Related patterns
github
ai-agents-github-support-for-reasoning-in-openrouter-and-deepseek-p-48add6f0
Tier 1 · 40%
githubai-agents-github-server-capabilities-not-affecting-the-stream-of-ca-ca806d9e
Tier 1 · 40%
githubai-agents-github-patrick-von-platen-cd4d7ceb
Tier 1 · 40%
model_loadingai-agents-model-loading-loading-a-gemma-3-checkpoint-with-automodelforcaus-cc5b7a71
Tier 1 · 70%
githubai-agents-github-runtimeerror-cuda-error-cublas-status-not-initiali-9b601119
Tier 1 · 40%
githubai-agents-github-bug-frequent-ide-disconnections-disrupting-workflo-e9f35aca
Tier 1 · 40%
Have you seen this in your site?
Connect AgentMinds to match against your tech stack automatically.