Commit Graph
16641 Commits
Author SHA1 Message Date
ccurme ca3acde9b4 release(fireworks): 1.6.0 (#39810) langchain-fireworks==1.6.0 2026-08-20 13:41:26 -04:00
Noah Dylan b8d1ab5946 feat(fireworks): add document reranking (#39732) 2026-08-20 12:57:26 -04:00
langchain-oss-model-profiles[bot]andmdrxy 8df1265122 chore(model-profiles): refresh model profile data (#39789)
Automated refresh of model profile data for all in-monorepo partner
integrations via `langchain-profiles refresh`.

🤖 Generated by the [`refresh_model_profiles`
workflow](https://github.com/langchain-ai/langchain/blob/master/.github/workflows/refresh_model_profiles.yml).

## Summary of changes

**2 added · 2 removed · 6 changed** across 2 provider(s).

<details>
<summary>huggingface</summary>

**➕ 1 added**
- `zai-org/GLM-4.6V-Flash` — 131,072 ctx, 32,768 out, text+image in,
reasoning, tools

</details>

<details>
<summary>openrouter</summary>

**➕ 1 added**
- `~z-ai/glm-latest` — 1,048,576 ctx, 131,072 out, reasoning, tools

**➖ 2 removed**
- `ai21/jamba-large-1.7`
- `mancer/weaver`

**✏️ 6 changed**
- `deepseek/deepseek-chat-v3-0324`: max output tokens 65,536 → 163,840
- `deepseek/deepseek-v4-pro`: max output tokens 384,000 → 393,216
- `google/gemini-3.1-flash-lite-image`: max output tokens 66,000 →
65,536
- `qwen/qwen3.5-35b-a3b`: max output tokens 65,536 → 262,144
- `qwen/qwen3.6-27b`: max output tokens 65,536 → 262,144
- `qwen/qwen3.8-27b`: max input tokens 262,144 → 1,000,000

</details>

Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com>
2026-08-20 11:00:20 -04:00
ccurme 86ae76ad94 release(langchain): 1.3.16 (#39806) langchain==1.3.16 2026-08-20 10:32:02 -04:00
ccurme e727daaded fix(fireworks): filter invalid tool calls from v1 content (#39805) 2026-08-20 10:24:38 -04:00
ccurme 9bdaf437b6 release(anthropic): 1.6.1 (#39804) langchain-anthropic==1.6.1 2026-08-20 10:01:13 -04:00
ccurmeandopen-swe[bot] a36ddd46fe fix(anthropic): filter invalid tool calls from v1 content (#39803)
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-08-20 09:56:22 -04:00
ccurme 3478c28ef2 release(anthropic): 1.6.0 (#39763) langchain-anthropic==1.6.0 langchain-openai==1.6.0 2026-08-19 17:35:56 -04:00
ccurme 420dfc9451 release(openai): 1.6.0 (#39762) 2026-08-19 17:35:44 -04:00
ccurme 85602c3676 release(core): 1.6.0 (#39760) langchain-core==1.6.0 2026-08-19 11:51:29 -04:00
Mason Daugherty 5c3538e83a fix(core): resolve postponed annotations in StructuredTool._injected_args_keys (#39602)
Closes #39568

Related: #33999

> [!WARNING]
> This PR expands the surface area for arbitrary code execution during
tool setup. Detecting injected arguments now requires calling
`typing.get_type_hints`, which *evaluates* string annotations (e.g.
those created by `from __future__ import annotations` or quoted forward
references) as Python expressions. As with existing type-hint resolution
paths, wrapped tool callables must be trusted application code — never
point `StructuredTool` at a callable whose module or annotations come
from an untrusted source.

Tools with a custom `args_schema` could drop injected arguments such as
`ToolRuntime` when the wrapped function's module uses postponed
annotations. The injected value was removed during input validation, so
an otherwise valid tool call failed at invocation.

---

`StructuredTool` now resolves annotations with
`typing.get_type_hints(..., include_extras=True)` before identifying
injected parameters. If an unrelated forward reference prevents
resolving the complete signature, each string annotation is resolved
independently so resolvable injected arguments are still preserved.
Callable wrappers resolve annotations from the source of their effective
signature, honoring `__wrapped__` and `__signature__`, while other
callable objects use their `__call__` method. `functools.partial`
callables retain their effective signature so already-bound injected
arguments remain excluded.

<details>
<summary><b>Before/after:</b> injected arg dropped under <code>from
__future__ import annotations</code></summary>

With postponed annotations, every annotation is stored as a plain
string. Previously `_injected_args_keys` read the raw `signature()`
annotations, so `runtime` was never recognized as injected and was
stripped during `args_schema` validation:

```python
from __future__ import annotations  # all annotations become strings

from pydantic import BaseModel
from langchain_core.tools import tool, ToolRuntime

class InputSchema(BaseModel):
    query: str

@tool(args_schema=InputSchema)
def my_tool(query: str, runtime: ToolRuntime) -> str:
    """Echo the query."""
    return query
```

| | Behavior |
|---|---|
| **Before** | `runtime` not detected as injected → removed during
validation → tool call fails at invocation |
| **After** | `runtime` detected via `get_type_hints` → survives
validation and is injected at invocation; hidden from the model-facing
schema |

</details>

<details>
<summary><b>Before/after:</b> one unresolvable annotation disabling
injection for the whole signature</summary>

`get_type_hints` resolves *all* annotations at once and raises on the
first failure. A single unresolvable forward reference — even on an
unrelated parameter — previously meant *no* hints were available, so the
resolvable injected arg was dropped too:

```python
@tool(args_schema=InputSchema)
def my_tool(
    query: "SomeTypeThatDoesNotExist",  # unresolvable forward reference
    runtime: "ToolRuntime",             # resolvable injected arg
) -> str:
    """Echo the query."""
    return query
```

| | Behavior |
|---|---|
| **Before** | `get_type_hints` raises on `query` → all hints discarded
→ `runtime` not detected as injected |
| **After** | each annotation is retried independently → `query` falls
back to its raw string (not injected), `runtime` still resolves and is
injected |

</details>

<details>
<summary><b>Before/after:</b> callable objects and wrappers</summary>

For non-function callables, the annotations now come from the source of
the *effective* signature: `__call__` for callable objects, and the
wrapped function for wrappers (`__wrapped__` / `__signature__`):

```python
class MyCallableTool:
    def __call__(self, query: str, runtime: ToolRuntime) -> str:
        return query

tool = StructuredTool.from_function(
    func=MyCallableTool(),
    name="my_tool",
    description="Echo the query.",
    args_schema=InputSchema,
)
```

| | Behavior |
|---|---|
| **Before** | annotations read from the wrong callable (or left as
unresolved strings) → `runtime` dropped |
| **After** | annotations resolved from `__call__` / the unwrapped
function → `runtime` injected correctly |

</details>

<details>
<summary><b>Unchanged:</b> <code>functools.partial</code> with an
already-bound injected arg</summary>

A `partial` that already binds an injected argument keeps its effective
signature — the bound parameter is absent, so nothing is re-injected
over it:

```python
from functools import partial

def fn(x: int, runtime: ToolRuntime, y: int) -> int:
    return x + y

tool = StructuredTool.from_function(
    func=partial(fn, 1, bound_runtime),
    name="fn",
    description="Add two numbers.",
    args_schema=InputSchema,
)
```

**Before & after:** `runtime` is already bound by the `partial` →
excluded from the signature → the bound value is used as-is

</details>

Co-authored-by: Soban Shankar
<165470467+Soban-2004@users.noreply.github.com>
2026-08-19 11:38:30 -04:00
ccurme 9984a87fa5 feat(core): add standard model exception types (#39538) 2026-08-19 11:21:32 -04:00
langchain-oss-model-profiles[bot]andmdrxy b3e9eef13c chore(model-profiles): refresh model profile data (#39751)
Automated refresh of model profile data for all in-monorepo partner
integrations via `langchain-profiles refresh`.

🤖 Generated by the [`refresh_model_profiles`
workflow](https://github.com/langchain-ai/langchain/blob/master/.github/workflows/refresh_model_profiles.yml).

## Summary of changes

**1 added · 0 removed · 6 changed** across 1 provider(s).

### openrouter

**➕ 1 added**
- `z-ai/glm-5.3` — 1,048,576 ctx, 131,072 out, reasoning, tools

**✏️ 6 changed**
- `google/gemma-4-31b-it`: max output tokens 262,144 → 16,384
- `qwen/qwen3-next-80b-a3b-instruct`: max output tokens 262,144 → 16,384
- `qwen/qwen3.5-122b-a10b`: max output tokens 81,920 → 262,144
- `qwen/qwen3.6-27b`: max output tokens 262,144 → 65,536
- `z-ai/glm-5.2:free`: max input tokens 128,000 → 256,000; max output
tokens 128,000 → 256,000; added structured output; added tool calling
- `~deepseek/deepseek-v4-flash-latest`: max output tokens 384,000 →
262,144

Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com>
2026-08-19 11:12:03 -04:00
gaoanze888 ded2a1fb3c fix(core): allow deserializing RunnablePick (#39753) 2026-08-19 10:45:58 -04:00
04ae7447d7 fix(core): make convert_to_openai_function handle callables and non-dict mappings (#39750)
Co-authored-by: gaoanze <gaoanze@meituan.com>
Co-authored-by: Chester Curme <chester.curme@gmail.com>
2026-08-19 10:39:18 -04:00
syyy44 37f266278d feat(langchain): support custom token_counter in ContextEditingMiddleware (#39754) 2026-08-19 09:35:54 -04:00
2019bf5ebe fix(openai): raise clear error on unexpected response type in _create_chat_result (#39731)
Co-authored-by: Sergio Perez <sergioperezcheco@users.noreply.github.com>
Co-authored-by: Hermes Agent <noreply@nousresearch.com>
2026-08-18 22:43:53 +00:00
Yiğit ERDOĞAN e92c6db3b3 fix(langchain): re-raise non-retryable exceptions in ModelRetryMiddleware (#38960) 2026-08-18 18:14:02 -04:00
f368888e7e fix(partners): isolate unit tests from network [closes #39727] (#39729)
Co-authored-by: pufuki <pvnxarc@gmail.com>
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-08-18 18:00:36 -04:00
c8b2d767bf fix(core): make subprocess and temporary file tests portable on Windows (#39664)
Co-authored-by: Pu Jingnan <149932541+Puuuuup@users.noreply.github.com>
Co-authored-by: Chester Curme <chester.curme@gmail.com>
2026-08-18 17:34:30 -04:00
Hunter Lovell b5e8e2e85e fix(core): fail fast when tool schemas can't resolve forward refs during serialization (#39570)
fixes #39099

We currently allow forward refs in pydantic v2 schemas upon creation:

```python
class Container(BaseModel):
    rows: list["Row"] = [] # "Row" is declared below, after the tool is decorated

@tool
def my_tool(container: Container):
    """A tool whose schema depends on a forward reference that is not resolvable yet."""
    return "ok"

class Row(BaseModel):
    name: str
```

When it comes time to introspect the tool schema (notably in
`count_tokens_approximately` and `convert_to_openai_tool`), we rely on
[signature
introspection](https://github.com/langchain-ai/langchain/blob/943dd700ef7c33e3f1f21d3e280c9c249b88259c/libs/core/langchain_core/tools/base.py#L1654-L1661)
to extract the tool's input schema. If that contains invalid forward
references, there's no schema fields to extract which results in an
empty dict:

<details>

<summary>Invalid forward reference MRE</summary>

```python
from __future__ import annotations

import inspect

from pydantic import BaseModel, Field
from pydantic.errors import PydanticUndefinedAnnotation

from langchain_core.tools.base import get_all_basemodel_annotations
from langchain_core.utils.pydantic import _create_subset_model, model_json_schema


class Container(BaseModel):
    """A model with a nested forward reference that can never resolve."""

    rows: list["UndefinedRow"] = Field(default_factory=list)


def main() -> None:
    """Print the field-selection inputs and their zero-field subset result."""
    selected_annotations = get_all_basemodel_annotations(Container)
    subset_schema = _create_subset_model(
        "ContainerSubset",
        Container,
        list(selected_annotations),
        fn_description=Container.__doc__,
    )

    print(f"Pydantic complete: {Container.__pydantic_complete__}")
    print(f"Pydantic fields: {list(Container.model_fields)}")
    print(f"inspect.signature: {inspect.signature(Container)}")
    print(f"Fields selected by get_all_basemodel_annotations: {selected_annotations}")
    print(f"Subset properties: {model_json_schema(subset_schema)['properties']}")


if __name__ == "__main__":
    main()
```

```output
Pydantic complete: False
Pydantic fields: ['rows']
inspect.signature: (**data: 'Any') -> 'None'
Fields selected by get_all_basemodel_annotations: {}
Subset properties: {}
```

</details>

<details>

<summary>Valid forward reference MRE</summary>

```python
from __future__ import annotations

import inspect

from pydantic import BaseModel, Field
from pydantic.errors import PydanticUndefinedAnnotation

from langchain_core.tools.base import get_all_basemodel_annotations
from langchain_core.utils.pydantic import _create_subset_model, model_json_schema


class Container(BaseModel):
    """A model with a nested forward reference that can never resolve."""

    rows: list["UndefinedRow"] = Field(default_factory=list)

class UndefinedRow(BaseModel):
    name: str = Field()


def main() -> None:
    """Print the field-selection inputs and their zero-field subset result."""
    Container.model_rebuild()
    selected_annotations = get_all_basemodel_annotations(Container)
    subset_schema = _create_subset_model(
        "ContainerSubset",
        Container,
        list(selected_annotations),
        fn_description=Container.__doc__,
    )

    print(f"Pydantic complete: {Container.__pydantic_complete__}")
    print(f"Pydantic fields: {list(Container.model_fields)}")
    print(f"inspect.signature: {inspect.signature(Container)}")
    print(f"Fields selected by get_all_basemodel_annotations: {selected_annotations}")
    print(f"Subset properties: {model_json_schema(subset_schema)['properties']}")


if __name__ == "__main__":
    main()

```

```output
Pydantic complete: True
Pydantic fields: ['rows']
inspect.signature: (*, rows: list[__main__.UndefinedRow] = <factory>) -> None
Fields selected by get_all_basemodel_annotations: {'rows': list[__main__.UndefinedRow]}
Subset properties: {'rows': {'items': {'$ref': '#/$defs/UndefinedRow'}, 'title': 'Rows', 'type': 'array'}}
```
</details>

---

The fix is to
* at introspection time, resolve forward references using
`.model_rebuild()` that raises a pydantic exception if forward
references cant be resolved
* i'm also widening a pydantic utility to use a type guard instead of
having to use bool + cast

I'm intentionally not rebuilding pydantic v1 schemas in the same way
since
* forward references are specified by explicitly passing names into
`update_forward_refs`
* pydantic v1 is old news
2026-08-18 14:08:52 -07:00
Mason Daughertyandopen-swe[bot] 72fb0090bd test(core): avoid version-dependent runnable snapshots (#39705)
Runnable snapshots currently embed the exact `langchain-core` version,
forcing unrelated snapshot rewrites during every release. Normalize only
the current `VERSION` to a stable placeholder before comparison, so
missing or stale version metadata still fails.

Made by [Open
SWE](https://openswe.vercel.app/agents/bfd72574-359e-544e-dbf5-78f8bae3636a)

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-08-18 16:16:21 -04:00
Nazrul Ansari b28d8c4630 fix(deepseek): map prompt_cache_hit_tokens to cache_read (#39668) 2026-08-18 13:27:37 -04:00
Aryan Singh K. 1e0dcf77ec fix(xai): recompute total_tokens after adding reasoning tokens to output (#39667) 2026-08-18 13:19:28 -04:00
Eugene Yurtsev 5cfde66701 release(openai): 1.5.2 (#39719)
Release 1.5.2
langchain-openai==1.5.2
2026-08-18 13:16:07 -04:00
65e5e3cfa3 fix(core): require all nested properties for strict tool schemas (#39306)
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Co-authored-by: Chester Curme <chester.curme@gmail.com>
Co-authored-by: dkundu56 <188023074+dkundu56@users.noreply.github.com>
Co-authored-by: Andrea Rossi <6909990+AndRossi@users.noreply.github.com>
2026-08-18 17:08:57 +00:00
Alex Onufrak 32c15bbbd5 fix(openai): preserve reasoning item boundaries (#39278) 2026-08-18 12:59:04 -04:00
ccurmeandAvneesh Jadhav 91ed3831a2 fix(standard-tests): close quote in bind_tools example (#39722)
Co-authored-by: Avneesh Jadhav <228940542+avneeshjadhav04@users.noreply.github.com>
2026-08-18 16:57:52 +00:00
94509faaed fix(core): remove stale sync-stream xfail [closes #39720] (#39723)
Co-authored-by: PAVAN KUMAR S <239303217+pufuki@users.noreply.github.com>
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
2026-08-18 12:57:41 -04:00
langchain-oss-model-profiles[bot]andmdrxy 1662cea3be chore(model-profiles): refresh model profile data (#39710)
Automated refresh of model profile data for all in-monorepo partner
integrations via `langchain-profiles refresh`.

🤖 Generated by the [`refresh_model_profiles`
workflow](https://github.com/langchain-ai/langchain/blob/master/.github/workflows/refresh_model_profiles.yml).

## Summary of changes

**2 added · 0 removed · 5 changed** across 2 provider(s).

<details>
<summary>huggingface</summary>

**➕ 2 added**
- `Qwen/Qwen3-VL-235B-A22B-Instruct` — 131,072 ctx, 32,768 out,
text+image in, tools
- `Qwen/Qwen3-VL-235B-A22B-Thinking` — 131,072 ctx, 32,768 out,
text+image in, reasoning, tools

</details>

<details>
<summary>openrouter</summary>

**✏️ 5 changed**
- `deepseek/deepseek-v3.1-terminus`: max output tokens 32,768 → 163,840
- `qwen/qwen3.6-27b`: max output tokens 131,072 → 262,144
- `sakana/sakana-namazu`: last updated `2026-08-11` → `2026-08-03`;
release date `2026-08-11` → `2026-08-03`
- `z-ai/glm-5.2`: max output tokens 262,144 → 131,072
- `~deepseek/deepseek-v4-flash-latest`: max output tokens 262,144 →
384,000

</details>

Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com>
2026-08-18 10:13:50 -04:00
jtoman cccfbb1c5b perf(core): Lazily import transformers (#38037) 2026-08-18 10:12:05 -04:00
Eugene Yurtsev 9f2d56e376 release(openai): 1.5.2a1 (#39709)
Release 1.5.2a1
langchain-openai==1.5.2a1
2026-08-18 01:25:48 +00:00
Eugene YurtsevandChester Curme a2ff1bb2ed feat(openai): extract gateway metadata from response headers when available (#39706)
Extracts gateway metadata from response headers when it's included.

---------

Co-authored-by: Chester Curme <chester.curme@gmail.com>
2026-08-17 21:21:17 -04:00
Lingjin 9c21d84bcb fix(core): accept non-dict Mapping values in mustache templates (#39680) 2026-08-17 20:29:33 -04:00
ccurme 4f355f38de docs(core): clarify Runnable pipe coercion [closes #39075] (#39707) 2026-08-18 00:25:17 +00:00
Lingjin 77269bad0b fix(anthropic): exclude sibling directories from grep search scope (#39681) 2026-08-17 20:13:01 -04:00
James Yang 300eb71549 fix(core): finalize chain-group runs on BaseException (#39699) 2026-08-17 19:52:46 -04:00
Eugene Yurtsev 4033a4eb7f chore(core): release 1.5.6 (#39704)
Release 1.5.6
langchain-core==1.5.6
2026-08-17 21:00:09 +00:00
5650448a03 feat(core): incorporate gateway metadata to traces (#39703)
This PR sends gateway metadata information (if present in the client
response) as metadata for the llm invocation.

Requires changes corresponding changes in the ChatModel implementations
(e.g., ChatOpenAI) so gateway metadata is picked up from the gateway
response headers.

---------

Signed-off-by: Eugene Yurtsev <eugene@langchain.dev>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: eyurtsev <3205522+eyurtsev@users.noreply.github.com>
2026-08-17 20:18:26 +00:00
起岚 3a122c60ce fix: typo (#39684)
This PR fixes the documentation issue reported in #39683: corrects
`capabilites` to `capabilities` in `README.md`.

Fixes #39683

Fixes #

---

Read the full contributing guidelines:
https://docs.langchain.com/oss/python/contributing/overview

> **All contributions must be in English.** See the [language
policy](https://docs.langchain.com/oss/python/contributing/overview#language-policy).

If you paste a large clearly AI generated description here your PR may
be IGNORED or CLOSED!

Thank you for contributing to LangChain! Follow these steps to have your
pull request considered as ready for review.

1. PR title: Should follow the format: TYPE(SCOPE): DESCRIPTION

  - Examples:
    - fix(anthropic): resolve flag parsing error
    - feat(core): add multi-tenant support
    - test(openai): update API usage tests
- Allowed TYPE and SCOPE values:
https://github.com/langchain-ai/langchain/blob/master/.github/workflows/pr_lint.yml#L15-L33

2. PR description:

- Write 1-2 sentences that make the change easy to understand: who
benefits, what problem they had, and how this solves it. Prefer a simple
user story over a long summary.
- The `Fixes #xx` line at the top is **required** for external
contributions — update the issue number and keep the keyword. This links
your PR to the approved issue and auto-closes it on merge.
  - If there are any breaking changes, please clearly describe them.
- If this PR depends on another PR being merged first, please include
"Depends on #PR_NUMBER" in the description.

## Release note

3. Run `make format`, `make lint` and `make test` from the root of the
package(s) you've modified.

  - We will not consider a PR unless these three are passing in CI.

4. How did you verify your code works?

Additional guidelines:

- All external PRs must link to an issue or discussion where a solution
has been approved by a maintainer, and you must be assigned to that
issue. PRs without prior approval will be closed.
- PRs should not touch more than one package unless absolutely
necessary.
- Do not update the `uv.lock` files or add dependencies to
`pyproject.toml` files (even optional ones) unless you have explicit
permission to do so by a maintainer.

## Social handles (optional)

Twitter: @
LinkedIn: https://linkedin.com/in/

Fixes #39683
2026-08-17 15:03:26 -04:00
ccurme 6e2d4f4273 chore(openai): update snapshots (#39657) 2026-08-17 13:23:00 -04:00
langchain-oss-model-profiles[bot]andmdrxy 5327463f5c chore(model-profiles): refresh model profile data (#39692)
Automated refresh of model profile data for all in-monorepo partner
integrations via `langchain-profiles refresh`.

🤖 Generated by the [`refresh_model_profiles`
workflow](https://github.com/langchain-ai/langchain/blob/master/.github/workflows/refresh_model_profiles.yml).

## Summary of changes

**3 added · 0 removed · 9 changed** across 3 provider(s).

<details>
<summary>huggingface</summary>

**➕ 1 added**
- `Qwen/Qwen3.8-2.4T-A95B` — 262,144 ctx, 131,072 out, reasoning, tools

</details>

<details>
<summary>openrouter</summary>

**➕ 1 added**
- `z-ai/glm-5.2:free` — 128,000 ctx, 128,000 out, reasoning

**✏️ 9 changed**
- `deepseek/deepseek-v4-flash-0731`: max input tokens 1,048,576 →
1,310,720
- `deepseek/deepseek-v4-pro`: max output tokens 393,216 → 384,000
- `google/gemma-4-26b-a4b-it`: max output tokens 262,144 → 16,384
- `nvidia/nemotron-3-nano-30b-a3b`: max output tokens 228,000 → 262,144
- `nvidia/nemotron-3.5-lightning`: max output tokens 262,144 → 131,072
- `qwen/qwen3.6-27b`: max output tokens 65,536 → 131,072
- `z-ai/glm-5.2`: max output tokens 128,000 → 262,144
- `~deepseek/deepseek-v4-flash-latest`: max input tokens 1,048,576 →
1,310,720; max output tokens 384,000 → 262,144
- `~moonshotai/kimi-latest`: max output tokens 1,048,576 → 974,842

</details>

<details>
<summary>xai</summary>

**➕ 1 added**
- `grok-imagine-image-2.0` — 8,000 ctx, text+image+pdf in

</details>

Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com>
2026-08-17 09:44:58 -04:00
Anay Garodia 313bc541c0 fix(openai): support o-series models in get_num_tokens_from_messages (#38710) 2026-08-17 09:15:44 -04:00
langchain-oss-model-profiles[bot]andmdrxy 82fd04260c chore(model-profiles): refresh model profile data (#39670)
Automated refresh of model profile data for all in-monorepo partner
integrations via `langchain-profiles refresh`.

🤖 Generated by the [`refresh_model_profiles`
workflow](https://github.com/langchain-ai/langchain/blob/master/.github/workflows/refresh_model_profiles.yml).

## Summary of changes

**3 added · 0 removed · 13 changed** across 2 provider(s).

<details>
<summary>huggingface</summary>

**➕ 1 added**
- `deepseek-ai/DeepSeek-V4-Pro-0813` — 1,000,000 ctx, 384,000 out,
reasoning, tools

</details>

<details>
<summary>openrouter</summary>

**➕ 2 added**
- `dots-studio/dots-3-note-preview:free` — 512,000 ctx, 512,000 out,
text+image in, reasoning, tools
- `qwen/qwen3.8-27b` — 262,144 ctx, 131,072 out, text+image+video in,
reasoning, tools

**✏️ 13 changed**
- `bytedance-seed/seed-2.0-lite`: last updated `2026-03-10` →
`2026-02-14`; display name `Seed-2.0-Lite` → `Seed 2.0 Lite`; release
date `2026-03-10` → `2026-02-14`
- `bytedance-seed/seed-2.0-mini`: last updated `2026-02-26` →
`2026-02-14`; display name `Seed-2.0-Mini` → `Seed 2.0 Mini`; release
date `2026-02-26` → `2026-02-14`
- `deepseek/deepseek-v4-flash`: max output tokens 393,216 → 384,000
- `minimax/minimax-m2-her`: display name `MiniMax M2-her` → `MiniMax-M2
Her`
- `qwen/qwen3-30b-a3b`: max output tokens 16,384 → 8,192
- `qwen/qwen3.5-35b-a3b`: max output tokens 262,144 → 65,536
- `qwen/qwen3.5-397b-a17b`: max output tokens 262,144 → 65,536
- `qwen/qwen3.6-27b`: max output tokens 262,144 → 65,536
- `qwen/qwen3.8-2.4t-a95b`: max input tokens 1,010,000 → 1,048,576
- `z-ai/glm-5`: max output tokens 131,072 → 128,000
- `z-ai/glm-5.1`: max output tokens 131,072 → 128,000
- `z-ai/glm-5.2`: max output tokens 131,072 → 128,000
- `~deepseek/deepseek-v4-flash-latest`: max output tokens 262,144 →
384,000

</details>

Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com>
2026-08-17 00:07:20 -04:00
ccurme 9a58107126 release(openrouter): 0.2.8 (#39658) langchain-openrouter==0.2.8 2026-08-14 15:00:38 -04:00
langchain-oss-model-profiles[bot]andmdrxy c197a7b6f7 chore(model-profiles): refresh model profile data (#39646)
Automated refresh of model profile data for all in-monorepo partner
integrations via `langchain-profiles refresh`.

🤖 Generated by the [`refresh_model_profiles`
workflow](https://github.com/langchain-ai/langchain/blob/master/.github/workflows/refresh_model_profiles.yml).

## Summary of changes

**11 added · 0 removed · 12 changed** across 3 provider(s).

<details>
<summary>fireworks-ai</summary>

**➕ 6 added**
- `accounts/fireworks/models/deepseek-v4-pro-0813` — 1,000,000 ctx,
384,000 out, reasoning, tools
- `accounts/fireworks/models/inkling` — 1,048,576 ctx, 1,048,576 out,
text+image+audio in, reasoning, tools
- `accounts/fireworks/models/muse-glimmer-30b` — 131,072 ctx, 131,072
out, text+image in, reasoning, tools
- `accounts/fireworks/models/nemotron-3-ultra-nvfp4` — 262,144 ctx,
128,000 out, reasoning, tools
- `accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b` — 262,144
ctx, 262,144 out, reasoning, tools
- `accounts/fireworks/models/qwen3p8-max` — 262,144 ctx, 131,072 out,
reasoning, tools

</details>

<details>
<summary>huggingface</summary>

**➕ 4 added**
- `Qwen/Qwen2.5-Coder-32B-Instruct` — 131,072 ctx, 8,192 out, tools
- `Qwen/Qwen3-30B-A3B` — 40,960 ctx, 16,384 out, reasoning, tools
- `deepseek-ai/DeepSeek-V3-0324` — 163,840 ctx, 163,840 out, tools
- `meta-llama/Llama-3.1-8B-Instruct` — 131,072 ctx, 4,096 out, tools

</details>

<details>
<summary>openrouter</summary>

**➕ 1 added**
- `google/gemini-3.7-flash` — 1,048,576 ctx, 65,536 out,
text+image+audio+video+pdf in, reasoning, tools

**✏️ 12 changed**
- `arcee-ai/trinity-large-thinking`: last updated `2026-04-01` →
`2026-05-28`
- `deepseek/deepseek-r1`: max input tokens 163,840 → 64,000
- `deepseek/deepseek-v4-flash-0731`: max output tokens 384,000 → 393,216
- `deepseek/deepseek-v4-pro-0813`: added structured output
- `google/gemini-3.1-flash-lite-image`: max output tokens 65,536 →
66,000
- `liquid/lfm-2.5-2.6b:free`: max output tokens 32,768 → 8,192
- `meta-llama/llama-3.1-8b-instruct`: display name `Llama 3.1 8B
Instruct` → `Llama-3.1-8B-Instruct`
- `nvidia/nemotron-3.5-lightning`: max input tokens 1,048,576 →
1,000,000
- `qwen/qwen3-next-80b-a3b-instruct`: max output tokens 16,384 → 262,144
- `qwen/qwen3-next-80b-a3b-thinking`: max output tokens 262,144 → 32,768
- `qwen/qwen3-vl-30b-a3b-instruct`: max output tokens 16,384 → 32,768
- `qwen/qwen3.8-2.4t-a95b`: max input tokens 1,000,000 → 1,010,000; max
output tokens 52,429 → 262,144

</details>

Co-authored-by: mdrxy <61371264+mdrxy@users.noreply.github.com>
langchain-core==1.5.5
2026-08-14 11:13:52 -07:00
ccurme 555702e1c6 release(core): 1.5.5 (#39655) 2026-08-14 14:13:15 -04:00
ccurme e32fa9a52e chore(infra): add fields for social handles in issue templates (#39654) 2026-08-14 12:16:10 -04:00
ccurme d6cd98a5cc release(openai): 1.5.1 (#39653) langchain-openai==1.5.1 2026-08-14 11:36:30 -04:00
Johannes du Plessis 7b954aa9ef fix(openai): preserve streamed encrypted reasoning (#39635) 2026-08-14 11:33:06 -04:00