-
Notifications
You must be signed in to change notification settings - Fork 20.4k
Labels
bugRelated to a bug, vulnerability, unexpected error with an existing featureRelated to a bug, vulnerability, unexpected error with an existing featurelangchain`langchain` package issues & PRs`langchain` package issues & PRs
Description
Checked other resources
- This is a bug, not a usage question.
- I added a clear and descriptive title that summarizes this issue.
- I used the GitHub search to find a similar question and didn't find it.
- I am sure that this is a bug in LangChain rather than my code.
- The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).
- This is not related to the langchain-community package.
- I posted a self-contained, minimal, reproducible example. A maintainer can copy it and run it AS IS.
Package (Required)
- langchain
- langchain-openai
- langchain-anthropic
- langchain-classic
- langchain-core
- langchain-cli
- langchain-model-profiles
- langchain-tests
- langchain-text-splitters
- langchain-chroma
- langchain-deepseek
- langchain-exa
- langchain-fireworks
- langchain-groq
- langchain-huggingface
- langchain-mistralai
- langchain-nomic
- langchain-ollama
- langchain-perplexity
- langchain-prompty
- langchain-qdrant
- langchain-xai
- Other / not sure / general
Example Code (Python)
from dataclasses import dataclass
from langchain.tools import ToolRuntime, tool
@dataclass
class ExampleToolContext:
user_id: str
session_id: str
@tool
async def example_tool(query: str, runtime: ToolRuntime[ExampleToolContext]) -> str:
"""
This is an example tool that processes a query.
Args:
query (str): The query to process.
"""
print(f"Query: {query}")
print(f"User ID: {runtime.context.user_id}")
return "This is an example tool."
if __name__ == "__main__":
x = example_tool.args
print(x)Error Message and Stack Trace (if applicable)
Traceback (most recent call last):
File "/Codes/langchain_tool_issue/main.py", line 26, in <module>
x = example_tool.args
^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/langchain_core/tools/base.py", line 570, in args
json_schema = input_schema.model_json_schema()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/main.py", line 576, in model_json_schema
return model_json_schema(
^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 2548, in model_json_schema
return schema_generator_instance.generate(cls.__pydantic_core_schema__, mode=mode)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 415, in generate
json_schema: JsonSchemaValue = self.generate_inner(schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 578, in generate_inner
json_schema = current_handler(schema)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 37, in __call__
return self.handler(core_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 556, in new_handler_func
json_schema = js_modify_function(schema_or_field, current_handler)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/main.py", line 852, in __get_pydantic_json_schema__
return handler(core_schema)
^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 37, in __call__
return self.handler(core_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 511, in handler_func
json_schema = generate_for_schema_type(schema_or_field)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 1604, in model_schema
json_schema = self.generate_inner(schema['schema'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 578, in generate_inner
json_schema = current_handler(schema)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 37, in __call__
return self.handler(core_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 511, in handler_func
json_schema = generate_for_schema_type(schema_or_field)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 1717, in model_fields_schema
json_schema = self._named_required_fields_schema(named_required_fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 1508, in _named_required_fields_schema
field_json_schema = self.generate_inner(field).copy()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 578, in generate_inner
json_schema = current_handler(schema)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 37, in __call__
return self.handler(core_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 511, in handler_func
json_schema = generate_for_schema_type(schema_or_field)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 1576, in model_field_schema
return self.generate_inner(schema['schema'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 578, in generate_inner
json_schema = current_handler(schema)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 37, in __call__
return self.handler(core_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 511, in handler_func
json_schema = generate_for_schema_type(schema_or_field)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 1806, in dataclass_schema
json_schema = self.generate_inner(schema['schema']).copy()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 578, in generate_inner
json_schema = current_handler(schema)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 37, in __call__
return self.handler(core_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 511, in handler_func
json_schema = generate_for_schema_type(schema_or_field)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 1789, in dataclass_args_schema
return self._named_required_fields_schema(named_required_fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 1508, in _named_required_fields_schema
field_json_schema = self.generate_inner(field).copy()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 578, in generate_inner
json_schema = current_handler(schema)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 37, in __call__
return self.handler(core_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 511, in handler_func
json_schema = generate_for_schema_type(schema_or_field)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 1565, in dataclass_field_schema
return self.generate_inner(schema['schema'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 578, in generate_inner
json_schema = current_handler(schema)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 37, in __call__
return self.handler(core_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 511, in handler_func
json_schema = generate_for_schema_type(schema_or_field)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 948, in callable_schema
return self.handle_invalid_for_json_schema(schema, 'core_schema.CallableSchema')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Codes/langchain_tool_issue/.venv/lib/python3.12/site-packages/pydantic/json_schema.py", line 2442, in handle_invalid_for_json_schema
raise PydanticInvalidForJsonSchema(f'Cannot generate a JsonSchema for {error_info}')
pydantic.errors.PydanticInvalidForJsonSchema: Cannot generate a JsonSchema for core_schema.CallableSchema
For further information visit https://errors.pydantic.dev/2.12/u/invalid-for-json-schemaDescription
When a tool have a ToolRuntime as a parameter, calling args on that tool throws an exception
System Info
System Information
OS: Darwin
OS Version: Darwin Kernel Version 25.1.0: Mon Oct 20 19:32:41 PDT 2025; root:xnu-12377.41.6~2/RELEASE_ARM64_T6000
Python Version: 3.12.11 (main, Sep 15 2025, 09:16:09) [Clang 17.0.0 (clang-1700.0.13.5)]
Package Information
langchain_core: 1.2.5
langchain: 1.2.0
langsmith: 0.5.2
langgraph_sdk: 0.3.1
Optional packages not installed
langserve
Other Dependencies
httpx: 0.28.1
jsonpatch: 1.33
langgraph: 1.0.5
orjson: 3.11.5
packaging: 25.0
pydantic: 2.12.5
pyyaml: 6.0.3
requests: 2.32.5
requests-toolbelt: 1.0.0
tenacity: 9.1.2
typing-extensions: 4.15.0
uuid-utils: 0.12.0
zstandard: 0.25.0
Metadata
Metadata
Assignees
Labels
bugRelated to a bug, vulnerability, unexpected error with an existing featureRelated to a bug, vulnerability, unexpected error with an existing featurelangchain`langchain` package issues & PRs`langchain` package issues & PRs