Files
Sydney Runkle 2fe4e2c7b0 refactor(core): use cached_property for openai function schema and char count
Move _openai_function_dict and _openai_function_chars from manual __dict__
stashing in external functions to proper cached_property declarations on
ChildTool, consistent with how tool_call_schema and args are already cached.

Extract _compute_openai_function_dict (pure computation, no caching) from
_format_tool_to_openai_function so ChildTool._openai_function_dict can call
it without circular dependency. _format_tool_to_openai_function now delegates
to tool._openai_function_dict for ChildTool instances and falls back to direct
computation for other BaseTool subclasses.

_openai_function_chars chains off _openai_function_dict so json.dumps is also
computed at most once per mutation cycle. count_tokens_approximately accesses
tool._openai_function_chars directly instead of managing __dict__ by hand.

Invalidation via ChildTool.__setattr__ (popping both keys on args_schema /
description / name mutation) is unchanged.
2026-04-27 13:59:15 -04:00
..
2026-04-24 11:46:25 -04:00
2026-04-24 11:46:25 -04:00

🦜🍎 LangChain Core

PyPI - Version PyPI - License PyPI - Downloads Twitter

Looking for the JS/TS version? Check out LangChain.js.

To help you ship LangChain apps to production faster, check out LangSmith. LangSmith is a unified developer platform for building, testing, and monitoring LLM applications.

Quick Install

pip install langchain-core

🤔 What is this?

LangChain Core contains the base abstractions that power the LangChain ecosystem.

These abstractions are designed to be as modular and simple as possible.

The benefit of having these abstractions is that any provider can implement the required interface and then easily be used in the rest of the LangChain ecosystem.

⛰️ Why build on top of LangChain Core?

The LangChain ecosystem is built on top of langchain-core. Some of the benefits:

  • Modularity: We've designed Core around abstractions that are independent of each other, and not tied to any specific model provider.
  • Stability: We are committed to a stable versioning scheme, and will communicate any breaking changes with advance notice and version bumps.
  • Battle-tested: Core components have the largest install base in the LLM ecosystem, and are used in production by many companies.

📖 Documentation

For full documentation, see the API reference. For conceptual guides, tutorials, and examples on using LangChain, see the LangChain Docs. You can also chat with the docs using Chat LangChain.

📕 Releases & Versioning

See our Releases and Versioning policies.

💁 Contributing

As an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.

For detailed information on how to contribute, see the Contributing Guide.