As a LangChain user streaming a tool-calling model, I expect each streamed chunk to expose structured `tool_call_chunk` content blocks so I can render or process tool calls live, instead of waiting for the final aggregated message. This adds `tool_call_streaming` to `ModelProfile` and uses it in the standard chat-model tool-calling tests. When a model profile opts in, `test_tool_calling` and `test_tool_calling_async` now validate that at least one streamed chunk includes a `tool_call_chunk` block via `content_blocks`, while preserving the existing final-message validation. This keeps the contract profile-gated so providers can opt in once their streaming chunk shape is verified. This PR opts in the providers verified by smoke testing with straightforward profile coverage: OpenAI, Anthropic, Fireworks, HuggingFace, OpenRouter, DeepSeek, and xAI. The generated profile artifacts are refreshed so runtime profiles expose the new capability flag. Perplexity Responses also passed the smoke test, but its current profile data is for the `sonar` family while the Responses smoke path used a routed model string. That profile strategy is left as follow-up. MistralAI currently streams `.tool_call_chunks`, but its content-block translator exposes a complete `tool_call` block instead of `tool_call_chunk`, so it also stays out of this flag until that integration is fixed.
🦜🪪 langchain-model-profiles
Warning
This package is currently in development and the API is subject to change.
CLI tool for updating model profile data in LangChain integration packages.
Quick Install
pip install langchain-model-profiles
🤔 What is this?
langchain-model-profiles is a CLI tool for fetching and updating model capability data from models.dev for use in LangChain integration packages.
LangChain chat models expose a .profile field that provides programmatic access to model capabilities such as context window sizes, supported modalities, tool calling, structured output, and more. This CLI tool helps maintainers keep that data up-to-date.
Data sources
This package is built on top of the excellent work by the models.dev project, an open source initiative that provides model capability data.
LangChain model profiles augment the data from models.dev with some additional fields. We intend to keep this aligned with the upstream project as it evolves.
📖 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.
Usage
Update model profile data for a specific provider:
langchain-profiles refresh --provider anthropic --data-dir ./langchain_anthropic/data
This downloads the latest model data from models.dev, merges it with any augmentations defined in profile_augmentations.toml, and generates a profiles.py file.