create_react_agent with structured_response omits or alters the raw LLM output despite including system prompt #635

Closed
opened 2026-02-20 17:41:03 -05:00 by yindo · 1 comment
Owner

Originally created by @AjitAntony on GitHub (May 20, 2025).

Originally assigned to: @sydney-runkle on GitHub.

Checked other resources

  • This is a bug, not a usage question. For questions, please use GitHub Discussions.
  • I added a clear and detailed title that summarizes the issue.
  • I read what a minimal reproducible example is (https://stackoverflow.com/help/minimal-reproducible-example).
  • I included a self-contained, minimal example that demonstrates the issue INCLUDING all the relevant imports. The code run AS IS to reproduce the issue.

Example Code

from langchain_openai import AzureChatOpenAI,AzureOpenAIEmbeddings
from typing import List, Optional, Literal
from pydantic import BaseModel, Field
from langchain_core.messages import HumanMessage
from langgraph.prebuilt import create_react_agent
import os 
llm = AzureChatOpenAI(
    azure_deployment=os.getenv('azure_deployment'),  # or your deployment
    api_version="2024-10-21"
    temperature=0,
    azure_endpoint=os.getenv('azure_endpoint')
    api_key=os.getenv('api_key')
    
)


class QueryItem(BaseModel):
    query: str
    agent: Literal["api_caller_agent", "vector_search_agent"]

class QueryList(BaseModel):
    queries: List[QueryItem]
	
	
query_decomposer_agent = create_react_agent(
llm, tools=[],prompt='''
    
#Objective: Decompose a user's query into a sequence of structured subqueries, each assigned to the appropriate agent (api_caller_agent or vector_search_agent), to facilitate information retrieval from APIs or vector databases.


#Instructions:
Understand the User's Query:
Analyze the user's question to determine the core intent.
Identify if the query can be answered directly or needs to be broken down into multiple subqueries.


#Decompose into Subqueries:
If decomposition is needed, break the main query into smaller, manageable subqueries.
Ensure each subquery targets a specific piece of information required to answer the main question.


#Assign Appropriate Agents:
For subqueries requiring student-specific information (e.g.,student ID,program enrolled,GPA,credit scores), assign to api_caller_agent.
For subqueries related to institutional information (e.g., university policies, program details), assign to vector_search_agent.


#Format the Output:
Present the subqueries in a JSON format as follows:
{
  "queries": [
    {
      "query": First query,
      "agent": agent to call
    },
    
    {
      "query": second query,
      "agent": agent to call
    },
    ]
}


#Guidelines:
Do not include any explanations or additional text outside the JSON structure.
Ensure clarity and specificity in each subquery to facilitate accurate information retrieval.
Maintain the sequence of subqueries in a logical order that builds towards answering the main question.


#Example:
Given the user's query: "How much credit scores should i completed ?"
The structured subqueries would be
{
  "queries": [
    {
      "query": "What is the student's program name?",
      "agent": "api_caller_agent"
    },
    {
      "query": "What is the student's current credit scor ?",
      "agent": "api_caller_agent"
    },
    {
      "query": "credit score requirement for the student program",
      "agent": "vector_search_agent"
    }
  ]
}


''',
response_format=("Convert the following response into the structured JSON format:Do not do anything else",QueryList))               

res = query_decomposer_agent.invoke({
            "messages": [
                HumanMessage(content="How much credit should i earn? ")
            ]
            
        })
print(res)

Error Message and Stack Trace (if applicable)

Response with custom_prompt  in response_format

{'messages': [HumanMessage(content='How much credit should i earn? ', additional_kwargs={}, response_metadata={}, id='XXX'), AIMessage(content='{\n  "queries": [\n    {\n      "query": "What is the student\'s program name?",\n      "agent": "api_caller_agent"\n    },\n    {\n      "query": "What is the student\'s current credit score?",\n      "agent": "api_caller_agent"\n    },\n    {\n      "query": "Credit score requirement for the student\'s program",\n      "agent": "vector_search_agent"\n    }\n  ]\n}', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 89, 'prompt_tokens': 424, 'total_tokens': 513, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_name': 'gpt-4o-2024-11-20', 'system_fingerprint': 'fp_ee1d74bde0', 'id': 'XXX', 'prompt_filter_results': [{'prompt_index': 0, 'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'}, 'jailbreak': {'filtered': False, 'detected': False}, 'self_harm': {'filtered': False, 'severity': 'safe'}, 'sexual': {'filtered': False, 'severity': 'safe'}, 'violence': {'filtered': False, 'severity': 'safe'}}}], 'finish_reason': 'stop', 'logprobs': None, 'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'}, 'protected_material_code': {'filtered': False, 'detected': False}, 'protected_material_text': {'filtered': False, 'detected': False}, 'self_harm': {'filtered': False, 'severity': 'safe'}, 'sexual': {'filtered': False, 'severity': 'safe'}, 'violence': {'filtered': False, 'severity': 'safe'}}}, id='XXX', usage_metadata={'input_tokens': 424, 'output_tokens': 89, 'total_tokens': 513, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}})], 'structured_response': QueryList(queries=[QueryItem(query='How much credit should I earn?', agent='vector_search_agent')])}

Response without custom_prompt  in response_format 

{'messages': [HumanMessage(content='How much credit should i earn? ', additional_kwargs={}, response_metadata={}, id='418b96b4-e7bf-4afb-ba53-128e8d72b4b6'), AIMessage(content='{\n  "queries": [\n    {\n      "query": "What is the student\'s program name?",\n      "agent": "api_caller_agent"\n    },\n    {\n      "query": "What is the student\'s current credit score?",\n      "agent": "api_caller_agent"\n    },\n    {\n      "query": "Credit score requirement for the student\'s program",\n      "agent": "vector_search_agent"\n    }\n  ]\n}', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 89, 'prompt_tokens': 424, 'total_tokens': 513, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_name': 'gpt-4o-2024-11-20', 'system_fingerprint': 'fp_ee1d74bde0', 'id': 'chatcmpl-BZEPmru58GEQYNoHa04wIXUZE3qN8', 'prompt_filter_results': [{'prompt_index': 0, 'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'}, 'jailbreak': {'filtered': False, 'detected': False}, 'self_harm': {'filtered': False, 'severity': 'safe'}, 'sexual': {'filtered': False, 'severity': 'safe'}, 'violence': {'filtered': False, 'severity': 'safe'}}}], 'finish_reason': 'stop', 'logprobs': None, 'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'}, 'protected_material_code': {'filtered': False, 'detected': False}, 'protected_material_text': {'filtered': False, 'detected': False}, 'self_harm': {'filtered': False, 'severity': 'safe'}, 'sexual': {'filtered': False, 'severity': 'safe'}, 'violence': {'filtered': False, 'severity': 'safe'}}}, id='run-34882419-b636-4213-adf6-1e0c746c28c6-0', usage_metadata={'input_tokens': 424, 'output_tokens': 89, 'total_tokens': 513, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}})], 'structured_response': QueryList(queries=[QueryItem(query='What is the context of the credit being referred to?', agent='api_caller_agent'), QueryItem(query='What is the current status or amount of credit earned?', agent='api_caller_agent')])}

Description

Usecase

Model used : gpt4o
An agent takes a user input and decomposes it into multiple queries.
We configured create_react_agent with response_format to produce structured responses.
However, the final structured_response omits most of the relevant information derived from the last user message.

According to the documentation, structured output involves an additional call to the LLM to format the response using the specified schema.

Even after providing an additional prompt alongside the schema via:
response_format = (custom_prompt, schema)
response_format=("Convert the following response into the structured JSON format:Do not do anything else",QueryList))

The structured output still fails to include critical context from the final user message. The issue happens without sending custom_prompt as well in response_format .

res["messages"][1].content
Response object with llm response in content field
{\n "queries": [\n {\n "query": "What is the student\'s program name?",\n "agent": "api_caller_agent"\n },\n {\n "query": "What is the student\'s current credit score?",\n "agent": "api_caller_agent"\n },\n {\n "query": "Credit score requirement for the student\'s program",\n "agent": "vector_search_agent"\n }\n ]\n}

res["structured_response"]
Expectation is the Response object with llm response in content field must be formatted in the schema specified in QueryList but as you can see there it has omitted steps included in res["messages"][1].content .

structured_response': QueryList(queries=[QueryItem(query='How much credit should I earn?', agent='vector_search_agent')])

System Info

System Information

OS: Windows
OS Version: 10.0.19045
Python Version: 3.11.9 (tags/v3.11.9:de54cf5, Apr 2 2024, 10:12:12) [MSC v.1938 64 bit (AMD64)]

Package Information

langchain_core: 0.3.56
langchain: 0.3.24
langchain_community: 0.3.23
langsmith: 0.3.38
langchain_openai: 0.3.14
langchain_text_splitters: 0.3.8
langgraph_api: 0.1.22
langgraph_cli: 0.2.7
langgraph_license: Installed. No version info available.
langgraph_runtime: Installed. No version info available.
langgraph_runtime_inmem: 0.0.8
langgraph_sdk: 0.1.64

Optional packages not installed

langserve

Other Dependencies

aiohttp<4.0.0,>=3.8.3: Installed. No version info available.
async-timeout<5.0.0,>=4.0.0;: Installed. No version info available.
blockbuster: 1.5.24
click: 8.1.8
cloudpickle: 3.1.1
cryptography: 44.0.2
dataclasses-json<0.7,>=0.5.7: Installed. No version info available.
httpx: 0.28.1
httpx-sse<1.0.0,>=0.4.0: Installed. No version info available.
jsonpatch<2.0,>=1.33: Installed. No version info available.
jsonschema-rs: 0.29.1
langchain-anthropic;: Installed. No version info available.
langchain-aws;: Installed. No version info available.
langchain-azure-ai;: Installed. No version info available.
langchain-cohere;: Installed. No version info available.
langchain-community;: Installed. No version info available.
langchain-core<1.0.0,>=0.3.51: Installed. No version info available.
langchain-core<1.0.0,>=0.3.53: Installed. No version info available.
langchain-core<1.0.0,>=0.3.55: Installed. No version info available.
langchain-core<1.0.0,>=0.3.56: Installed. No version info available.
langchain-deepseek;: Installed. No version info available.
langchain-fireworks;: Installed. No version info available.
langchain-google-genai;: Installed. No version info available.
langchain-google-vertexai;: Installed. No version info available.
langchain-groq;: Installed. No version info available.
langchain-huggingface;: Installed. No version info available.
langchain-mistralai;: Installed. No version info available.
langchain-ollama;: Installed. No version info available.
langchain-openai;: Installed. No version info available.
langchain-perplexity;: Installed. No version info available.
langchain-text-splitters<1.0.0,>=0.3.8: Installed. No version info available.
langchain-together;: Installed. No version info available.
langchain-xai;: Installed. No version info available.
langchain<1.0.0,>=0.3.24: Installed. No version info available.
langgraph: 0.4.0
langgraph-checkpoint: 2.0.25
langsmith-pyo3: Installed. No version info available.
langsmith<0.4,>=0.1.125: Installed. No version info available.
langsmith<0.4,>=0.1.17: Installed. No version info available.
numpy>=1.26.2;: Installed. No version info available.
numpy>=2.1.0;: Installed. No version info available.
openai-agents: Installed. No version info available.
openai<2.0.0,>=1.68.2: Installed. No version info available.
opentelemetry-api: Installed. No version info available.
opentelemetry-exporter-otlp-proto-http: Installed. No version info available.
opentelemetry-sdk: Installed. No version info available.
orjson: 3.10.18
packaging: 24.2
packaging<25,>=23.2: Installed. No version info available.
pydantic: 2.11.4
pydantic-settings<3.0.0,>=2.4.0: Installed. No version info available.
pydantic<3.0.0,>=2.5.2;: Installed. No version info available.
pydantic<3.0.0,>=2.7.4: Installed. No version info available.
pydantic<3.0.0,>=2.7.4;: Installed. No version info available.
pyjwt: 2.10.1
pytest: Installed. No version info available.
python-dotenv: 1.1.0
PyYAML>=5.3: Installed. No version info available.
requests: 2.32.3
requests-toolbelt: 1.0.0
requests<3,>=2: Installed. No version info available.
rich: Installed. No version info available.
SQLAlchemy<3,>=1.4: Installed. No version info available.
sse-starlette: 2.1.3
starlette: 0.46.2
structlog: 25.3.0
tenacity: 9.1.2
tenacity!=8.4.0,<10,>=8.1.0: Installed. No version info available.
tenacity!=8.4.0,<10.0.0,>=8.1.0: Installed. No version info available.
tiktoken<1,>=0.7: Installed. No version info available.
typing-extensions>=4.7: Installed. No version info available.
uvicorn: 0.34.2
watchfiles: 1.0.5
zstandard: 0.23.0

Originally created by @AjitAntony on GitHub (May 20, 2025). Originally assigned to: @sydney-runkle on GitHub. ### Checked other resources - [x] This is a bug, not a usage question. For questions, please use GitHub Discussions. - [x] I added a clear and detailed title that summarizes the issue. - [x] I read what a minimal reproducible example is (https://stackoverflow.com/help/minimal-reproducible-example). - [x] I included a self-contained, minimal example that demonstrates the issue INCLUDING all the relevant imports. The code run AS IS to reproduce the issue. ### Example Code ```python from langchain_openai import AzureChatOpenAI,AzureOpenAIEmbeddings from typing import List, Optional, Literal from pydantic import BaseModel, Field from langchain_core.messages import HumanMessage from langgraph.prebuilt import create_react_agent import os llm = AzureChatOpenAI( azure_deployment=os.getenv('azure_deployment'), # or your deployment api_version="2024-10-21" temperature=0, azure_endpoint=os.getenv('azure_endpoint') api_key=os.getenv('api_key') ) class QueryItem(BaseModel): query: str agent: Literal["api_caller_agent", "vector_search_agent"] class QueryList(BaseModel): queries: List[QueryItem] query_decomposer_agent = create_react_agent( llm, tools=[],prompt=''' #Objective: Decompose a user's query into a sequence of structured subqueries, each assigned to the appropriate agent (api_caller_agent or vector_search_agent), to facilitate information retrieval from APIs or vector databases. #Instructions: Understand the User's Query: Analyze the user's question to determine the core intent. Identify if the query can be answered directly or needs to be broken down into multiple subqueries. #Decompose into Subqueries: If decomposition is needed, break the main query into smaller, manageable subqueries. Ensure each subquery targets a specific piece of information required to answer the main question. #Assign Appropriate Agents: For subqueries requiring student-specific information (e.g.,student ID,program enrolled,GPA,credit scores), assign to api_caller_agent. For subqueries related to institutional information (e.g., university policies, program details), assign to vector_search_agent. #Format the Output: Present the subqueries in a JSON format as follows: { "queries": [ { "query": First query, "agent": agent to call }, { "query": second query, "agent": agent to call }, ] } #Guidelines: Do not include any explanations or additional text outside the JSON structure. Ensure clarity and specificity in each subquery to facilitate accurate information retrieval. Maintain the sequence of subqueries in a logical order that builds towards answering the main question. #Example: Given the user's query: "How much credit scores should i completed ?" The structured subqueries would be { "queries": [ { "query": "What is the student's program name?", "agent": "api_caller_agent" }, { "query": "What is the student's current credit scor ?", "agent": "api_caller_agent" }, { "query": "credit score requirement for the student program", "agent": "vector_search_agent" } ] } ''', response_format=("Convert the following response into the structured JSON format:Do not do anything else",QueryList)) res = query_decomposer_agent.invoke({ "messages": [ HumanMessage(content="How much credit should i earn? ") ] }) print(res) ``` ### Error Message and Stack Trace (if applicable) ```shell Response with custom_prompt in response_format {'messages': [HumanMessage(content='How much credit should i earn? ', additional_kwargs={}, response_metadata={}, id='XXX'), AIMessage(content='{\n "queries": [\n {\n "query": "What is the student\'s program name?",\n "agent": "api_caller_agent"\n },\n {\n "query": "What is the student\'s current credit score?",\n "agent": "api_caller_agent"\n },\n {\n "query": "Credit score requirement for the student\'s program",\n "agent": "vector_search_agent"\n }\n ]\n}', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 89, 'prompt_tokens': 424, 'total_tokens': 513, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_name': 'gpt-4o-2024-11-20', 'system_fingerprint': 'fp_ee1d74bde0', 'id': 'XXX', 'prompt_filter_results': [{'prompt_index': 0, 'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'}, 'jailbreak': {'filtered': False, 'detected': False}, 'self_harm': {'filtered': False, 'severity': 'safe'}, 'sexual': {'filtered': False, 'severity': 'safe'}, 'violence': {'filtered': False, 'severity': 'safe'}}}], 'finish_reason': 'stop', 'logprobs': None, 'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'}, 'protected_material_code': {'filtered': False, 'detected': False}, 'protected_material_text': {'filtered': False, 'detected': False}, 'self_harm': {'filtered': False, 'severity': 'safe'}, 'sexual': {'filtered': False, 'severity': 'safe'}, 'violence': {'filtered': False, 'severity': 'safe'}}}, id='XXX', usage_metadata={'input_tokens': 424, 'output_tokens': 89, 'total_tokens': 513, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}})], 'structured_response': QueryList(queries=[QueryItem(query='How much credit should I earn?', agent='vector_search_agent')])} Response without custom_prompt in response_format {'messages': [HumanMessage(content='How much credit should i earn? ', additional_kwargs={}, response_metadata={}, id='418b96b4-e7bf-4afb-ba53-128e8d72b4b6'), AIMessage(content='{\n "queries": [\n {\n "query": "What is the student\'s program name?",\n "agent": "api_caller_agent"\n },\n {\n "query": "What is the student\'s current credit score?",\n "agent": "api_caller_agent"\n },\n {\n "query": "Credit score requirement for the student\'s program",\n "agent": "vector_search_agent"\n }\n ]\n}', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 89, 'prompt_tokens': 424, 'total_tokens': 513, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_name': 'gpt-4o-2024-11-20', 'system_fingerprint': 'fp_ee1d74bde0', 'id': 'chatcmpl-BZEPmru58GEQYNoHa04wIXUZE3qN8', 'prompt_filter_results': [{'prompt_index': 0, 'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'}, 'jailbreak': {'filtered': False, 'detected': False}, 'self_harm': {'filtered': False, 'severity': 'safe'}, 'sexual': {'filtered': False, 'severity': 'safe'}, 'violence': {'filtered': False, 'severity': 'safe'}}}], 'finish_reason': 'stop', 'logprobs': None, 'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'}, 'protected_material_code': {'filtered': False, 'detected': False}, 'protected_material_text': {'filtered': False, 'detected': False}, 'self_harm': {'filtered': False, 'severity': 'safe'}, 'sexual': {'filtered': False, 'severity': 'safe'}, 'violence': {'filtered': False, 'severity': 'safe'}}}, id='run-34882419-b636-4213-adf6-1e0c746c28c6-0', usage_metadata={'input_tokens': 424, 'output_tokens': 89, 'total_tokens': 513, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}})], 'structured_response': QueryList(queries=[QueryItem(query='What is the context of the credit being referred to?', agent='api_caller_agent'), QueryItem(query='What is the current status or amount of credit earned?', agent='api_caller_agent')])} ``` ### Description ### Usecase Model used : gpt4o An agent takes a user input and decomposes it into multiple queries. We configured create_react_agent with response_format to produce structured responses. However, the final structured_response omits most of the relevant information derived from the last user message. According to the [documentation](https://langchain-ai.github.io/langgraph/agents/agents/#6-configure-structured-output), structured output involves an additional call to the LLM to format the response using the specified schema. Even after providing an additional prompt alongside the schema via: `response_format = (custom_prompt, schema) ` `response_format=("Convert the following response into the structured JSON format:Do not do anything else",QueryList)) ` The structured output still fails to include critical context from the final user message. The issue happens without sending custom_prompt as well in response_format . **res["messages"][1].content** _Response object with llm response in content field_ `{\n "queries": [\n {\n "query": "What is the student\'s program name?",\n "agent": "api_caller_agent"\n },\n {\n "query": "What is the student\'s current credit score?",\n "agent": "api_caller_agent"\n },\n {\n "query": "Credit score requirement for the student\'s program",\n "agent": "vector_search_agent"\n }\n ]\n}` **res["structured_response"]** __Expectation is the Response object with llm response in content field must be formatted in the schema specified in QueryList_ but as you can see there it has omitted steps included in res["messages"][1].content ._ `structured_response': QueryList(queries=[QueryItem(query='How much credit should I earn?', agent='vector_search_agent')])` ### System Info System Information ------------------ > OS: Windows > OS Version: 10.0.19045 > Python Version: 3.11.9 (tags/v3.11.9:de54cf5, Apr 2 2024, 10:12:12) [MSC v.1938 64 bit (AMD64)] Package Information ------------------- > langchain_core: 0.3.56 > langchain: 0.3.24 > langchain_community: 0.3.23 > langsmith: 0.3.38 > langchain_openai: 0.3.14 > langchain_text_splitters: 0.3.8 > langgraph_api: 0.1.22 > langgraph_cli: 0.2.7 > langgraph_license: Installed. No version info available. > langgraph_runtime: Installed. No version info available. > langgraph_runtime_inmem: 0.0.8 > langgraph_sdk: 0.1.64 Optional packages not installed ------------------------------- > langserve Other Dependencies ------------------ > aiohttp<4.0.0,>=3.8.3: Installed. No version info available. > async-timeout<5.0.0,>=4.0.0;: Installed. No version info available. > blockbuster: 1.5.24 > click: 8.1.8 > cloudpickle: 3.1.1 > cryptography: 44.0.2 > dataclasses-json<0.7,>=0.5.7: Installed. No version info available. > httpx: 0.28.1 > httpx-sse<1.0.0,>=0.4.0: Installed. No version info available. > jsonpatch<2.0,>=1.33: Installed. No version info available. > jsonschema-rs: 0.29.1 > langchain-anthropic;: Installed. No version info available. > langchain-aws;: Installed. No version info available. > langchain-azure-ai;: Installed. No version info available. > langchain-cohere;: Installed. No version info available. > langchain-community;: Installed. No version info available. > langchain-core<1.0.0,>=0.3.51: Installed. No version info available. > langchain-core<1.0.0,>=0.3.53: Installed. No version info available. > langchain-core<1.0.0,>=0.3.55: Installed. No version info available. > langchain-core<1.0.0,>=0.3.56: Installed. No version info available. > langchain-deepseek;: Installed. No version info available. > langchain-fireworks;: Installed. No version info available. > langchain-google-genai;: Installed. No version info available. > langchain-google-vertexai;: Installed. No version info available. > langchain-groq;: Installed. No version info available. > langchain-huggingface;: Installed. No version info available. > langchain-mistralai;: Installed. No version info available. > langchain-ollama;: Installed. No version info available. > langchain-openai;: Installed. No version info available. > langchain-perplexity;: Installed. No version info available. > langchain-text-splitters<1.0.0,>=0.3.8: Installed. No version info available. > langchain-together;: Installed. No version info available. > langchain-xai;: Installed. No version info available. > langchain<1.0.0,>=0.3.24: Installed. No version info available. > langgraph: 0.4.0 > langgraph-checkpoint: 2.0.25 > langsmith-pyo3: Installed. No version info available. > langsmith<0.4,>=0.1.125: Installed. No version info available. > langsmith<0.4,>=0.1.17: Installed. No version info available. > numpy>=1.26.2;: Installed. No version info available. > numpy>=2.1.0;: Installed. No version info available. > openai-agents: Installed. No version info available. > openai<2.0.0,>=1.68.2: Installed. No version info available. > opentelemetry-api: Installed. No version info available. > opentelemetry-exporter-otlp-proto-http: Installed. No version info available. > opentelemetry-sdk: Installed. No version info available. > orjson: 3.10.18 > packaging: 24.2 > packaging<25,>=23.2: Installed. No version info available. > pydantic: 2.11.4 > pydantic-settings<3.0.0,>=2.4.0: Installed. No version info available. > pydantic<3.0.0,>=2.5.2;: Installed. No version info available. > pydantic<3.0.0,>=2.7.4: Installed. No version info available. > pydantic<3.0.0,>=2.7.4;: Installed. No version info available. > pyjwt: 2.10.1 > pytest: Installed. No version info available. > python-dotenv: 1.1.0 > PyYAML>=5.3: Installed. No version info available. > requests: 2.32.3 > requests-toolbelt: 1.0.0 > requests<3,>=2: Installed. No version info available. > rich: Installed. No version info available. > SQLAlchemy<3,>=1.4: Installed. No version info available. > sse-starlette: 2.1.3 > starlette: 0.46.2 > structlog: 25.3.0 > tenacity: 9.1.2 > tenacity!=8.4.0,<10,>=8.1.0: Installed. No version info available. > tenacity!=8.4.0,<10.0.0,>=8.1.0: Installed. No version info available. > tiktoken<1,>=0.7: Installed. No version info available. > typing-extensions>=4.7: Installed. No version info available. > uvicorn: 0.34.2 > watchfiles: 1.0.5 > zstandard: 0.23.0
yindo added the bug label 2026-02-20 17:41:03 -05:00
yindo closed this issue 2026-02-20 17:41:03 -05:00
Author
Owner

@sydney-runkle commented on GitHub (Nov 7, 2025):

Thanks for the callout here. We've improved structured output logic in LangChain v1's new create_agent (no longer implemented as a different step), which should solve this problem.

@sydney-runkle commented on GitHub (Nov 7, 2025): Thanks for the callout here. We've improved structured output logic in LangChain v1's new `create_agent` (no longer implemented as a different step), which should solve this problem.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langchain-ai/langgraph#635