Bumps the langchain-deps group with 2 updates in the /libs/core directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk) and [ruff](https://github.com/astral-sh/ruff). Bumps the langchain-deps group with 6 updates in the /libs/langchain directory: | Package | From | To | | --- | --- | --- | | [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.7.6` | `0.7.9` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.2` | `0.15.4` | | [langchain-aws](https://github.com/langchain-ai/langchain-aws) | `1.3.0` | `1.3.1` | | [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` | | langchainhub | `0.1.18` | `0.1.21` | | [fastapi](https://github.com/fastapi/fastapi) | `0.133.0` | `0.135.1` | Bumps the langchain-deps group with 4 updates in the /libs/langchain_v1 directory: [ruff](https://github.com/astral-sh/ruff), [langchain-aws](https://github.com/langchain-ai/langchain-aws), [python-dotenv](https://github.com/theskumar/python-dotenv) and [langgraph](https://github.com/langchain-ai/langgraph). Updates `langsmith` from 0.7.6 to 0.7.9 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langsmith-sdk/releases">langsmith's releases</a>.</em></p> <blockquote> <h2>v0.7.9</h2> <h2>What's Changed</h2> <ul> <li>fix: catch blocksize typeError by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2499">langchain-ai/langsmith-sdk#2499</a></li> <li>chore: bump py ver by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2501">langchain-ai/langsmith-sdk#2501</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.8...v0.7.9">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.8...v0.7.9</a></p> <h2>v0.7.8</h2> <h2>What's Changed</h2> <ul> <li>fix(ci): replace mistakenly pinned Node 22.4.1 with 22.x by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2477">langchain-ai/langsmith-sdk#2477</a></li> <li>chore: bump GitHub workflow Node.js versions to 24.x by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2485">langchain-ai/langsmith-sdk#2485</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 15 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2475">langchain-ai/langsmith-sdk#2475</a></li> <li>chore(deps): bump rollup from 4.57.1 to 4.59.0 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2483">langchain-ai/langsmith-sdk#2483</a></li> <li>feat(sandbox): add retry mechanism for python client by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2486">langchain-ai/langsmith-sdk#2486</a></li> <li>chore(deps): bump rollup from 4.40.2 to 4.59.0 in /js by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2484">langchain-ai/langsmith-sdk#2484</a></li> <li>Description change for read_dataset_version by <a href="https://github.com/catherine-langchain"><code>@catherine-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2487">langchain-ai/langsmith-sdk#2487</a></li> <li>feat(sandbox): async sandbox creation by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2493">langchain-ai/langsmith-sdk#2493</a></li> <li>docs: rm pytest beta docstring by <a href="https://github.com/baskaryan"><code>@baskaryan</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2496">langchain-ai/langsmith-sdk#2496</a></li> <li>fix(anthropic): Add usage_metadata to metadata by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2497">langchain-ai/langsmith-sdk#2497</a></li> <li>Bump version: 0.7.7 → 0.7.8 by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2498">langchain-ai/langsmith-sdk#2498</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/catherine-langchain"><code>@catherine-langchain</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2487">langchain-ai/langsmith-sdk#2487</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.7...v0.7.8">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.7...v0.7.8</a></p> <h2>v0.7.7</h2> <h2>What's Changed</h2> <ul> <li>fix(js): subagent tool calls tracking for latest claude agent sdk by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2463">langchain-ai/langsmith-sdk#2463</a></li> <li>release(js): 0.5.5 by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2464">langchain-ai/langsmith-sdk#2464</a></li> <li>fix(js): Respect traceRawHttp for tracing streaming AI SDK calls by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2466">langchain-ai/langsmith-sdk#2466</a></li> <li>release(js): 0.5.6 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2467">langchain-ai/langsmith-sdk#2467</a></li> <li>feat(python): add WebSocket transport for sandbox commands by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2443">langchain-ai/langsmith-sdk#2443</a></li> <li>test(python): add tests for WebSocket transport layer by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2445">langchain-ai/langsmith-sdk#2445</a></li> <li>feat(python): use WebSocket transport by default with HTTP fallback by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2446">langchain-ai/langsmith-sdk#2446</a></li> <li>feat(python): add CommandHandle for streaming, kill, stdin, and reconnect by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2450">langchain-ai/langsmith-sdk#2450</a></li> <li>test(python): add tests for CommandHandle and sandbox streaming integration by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2448">langchain-ai/langsmith-sdk#2448</a></li> <li>docs(python): document sandbox streaming, kill, stdin, and reconnect by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2449">langchain-ai/langsmith-sdk#2449</a></li> <li>chore(deps): bump google-cloud-aiplatform from 1.126.1 to 1.133.0 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2465">langchain-ai/langsmith-sdk#2465</a></li> <li>fix(js): Fix list commits endpoint for private prompts by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2479">langchain-ai/langsmith-sdk#2479</a></li> <li>feat: persist failed trace payloads to disk for later replay by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2476">langchain-ai/langsmith-sdk#2476</a></li> <li>feat: add native thread querying support by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2455">langchain-ai/langsmith-sdk#2455</a></li> <li>feat: add raw response parsing for responses api to openai wrapper by <a href="https://github.com/victorm-lc"><code>@victorm-lc</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2480">langchain-ai/langsmith-sdk#2480</a></li> <li>fix: add integration and version num by <a href="https://github.com/samecrowder"><code>@samecrowder</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2481">langchain-ai/langsmith-sdk#2481</a></li> <li>release(py): 0.5.7 by <a href="https://github.com/samecrowder"><code>@samecrowder</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2482">langchain-ai/langsmith-sdk#2482</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/samecrowder"><code>@samecrowder</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2481">langchain-ai/langsmith-sdk#2481</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="52339a4d73"><code>52339a4</code></a> chore: bump py ver (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2501">#2501</a>)</li> <li><a href="8d464b565f"><code>8d464b5</code></a> fix: catch blocksize typeError (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2499">#2499</a>)</li> <li><a href="d442f952ca"><code>d442f95</code></a> Bump version: 0.7.7 → 0.7.8 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2498">#2498</a>)</li> <li><a href="498536f09d"><code>498536f</code></a> fix(anthropic): Add usage_metadata to metadata (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2497">#2497</a>)</li> <li><a href="96a6801ac3"><code>96a6801</code></a> docs: rm pytest beta docstring (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2496">#2496</a>)</li> <li><a href="b3141e3e4b"><code>b3141e3</code></a> feat(sandbox): async sandbox creation (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2493">#2493</a>)</li> <li><a href="430999bedb"><code>430999b</code></a> Description change for read_dataset_version (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2487">#2487</a>)</li> <li><a href="b20cf2a7bd"><code>b20cf2a</code></a> chore(deps): bump rollup from 4.40.2 to 4.59.0 in /js (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2484">#2484</a>)</li> <li><a href="3c15041afa"><code>3c15041</code></a> feat(sandbox): add retry mechanism for python client (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2486">#2486</a>)</li> <li><a href="1d29f1ce9b"><code>1d29f1c</code></a> chore(deps): bump rollup from 4.57.1 to 4.59.0 in /js/internal/environment_te...</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.6...v0.7.9">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.2 to 0.15.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.15.4</h2> <h2>Release Notes</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix incorrect <code>import-heading</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/23568">#23568</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/stakeswky"><code>@stakeswky</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/thejcannon"><code>@thejcannon</code></a></li> <li><a href="https://github.com/GeObts"><code>@GeObts</code></a></li> </ul> <h2>Install ruff 0.15.4</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.ps1 | iex" </code></pre> <h2>Download ruff 0.15.4</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz">ruff-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz">ruff-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip">ruff-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip">ruff-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip">ruff-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz">ruff-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz">ruff-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz">ruff-powerpc64-unknown-linux-gnu.tar.gz</a></td> <td>PPC64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> </tbody> </table> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.15.4</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix incorrect <code>import-heading</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/23568">#23568</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/stakeswky"><code>@stakeswky</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/thejcannon"><code>@thejcannon</code></a></li> <li><a href="https://github.com/GeObts"><code>@GeObts</code></a></li> </ul> <h2>0.15.3</h2> <p>Released on 2026-02-26.</p> <h3>Preview features</h3> <ul> <li> <p>Drop explicit support for <code>.qmd</code> file extension (<a href="https://redirect.github.com/astral-sh/ruff/pull/23572">#23572</a>)</p> <p>This can now be enabled instead by setting the <a href="https://docs.astral.sh/ruff/settings/#extension"><code>extension</code></a> option:</p> <pre lang="toml"><code># ruff.toml extension = { qmd = "markdown" } <h1>pyproject.toml</h1> <p>[tool.ruff] extension = { qmd = "markdown" } </code></pre></p> </li> <li> <p>Include configured extensions in file discovery (<a href="https://redirect.github.com/astral-sh/ruff/pull/23400">#23400</a>)</p> </li> <li> <p>[<code>flake8-bandit</code>] Allow suspicious imports in <code>TYPE_CHECKING</code> blocks (<code>S401</code>-<code>S415</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23441">#23441</a>)</p> </li> <li> <p>[<code>flake8-bugbear</code>] Allow <code>B901</code> in pytest hook wrappers (<a href="https://redirect.github.com/astral-sh/ruff/pull/21931">#21931</a>)</p> </li> <li> <p>[<code>flake8-import-conventions</code>] Add missing conventions from upstream (<code>ICN001</code>, <code>ICN002</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/21373">#21373</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="f14edd8661"><code>f14edd8</code></a> Bump 0.15.4 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23595">#23595</a>)</li> <li><a href="fd09d37007"><code>fd09d37</code></a> Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/issues/23588">#23588</a>)</li> <li><a href="81d655fadc"><code>81d655f</code></a> [<code>pyflakes</code>] suppress false positive in <code>F821</code> for names used before <code>del</code> in...</li> <li><a href="625b4f5a67"><code>625b4f5</code></a> [ruff] docs: Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/issues/23591">#23591</a>)</li> <li><a href="60facfa0bc"><code>60facfa</code></a> one word typo fix in a <code>while_loop.md</code> test case (<a href="https://redirect.github.com/astral-sh/ruff/issues/23589">#23589</a>)</li> <li><a href="fbb9fa75cc"><code>fbb9fa7</code></a> docs: fix incorrect import-heading example (<a href="https://redirect.github.com/astral-sh/ruff/issues/23568">#23568</a>)</li> <li><a href="5bc49a9412"><code>5bc49a9</code></a> Increase the ruleset size to 16 bits (<a href="https://redirect.github.com/astral-sh/ruff/issues/23586">#23586</a>)</li> <li><a href="a62ba8c6e2"><code>a62ba8c</code></a> [ty] Fix overloaded callable assignability for unary Callable targets (<a href="https://redirect.github.com/astral-sh/ruff/issues/23277">#23277</a>)</li> <li><a href="e5f2f36a3f"><code>e5f2f36</code></a> Bump 0.15.3 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23585">#23585</a>)</li> <li><a href="0e19fc9a61"><code>0e19fc9</code></a> [ty] defer calculating conjunctions in narrowing constraints (<a href="https://redirect.github.com/astral-sh/ruff/issues/23552">#23552</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.2...0.15.4">compare view</a></li> </ul> </details> <br /> Updates `langsmith` from 0.7.6 to 0.7.9 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langsmith-sdk/releases">langsmith's releases</a>.</em></p> <blockquote> <h2>v0.7.9</h2> <h2>What's Changed</h2> <ul> <li>fix: catch blocksize typeError by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2499">langchain-ai/langsmith-sdk#2499</a></li> <li>chore: bump py ver by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2501">langchain-ai/langsmith-sdk#2501</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.8...v0.7.9">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.8...v0.7.9</a></p> <h2>v0.7.8</h2> <h2>What's Changed</h2> <ul> <li>fix(ci): replace mistakenly pinned Node 22.4.1 with 22.x by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2477">langchain-ai/langsmith-sdk#2477</a></li> <li>chore: bump GitHub workflow Node.js versions to 24.x by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2485">langchain-ai/langsmith-sdk#2485</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 15 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2475">langchain-ai/langsmith-sdk#2475</a></li> <li>chore(deps): bump rollup from 4.57.1 to 4.59.0 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2483">langchain-ai/langsmith-sdk#2483</a></li> <li>feat(sandbox): add retry mechanism for python client by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2486">langchain-ai/langsmith-sdk#2486</a></li> <li>chore(deps): bump rollup from 4.40.2 to 4.59.0 in /js by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2484">langchain-ai/langsmith-sdk#2484</a></li> <li>Description change for read_dataset_version by <a href="https://github.com/catherine-langchain"><code>@catherine-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2487">langchain-ai/langsmith-sdk#2487</a></li> <li>feat(sandbox): async sandbox creation by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2493">langchain-ai/langsmith-sdk#2493</a></li> <li>docs: rm pytest beta docstring by <a href="https://github.com/baskaryan"><code>@baskaryan</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2496">langchain-ai/langsmith-sdk#2496</a></li> <li>fix(anthropic): Add usage_metadata to metadata by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2497">langchain-ai/langsmith-sdk#2497</a></li> <li>Bump version: 0.7.7 → 0.7.8 by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2498">langchain-ai/langsmith-sdk#2498</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/catherine-langchain"><code>@catherine-langchain</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2487">langchain-ai/langsmith-sdk#2487</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.7...v0.7.8">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.7...v0.7.8</a></p> <h2>v0.7.7</h2> <h2>What's Changed</h2> <ul> <li>fix(js): subagent tool calls tracking for latest claude agent sdk by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2463">langchain-ai/langsmith-sdk#2463</a></li> <li>release(js): 0.5.5 by <a href="https://github.com/dqbd"><code>@dqbd</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2464">langchain-ai/langsmith-sdk#2464</a></li> <li>fix(js): Respect traceRawHttp for tracing streaming AI SDK calls by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2466">langchain-ai/langsmith-sdk#2466</a></li> <li>release(js): 0.5.6 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2467">langchain-ai/langsmith-sdk#2467</a></li> <li>feat(python): add WebSocket transport for sandbox commands by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2443">langchain-ai/langsmith-sdk#2443</a></li> <li>test(python): add tests for WebSocket transport layer by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2445">langchain-ai/langsmith-sdk#2445</a></li> <li>feat(python): use WebSocket transport by default with HTTP fallback by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2446">langchain-ai/langsmith-sdk#2446</a></li> <li>feat(python): add CommandHandle for streaming, kill, stdin, and reconnect by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2450">langchain-ai/langsmith-sdk#2450</a></li> <li>test(python): add tests for CommandHandle and sandbox streaming integration by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2448">langchain-ai/langsmith-sdk#2448</a></li> <li>docs(python): document sandbox streaming, kill, stdin, and reconnect by <a href="https://github.com/DanielKneipp"><code>@DanielKneipp</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2449">langchain-ai/langsmith-sdk#2449</a></li> <li>chore(deps): bump google-cloud-aiplatform from 1.126.1 to 1.133.0 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2465">langchain-ai/langsmith-sdk#2465</a></li> <li>fix(js): Fix list commits endpoint for private prompts by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2479">langchain-ai/langsmith-sdk#2479</a></li> <li>feat: persist failed trace payloads to disk for later replay by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2476">langchain-ai/langsmith-sdk#2476</a></li> <li>feat: add native thread querying support by <a href="https://github.com/ericdong-langchain"><code>@ericdong-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2455">langchain-ai/langsmith-sdk#2455</a></li> <li>feat: add raw response parsing for responses api to openai wrapper by <a href="https://github.com/victorm-lc"><code>@victorm-lc</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2480">langchain-ai/langsmith-sdk#2480</a></li> <li>fix: add integration and version num by <a href="https://github.com/samecrowder"><code>@samecrowder</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2481">langchain-ai/langsmith-sdk#2481</a></li> <li>release(py): 0.5.7 by <a href="https://github.com/samecrowder"><code>@samecrowder</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2482">langchain-ai/langsmith-sdk#2482</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/samecrowder"><code>@samecrowder</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2481">langchain-ai/langsmith-sdk#2481</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="52339a4d73"><code>52339a4</code></a> chore: bump py ver (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2501">#2501</a>)</li> <li><a href="8d464b565f"><code>8d464b5</code></a> fix: catch blocksize typeError (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2499">#2499</a>)</li> <li><a href="d442f952ca"><code>d442f95</code></a> Bump version: 0.7.7 → 0.7.8 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2498">#2498</a>)</li> <li><a href="498536f09d"><code>498536f</code></a> fix(anthropic): Add usage_metadata to metadata (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2497">#2497</a>)</li> <li><a href="96a6801ac3"><code>96a6801</code></a> docs: rm pytest beta docstring (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2496">#2496</a>)</li> <li><a href="b3141e3e4b"><code>b3141e3</code></a> feat(sandbox): async sandbox creation (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2493">#2493</a>)</li> <li><a href="430999bedb"><code>430999b</code></a> Description change for read_dataset_version (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2487">#2487</a>)</li> <li><a href="b20cf2a7bd"><code>b20cf2a</code></a> chore(deps): bump rollup from 4.40.2 to 4.59.0 in /js (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2484">#2484</a>)</li> <li><a href="3c15041afa"><code>3c15041</code></a> feat(sandbox): add retry mechanism for python client (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2486">#2486</a>)</li> <li><a href="1d29f1ce9b"><code>1d29f1c</code></a> chore(deps): bump rollup from 4.57.1 to 4.59.0 in /js/internal/environment_te...</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.6...v0.7.9">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.2 to 0.15.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.15.4</h2> <h2>Release Notes</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix incorrect <code>import-heading</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/23568">#23568</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/stakeswky"><code>@stakeswky</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/thejcannon"><code>@thejcannon</code></a></li> <li><a href="https://github.com/GeObts"><code>@GeObts</code></a></li> </ul> <h2>Install ruff 0.15.4</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-installer.ps1 | iex" </code></pre> <h2>Download ruff 0.15.4</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz">ruff-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz">ruff-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip">ruff-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip">ruff-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip">ruff-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz">ruff-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz">ruff-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz">ruff-powerpc64-unknown-linux-gnu.tar.gz</a></td> <td>PPC64 Linux</td> <td><a href="https://github.com/astral-sh/ruff/releases/download/0.15.4/ruff-powerpc64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> </tbody> </table> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.15.4</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix incorrect <code>import-heading</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/23568">#23568</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/stakeswky"><code>@stakeswky</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/thejcannon"><code>@thejcannon</code></a></li> <li><a href="https://github.com/GeObts"><code>@GeObts</code></a></li> </ul> <h2>0.15.3</h2> <p>Released on 2026-02-26.</p> <h3>Preview features</h3> <ul> <li> <p>Drop explicit support for <code>.qmd</code> file extension (<a href="https://redirect.github.com/astral-sh/ruff/pull/23572">#23572</a>)</p> <p>This can now be enabled instead by setting the <a href="https://docs.astral.sh/ruff/settings/#extension"><code>extension</code></a> option:</p> <pre lang="toml"><code># ruff.toml extension = { qmd = "markdown" } <h1>pyproject.toml</h1> <p>[tool.ruff] extension = { qmd = "markdown" } </code></pre></p> </li> <li> <p>Include configured extensions in file discovery (<a href="https://redirect.github.com/astral-sh/ruff/pull/23400">#23400</a>)</p> </li> <li> <p>[<code>flake8-bandit</code>] Allow suspicious imports in <code>TYPE_CHECKING</code> blocks (<code>S401</code>-<code>S415</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23441">#23441</a>)</p> </li> <li> <p>[<code>flake8-bugbear</code>] Allow <code>B901</code> in pytest hook wrappers (<a href="https://redirect.github.com/astral-sh/ruff/pull/21931">#21931</a>)</p> </li> <li> <p>[<code>flake8-import-conventions</code>] Add missing conventions from upstream (<code>ICN001</code>, <code>ICN002</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/21373">#21373</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="f14edd8661"><code>f14edd8</code></a> Bump 0.15.4 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23595">#23595</a>)</li> <li><a href="fd09d37007"><code>fd09d37</code></a> Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/issues/23588">#23588</a>)</li> <li><a href="81d655fadc"><code>81d655f</code></a> [<code>pyflakes</code>] suppress false positive in <code>F821</code> for names used before <code>del</code> in...</li> <li><a href="625b4f5a67"><code>625b4f5</code></a> [ruff] docs: Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/issues/23591">#23591</a>)</li> <li><a href="60facfa0bc"><code>60facfa</code></a> one word typo fix in a <code>while_loop.md</code> test case (<a href="https://redirect.github.com/astral-sh/ruff/issues/23589">#23589</a>)</li> <li><a href="fbb9fa75cc"><code>fbb9fa7</code></a> docs: fix incorrect import-heading example (<a href="https://redirect.github.com/astral-sh/ruff/issues/23568">#23568</a>)</li> <li><a href="5bc49a9412"><code>5bc49a9</code></a> Increase the ruleset size to 16 bits (<a href="https://redirect.github.com/astral-sh/ruff/issues/23586">#23586</a>)</li> <li><a href="a62ba8c6e2"><code>a62ba8c</code></a> [ty] Fix overloaded callable assignability for unary Callable targets (<a href="https://redirect.github.com/astral-sh/ruff/issues/23277">#23277</a>)</li> <li><a href="e5f2f36a3f"><code>e5f2f36</code></a> Bump 0.15.3 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23585">#23585</a>)</li> <li><a href="0e19fc9a61"><code>0e19fc9</code></a> [ty] defer calculating conjunctions in narrowing constraints (<a href="https://redirect.github.com/astral-sh/ruff/issues/23552">#23552</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.2...0.15.4">compare view</a></li> </ul> </details> <br /> Updates `langchain-aws` from 1.3.0 to 1.3.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langchain-aws/releases">langchain-aws's releases</a>.</em></p> <blockquote> <h2>langchain-aws==1.3.1</h2> <h2>What's Changed</h2> <ul> <li>fix(aws): handle video blocks in _format_data_content_block by <a href="https://github.com/sharyar"><code>@sharyar</code></a> in <a href="https://redirect.github.com/langchain-ai/langchain-aws/pull/898">langchain-ai/langchain-aws#898</a></li> <li>feat(aws): Support strict parameter in ChatBedrockConverse bind_tools by <a href="https://github.com/michaelnchin"><code>@michaelnchin</code></a> in <a href="https://redirect.github.com/langchain-ai/langchain-aws/pull/882">langchain-ai/langchain-aws#882</a></li> <li>fix(aws): Preserve input format of ChatBedrockConverse additional_model_request_fields keys by <a href="https://github.com/michaelnchin"><code>@michaelnchin</code></a> in <a href="https://redirect.github.com/langchain-ai/langchain-aws/pull/886">langchain-ai/langchain-aws#886</a></li> <li>release(aws): 1.3.1 by <a href="https://github.com/michaelnchin"><code>@michaelnchin</code></a> in <a href="https://redirect.github.com/langchain-ai/langchain-aws/pull/902">langchain-ai/langchain-aws#902</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/sharyar"><code>@sharyar</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langchain-aws/pull/898">langchain-ai/langchain-aws#898</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langchain-aws/compare/langchain-aws==1.3.0...langchain-aws==1.3.1">https://github.com/langchain-ai/langchain-aws/compare/langchain-aws==1.3.0...langchain-aws==1.3.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="2bec09d097"><code>2bec09d</code></a> release(aws): 1.3.1 (<a href="https://redirect.github.com/langchain-ai/langchain-aws/issues/902">#902</a>)</li> <li><a href="7166abca9f"><code>7166abc</code></a> fix(aws): Preserve input format of ChatBedrockConverse additional_model_reque...</li> <li><a href="81fdf34237"><code>81fdf34</code></a> feat(aws): Support strict parameter in ChatBedrockConverse bind_tools (<a href="https://redirect.github.com/langchain-ai/langchain-aws/issues/882">#882</a>)</li> <li><a href="b0cab4705c"><code>b0cab47</code></a> fix(aws): handle video blocks in _format_data_content_block (<a href="https://redirect.github.com/langchain-ai/langchain-aws/issues/898">#898</a>)</li> <li><a href="42edadb0e8"><code>42edadb</code></a> fix(langgraph-checkpoint-aws): shorten session_id when checkpoint_ns is set t...</li> <li><a href="558aeeacea"><code>558aeea</code></a> fix(langgraph-checkpoint-aws): Update to work with parallelized integration t...</li> <li>See full diff in <a href="https://github.com/langchain-ai/langchain-aws/compare/langchain-aws==1.3.0...langchain-aws==1.3.1">compare view</a></li> </ul> </details> <br /> Updates `python-dotenv` from 1.2.1 to 1.2.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/theskumar/python-dotenv/releases">python-dotenv's releases</a>.</em></p> <blockquote> <h2>v1.2.2</h2> <h3>Added</h3> <ul> <li>Support for Python 3.14, including the free-threaded (3.14t) build. (#)</li> </ul> <h3>Changed</h3> <ul> <li>The <code>dotenv run</code> command now forwards flags directly to the specified command by <a href="https://github.com/bbc2"><code>@bbc2</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/607">theskumar/python-dotenv#607</a></li> <li>Improved documentation clarity regarding override behavior and the reference page.</li> <li>Updated PyPy support to version 3.11.</li> <li>Documentation for FIFO file support.</li> <li>Support for Python 3.9.</li> </ul> <h3>Fixed</h3> <ul> <li>Improved <code>set_key</code> and <code>unset_key</code> behavior when interacting with symlinks by <a href="https://github.com/bbc2"><code>@bbc2</code></a> in <a href="790c5c0299">#790c5</a></li> <li>Corrected the license specifier and added missing Python 3.14 classifiers in package metadata by <a href="https://github.com/JYOuyang"><code>@JYOuyang</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/590">theskumar/python-dotenv#590</a></li> </ul> <h3>Breaking Changes</h3> <ul> <li> <p><code>dotenv.set_key</code> and <code>dotenv.unset_key</code> used to follow symlinks in some situations. This is no longer the case. For that behavior to be restored in all cases, <code>follow_symlinks=True</code> should be used.</p> </li> <li> <p>In the CLI, <code>set</code> and <code>unset</code> used to follow symlinks in some situations. This is no longer the case.</p> </li> <li> <p><code>dotenv.set_key</code>, <code>dotenv.unset_key</code> and the CLI commands <code>set</code> and <code>unset</code> used to reset the file mode of the modified .env file to <code>0o600</code> in some situations. This is no longer the case: The original mode of the file is now preserved. Is the file needed to be created or wasn't a regular file, mode <code>0o600</code> is used.</p> </li> </ul> <h3>Misc</h3> <ul> <li>skip 000 permission tests for root user by <a href="https://github.com/burnout-projects"><code>@burnout-projects</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/561">theskumar/python-dotenv#561</a></li> <li>Bump actions/checkout from 5 to 6 in the github-actions group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/593">theskumar/python-dotenv#593</a></li> <li>Add Windows testing to CI by <a href="https://github.com/bbc2"><code>@bbc2</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/604">theskumar/python-dotenv#604</a></li> <li>Improve workflow efficiency with best practices by <a href="https://github.com/theskumar"><code>@theskumar</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/609">theskumar/python-dotenv#609</a></li> <li>Remove the use of <code>sh</code> in tests by <a href="https://github.com/bbc2"><code>@bbc2</code></a> in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/612">theskumar/python-dotenv#612</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/JYOuyang"><code>@JYOuyang</code></a> made their first contribution in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/590">theskumar/python-dotenv#590</a></li> <li><a href="https://github.com/burnout-projects"><code>@burnout-projects</code></a> made their first contribution in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/561">theskumar/python-dotenv#561</a></li> <li><a href="https://github.com/cpackham-atlnz"><code>@cpackham-atlnz</code></a> made their first contribution in <a href="https://redirect.github.com/theskumar/python-dotenv/pull/597">theskumar/python-dotenv#597</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2">https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md">python-dotenv's changelog</a>.</em></p> <blockquote> <h2>[1.2.2] - 2026-03-01</h2> <h3>Added</h3> <ul> <li>Support for Python 3.14, including the free-threaded (3.14t) build. (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/588">#588</a>)</li> </ul> <h3>Changed</h3> <ul> <li>The <code>dotenv run</code> command now forwards flags directly to the specified command by [<a href="https://github.com/bbc2"><code>@bbc2</code></a>] in <a href="https://redirect.github.com/theskumar/python-dotenv/issues/607">#607</a></li> <li>Improved documentation clarity regarding override behavior and the reference page.</li> <li>Updated PyPy support to version 3.11.</li> <li>Documentation for FIFO file support.</li> <li>Dropped Support for Python 3.9.</li> </ul> <h3>Fixed</h3> <ul> <li>Improved <code>set_key</code> and <code>unset_key</code> behavior when interacting with symlinks by [<a href="https://github.com/bbc2"><code>@bbc2</code></a>] in [790c5c0]</li> <li>Corrected the license specifier and added missing Python 3.14 classifiers in package metadata by [<a href="https://github.com/JYOuyang"><code>@JYOuyang</code></a>] in <a href="https://redirect.github.com/theskumar/python-dotenv/issues/590">#590</a></li> </ul> <h3>Breaking Changes</h3> <ul> <li> <p><code>dotenv.set_key</code> and <code>dotenv.unset_key</code> used to follow symlinks in some situations. This is no longer the case. For that behavior to be restored in all cases, <code>follow_symlinks=True</code> should be used.</p> </li> <li> <p>In the CLI, <code>set</code> and <code>unset</code> used to follow symlinks in some situations. This is no longer the case.</p> </li> <li> <p><code>dotenv.set_key</code>, <code>dotenv.unset_key</code> and the CLI commands <code>set</code> and <code>unset</code> used to reset the file mode of the modified .env file to <code>0o600</code> in some situations. This is no longer the case: The original mode of the file is now preserved. Is the file needed to be created or wasn't a regular file, mode <code>0o600</code> is used.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="36004e0e34"><code>36004e0</code></a> Bump version: 1.2.1 → 1.2.2</li> <li><a href="eb202520e5"><code>eb20252</code></a> docs: update changelog for v1.2.2</li> <li><a href="790c5c0299"><code>790c5c0</code></a> Merge commit from fork</li> <li><a href="43340da220"><code>43340da</code></a> Remove the use of <code>sh</code> in tests (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/612">#612</a>)</li> <li><a href="09d7cee324"><code>09d7cee</code></a> docs: clarify override behavior and document FIFO support (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/610">#610</a>)</li> <li><a href="c8de2887c0"><code>c8de288</code></a> ci: improve workflow efficiency with best practices (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/609">#609</a>)</li> <li><a href="7bd9e3dbfe"><code>7bd9e3d</code></a> Add Windows testing to CI (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/604">#604</a>)</li> <li><a href="1baaf04f33"><code>1baaf04</code></a> Drop Python 3.9 support and update to PyPy 3.11 (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/608">#608</a>)</li> <li><a href="4a22cf8993"><code>4a22cf8</code></a> ci: enable testing on Python 3.14t (free-threaded) (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/588">#588</a>)</li> <li><a href="e2e8e776b4"><code>e2e8e77</code></a> Fix license specifier (<a href="https://redirect.github.com/theskumar/python-dotenv/issues/597">#597</a>)</li> <li>Additional commits viewable in <a href="https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2">compare view</a></li> </ul> </details> <br /> Updates `langchainhub` from 0.1.18 to 0.1.21 Updates `fastapi` from 0.133.0 to 0.135.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/fastapi/fastapi/releases">fastapi's releases</a>.</em></p> <blockquote> <h2>0.135.1</h2> <h3>Fixes</h3> <ul> <li>🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15038">#15038</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h3>Docs</h3> <ul> <li>✏️ Fix typo in <code>docs/en/docs/_llm-test.md</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15007">#15007</a> by <a href="https://github.com/adityagiri3600"><code>@adityagiri3600</code></a>.</li> <li>📝 Update Skill, optimize context, trim and refactor into references. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15031">#15031</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h3>Internal</h3> <ul> <li>👥 Update FastAPI People - Experts. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15037">#15037</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>👥 Update FastAPI People - Contributors and Translators. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15029">#15029</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>👥 Update FastAPI GitHub topic repositories. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15036">#15036</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> </ul> <h2>0.135.0</h2> <h3>Features</h3> <ul> <li>✨ Add support for Server Sent Events. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15030">#15030</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>. <ul> <li>New docs: <a href="https://fastapi.tiangolo.com/tutorial/server-sent-events/">Server-Sent Events (SSE)</a>.</li> </ul> </li> </ul> <h2>0.134.0</h2> <h3>Features</h3> <ul> <li>✨ Add support for streaming JSON Lines and binary data with <code>yield</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15022">#15022</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>. <ul> <li>This also upgrades Starlette from <code>>=0.40.0</code> to <code>>=0.46.0</code>, as it's needed to properly unrwap and re-raise exceptions from exception groups.</li> <li>New docs: <a href="https://fastapi.tiangolo.com/tutorial/stream-json-lines/">Stream JSON Lines</a>.</li> <li>And new docs: <a href="https://fastapi.tiangolo.com/advanced/stream-data/">Stream Data</a>.</li> </ul> </li> </ul> <h3>Docs</h3> <ul> <li>📝 Update Library Agent Skill with streaming responses. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15024">#15024</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>📝 Update docs for responses and new stream with <code>yield</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/15023">#15023</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li> <li>📝 Add <code>await</code> in <code>StreamingResponse</code> code example to allow cancellation. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14681">#14681</a> by <a href="https://github.com/casperdcl"><code>@casperdcl</code></a>.</li> <li>📝 Rename <code>docs_src/websockets</code> to <code>docs_src/websockets_</code> to avoid import errors. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14979">#14979</a> by <a href="https://github.com/YuriiMotov"><code>@YuriiMotov</code></a>.</li> </ul> <h3>Internal</h3> <ul> <li>🔨 Run tests with <code>pytest-xdist</code> and <code>pytest-cov</code>. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14992">#14992</a> by <a href="https://github.com/YuriiMotov"><code>@YuriiMotov</code></a>.</li> </ul> <h2>0.133.1</h2> <h3>Features</h3> <ul> <li>🔧 Add FastAPI Agent Skill. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14982">#14982</a> by <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>. <ul> <li>Read more about it in <a href="https://tiangolo.com/ideas/library-agent-skills/">Library Agent Skills</a>.</li> </ul> </li> </ul> <h3>Internal</h3> <ul> <li>✅ Fix all tests are skipped on Windows. PR <a href="https://redirect.github.com/fastapi/fastapi/pull/14994">#14994</a> by <a href="https://github.com/YuriiMotov"><code>@YuriiMotov</code></a>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="ca5f60ee72"><code>ca5f60e</code></a> 🔖 Release version 0.135.1</li> <li><a href="87f75aa62c"><code>87f75aa</code></a> 📝 Update release notes</li> <li><a href="8a9258b169"><code>8a9258b</code></a> 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...</li> <li><a href="6038507823"><code>6038507</code></a> 📝 Update release notes</li> <li><a href="c796ba4f46"><code>c796ba4</code></a> 👥 Update FastAPI People - Experts (<a href="https://redirect.github.com/fastapi/fastapi/issues/15037">#15037</a>)</li> <li><a href="b24aa03b88"><code>b24aa03</code></a> 📝 Update release notes</li> <li><a href="2c6104752a"><code>2c61047</code></a> ✏️ Fix typo in <code>docs/en/docs/_llm-test.md</code> (<a href="https://redirect.github.com/fastapi/fastapi/issues/15007">#15007</a>)</li> <li><a href="e3bbeef8a2"><code>e3bbeef</code></a> 📝 Update release notes</li> <li><a href="d726c8cb2b"><code>d726c8c</code></a> 📝 Update release notes</li> <li><a href="cf514e6d38"><code>cf514e6</code></a> 👥 Update FastAPI People - Contributors and Translators (<a href="https://redirect.github.com/fastapi/fastapi/issues/15029">#15029</a>)</li> <li>Additional commits viewable in <a href="https://github.com/fastapi/fastapi/compare/0.133.0...0.135.1">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.2 to 0.15.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.15.4</h2> <h2>Release Notes</h2> <p>Released on 2026-02-26.</p> <p>This is a follow-up release to 0.15.3 that resolves a panic when the new rule <code>PLR1712</code> was enabled with any rule that analyzes definitions, such as many of the <code>ANN</code> or <code>D</code> rules.</p> <h3>Bug fixes</h3> <ul> <li>Fix panic on access to definitions after analyzing definitions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23588">#23588</a>)</li> <li>[<code>pyflakes</code>] Suppress false positive in <code>F821</code> for names used before <code>del</code> in stub files (<a href="https://redirect.github.com/astral-sh/ruff/pull/23550">#23550</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Clarify first-party import detection in Ruff (<a href="https://redirect.github.com/astral-sh/ruff/pull/23591">#23591</a>)</li> <li>Fix... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The platform for reliable agents.
LangChain is a framework for building agents and LLM-powered applications. It helps you chain together interoperable components and third-party integrations to simplify AI application development – all while future-proofing decisions as the underlying technology evolves.
pip install langchain
If you're looking for more advanced customization or agent orchestration, check out LangGraph, our framework for building controllable agent workflows.
Documentation:
- docs.langchain.com – Comprehensive documentation, including conceptual overviews and guides
- reference.langchain.com/python – API reference docs for LangChain packages
- Chat LangChain – Chat with the LangChain documentation and get answers to your questions
Discussions: Visit the LangChain Forum to connect with the community and share all of your technical questions, ideas, and feedback.
Note
Looking for the JS/TS library? Check out LangChain.js.
Why use LangChain?
LangChain helps developers build applications powered by LLMs through a standard interface for models, embeddings, vector stores, and more.
Use LangChain for:
- Real-time data augmentation. Easily connect LLMs to diverse data sources and external/internal systems, drawing from LangChain's vast library of integrations with model providers, tools, vector stores, retrievers, and more.
- Model interoperability. Swap models in and out as your engineering team experiments to find the best choice for your application's needs. As the industry frontier evolves, adapt quickly – LangChain's abstractions keep you moving without losing momentum.
- Rapid prototyping. Quickly build and iterate on LLM applications with LangChain's modular, component-based architecture. Test different approaches and workflows without rebuilding from scratch, accelerating your development cycle.
- Production-ready features. Deploy reliable applications with built-in support for monitoring, evaluation, and debugging through integrations like LangSmith. Scale with confidence using battle-tested patterns and best practices.
- Vibrant community and ecosystem. Leverage a rich ecosystem of integrations, templates, and community-contributed components. Benefit from continuous improvements and stay up-to-date with the latest AI developments through an active open-source community.
- Flexible abstraction layers. Work at the level of abstraction that suits your needs - from high-level chains for quick starts to low-level components for fine-grained control. LangChain grows with your application's complexity.
LangChain ecosystem
While the LangChain framework can be used standalone, it also integrates seamlessly with any LangChain product, giving developers a full suite of tools when building LLM applications.
To improve your LLM application development, pair LangChain with:
- Deep Agents (new!) – Build agents that can plan, use subagents, and leverage file systems for complex tasks
- LangGraph – Build agents that can reliably handle complex tasks with LangGraph, our low-level agent orchestration framework. LangGraph offers customizable architecture, long-term memory, and human-in-the-loop workflows – and is trusted in production by companies like LinkedIn, Uber, Klarna, and GitLab.
- Integrations – List of LangChain integrations, including chat & embedding models, tools & toolkits, and more
- LangSmith – Helpful for agent evals and observability. Debug poor-performing LLM app runs, evaluate agent trajectories, gain visibility in production, and improve performance over time.
- LangSmith Deployment – Deploy and scale agents effortlessly with a purpose-built deployment platform for long-running, stateful workflows. Discover, reuse, configure, and share agents across teams – and iterate quickly with visual prototyping in LangSmith Studio.
Additional resources
- API Reference – Detailed reference on navigating base packages and integrations for LangChain.
- Contributing Guide – Learn how to contribute to LangChain projects and find good first issues.
- Code of Conduct – Our community guidelines and standards for participation.
- LangChain Academy – Comprehensive, free courses on LangChain libraries and products, made by the LangChain team.