{"id":46391,"name":"langchain","ecosystem":"hex","repository_url":"https://github.com/brainlid/langchain","issues_count":4,"created_at":"2025-06-26T16:03:41.277Z","updated_at":"2025-06-26T16:03:41.277Z","purl":"pkg:hex/langchain","metadata":{"id":8298077,"name":"langchain","ecosystem":"hex","description":"Elixir implementation of a LangChain style framework that lets Elixir projects integrate with and leverage LLMs.","homepage":null,"licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/brainlid/langchain","keywords_array":[],"namespace":null,"versions_count":20,"first_release_published_at":"2023-09-19T03:12:30.090Z","latest_release_published_at":"2025-04-23T01:31:20.899Z","latest_release_number":"0.3.3","last_synced_at":"2025-06-20T18:28:45.645Z","created_at":"2023-09-19T03:21:42.022Z","updated_at":"2025-06-20T18:28:48.072Z","registry_url":"https://hex.pm/packages/langchain/","install_command":"mix hex.package fetch langchain ","documentation_url":"http://hexdocs.pm/langchain/","metadata":{},"repo_metadata":{"id":180778215,"uuid":"665653661","full_name":"brainlid/langchain","owner":"brainlid","description":"Elixir implementation of a LangChain style framework that lets Elixir projects integrate with and leverage LLMs.","archived":false,"fork":false,"pushed_at":"2025-06-20T17:10:07.000Z","size":1330,"stargazers_count":913,"open_issues_count":40,"forks_count":122,"subscribers_count":22,"default_branch":"main","last_synced_at":"2025-06-20T18:23:50.744Z","etag":null,"topics":["ai","anthropic","bumblebee","chatgpt","claude-ai","elixir","langchain","llm"],"latest_commit_sha":null,"homepage":"https://hexdocs.pm/langchain/","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brainlid.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-07-12T17:27:16.000Z","updated_at":"2025-06-20T17:10:10.000Z","dependencies_parsed_at":"2023-07-12T20:36:24.853Z","dependency_job_id":"f487f807-ae20-447b-afed-790d2a466a2e","html_url":"https://github.com/brainlid/langchain","commit_stats":{"total_commits":376,"total_committers":29,"mean_commits":12.96551724137931,"dds":"0.15957446808510634","last_synced_commit":"29c1134e89b2d1f93841d808cc586a27a190af77"},"previous_names":["brainlid/langchain"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/brainlid/langchain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brainlid","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260996162,"owners_count":23094672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"brainlid","name":"Mark Ericksen","uuid":"808984","kind":"user","description":"","email":"","website":null,"location":"Utah","twitter":"brainlid","company":"@superfly","icon_url":"https://avatars.githubusercontent.com/u/808984?u=fa95a88a732466edef7ea7b7e9fccf9ccc6f743b\u0026v=4","repositories_count":9,"last_synced_at":"2023-03-11T07:01:08.465Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/brainlid","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-02T22:03:49.133Z","updated_at":"2023-03-11T07:01:08.485Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brainlid","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brainlid/repositories"},"tags":[{"name":"v0.4.0-rc.0","sha":"682ae9d6440d507d6ca138a6a1cc216490e94135","kind":"commit","published_at":"2025-04-23T03:46:04.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.4.0-rc.0","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.4.0-rc.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.4.0-rc.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.4.0-rc.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.4.0-rc.0/manifests"},{"name":"v0.3.3","sha":"7e0959d894aa229e474679651814b760b04fb417","kind":"commit","published_at":"2025-04-23T01:27:09.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.3.3","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"24b3ed976abcb9b517a930ae9c69692fac7dc4cf","kind":"commit","published_at":"2025-03-18T00:04:55.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.3.2","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"f0a3ca778e2256ef0c933b018752026d975ebb2e","kind":"commit","published_at":"2025-02-05T15:07:39.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.3.1","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"1c3071dc2a9ac59488e1c2188122b6ffcd6948d2","kind":"commit","published_at":"2025-01-22T20:19:01.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.3.0","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.0/manifests"},{"name":"v0.3.0-rc.2","sha":"eea93fff4436fef7a3c98cad72b875429e7a0fa2","kind":"commit","published_at":"2025-01-09T03:33:58.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.3.0-rc.2","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.3.0-rc.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.3.0-rc.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.0-rc.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.0-rc.2/manifests"},{"name":"v0.3.0-rc.1","sha":"d766e79505c2c5e42b2cd3329ce1520190b02078","kind":"commit","published_at":"2024-12-16T00:19:49.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.3.0-rc.1","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.3.0-rc.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.3.0-rc.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.0-rc.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.0-rc.1/manifests"},{"name":"v0.3.0-rc.0","sha":"a832d05b52ba9ad66bc99b5a8220a4f994c4b2c2","kind":"commit","published_at":"2024-06-18T03:24:47.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.3.0-rc.0","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.3.0-rc.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.3.0-rc.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.0-rc.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.3.0-rc.0/manifests"},{"name":"v0.2.0","sha":"333e5ccbea402770bda593ab4e90207d5fe4dcf2","kind":"commit","published_at":"2024-05-01T02:25:24.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.2.0","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.2.0/manifests"},{"name":"v0.1.10","sha":"6de55cdb7e5489a7c49ffb2df138831688eaaca2","kind":"commit","published_at":"2024-03-08T05:06:44.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.1.10","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.1.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.1.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.10/manifests"},{"name":"v0.1.9","sha":"ba1efba989523724b4f1a660b7fab044fa07e808","kind":"commit","published_at":"2024-02-29T22:10:40.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.1.9","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.1.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.1.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.9/manifests"},{"name":"v0.1.8","sha":"76ed1637f3d6f50c6a3852f55ec90b06c5300b87","kind":"commit","published_at":"2024-02-16T21:04:32.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.1.8","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.1.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.1.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.8/manifests"},{"name":"v0.1.7","sha":"6fdb117f1acb8745afa73ee1a7ad78d8edf47f97","kind":"commit","published_at":"2024-01-18T21:56:34.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.1.7","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.1.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.1.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.7/manifests"},{"name":"v0.1.6","sha":"3ab941a03934554016219c38689354d8131b2198","kind":"commit","published_at":"2023-12-12T20:22:10.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.1.6","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.1.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.6/manifests"},{"name":"v0.1.5","sha":"49e2711429fd6a260f6cae78ad92f617a04f86cd","kind":"commit","published_at":"2023-12-12T04:43:09.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.1.5","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.1.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.5/manifests"},{"name":"v0.1.4","sha":"0451e2dd9be62422cf5b383def9fdab78fc91fbe","kind":"commit","published_at":"2023-12-11T21:03:35.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.1.4","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.4/manifests"},{"name":"v0.1.3","sha":"983213e3533b92a46f26260a1dc57c9ebafff4ae","kind":"commit","published_at":"2023-12-01T15:52:56.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.1.3","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.3/manifests"},{"name":"v0.1.2","sha":"8e48b5f83f219974fbaeaffd12a3f4c27b2cb3dd","kind":"commit","published_at":"2023-10-26T21:06:52.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.1.2","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.2/manifests"},{"name":"v0.1.1","sha":"0d74f66f24ad2a9545637ce133375e2df852cc30","kind":"commit","published_at":"2023-10-11T02:53:58.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.1.1","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"06194f80dcf8515c227630a1bfdcd2a56bda263c","kind":"tag","published_at":"2023-09-19T03:13:45.000Z","download_url":"https://codeload.github.com/brainlid/langchain/tar.gz/v0.1.0","html_url":"https://github.com/brainlid/langchain/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/brainlid/langchain@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brainlid%2Flangchain/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-06-20T18:28:48.072Z","dependent_packages_count":1,"downloads":202317,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":37.35020419093526,"dependent_packages_count":20.72705362522595,"stargazers_count":56.15961435457953,"forks_count":32.92495146281047,"docker_downloads_count":null,"average":36.7904559083878},"purl":"pkg:hex/langchain","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/hex/langchain","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/hex/langchain","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/hex/langchain/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/packages/langchain/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/packages/langchain/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/packages/langchain/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/packages/langchain/related_packages","maintainers":[{"uuid":"brainlid","login":"brainlid","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://hex.pm/users/brainlid","role":null,"created_at":"2023-09-19T23:39:10.541Z","updated_at":"2023-09-19T23:39:10.541Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/maintainers/brainlid/packages"}],"registry":{"name":"hex.pm","url":"https://hex.pm","ecosystem":"hex","default":true,"packages_count":18138,"maintainers_count":6854,"namespaces_count":0,"keywords_count":6105,"github":"hexpm","metadata":{"funded_packages_count":1283},"icon_url":"https://github.com/hexpm.png","created_at":"2022-04-04T15:19:23.014Z","updated_at":"2025-06-28T05:51:04.193Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/hex.pm/namespaces"}},"unique_repositories_count":3,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"3705905199","node_id":"PR_kwDONe7Iac63p2_O","number":90,"state":"open","title":"deps(deps): bump langchain from 0.4.0 to 0.4.1","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-08T11:19:26.000Z","updated_at":"2025-12-08T11:22:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps)","packages":[{"name":"langchain","old_version":"0.4.0","new_version":"0.4.1","repository_url":"https://github.com/brainlid/langchain"}],"path":null,"ecosystem":"hex"},"body":"Bumps [langchain](https://github.com/brainlid/langchain) from 0.4.0 to 0.4.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/releases\"\u003elangchain's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOpenAI responses API improvements by \u003ca href=\"https://github.com/arjan\"\u003e\u003ccode\u003e@​arjan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/391\"\u003ebrainlid/langchain#391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Anthropic \u003ccode\u003edisable_parallel_tool_use\u003c/code\u003e tool_choice setting by \u003ca href=\"https://github.com/vlymar\"\u003e\u003ccode\u003e@​vlymar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/390\"\u003ebrainlid/langchain#390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate gettext dependency version to 1.0 by \u003ca href=\"https://github.com/bijanbwb\"\u003e\u003ccode\u003e@​bijanbwb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/393\"\u003ebrainlid/langchain#393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd DeepSeek chat model integration by \u003ca href=\"https://github.com/gilbertwong96\"\u003e\u003ccode\u003e@​gilbertwong96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/394\"\u003ebrainlid/langchain#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLoosen the gettext dependency by \u003ca href=\"https://github.com/montebrown\"\u003e\u003ccode\u003e@​montebrown\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/399\"\u003ebrainlid/langchain#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd MessageDelta.merge_deltas/2 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/401\"\u003ebrainlid/langchain#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eformatting update by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/402\"\u003ebrainlid/langchain#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded an :cache_messages option for ChatAnthropic, can improve cache utilization. by \u003ca href=\"https://github.com/montebrown\"\u003e\u003ccode\u003e@​montebrown\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/398\"\u003ebrainlid/langchain#398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Anthropic API PDF reading to the ChatAnthropic model. by \u003ca href=\"https://github.com/jadengis\"\u003e\u003ccode\u003e@​jadengis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/403\"\u003ebrainlid/langchain#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add support for \u003ccode\u003e:file_url\u003c/code\u003e to ChatAnthropic too by \u003ca href=\"https://github.com/jadengis\"\u003e\u003ccode\u003e@​jadengis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/404\"\u003ebrainlid/langchain#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reasoning_content of deepseek model by \u003ca href=\"https://github.com/gilbertwong96\"\u003e\u003ccode\u003e@​gilbertwong96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/407\"\u003ebrainlid/langchain#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd req_opts to ChatAnthropic by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/408\"\u003ebrainlid/langchain#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOpen AI Responses API: Add support for file_url with link to file by \u003ca href=\"https://github.com/reetou\"\u003e\u003ccode\u003e@​reetou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/395\"\u003ebrainlid/langchain#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd strict tool use support to ChatAnthropic by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/409\"\u003ebrainlid/langchain#409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd strict to function of ChatModels.ChatOpenAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/301\"\u003ebrainlid/langchain#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multi-part tool responses. by \u003ca href=\"https://github.com/montebrown\"\u003e\u003ccode\u003e@​montebrown\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/410\"\u003ebrainlid/langchain#410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprep for v0.4.1 release by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/411\"\u003ebrainlid/langchain#411\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vlymar\"\u003e\u003ccode\u003e@​vlymar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/390\"\u003ebrainlid/langchain#390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bijanbwb\"\u003e\u003ccode\u003e@​bijanbwb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/393\"\u003ebrainlid/langchain#393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gilbertwong96\"\u003e\u003ccode\u003e@​gilbertwong96\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/394\"\u003ebrainlid/langchain#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reetou\"\u003e\u003ccode\u003e@​reetou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/395\"\u003ebrainlid/langchain#395\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.4.0...v0.4.1\"\u003ehttps://github.com/brainlid/langchain/compare/v0.4.0...v0.4.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/blob/main/CHANGELOG.md\"\u003elangchain's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatDeepSeek\u003c/strong\u003e: Added DeepSeek chat model integration with reasoning_content support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/394\"\u003e#394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/407\"\u003e#407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added strict tool use support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added support for file_url with link to file (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added strict tool use support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/409\"\u003e#409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added support for file_url (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added PDF reading support via Anthropic API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added \u003ccode\u003ecache_messages\u003c/code\u003e option to improve cache utilization (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added \u003ccode\u003ereq_opts\u003c/code\u003e option for custom Req configuration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMessageDelta\u003c/strong\u003e: Added \u003ccode\u003eMessageDelta.merge_deltas/2\u003c/code\u003e function for merging multiple deltas (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added \u003ccode\u003edisable_parallel_tool_use\u003c/code\u003e tool_choice pass-through (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Added multi-part tool responses support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Enhanced OpenAI responses API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDependencies\u003c/strong\u003e: Updated gettext requirement to \u003ccode\u003e~\u0026gt; 1.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/393\"\u003e#393\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e: Updated README install instructions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Fixed compiler typing warnings\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/16e89565679070e58d1a2a40865252b11977c6d6\"\u003e\u003ccode\u003e16e8956\u003c/code\u003e\u003c/a\u003e prep for v0.4.1 release (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/5bcc577c1e4e6e3f336f2c612b81f21866000f54\"\u003e\u003ccode\u003e5bcc577\u003c/code\u003e\u003c/a\u003e Allow multi-part tool responses. (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/a8e6c2d0daabb8d5ffa34b208e4981ae8f3a64f0\"\u003e\u003ccode\u003ea8e6c2d\u003c/code\u003e\u003c/a\u003e Add strict to function of ChatModels.ChatOpenAI (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/0c99f990e63cf1545b96b2df16912ddeaebd8c5e\"\u003e\u003ccode\u003e0c99f99\u003c/code\u003e\u003c/a\u003e Add strict tool use support to ChatAnthropic (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/409\"\u003e#409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/1da1bcfe9fdacc20ab3f606df3bc644dc62b87ed\"\u003e\u003ccode\u003e1da1bcf\u003c/code\u003e\u003c/a\u003e Add support for file_url with link to file (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/0fdaf09697a78e78b9d9eb9517de50b646aec245\"\u003e\u003ccode\u003e0fdaf09\u003c/code\u003e\u003c/a\u003e Add req_opts to ChatAnthropic (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/d3d57d56c608d63c27bcdedf894e6f3c7a9dbc2b\"\u003e\u003ccode\u003ed3d57d5\u003c/code\u003e\u003c/a\u003e Support reasoning_content of deepseek model (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/407\"\u003e#407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/dae977bcee876891137b005bad28013fd91dbc17\"\u003e\u003ccode\u003edae977b\u003c/code\u003e\u003c/a\u003e feat: Add support for file_url to ChatAnthropic too (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/6b353caaf5e05e5c0f7d49b0f3193d3e658374c1\"\u003e\u003ccode\u003e6b353ca\u003c/code\u003e\u003c/a\u003e Add support for Anthropic API PDF reading to the ChatAnthropic model. (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/b02f512bef48d96c0737981fe454943e8837c5cd\"\u003e\u003ccode\u003eb02f512\u003c/code\u003e\u003c/a\u003e Added an :cache_messages option for ChatAnthropic, can improve cache utilizat...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.4.0...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=langchain\u0026package-manager=hex\u0026previous-version=0.4.0\u0026new-version=0.4.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/agentjido/jido_ai/pull/90","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentjido%2Fjido_ai/issues/90","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/90/packages"},{"uuid":"3542792632","node_id":"PR_kwDOPAudPM6vK4ns","number":21,"state":"closed","title":"chore(deps): bump the production-dependencies group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-30T01:06:31.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-23T01:04:54.000Z","updated_at":"2025-10-30T01:06:32.000Z","time_to_close":604897,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":3,"packages":[{"name":"langchain","old_version":"0.3.3","new_version":"0.4.0","repository_url":"https://github.com/brainlid/langchain"},{"name":"spark","old_version":"2.2.67","new_version":"2.3.7","repository_url":"https://github.com/ash-project/spark"},{"name":"yaml_elixir","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/KamilLelonek/yaml-elixir"}],"path":null,"ecosystem":"hex"},"body":"Bumps the production-dependencies group with 3 updates in the / directory: [langchain](https://github.com/brainlid/langchain), [spark](https://github.com/ash-project/spark) and [yaml_elixir](https://github.com/KamilLelonek/yaml-elixir).\n\nUpdates `langchain` from 0.3.3 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/releases\"\u003elangchain's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed since v0.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI and Claude thinking support - v0.4.0-rc.0 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/297\"\u003ebrainlid/langchain#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evertex ai file url support by \u003ca href=\"https://github.com/ahsandar\"\u003e\u003ccode\u003e@​ahsandar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/296\"\u003ebrainlid/langchain#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docs for Vertex AI by \u003ca href=\"https://github.com/ahsandar\"\u003e\u003ccode\u003e@​ahsandar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/304\"\u003ebrainlid/langchain#304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ContentPart migration by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/309\"\u003ebrainlid/langchain#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix tests for content_part_for_api/2 of ChatOpenAI in v0.4.0-rc0 by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/300\"\u003ebrainlid/langchain#300\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003etool_calls\u003c/code\u003e \u003ccode\u003enil\u003c/code\u003e messages by \u003ca href=\"https://github.com/udoschneider\"\u003e\u003ccode\u003e@​udoschneider\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/314\"\u003ebrainlid/langchain#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add structured output support to ChatMistralAI  by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/312\"\u003ebrainlid/langchain#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add configurable tokenizer to text splitters by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/310\"\u003ebrainlid/langchain#310\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esimple formatting issue by \u003ca href=\"https://github.com/Bodhert\"\u003e\u003ccode\u003e@​Bodhert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/307\"\u003ebrainlid/langchain#307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Message.new_system spec to accurately accept [ContentPart.t()]… by \u003ca href=\"https://github.com/rtorresware\"\u003e\u003ccode\u003e@​rtorresware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/315\"\u003ebrainlid/langchain#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Add token usage to ChatGoogleAI message metadata by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/316\"\u003ebrainlid/langchain#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: include raw API responses in LLM error objects for better debug… by \u003ca href=\"https://github.com/TwistingTwists\"\u003e\u003ccode\u003e@​TwistingTwists\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/317\"\u003ebrainlid/langchain#317\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexpanded docs and test coverage for prompt caching by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/325\"\u003ebrainlid/langchain#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AWS Bedrock stream decoder ordering issue by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/327\"\u003ebrainlid/langchain#327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esignificant updates for v0.4.0-rc.1 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/328\"\u003ebrainlid/langchain#328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efilter out empty lists in message responses by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/333\"\u003ebrainlid/langchain#333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Require gettext ~\u0026gt; 0.26 by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/332\"\u003ebrainlid/langchain#332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eretry: transient\u003c/code\u003e to Req for Anthropic models in stream mode by \u003ca href=\"https://github.com/jonator\"\u003e\u003ccode\u003e@​jonator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/329\"\u003ebrainlid/langchain#329\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed issue with poorly matching list in case by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/334\"\u003ebrainlid/langchain#334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add organization ID as a parameter by \u003ca href=\"https://github.com/hjemmel\"\u003e\u003ccode\u003e@​hjemmel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/337\"\u003ebrainlid/langchain#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing verbose_api field to ChatOllamaAI for streaming compatibility by \u003ca href=\"https://github.com/gur-xyz\"\u003e\u003ccode\u003e@​gur-xyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/341\"\u003ebrainlid/langchain#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded usage data to the VertexAI Message response. by \u003ca href=\"https://github.com/raulchedrese\"\u003e\u003ccode\u003e@​raulchedrese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/335\"\u003ebrainlid/langchain#335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add run mode: step by \u003ca href=\"https://github.com/CaiqueMitsuoka\"\u003e\u003ccode\u003e@​CaiqueMitsuoka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/343\"\u003ebrainlid/langchain#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add support for multiple tools in run_until_tool_used by \u003ca href=\"https://github.com/fortmarek\"\u003e\u003ccode\u003e@​fortmarek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/345\"\u003ebrainlid/langchain#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ChatOllamaAI stop sequences: change from string to array type by \u003ca href=\"https://github.com/gur-xyz\"\u003e\u003ccode\u003e@​gur-xyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/342\"\u003ebrainlid/langchain#342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexpanded logging for ChatAnthropic API errors by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/349\"\u003ebrainlid/langchain#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent crash when ToolResult with string in ChatGoogleAI.for_api/1 by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/352\"\u003ebrainlid/langchain#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBedrock OpenAI-compatible API compatibility fix by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/356\"\u003ebrainlid/langchain#356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded xAI Grok chat model support by \u003ca href=\"https://github.com/alexfilatov\"\u003e\u003ccode\u003e@​alexfilatov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/338\"\u003ebrainlid/langchain#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport thinking to ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/354\"\u003ebrainlid/langchain#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd req_config to ChatMode.ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/357\"\u003ebrainlid/langchain#357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up treating MessageDelta in ChatModels.ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/353\"\u003ebrainlid/langchain#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose full response headers through a new on_llm_response_headers callback by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/358\"\u003ebrainlid/langchain#358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eonly include \u0026quot;user\u0026quot; with OpenAI request when a value is provided by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/364\"\u003ebrainlid/langchain#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle no content parts responses in ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/365\"\u003ebrainlid/langchain#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds support for gpt-image-1 in LangChain.Images.OpenAIImage by \u003ca href=\"https://github.com/Ven109\"\u003e\u003ccode\u003e@​Ven109\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/360\"\u003ebrainlid/langchain#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePref for release v0.4.0-rc.2 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/366\"\u003ebrainlid/langchain#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle missing finish_reason in streaming responses for LiteLLM compatibility by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/367\"\u003ebrainlid/langchain#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for native tool calls to ChatVertexAI by \u003ca href=\"https://github.com/raulchedrese\"\u003e\u003ccode\u003e@​raulchedrese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/359\"\u003ebrainlid/langchain#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds should_continue? optional function to mode step by \u003ca href=\"https://github.com/CaiqueMitsuoka\"\u003e\u003ccode\u003e@​CaiqueMitsuoka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/361\"\u003ebrainlid/langchain#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAI Deep Research integration by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/336\"\u003ebrainlid/langchain#336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eparallel_tool_calls\u003c/code\u003e option to \u003ccode\u003eChatOpenAI\u003c/code\u003e model by \u003ca href=\"https://github.com/martosaur\"\u003e\u003ccode\u003e@​martosaur\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/371\"\u003ebrainlid/langchain#371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional AWS session token handling in BedrockHelpers by \u003ca href=\"https://github.com/quangngd\"\u003e\u003ccode\u003e@​quangngd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/372\"\u003ebrainlid/langchain#372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle LiteLLM responses with null b64_json in OpenAIImage by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/368\"\u003ebrainlid/langchain#368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Orq AI chat by \u003ca href=\"https://github.com/arjan\"\u003e\u003ccode\u003e@​arjan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/377\"\u003ebrainlid/langchain#377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd req_config to ChatModels.ChatOpenAI by \u003ca href=\"https://github.com/koszta\"\u003e\u003ccode\u003e@​koszta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/376\"\u003ebrainlid/langchain#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ChatGoogleAI): Handle cumulative token usage by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/373\"\u003ebrainlid/langchain#373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ChatGoogleAI): Prevent error from thinking content parts by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/374\"\u003ebrainlid/langchain#374\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/blob/main/CHANGELOG.md\"\u003elangchain's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added support for json-schema in OpenAI responses API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e: Added AGENTS.md and CLAUDE.md file support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCI\u003c/strong\u003e: Added support for OTP 28 (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Enhanced OpenAI responses handling (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e: Use moduledoc instead of doc for LLMChain documentation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUtils.ChainResult\u003c/strong\u003e: Added clarity to message stopped for length handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatBumblebee\u003c/strong\u003e: Suppressed compiler warning messages when used as a dependency (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Fixed Ecto field formatting\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev0.4.0-rc.3\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOrqAI\u003c/strong\u003e: Added Orq AI chat model support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added OpenAI Deep Research integration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added \u003ccode\u003eparallel_tool_calls\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added \u003ccode\u003ereq_config\u003c/code\u003e option for custom Req configuration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added verbosity parameter support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatVertexAI\u003c/strong\u003e: Added support for native tool calls (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added full thinking configuration support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBedrock\u003c/strong\u003e: Added optional AWS session token handling in BedrockHelpers (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLLMChain\u003c/strong\u003e: Added \u003ccode\u003eshould_continue?\u003c/code\u003e function for automatic looping on mode \u003ccode\u003e:step\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Added \u003ccode\u003eretry_on_fallback?\u003c/code\u003e to chat model definition and all models (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eImages\u003c/strong\u003e: Fixed handling of LiteLLM responses with null \u003ccode\u003eb64_json\u003c/code\u003e in OpenAI image generation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/368\"\u003e#368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Fixed handling of missing \u003ccode\u003efinish_reason\u003c/code\u003e in streaming responses for LiteLLM compatibility (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Fixed error prevention from thinking content parts (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Fixed handling of Gemini's cumulative token usage (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev0.4.0-rc.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatGrok\u003c/strong\u003e: Added xAI Grok chat model support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added thinking support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added \u003ccode\u003ereq_config\u003c/code\u003e option for custom Req configuration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOllamaAI\u003c/strong\u003e: Added missing \u003ccode\u003everbose_api\u003c/code\u003e field for streaming compatibility (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatVertexAI\u003c/strong\u003e: Added usage data to Message response metadata (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eImages\u003c/strong\u003e: Added support for \u003ccode\u003egpt-image-1\u003c/code\u003e model in OpenAI image generation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLLMChain\u003c/strong\u003e: Added new run mode \u003ccode\u003e:step\u003c/code\u003e for step-by-step execution (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/177ac13bbd6822c8f2bf0158425a8f7c07563a70\"\u003e\u003ccode\u003e177ac13\u003c/code\u003e\u003c/a\u003e set new version (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/1f5d9a93326dc35b2407fc758757fec6534ebb38\"\u003e\u003ccode\u003e1f5d9a9\u003c/code\u003e\u003c/a\u003e fix: Support for json-schema in OpenAI responses API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/9b5630d909e3be2d4713af48052388df3cdc642d\"\u003e\u003ccode\u003e9b5630d\u003c/code\u003e\u003c/a\u003e suppress the compiler warning messages for ChatBumblebee (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/6ffefc39e03ec680a9e8a0050a0e765e85dc750c\"\u003e\u003ccode\u003e6ffefc3\u003c/code\u003e\u003c/a\u003e add AGENTS.md and CLAUDE.md file support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/846b78d77c9afc00298cc9b2d1d1c47ac1f042a9\"\u003e\u003ccode\u003e846b78d\u003c/code\u003e\u003c/a\u003e fixed ecto field formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/41bbc57adfdf442fc9c261123f8295b8cebd1dfb\"\u003e\u003ccode\u003e41bbc57\u003c/code\u003e\u003c/a\u003e added clarity to a message stopped for length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/477a9fe239637a6a8d647c7e10c015f273ef9faf\"\u003e\u003ccode\u003e477a9fe\u003c/code\u003e\u003c/a\u003e OpenAI responses (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/93afd2e09886d5c57ab78a8014edaabf6768ae9b\"\u003e\u003ccode\u003e93afd2e\u003c/code\u003e\u003c/a\u003e Support OTP 28 in CI (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/6b96860d8b35f0727a7d7da1c242dbef16871746\"\u003e\u003ccode\u003e6b96860\u003c/code\u003e\u003c/a\u003e Use moduledoc instead of doc for LLMChain documentation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/d4e7e78c77632e4d08a276dc1c678f6b4a999b0a\"\u003e\u003ccode\u003ed4e7e78\u003c/code\u003e\u003c/a\u003e Prep for v0.4.o-rc.3 (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.3.3...v0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `spark` from 2.2.67 to 2.3.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ash-project/spark/releases\"\u003espark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.7\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eCode.ensure_loaded?/1\u003c/code\u003e before checking behaviour implementation of extension by Zach Daniel\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.3.6\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eimplements_behaviour? do not return true for any module (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/229\"\u003e#229\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003erun compile task before formatting by Zach Daniel\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.3.5\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehoist validation and transformation to top of call chain. before, set_docs would be called on the un-transformed sections (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/221\"\u003e#221\u003c/a\u003e) by marot\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eonly store source location if :debug_info enabled (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/222\"\u003e#222\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNote: you will potentially need to update your DSL tests. See the anno guide for more.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echeck \u003cstrong\u003espark_metadata\u003c/strong\u003e presence in nested entities (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/220\"\u003e#220\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd DSL entity validation and transformation (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/218\"\u003e#218\u003c/a\u003e) by marot\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.2.68\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd after_define option, and use pdict for inline info generation by Zach Daniel\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ash-project/spark/blob/main/CHANGELOG.md\"\u003espark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/spark/compare/v2.3.6...v2.3.7\"\u003ev2.3.7\u003c/a\u003e (2025-10-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eCode.ensure_loaded?/1\u003c/code\u003e before checking behaviour implementation of extension by Zach Daniel\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/spark/compare/v2.3.5...v2.3.6\"\u003ev2.3.6\u003c/a\u003e (2025-10-21)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eimplements_behaviour? do not return true for any module (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/229\"\u003e#229\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003erun compile task before formatting by Zach Daniel\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/spark/compare/v2.3.4...v2.3.5\"\u003ev2.3.5\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehoist validation and transformation to top of call chain. before, set_docs would be called on the un-transformed sections (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/221\"\u003e#221\u003c/a\u003e) by marot\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eonly store source location if :debug_info enabled (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/222\"\u003e#222\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNote: you will potentially need to update your DSL tests. See the anno guide for more.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echeck \u003cstrong\u003espark_metadata\u003c/strong\u003e presence in nested entities (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/220\"\u003e#220\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd DSL entity validation and transformation (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/218\"\u003e#218\u003c/a\u003e) by marot\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/spark/compare/v2.3.3...v2.3.4\"\u003ev2.3.4\u003c/a\u003e (2025-09-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVerify Metadata Struct Fields after Compilation (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/217\"\u003e#217\u003c/a\u003e) by Jonatan Männchen\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/spark/compare/v2.3.2...v2.3.3\"\u003ev2.3.3\u003c/a\u003e (2025-09-25)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/fee15538e5a769034e9312c472acb10918b3423b\"\u003e\u003ccode\u003efee1553\u003c/code\u003e\u003c/a\u003e chore: release version v2.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/d8ae1a9785cb3e71361a888f17bf4e0825e2d2b2\"\u003e\u003ccode\u003ed8ae1a9\u003c/code\u003e\u003c/a\u003e fix: use \u003ccode\u003eCode.ensure_loaded?/1\u003c/code\u003e before checking behaviour implementation of ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/9ce6c6b8e12d16148ad125a87c92c8531de2fc77\"\u003e\u003ccode\u003e9ce6c6b\u003c/code\u003e\u003c/a\u003e chore: release version v2.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/c9128a5c9f1930d2253af403ee8144f74b0f3724\"\u003e\u003ccode\u003ec9128a5\u003c/code\u003e\u003c/a\u003e fix: implements_behaviour? do not return true for any module (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/229\"\u003e#229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/9eddbebeb23afa998bff9801b8cf2ac183f10762\"\u003e\u003ccode\u003e9eddbeb\u003c/code\u003e\u003c/a\u003e fix: run compile task before formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/164ff592540765fc216223d4949192bd24156402\"\u003e\u003ccode\u003e164ff59\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump sobelow from 0.14.0 to 0.14.1 (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/227\"\u003e#227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/4accd433bdccbf7e730e1228ace059056820ce30\"\u003e\u003ccode\u003e4accd43\u003c/code\u003e\u003c/a\u003e chore: Fix REUSE license attributions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/7ea3d0e05314c80f42a76e43fea8a764b424bd11\"\u003e\u003ccode\u003e7ea3d0e\u003c/code\u003e\u003c/a\u003e chore: REUSE compliance (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/226\"\u003e#226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/a9960c112342cf045d9afe584448912e3bed74a9\"\u003e\u003ccode\u003ea9960c1\u003c/code\u003e\u003c/a\u003e chore(deps): bump igniter from 0.6.28 to 0.6.30 (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/224\"\u003e#224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/8c70be2d20747e8316b1c1463fa8b53cbc2147a2\"\u003e\u003ccode\u003e8c70be2\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump ex_doc from 0.38.3 to 0.38.4 (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/225\"\u003e#225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ash-project/spark/compare/v2.2.67...v2.3.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `yaml_elixir` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/KamilLelonek/yaml-elixir/commits/v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/ash-project/evals/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ash-project%2Fevals/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"},{"uuid":"3486969978","node_id":"PR_kwDONe7Iac6sQSwz","number":74,"state":"open","title":"deps(deps): bump langchain from 0.3.3 to 0.4.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T12:08:02.000Z","updated_at":"2025-10-06T12:08:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps)","packages":[{"name":"langchain","old_version":"0.3.3","new_version":"0.4.0","repository_url":"https://github.com/brainlid/langchain"}],"path":null,"ecosystem":"hex"},"body":"Bumps [langchain](https://github.com/brainlid/langchain) from 0.3.3 to 0.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/releases\"\u003elangchain's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed since v0.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI and Claude thinking support - v0.4.0-rc.0 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/297\"\u003ebrainlid/langchain#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evertex ai file url support by \u003ca href=\"https://github.com/ahsandar\"\u003e\u003ccode\u003e@​ahsandar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/296\"\u003ebrainlid/langchain#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docs for Vertex AI by \u003ca href=\"https://github.com/ahsandar\"\u003e\u003ccode\u003e@​ahsandar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/304\"\u003ebrainlid/langchain#304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ContentPart migration by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/309\"\u003ebrainlid/langchain#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix tests for content_part_for_api/2 of ChatOpenAI in v0.4.0-rc0 by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/300\"\u003ebrainlid/langchain#300\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003etool_calls\u003c/code\u003e \u003ccode\u003enil\u003c/code\u003e messages by \u003ca href=\"https://github.com/udoschneider\"\u003e\u003ccode\u003e@​udoschneider\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/314\"\u003ebrainlid/langchain#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add structured output support to ChatMistralAI  by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/312\"\u003ebrainlid/langchain#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add configurable tokenizer to text splitters by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/310\"\u003ebrainlid/langchain#310\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esimple formatting issue by \u003ca href=\"https://github.com/Bodhert\"\u003e\u003ccode\u003e@​Bodhert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/307\"\u003ebrainlid/langchain#307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Message.new_system spec to accurately accept [ContentPart.t()]… by \u003ca href=\"https://github.com/rtorresware\"\u003e\u003ccode\u003e@​rtorresware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/315\"\u003ebrainlid/langchain#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Add token usage to ChatGoogleAI message metadata by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/316\"\u003ebrainlid/langchain#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: include raw API responses in LLM error objects for better debug… by \u003ca href=\"https://github.com/TwistingTwists\"\u003e\u003ccode\u003e@​TwistingTwists\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/317\"\u003ebrainlid/langchain#317\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexpanded docs and test coverage for prompt caching by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/325\"\u003ebrainlid/langchain#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AWS Bedrock stream decoder ordering issue by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/327\"\u003ebrainlid/langchain#327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esignificant updates for v0.4.0-rc.1 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/328\"\u003ebrainlid/langchain#328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efilter out empty lists in message responses by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/333\"\u003ebrainlid/langchain#333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Require gettext ~\u0026gt; 0.26 by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/332\"\u003ebrainlid/langchain#332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eretry: transient\u003c/code\u003e to Req for Anthropic models in stream mode by \u003ca href=\"https://github.com/jonator\"\u003e\u003ccode\u003e@​jonator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/329\"\u003ebrainlid/langchain#329\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed issue with poorly matching list in case by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/334\"\u003ebrainlid/langchain#334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add organization ID as a parameter by \u003ca href=\"https://github.com/hjemmel\"\u003e\u003ccode\u003e@​hjemmel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/337\"\u003ebrainlid/langchain#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing verbose_api field to ChatOllamaAI for streaming compatibility by \u003ca href=\"https://github.com/gur-xyz\"\u003e\u003ccode\u003e@​gur-xyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/341\"\u003ebrainlid/langchain#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded usage data to the VertexAI Message response. by \u003ca href=\"https://github.com/raulchedrese\"\u003e\u003ccode\u003e@​raulchedrese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/335\"\u003ebrainlid/langchain#335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add run mode: step by \u003ca href=\"https://github.com/CaiqueMitsuoka\"\u003e\u003ccode\u003e@​CaiqueMitsuoka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/343\"\u003ebrainlid/langchain#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add support for multiple tools in run_until_tool_used by \u003ca href=\"https://github.com/fortmarek\"\u003e\u003ccode\u003e@​fortmarek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/345\"\u003ebrainlid/langchain#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ChatOllamaAI stop sequences: change from string to array type by \u003ca href=\"https://github.com/gur-xyz\"\u003e\u003ccode\u003e@​gur-xyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/342\"\u003ebrainlid/langchain#342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexpanded logging for ChatAnthropic API errors by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/349\"\u003ebrainlid/langchain#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent crash when ToolResult with string in ChatGoogleAI.for_api/1 by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/352\"\u003ebrainlid/langchain#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBedrock OpenAI-compatible API compatibility fix by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/356\"\u003ebrainlid/langchain#356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded xAI Grok chat model support by \u003ca href=\"https://github.com/alexfilatov\"\u003e\u003ccode\u003e@​alexfilatov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/338\"\u003ebrainlid/langchain#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport thinking to ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/354\"\u003ebrainlid/langchain#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd req_config to ChatMode.ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/357\"\u003ebrainlid/langchain#357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up treating MessageDelta in ChatModels.ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/353\"\u003ebrainlid/langchain#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose full response headers through a new on_llm_response_headers callback by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/358\"\u003ebrainlid/langchain#358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eonly include \u0026quot;user\u0026quot; with OpenAI request when a value is provided by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/364\"\u003ebrainlid/langchain#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle no content parts responses in ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/365\"\u003ebrainlid/langchain#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds support for gpt-image-1 in LangChain.Images.OpenAIImage by \u003ca href=\"https://github.com/Ven109\"\u003e\u003ccode\u003e@​Ven109\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/360\"\u003ebrainlid/langchain#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePref for release v0.4.0-rc.2 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/366\"\u003ebrainlid/langchain#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle missing finish_reason in streaming responses for LiteLLM compatibility by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/367\"\u003ebrainlid/langchain#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for native tool calls to ChatVertexAI by \u003ca href=\"https://github.com/raulchedrese\"\u003e\u003ccode\u003e@​raulchedrese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/359\"\u003ebrainlid/langchain#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds should_continue? optional function to mode step by \u003ca href=\"https://github.com/CaiqueMitsuoka\"\u003e\u003ccode\u003e@​CaiqueMitsuoka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/361\"\u003ebrainlid/langchain#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAI Deep Research integration by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/336\"\u003ebrainlid/langchain#336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eparallel_tool_calls\u003c/code\u003e option to \u003ccode\u003eChatOpenAI\u003c/code\u003e model by \u003ca href=\"https://github.com/martosaur\"\u003e\u003ccode\u003e@​martosaur\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/371\"\u003ebrainlid/langchain#371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional AWS session token handling in BedrockHelpers by \u003ca href=\"https://github.com/quangngd\"\u003e\u003ccode\u003e@​quangngd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/372\"\u003ebrainlid/langchain#372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle LiteLLM responses with null b64_json in OpenAIImage by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/368\"\u003ebrainlid/langchain#368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Orq AI chat by \u003ca href=\"https://github.com/arjan\"\u003e\u003ccode\u003e@​arjan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/377\"\u003ebrainlid/langchain#377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd req_config to ChatModels.ChatOpenAI by \u003ca href=\"https://github.com/koszta\"\u003e\u003ccode\u003e@​koszta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/376\"\u003ebrainlid/langchain#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ChatGoogleAI): Handle cumulative token usage by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/373\"\u003ebrainlid/langchain#373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ChatGoogleAI): Prevent error from thinking content parts by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/374\"\u003ebrainlid/langchain#374\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/blob/main/CHANGELOG.md\"\u003elangchain's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added support for json-schema in OpenAI responses API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e: Added AGENTS.md and CLAUDE.md file support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCI\u003c/strong\u003e: Added support for OTP 28 (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Enhanced OpenAI responses handling (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e: Use moduledoc instead of doc for LLMChain documentation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUtils.ChainResult\u003c/strong\u003e: Added clarity to message stopped for length handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatBumblebee\u003c/strong\u003e: Suppressed compiler warning messages when used as a dependency (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Fixed Ecto field formatting\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev0.4.0-rc.3\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOrqAI\u003c/strong\u003e: Added Orq AI chat model support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added OpenAI Deep Research integration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added \u003ccode\u003eparallel_tool_calls\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added \u003ccode\u003ereq_config\u003c/code\u003e option for custom Req configuration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added verbosity parameter support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatVertexAI\u003c/strong\u003e: Added support for native tool calls (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added full thinking configuration support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBedrock\u003c/strong\u003e: Added optional AWS session token handling in BedrockHelpers (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLLMChain\u003c/strong\u003e: Added \u003ccode\u003eshould_continue?\u003c/code\u003e function for automatic looping on mode \u003ccode\u003e:step\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Added \u003ccode\u003eretry_on_fallback?\u003c/code\u003e to chat model definition and all models (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eImages\u003c/strong\u003e: Fixed handling of LiteLLM responses with null \u003ccode\u003eb64_json\u003c/code\u003e in OpenAI image generation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/368\"\u003e#368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Fixed handling of missing \u003ccode\u003efinish_reason\u003c/code\u003e in streaming responses for LiteLLM compatibility (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Fixed error prevention from thinking content parts (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Fixed handling of Gemini's cumulative token usage (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev0.4.0-rc.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatGrok\u003c/strong\u003e: Added xAI Grok chat model support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added thinking support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added \u003ccode\u003ereq_config\u003c/code\u003e option for custom Req configuration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOllamaAI\u003c/strong\u003e: Added missing \u003ccode\u003everbose_api\u003c/code\u003e field for streaming compatibility (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatVertexAI\u003c/strong\u003e: Added usage data to Message response metadata (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eImages\u003c/strong\u003e: Added support for \u003ccode\u003egpt-image-1\u003c/code\u003e model in OpenAI image generation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLLMChain\u003c/strong\u003e: Added new run mode \u003ccode\u003e:step\u003c/code\u003e for step-by-step execution (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/177ac13bbd6822c8f2bf0158425a8f7c07563a70\"\u003e\u003ccode\u003e177ac13\u003c/code\u003e\u003c/a\u003e set new version (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/1f5d9a93326dc35b2407fc758757fec6534ebb38\"\u003e\u003ccode\u003e1f5d9a9\u003c/code\u003e\u003c/a\u003e fix: Support for json-schema in OpenAI responses API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/9b5630d909e3be2d4713af48052388df3cdc642d\"\u003e\u003ccode\u003e9b5630d\u003c/code\u003e\u003c/a\u003e suppress the compiler warning messages for ChatBumblebee (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/6ffefc39e03ec680a9e8a0050a0e765e85dc750c\"\u003e\u003ccode\u003e6ffefc3\u003c/code\u003e\u003c/a\u003e add AGENTS.md and CLAUDE.md file support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/846b78d77c9afc00298cc9b2d1d1c47ac1f042a9\"\u003e\u003ccode\u003e846b78d\u003c/code\u003e\u003c/a\u003e fixed ecto field formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/41bbc57adfdf442fc9c261123f8295b8cebd1dfb\"\u003e\u003ccode\u003e41bbc57\u003c/code\u003e\u003c/a\u003e added clarity to a message stopped for length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/477a9fe239637a6a8d647c7e10c015f273ef9faf\"\u003e\u003ccode\u003e477a9fe\u003c/code\u003e\u003c/a\u003e OpenAI responses (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/93afd2e09886d5c57ab78a8014edaabf6768ae9b\"\u003e\u003ccode\u003e93afd2e\u003c/code\u003e\u003c/a\u003e Support OTP 28 in CI (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/6b96860d8b35f0727a7d7da1c242dbef16871746\"\u003e\u003ccode\u003e6b96860\u003c/code\u003e\u003c/a\u003e Use moduledoc instead of doc for LLMChain documentation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/d4e7e78c77632e4d08a276dc1c678f6b4a999b0a\"\u003e\u003ccode\u003ed4e7e78\u003c/code\u003e\u003c/a\u003e Prep for v0.4.o-rc.3 (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.3.3...v0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=langchain\u0026package-manager=hex\u0026previous-version=0.3.3\u0026new-version=0.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/agentjido/jido_ai/pull/74","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentjido%2Fjido_ai/issues/74","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/74/packages"},{"uuid":"2619621248","node_id":"PR_kwDOOzTDmM6cJD-A","number":31,"state":"closed","title":"chore(deps): bump langchain from 0.2.0 to 0.3.3","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-06-26T14:09:34.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-26T00:06:34.000Z","updated_at":"2025-06-26T14:09:34.000Z","time_to_close":50580,"merged_at":"2025-06-26T14:09:34.000Z","merged_by":"Thunderblok","closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"langchain","old_version":"0.2.0","new_version":"0.3.3","repository_url":"https://github.com/brainlid/langchain"}],"path":null,"ecosystem":"hex"},"body":"Bumps [langchain](https://github.com/brainlid/langchain) from 0.2.0 to 0.3.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/releases\"\u003elangchain's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade gettext and migrate by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/271\"\u003ebrainlid/langchain#271\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport caching tool results for Anthropic calls by \u003ca href=\"https://github.com/ci\"\u003e\u003ccode\u003e@​ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/269\"\u003ebrainlid/langchain#269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAI verbose_api by \u003ca href=\"https://github.com/aaparmeggiani\"\u003e\u003ccode\u003e@​aaparmeggiani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/274\"\u003ebrainlid/langchain#274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport choice of Anthropic beta headers by \u003ca href=\"https://github.com/ci\"\u003e\u003ccode\u003e@​ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/273\"\u003ebrainlid/langchain#273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix specifying media uris for google vertex by \u003ca href=\"https://github.com/mattmatters\"\u003e\u003ccode\u003e@​mattmatters\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/242\"\u003ebrainlid/langchain#242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add support for pdf content with OpenAI model by \u003ca href=\"https://github.com/bwan-nan\"\u003e\u003ccode\u003e@​bwan-nan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/275\"\u003ebrainlid/langchain#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: File urls for Google by \u003ca href=\"https://github.com/vasspilka\"\u003e\u003ccode\u003e@​vasspilka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/286\"\u003ebrainlid/langchain#286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport streaming responses from mistral by \u003ca href=\"https://github.com/manukall\"\u003e\u003ccode\u003e@​manukall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/287\"\u003ebrainlid/langchain#287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport for json_response in ChatModels.ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/277\"\u003ebrainlid/langchain#277\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix options being passed to the ollama chat api by \u003ca href=\"https://github.com/alappe\"\u003e\u003ccode\u003e@​alappe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/179\"\u003ebrainlid/langchain#179\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport for file with file_id in ChatOpenAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/283\"\u003ebrainlid/langchain#283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded LLMChain.run_until_tool_used/3 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/292\"\u003ebrainlid/langchain#292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadds telemetry by \u003ca href=\"https://github.com/epinault\"\u003e\u003ccode\u003e@​epinault\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/284\"\u003ebrainlid/langchain#284\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ci\"\u003e\u003ccode\u003e@​ci\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/269\"\u003ebrainlid/langchain#269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aaparmeggiani\"\u003e\u003ccode\u003e@​aaparmeggiani\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/274\"\u003ebrainlid/langchain#274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mattmatters\"\u003e\u003ccode\u003e@​mattmatters\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/242\"\u003ebrainlid/langchain#242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vasspilka\"\u003e\u003ccode\u003e@​vasspilka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/286\"\u003ebrainlid/langchain#286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/manukall\"\u003e\u003ccode\u003e@​manukall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/287\"\u003ebrainlid/langchain#287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/epinault\"\u003e\u003ccode\u003e@​epinault\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/284\"\u003ebrainlid/langchain#284\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.3.2...v0.3.3\"\u003ehttps://github.com/brainlid/langchain/compare/v0.3.2...v0.3.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd on_message_processed callback when tool response is created by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/248\"\u003ebrainlid/langchain#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etypos: Update Example for Syntax Issues by \u003ca href=\"https://github.com/bradschwartz\"\u003e\u003ccode\u003e@​bradschwartz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/249\"\u003ebrainlid/langchain#249\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eensure consistent capitalization by \u003ca href=\"https://github.com/JoaquinIglesiasTurina\"\u003e\u003ccode\u003e@​JoaquinIglesiasTurina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/257\"\u003ebrainlid/langchain#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadds tool calls and usage for mistral ai. by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/253\"\u003ebrainlid/langchain#253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature/support sys instruction vertexai by \u003ca href=\"https://github.com/vseng\"\u003e\u003ccode\u003e@​vseng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/260\"\u003ebrainlid/langchain#260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable tool support for ollama by \u003ca href=\"https://github.com/alappe\"\u003e\u003ccode\u003e@​alappe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/164\"\u003ebrainlid/langchain#164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds Perplexity AI by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/261\"\u003ebrainlid/langchain#261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos by \u003ca href=\"https://github.com/kianmeng\"\u003e\u003ccode\u003e@​kianmeng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/264\"\u003ebrainlid/langchain#264\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat/add text splitter by \u003ca href=\"https://github.com/JoaquinIglesiasTurina\"\u003e\u003ccode\u003e@​JoaquinIglesiasTurina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/256\"\u003ebrainlid/langchain#256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI housekeeping by \u003ca href=\"https://github.com/kianmeng\"\u003e\u003ccode\u003e@​kianmeng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/265\"\u003ebrainlid/langchain#265\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRedact api-key from models by \u003ca href=\"https://github.com/raulpe7eira\"\u003e\u003ccode\u003e@​raulpe7eira\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/266\"\u003ebrainlid/langchain#266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd native tool functionality (e.g. \u003ccode\u003egoogle_search\u003c/code\u003e for Gemini) by \u003ca href=\"https://github.com/avergin\"\u003e\u003ccode\u003e@​avergin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/250\"\u003ebrainlid/langchain#250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprep for v0.3.2 release by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/270\"\u003ebrainlid/langchain#270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bradschwartz\"\u003e\u003ccode\u003e@​bradschwartz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/249\"\u003ebrainlid/langchain#249\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoaquinIglesiasTurina\"\u003e\u003ccode\u003e@​JoaquinIglesiasTurina\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/257\"\u003ebrainlid/langchain#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vseng\"\u003e\u003ccode\u003e@​vseng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/260\"\u003ebrainlid/langchain#260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kianmeng\"\u003e\u003ccode\u003e@​kianmeng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/264\"\u003ebrainlid/langchain#264\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/raulpe7eira\"\u003e\u003ccode\u003e@​raulpe7eira\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/266\"\u003ebrainlid/langchain#266\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.3.1...v0.3.2\"\u003ehttps://github.com/brainlid/langchain/compare/v0.3.1...v0.3.2\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/blob/main/CHANGELOG.md\"\u003elangchain's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eUpgrade from v0.3.3 to v0.4.x\u003c/h3\u003e\n\u003cp\u003eAs LLM services get more advanced, they have begun returning multi-modal responses. For some time, they have been accepting multi-modal requests, meaning an image and text could be submitted at the same time.\u003c/p\u003e\n\u003cp\u003eNow, LLMs have changed to return multi-modal responses. This means they may return text along with an image. This is currently most common with receiving a \u0026quot;thinking\u0026quot; response separate from their text response.\u003c/p\u003e\n\u003cp\u003eIn an effort to provide a consistent interface to many different LLMs, now \u003cstrong\u003eall\u003c/strong\u003e message responses with content (text, image, thinking, etc.) will be represented as a list of \u003ccode\u003eContentPart\u003c/code\u003e structs.\u003c/p\u003e\n\u003cp\u003eThis is a breaking change and may require application updates to adapt.\u003c/p\u003e\n\u003ch3\u003eMessage Changes\u003c/h3\u003e\n\u003cp\u003eWhere this was received before:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e%Message{content: \u0026quot;this is a string\u0026quot;}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis is received now:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e%Message{content: [%ContentPart{type: :text, content: \u0026quot;this is a string\u0026quot;}]}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis can be quickly turned back into plain text using \u003ccode\u003eLangChain.Message.ContentPart.parts_to_string/1\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIt looks like this:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003emessage = %Message{content: [%ContentPart{type: :text, content: \u0026quot;this is a string\u0026quot;}]}\nContentPart.parts_to_string(message.content)\n#=\u0026gt; \u0026quot;this is a string\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis also handles if multiple text content parts are received:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003emessage = %Message{content: [\n  %ContentPart{type: :text, content: \u0026quot;this is a string\u0026quot;},\n  %ContentPart{type: :text, content: \u0026quot;this is another string\u0026quot;},\n]}\nContentPart.parts_to_string(message.content)\n#=\u0026gt; \u0026quot;this is a string\\n\\nthisis another string\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor constructing your own messages, this is auto-converted for you:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eMessage.new_user!(\u0026quot;Howdy!\u0026quot;)\n#=\u0026gt; %Message{role: :user, content: [%ContentPart{type: :text, content: \u0026quot;Howdy!\u0026quot;}]}\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/7e0959d894aa229e474679651814b760b04fb417\"\u003e\u003ccode\u003e7e0959d\u003c/code\u003e\u003c/a\u003e updated mix.exs version for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/cf5c3c1c7363fef16ef1312326f49a55554e84b4\"\u003e\u003ccode\u003ecf5c3c1\u003c/code\u003e\u003c/a\u003e updated changelog for v0.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/a061445a4cc27459dd37058ad148a867b50fa516\"\u003e\u003ccode\u003ea061445\u003c/code\u003e\u003c/a\u003e added content part description to OpenAI module doc for file uploads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/486de37f8e148421752c102634580e83bfc69ac2\"\u003e\u003ccode\u003e486de37\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:brainlid/langchain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/3644c550b54606d0603cd8757c335dacd1a39b89\"\u003e\u003ccode\u003e3644c55\u003c/code\u003e\u003c/a\u003e fixed doc typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/3f8d32e272ca8a885b566072a16b81842ce0c956\"\u003e\u003ccode\u003e3f8d32e\u003c/code\u003e\u003c/a\u003e adds telemetry (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/855edd6b2fc1dc06aceae62a5772044b8ca70a00\"\u003e\u003ccode\u003e855edd6\u003c/code\u003e\u003c/a\u003e check that the requested tool_name exists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/459a392cb3bceb73b6d2f6980c885b52c9ec301c\"\u003e\u003ccode\u003e459a392\u003c/code\u003e\u003c/a\u003e added LLMChain.run_until_tool_used/3 (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/0ec977fb37e48cb6acc300e211066397d0b513e2\"\u003e\u003ccode\u003e0ec977f\u003c/code\u003e\u003c/a\u003e Support for file with file_id in ChatOpenAI (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/4e3ffe7bdbdca09419d049e1c96d7ab3afdc7075\"\u003e\u003ccode\u003e4e3ffe7\u003c/code\u003e\u003c/a\u003e Fix options being passed to the ollama chat api (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/179\"\u003e#179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.2.0...v0.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=langchain\u0026package-manager=hex\u0026previous-version=0.2.0\u0026new-version=0.3.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Thunderblok/Thunderline/pull/31","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thunderblok%2FThunderline/issues/31","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/31/packages"}],"issue_packages":[{"old_version":"0.4.0","new_version":"0.4.1","update_type":"patch","path":null,"pr_created_at":"2025-12-08T11:19:26.000Z","version_change":"0.4.0 → 0.4.1","issue":{"uuid":"3705905199","node_id":"PR_kwDONe7Iac63p2_O","number":90,"state":"open","title":"deps(deps): bump langchain from 0.4.0 to 0.4.1","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-08T11:19:26.000Z","updated_at":"2025-12-08T11:22:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps)","packages":[{"name":"langchain","old_version":"0.4.0","new_version":"0.4.1","repository_url":"https://github.com/brainlid/langchain"}],"path":null,"ecosystem":"hex"},"body":"Bumps [langchain](https://github.com/brainlid/langchain) from 0.4.0 to 0.4.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/releases\"\u003elangchain's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOpenAI responses API improvements by \u003ca href=\"https://github.com/arjan\"\u003e\u003ccode\u003e@​arjan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/391\"\u003ebrainlid/langchain#391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Anthropic \u003ccode\u003edisable_parallel_tool_use\u003c/code\u003e tool_choice setting by \u003ca href=\"https://github.com/vlymar\"\u003e\u003ccode\u003e@​vlymar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/390\"\u003ebrainlid/langchain#390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate gettext dependency version to 1.0 by \u003ca href=\"https://github.com/bijanbwb\"\u003e\u003ccode\u003e@​bijanbwb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/393\"\u003ebrainlid/langchain#393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd DeepSeek chat model integration by \u003ca href=\"https://github.com/gilbertwong96\"\u003e\u003ccode\u003e@​gilbertwong96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/394\"\u003ebrainlid/langchain#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLoosen the gettext dependency by \u003ca href=\"https://github.com/montebrown\"\u003e\u003ccode\u003e@​montebrown\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/399\"\u003ebrainlid/langchain#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd MessageDelta.merge_deltas/2 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/401\"\u003ebrainlid/langchain#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eformatting update by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/402\"\u003ebrainlid/langchain#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded an :cache_messages option for ChatAnthropic, can improve cache utilization. by \u003ca href=\"https://github.com/montebrown\"\u003e\u003ccode\u003e@​montebrown\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/398\"\u003ebrainlid/langchain#398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Anthropic API PDF reading to the ChatAnthropic model. by \u003ca href=\"https://github.com/jadengis\"\u003e\u003ccode\u003e@​jadengis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/403\"\u003ebrainlid/langchain#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add support for \u003ccode\u003e:file_url\u003c/code\u003e to ChatAnthropic too by \u003ca href=\"https://github.com/jadengis\"\u003e\u003ccode\u003e@​jadengis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/404\"\u003ebrainlid/langchain#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reasoning_content of deepseek model by \u003ca href=\"https://github.com/gilbertwong96\"\u003e\u003ccode\u003e@​gilbertwong96\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/407\"\u003ebrainlid/langchain#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd req_opts to ChatAnthropic by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/408\"\u003ebrainlid/langchain#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOpen AI Responses API: Add support for file_url with link to file by \u003ca href=\"https://github.com/reetou\"\u003e\u003ccode\u003e@​reetou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/395\"\u003ebrainlid/langchain#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd strict tool use support to ChatAnthropic by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/409\"\u003ebrainlid/langchain#409\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd strict to function of ChatModels.ChatOpenAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/301\"\u003ebrainlid/langchain#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multi-part tool responses. by \u003ca href=\"https://github.com/montebrown\"\u003e\u003ccode\u003e@​montebrown\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/410\"\u003ebrainlid/langchain#410\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprep for v0.4.1 release by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/411\"\u003ebrainlid/langchain#411\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vlymar\"\u003e\u003ccode\u003e@​vlymar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/390\"\u003ebrainlid/langchain#390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bijanbwb\"\u003e\u003ccode\u003e@​bijanbwb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/393\"\u003ebrainlid/langchain#393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gilbertwong96\"\u003e\u003ccode\u003e@​gilbertwong96\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/394\"\u003ebrainlid/langchain#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reetou\"\u003e\u003ccode\u003e@​reetou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/395\"\u003ebrainlid/langchain#395\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.4.0...v0.4.1\"\u003ehttps://github.com/brainlid/langchain/compare/v0.4.0...v0.4.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/blob/main/CHANGELOG.md\"\u003elangchain's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatDeepSeek\u003c/strong\u003e: Added DeepSeek chat model integration with reasoning_content support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/394\"\u003e#394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/407\"\u003e#407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added strict tool use support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added support for file_url with link to file (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added strict tool use support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/409\"\u003e#409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added support for file_url (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added PDF reading support via Anthropic API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added \u003ccode\u003ecache_messages\u003c/code\u003e option to improve cache utilization (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added \u003ccode\u003ereq_opts\u003c/code\u003e option for custom Req configuration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMessageDelta\u003c/strong\u003e: Added \u003ccode\u003eMessageDelta.merge_deltas/2\u003c/code\u003e function for merging multiple deltas (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatAnthropic\u003c/strong\u003e: Added \u003ccode\u003edisable_parallel_tool_use\u003c/code\u003e tool_choice pass-through (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Added multi-part tool responses support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Enhanced OpenAI responses API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDependencies\u003c/strong\u003e: Updated gettext requirement to \u003ccode\u003e~\u0026gt; 1.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/393\"\u003e#393\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e: Updated README install instructions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Fixed compiler typing warnings\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/16e89565679070e58d1a2a40865252b11977c6d6\"\u003e\u003ccode\u003e16e8956\u003c/code\u003e\u003c/a\u003e prep for v0.4.1 release (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/5bcc577c1e4e6e3f336f2c612b81f21866000f54\"\u003e\u003ccode\u003e5bcc577\u003c/code\u003e\u003c/a\u003e Allow multi-part tool responses. (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/a8e6c2d0daabb8d5ffa34b208e4981ae8f3a64f0\"\u003e\u003ccode\u003ea8e6c2d\u003c/code\u003e\u003c/a\u003e Add strict to function of ChatModels.ChatOpenAI (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/0c99f990e63cf1545b96b2df16912ddeaebd8c5e\"\u003e\u003ccode\u003e0c99f99\u003c/code\u003e\u003c/a\u003e Add strict tool use support to ChatAnthropic (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/409\"\u003e#409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/1da1bcfe9fdacc20ab3f606df3bc644dc62b87ed\"\u003e\u003ccode\u003e1da1bcf\u003c/code\u003e\u003c/a\u003e Add support for file_url with link to file (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/0fdaf09697a78e78b9d9eb9517de50b646aec245\"\u003e\u003ccode\u003e0fdaf09\u003c/code\u003e\u003c/a\u003e Add req_opts to ChatAnthropic (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/d3d57d56c608d63c27bcdedf894e6f3c7a9dbc2b\"\u003e\u003ccode\u003ed3d57d5\u003c/code\u003e\u003c/a\u003e Support reasoning_content of deepseek model (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/407\"\u003e#407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/dae977bcee876891137b005bad28013fd91dbc17\"\u003e\u003ccode\u003edae977b\u003c/code\u003e\u003c/a\u003e feat: Add support for file_url to ChatAnthropic too (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/6b353caaf5e05e5c0f7d49b0f3193d3e658374c1\"\u003e\u003ccode\u003e6b353ca\u003c/code\u003e\u003c/a\u003e Add support for Anthropic API PDF reading to the ChatAnthropic model. (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/b02f512bef48d96c0737981fe454943e8837c5cd\"\u003e\u003ccode\u003eb02f512\u003c/code\u003e\u003c/a\u003e Added an :cache_messages option for ChatAnthropic, can improve cache utilizat...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.4.0...v0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=langchain\u0026package-manager=hex\u0026previous-version=0.4.0\u0026new-version=0.4.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/agentjido/jido_ai/pull/90","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentjido%2Fjido_ai/issues/90","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/90/packages"}},{"old_version":"0.3.3","new_version":"0.4.0","update_type":"minor","path":null,"pr_created_at":"2025-10-23T01:04:54.000Z","version_change":"0.3.3 → 0.4.0","issue":{"uuid":"3542792632","node_id":"PR_kwDOPAudPM6vK4ns","number":21,"state":"closed","title":"chore(deps): bump the production-dependencies group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-30T01:06:31.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-23T01:04:54.000Z","updated_at":"2025-10-30T01:06:32.000Z","time_to_close":604897,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":3,"packages":[{"name":"langchain","old_version":"0.3.3","new_version":"0.4.0","repository_url":"https://github.com/brainlid/langchain"},{"name":"spark","old_version":"2.2.67","new_version":"2.3.7","repository_url":"https://github.com/ash-project/spark"},{"name":"yaml_elixir","old_version":"2.11.0","new_version":"2.12.0","repository_url":"https://github.com/KamilLelonek/yaml-elixir"}],"path":null,"ecosystem":"hex"},"body":"Bumps the production-dependencies group with 3 updates in the / directory: [langchain](https://github.com/brainlid/langchain), [spark](https://github.com/ash-project/spark) and [yaml_elixir](https://github.com/KamilLelonek/yaml-elixir).\n\nUpdates `langchain` from 0.3.3 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/releases\"\u003elangchain's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed since v0.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI and Claude thinking support - v0.4.0-rc.0 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/297\"\u003ebrainlid/langchain#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evertex ai file url support by \u003ca href=\"https://github.com/ahsandar\"\u003e\u003ccode\u003e@​ahsandar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/296\"\u003ebrainlid/langchain#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docs for Vertex AI by \u003ca href=\"https://github.com/ahsandar\"\u003e\u003ccode\u003e@​ahsandar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/304\"\u003ebrainlid/langchain#304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ContentPart migration by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/309\"\u003ebrainlid/langchain#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix tests for content_part_for_api/2 of ChatOpenAI in v0.4.0-rc0 by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/300\"\u003ebrainlid/langchain#300\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003etool_calls\u003c/code\u003e \u003ccode\u003enil\u003c/code\u003e messages by \u003ca href=\"https://github.com/udoschneider\"\u003e\u003ccode\u003e@​udoschneider\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/314\"\u003ebrainlid/langchain#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add structured output support to ChatMistralAI  by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/312\"\u003ebrainlid/langchain#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add configurable tokenizer to text splitters by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/310\"\u003ebrainlid/langchain#310\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esimple formatting issue by \u003ca href=\"https://github.com/Bodhert\"\u003e\u003ccode\u003e@​Bodhert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/307\"\u003ebrainlid/langchain#307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Message.new_system spec to accurately accept [ContentPart.t()]… by \u003ca href=\"https://github.com/rtorresware\"\u003e\u003ccode\u003e@​rtorresware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/315\"\u003ebrainlid/langchain#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Add token usage to ChatGoogleAI message metadata by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/316\"\u003ebrainlid/langchain#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: include raw API responses in LLM error objects for better debug… by \u003ca href=\"https://github.com/TwistingTwists\"\u003e\u003ccode\u003e@​TwistingTwists\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/317\"\u003ebrainlid/langchain#317\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexpanded docs and test coverage for prompt caching by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/325\"\u003ebrainlid/langchain#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AWS Bedrock stream decoder ordering issue by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/327\"\u003ebrainlid/langchain#327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esignificant updates for v0.4.0-rc.1 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/328\"\u003ebrainlid/langchain#328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efilter out empty lists in message responses by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/333\"\u003ebrainlid/langchain#333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Require gettext ~\u0026gt; 0.26 by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/332\"\u003ebrainlid/langchain#332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eretry: transient\u003c/code\u003e to Req for Anthropic models in stream mode by \u003ca href=\"https://github.com/jonator\"\u003e\u003ccode\u003e@​jonator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/329\"\u003ebrainlid/langchain#329\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed issue with poorly matching list in case by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/334\"\u003ebrainlid/langchain#334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add organization ID as a parameter by \u003ca href=\"https://github.com/hjemmel\"\u003e\u003ccode\u003e@​hjemmel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/337\"\u003ebrainlid/langchain#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing verbose_api field to ChatOllamaAI for streaming compatibility by \u003ca href=\"https://github.com/gur-xyz\"\u003e\u003ccode\u003e@​gur-xyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/341\"\u003ebrainlid/langchain#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded usage data to the VertexAI Message response. by \u003ca href=\"https://github.com/raulchedrese\"\u003e\u003ccode\u003e@​raulchedrese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/335\"\u003ebrainlid/langchain#335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add run mode: step by \u003ca href=\"https://github.com/CaiqueMitsuoka\"\u003e\u003ccode\u003e@​CaiqueMitsuoka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/343\"\u003ebrainlid/langchain#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add support for multiple tools in run_until_tool_used by \u003ca href=\"https://github.com/fortmarek\"\u003e\u003ccode\u003e@​fortmarek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/345\"\u003ebrainlid/langchain#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ChatOllamaAI stop sequences: change from string to array type by \u003ca href=\"https://github.com/gur-xyz\"\u003e\u003ccode\u003e@​gur-xyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/342\"\u003ebrainlid/langchain#342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexpanded logging for ChatAnthropic API errors by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/349\"\u003ebrainlid/langchain#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent crash when ToolResult with string in ChatGoogleAI.for_api/1 by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/352\"\u003ebrainlid/langchain#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBedrock OpenAI-compatible API compatibility fix by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/356\"\u003ebrainlid/langchain#356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded xAI Grok chat model support by \u003ca href=\"https://github.com/alexfilatov\"\u003e\u003ccode\u003e@​alexfilatov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/338\"\u003ebrainlid/langchain#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport thinking to ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/354\"\u003ebrainlid/langchain#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd req_config to ChatMode.ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/357\"\u003ebrainlid/langchain#357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up treating MessageDelta in ChatModels.ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/353\"\u003ebrainlid/langchain#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose full response headers through a new on_llm_response_headers callback by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/358\"\u003ebrainlid/langchain#358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eonly include \u0026quot;user\u0026quot; with OpenAI request when a value is provided by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/364\"\u003ebrainlid/langchain#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle no content parts responses in ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/365\"\u003ebrainlid/langchain#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds support for gpt-image-1 in LangChain.Images.OpenAIImage by \u003ca href=\"https://github.com/Ven109\"\u003e\u003ccode\u003e@​Ven109\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/360\"\u003ebrainlid/langchain#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePref for release v0.4.0-rc.2 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/366\"\u003ebrainlid/langchain#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle missing finish_reason in streaming responses for LiteLLM compatibility by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/367\"\u003ebrainlid/langchain#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for native tool calls to ChatVertexAI by \u003ca href=\"https://github.com/raulchedrese\"\u003e\u003ccode\u003e@​raulchedrese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/359\"\u003ebrainlid/langchain#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds should_continue? optional function to mode step by \u003ca href=\"https://github.com/CaiqueMitsuoka\"\u003e\u003ccode\u003e@​CaiqueMitsuoka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/361\"\u003ebrainlid/langchain#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAI Deep Research integration by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/336\"\u003ebrainlid/langchain#336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eparallel_tool_calls\u003c/code\u003e option to \u003ccode\u003eChatOpenAI\u003c/code\u003e model by \u003ca href=\"https://github.com/martosaur\"\u003e\u003ccode\u003e@​martosaur\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/371\"\u003ebrainlid/langchain#371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional AWS session token handling in BedrockHelpers by \u003ca href=\"https://github.com/quangngd\"\u003e\u003ccode\u003e@​quangngd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/372\"\u003ebrainlid/langchain#372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle LiteLLM responses with null b64_json in OpenAIImage by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/368\"\u003ebrainlid/langchain#368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Orq AI chat by \u003ca href=\"https://github.com/arjan\"\u003e\u003ccode\u003e@​arjan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/377\"\u003ebrainlid/langchain#377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd req_config to ChatModels.ChatOpenAI by \u003ca href=\"https://github.com/koszta\"\u003e\u003ccode\u003e@​koszta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/376\"\u003ebrainlid/langchain#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ChatGoogleAI): Handle cumulative token usage by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/373\"\u003ebrainlid/langchain#373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ChatGoogleAI): Prevent error from thinking content parts by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/374\"\u003ebrainlid/langchain#374\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/blob/main/CHANGELOG.md\"\u003elangchain's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added support for json-schema in OpenAI responses API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e: Added AGENTS.md and CLAUDE.md file support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCI\u003c/strong\u003e: Added support for OTP 28 (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Enhanced OpenAI responses handling (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e: Use moduledoc instead of doc for LLMChain documentation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUtils.ChainResult\u003c/strong\u003e: Added clarity to message stopped for length handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatBumblebee\u003c/strong\u003e: Suppressed compiler warning messages when used as a dependency (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Fixed Ecto field formatting\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev0.4.0-rc.3\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOrqAI\u003c/strong\u003e: Added Orq AI chat model support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added OpenAI Deep Research integration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added \u003ccode\u003eparallel_tool_calls\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added \u003ccode\u003ereq_config\u003c/code\u003e option for custom Req configuration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added verbosity parameter support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatVertexAI\u003c/strong\u003e: Added support for native tool calls (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added full thinking configuration support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBedrock\u003c/strong\u003e: Added optional AWS session token handling in BedrockHelpers (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLLMChain\u003c/strong\u003e: Added \u003ccode\u003eshould_continue?\u003c/code\u003e function for automatic looping on mode \u003ccode\u003e:step\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Added \u003ccode\u003eretry_on_fallback?\u003c/code\u003e to chat model definition and all models (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eImages\u003c/strong\u003e: Fixed handling of LiteLLM responses with null \u003ccode\u003eb64_json\u003c/code\u003e in OpenAI image generation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/368\"\u003e#368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Fixed handling of missing \u003ccode\u003efinish_reason\u003c/code\u003e in streaming responses for LiteLLM compatibility (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Fixed error prevention from thinking content parts (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Fixed handling of Gemini's cumulative token usage (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev0.4.0-rc.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatGrok\u003c/strong\u003e: Added xAI Grok chat model support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added thinking support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added \u003ccode\u003ereq_config\u003c/code\u003e option for custom Req configuration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOllamaAI\u003c/strong\u003e: Added missing \u003ccode\u003everbose_api\u003c/code\u003e field for streaming compatibility (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatVertexAI\u003c/strong\u003e: Added usage data to Message response metadata (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eImages\u003c/strong\u003e: Added support for \u003ccode\u003egpt-image-1\u003c/code\u003e model in OpenAI image generation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLLMChain\u003c/strong\u003e: Added new run mode \u003ccode\u003e:step\u003c/code\u003e for step-by-step execution (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/177ac13bbd6822c8f2bf0158425a8f7c07563a70\"\u003e\u003ccode\u003e177ac13\u003c/code\u003e\u003c/a\u003e set new version (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/1f5d9a93326dc35b2407fc758757fec6534ebb38\"\u003e\u003ccode\u003e1f5d9a9\u003c/code\u003e\u003c/a\u003e fix: Support for json-schema in OpenAI responses API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/9b5630d909e3be2d4713af48052388df3cdc642d\"\u003e\u003ccode\u003e9b5630d\u003c/code\u003e\u003c/a\u003e suppress the compiler warning messages for ChatBumblebee (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/6ffefc39e03ec680a9e8a0050a0e765e85dc750c\"\u003e\u003ccode\u003e6ffefc3\u003c/code\u003e\u003c/a\u003e add AGENTS.md and CLAUDE.md file support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/846b78d77c9afc00298cc9b2d1d1c47ac1f042a9\"\u003e\u003ccode\u003e846b78d\u003c/code\u003e\u003c/a\u003e fixed ecto field formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/41bbc57adfdf442fc9c261123f8295b8cebd1dfb\"\u003e\u003ccode\u003e41bbc57\u003c/code\u003e\u003c/a\u003e added clarity to a message stopped for length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/477a9fe239637a6a8d647c7e10c015f273ef9faf\"\u003e\u003ccode\u003e477a9fe\u003c/code\u003e\u003c/a\u003e OpenAI responses (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/93afd2e09886d5c57ab78a8014edaabf6768ae9b\"\u003e\u003ccode\u003e93afd2e\u003c/code\u003e\u003c/a\u003e Support OTP 28 in CI (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/6b96860d8b35f0727a7d7da1c242dbef16871746\"\u003e\u003ccode\u003e6b96860\u003c/code\u003e\u003c/a\u003e Use moduledoc instead of doc for LLMChain documentation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/d4e7e78c77632e4d08a276dc1c678f6b4a999b0a\"\u003e\u003ccode\u003ed4e7e78\u003c/code\u003e\u003c/a\u003e Prep for v0.4.o-rc.3 (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.3.3...v0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `spark` from 2.2.67 to 2.3.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ash-project/spark/releases\"\u003espark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.7\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eCode.ensure_loaded?/1\u003c/code\u003e before checking behaviour implementation of extension by Zach Daniel\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.3.6\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eimplements_behaviour? do not return true for any module (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/229\"\u003e#229\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003erun compile task before formatting by Zach Daniel\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.3.5\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehoist validation and transformation to top of call chain. before, set_docs would be called on the un-transformed sections (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/221\"\u003e#221\u003c/a\u003e) by marot\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eonly store source location if :debug_info enabled (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/222\"\u003e#222\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNote: you will potentially need to update your DSL tests. See the anno guide for more.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echeck \u003cstrong\u003espark_metadata\u003c/strong\u003e presence in nested entities (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/220\"\u003e#220\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd DSL entity validation and transformation (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/218\"\u003e#218\u003c/a\u003e) by marot\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.2.68\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd after_define option, and use pdict for inline info generation by Zach Daniel\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ash-project/spark/blob/main/CHANGELOG.md\"\u003espark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/spark/compare/v2.3.6...v2.3.7\"\u003ev2.3.7\u003c/a\u003e (2025-10-22)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eCode.ensure_loaded?/1\u003c/code\u003e before checking behaviour implementation of extension by Zach Daniel\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/spark/compare/v2.3.5...v2.3.6\"\u003ev2.3.6\u003c/a\u003e (2025-10-21)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eimplements_behaviour? do not return true for any module (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/229\"\u003e#229\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003erun compile task before formatting by Zach Daniel\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/spark/compare/v2.3.4...v2.3.5\"\u003ev2.3.5\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehoist validation and transformation to top of call chain. before, set_docs would be called on the un-transformed sections (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/221\"\u003e#221\u003c/a\u003e) by marot\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eonly store source location if :debug_info enabled (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/222\"\u003e#222\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNote: you will potentially need to update your DSL tests. See the anno guide for more.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echeck \u003cstrong\u003espark_metadata\u003c/strong\u003e presence in nested entities (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/220\"\u003e#220\u003c/a\u003e) by Jonatan Männchen\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd DSL entity validation and transformation (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/218\"\u003e#218\u003c/a\u003e) by marot\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/spark/compare/v2.3.3...v2.3.4\"\u003ev2.3.4\u003c/a\u003e (2025-09-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVerify Metadata Struct Fields after Compilation (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/217\"\u003e#217\u003c/a\u003e) by Jonatan Männchen\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ash-project/spark/compare/v2.3.2...v2.3.3\"\u003ev2.3.3\u003c/a\u003e (2025-09-25)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/fee15538e5a769034e9312c472acb10918b3423b\"\u003e\u003ccode\u003efee1553\u003c/code\u003e\u003c/a\u003e chore: release version v2.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/d8ae1a9785cb3e71361a888f17bf4e0825e2d2b2\"\u003e\u003ccode\u003ed8ae1a9\u003c/code\u003e\u003c/a\u003e fix: use \u003ccode\u003eCode.ensure_loaded?/1\u003c/code\u003e before checking behaviour implementation of ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/9ce6c6b8e12d16148ad125a87c92c8531de2fc77\"\u003e\u003ccode\u003e9ce6c6b\u003c/code\u003e\u003c/a\u003e chore: release version v2.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/c9128a5c9f1930d2253af403ee8144f74b0f3724\"\u003e\u003ccode\u003ec9128a5\u003c/code\u003e\u003c/a\u003e fix: implements_behaviour? do not return true for any module (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/229\"\u003e#229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/9eddbebeb23afa998bff9801b8cf2ac183f10762\"\u003e\u003ccode\u003e9eddbeb\u003c/code\u003e\u003c/a\u003e fix: run compile task before formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/164ff592540765fc216223d4949192bd24156402\"\u003e\u003ccode\u003e164ff59\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump sobelow from 0.14.0 to 0.14.1 (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/227\"\u003e#227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/4accd433bdccbf7e730e1228ace059056820ce30\"\u003e\u003ccode\u003e4accd43\u003c/code\u003e\u003c/a\u003e chore: Fix REUSE license attributions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/7ea3d0e05314c80f42a76e43fea8a764b424bd11\"\u003e\u003ccode\u003e7ea3d0e\u003c/code\u003e\u003c/a\u003e chore: REUSE compliance (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/226\"\u003e#226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/a9960c112342cf045d9afe584448912e3bed74a9\"\u003e\u003ccode\u003ea9960c1\u003c/code\u003e\u003c/a\u003e chore(deps): bump igniter from 0.6.28 to 0.6.30 (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/224\"\u003e#224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ash-project/spark/commit/8c70be2d20747e8316b1c1463fa8b53cbc2147a2\"\u003e\u003ccode\u003e8c70be2\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump ex_doc from 0.38.3 to 0.38.4 (\u003ca href=\"https://redirect.github.com/ash-project/spark/issues/225\"\u003e#225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ash-project/spark/compare/v2.2.67...v2.3.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `yaml_elixir` from 2.11.0 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/KamilLelonek/yaml-elixir/commits/v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/ash-project/evals/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ash-project%2Fevals/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"}},{"old_version":"0.3.3","new_version":"0.4.0","update_type":"minor","path":null,"pr_created_at":"2025-10-06T12:08:02.000Z","version_change":"0.3.3 → 0.4.0","issue":{"uuid":"3486969978","node_id":"PR_kwDONe7Iac6sQSwz","number":74,"state":"open","title":"deps(deps): bump langchain from 0.3.3 to 0.4.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T12:08:02.000Z","updated_at":"2025-10-06T12:08:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps)","packages":[{"name":"langchain","old_version":"0.3.3","new_version":"0.4.0","repository_url":"https://github.com/brainlid/langchain"}],"path":null,"ecosystem":"hex"},"body":"Bumps [langchain](https://github.com/brainlid/langchain) from 0.3.3 to 0.4.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/releases\"\u003elangchain's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed since v0.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI and Claude thinking support - v0.4.0-rc.0 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/297\"\u003ebrainlid/langchain#297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evertex ai file url support by \u003ca href=\"https://github.com/ahsandar\"\u003e\u003ccode\u003e@​ahsandar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/296\"\u003ebrainlid/langchain#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docs for Vertex AI by \u003ca href=\"https://github.com/ahsandar\"\u003e\u003ccode\u003e@​ahsandar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/304\"\u003ebrainlid/langchain#304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ContentPart migration by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/309\"\u003ebrainlid/langchain#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix tests for content_part_for_api/2 of ChatOpenAI in v0.4.0-rc0 by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/300\"\u003ebrainlid/langchain#300\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003etool_calls\u003c/code\u003e \u003ccode\u003enil\u003c/code\u003e messages by \u003ca href=\"https://github.com/udoschneider\"\u003e\u003ccode\u003e@​udoschneider\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/314\"\u003ebrainlid/langchain#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add structured output support to ChatMistralAI  by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/312\"\u003ebrainlid/langchain#312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add configurable tokenizer to text splitters by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/310\"\u003ebrainlid/langchain#310\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esimple formatting issue by \u003ca href=\"https://github.com/Bodhert\"\u003e\u003ccode\u003e@​Bodhert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/307\"\u003ebrainlid/langchain#307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Message.new_system spec to accurately accept [ContentPart.t()]… by \u003ca href=\"https://github.com/rtorresware\"\u003e\u003ccode\u003e@​rtorresware\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/315\"\u003ebrainlid/langchain#315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Add token usage to ChatGoogleAI message metadata by \u003ca href=\"https://github.com/mathieuripert\"\u003e\u003ccode\u003e@​mathieuripert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/316\"\u003ebrainlid/langchain#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: include raw API responses in LLM error objects for better debug… by \u003ca href=\"https://github.com/TwistingTwists\"\u003e\u003ccode\u003e@​TwistingTwists\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/317\"\u003ebrainlid/langchain#317\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexpanded docs and test coverage for prompt caching by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/325\"\u003ebrainlid/langchain#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AWS Bedrock stream decoder ordering issue by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/327\"\u003ebrainlid/langchain#327\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esignificant updates for v0.4.0-rc.1 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/328\"\u003ebrainlid/langchain#328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efilter out empty lists in message responses by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/333\"\u003ebrainlid/langchain#333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Require gettext ~\u0026gt; 0.26 by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/332\"\u003ebrainlid/langchain#332\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eretry: transient\u003c/code\u003e to Req for Anthropic models in stream mode by \u003ca href=\"https://github.com/jonator\"\u003e\u003ccode\u003e@​jonator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/329\"\u003ebrainlid/langchain#329\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed issue with poorly matching list in case by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/334\"\u003ebrainlid/langchain#334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add organization ID as a parameter by \u003ca href=\"https://github.com/hjemmel\"\u003e\u003ccode\u003e@​hjemmel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/337\"\u003ebrainlid/langchain#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing verbose_api field to ChatOllamaAI for streaming compatibility by \u003ca href=\"https://github.com/gur-xyz\"\u003e\u003ccode\u003e@​gur-xyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/341\"\u003ebrainlid/langchain#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded usage data to the VertexAI Message response. by \u003ca href=\"https://github.com/raulchedrese\"\u003e\u003ccode\u003e@​raulchedrese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/335\"\u003ebrainlid/langchain#335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add run mode: step by \u003ca href=\"https://github.com/CaiqueMitsuoka\"\u003e\u003ccode\u003e@​CaiqueMitsuoka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/343\"\u003ebrainlid/langchain#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add support for multiple tools in run_until_tool_used by \u003ca href=\"https://github.com/fortmarek\"\u003e\u003ccode\u003e@​fortmarek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/345\"\u003ebrainlid/langchain#345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ChatOllamaAI stop sequences: change from string to array type by \u003ca href=\"https://github.com/gur-xyz\"\u003e\u003ccode\u003e@​gur-xyz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/342\"\u003ebrainlid/langchain#342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexpanded logging for ChatAnthropic API errors by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/349\"\u003ebrainlid/langchain#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent crash when ToolResult with string in ChatGoogleAI.for_api/1 by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/352\"\u003ebrainlid/langchain#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBedrock OpenAI-compatible API compatibility fix by \u003ca href=\"https://github.com/stevehodgkiss\"\u003e\u003ccode\u003e@​stevehodgkiss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/356\"\u003ebrainlid/langchain#356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded xAI Grok chat model support by \u003ca href=\"https://github.com/alexfilatov\"\u003e\u003ccode\u003e@​alexfilatov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/338\"\u003ebrainlid/langchain#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport thinking to ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/354\"\u003ebrainlid/langchain#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd req_config to ChatMode.ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/357\"\u003ebrainlid/langchain#357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up treating MessageDelta in ChatModels.ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/353\"\u003ebrainlid/langchain#353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose full response headers through a new on_llm_response_headers callback by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/358\"\u003ebrainlid/langchain#358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eonly include \u0026quot;user\u0026quot; with OpenAI request when a value is provided by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/364\"\u003ebrainlid/langchain#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle no content parts responses in ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/365\"\u003ebrainlid/langchain#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds support for gpt-image-1 in LangChain.Images.OpenAIImage by \u003ca href=\"https://github.com/Ven109\"\u003e\u003ccode\u003e@​Ven109\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/360\"\u003ebrainlid/langchain#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePref for release v0.4.0-rc.2 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/366\"\u003ebrainlid/langchain#366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle missing finish_reason in streaming responses for LiteLLM compatibility by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/367\"\u003ebrainlid/langchain#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for native tool calls to ChatVertexAI by \u003ca href=\"https://github.com/raulchedrese\"\u003e\u003ccode\u003e@​raulchedrese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/359\"\u003ebrainlid/langchain#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds should_continue? optional function to mode step by \u003ca href=\"https://github.com/CaiqueMitsuoka\"\u003e\u003ccode\u003e@​CaiqueMitsuoka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/361\"\u003ebrainlid/langchain#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAI Deep Research integration by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/336\"\u003ebrainlid/langchain#336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eparallel_tool_calls\u003c/code\u003e option to \u003ccode\u003eChatOpenAI\u003c/code\u003e model by \u003ca href=\"https://github.com/martosaur\"\u003e\u003ccode\u003e@​martosaur\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/371\"\u003ebrainlid/langchain#371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional AWS session token handling in BedrockHelpers by \u003ca href=\"https://github.com/quangngd\"\u003e\u003ccode\u003e@​quangngd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/372\"\u003ebrainlid/langchain#372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle LiteLLM responses with null b64_json in OpenAIImage by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/368\"\u003ebrainlid/langchain#368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Orq AI chat by \u003ca href=\"https://github.com/arjan\"\u003e\u003ccode\u003e@​arjan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/377\"\u003ebrainlid/langchain#377\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd req_config to ChatModels.ChatOpenAI by \u003ca href=\"https://github.com/koszta\"\u003e\u003ccode\u003e@​koszta\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/376\"\u003ebrainlid/langchain#376\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ChatGoogleAI): Handle cumulative token usage by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/373\"\u003ebrainlid/langchain#373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ChatGoogleAI): Prevent error from thinking content parts by \u003ca href=\"https://github.com/mweidner037\"\u003e\u003ccode\u003e@​mweidner037\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/374\"\u003ebrainlid/langchain#374\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/blob/main/CHANGELOG.md\"\u003elangchain's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.4.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added support for json-schema in OpenAI responses API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e: Added AGENTS.md and CLAUDE.md file support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCI\u003c/strong\u003e: Added support for OTP 28 (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Enhanced OpenAI responses handling (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e: Use moduledoc instead of doc for LLMChain documentation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUtils.ChainResult\u003c/strong\u003e: Added clarity to message stopped for length handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatBumblebee\u003c/strong\u003e: Suppressed compiler warning messages when used as a dependency (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Fixed Ecto field formatting\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev0.4.0-rc.3\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatOrqAI\u003c/strong\u003e: Added Orq AI chat model support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added OpenAI Deep Research integration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added \u003ccode\u003eparallel_tool_calls\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added \u003ccode\u003ereq_config\u003c/code\u003e option for custom Req configuration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOpenAI\u003c/strong\u003e: Added verbosity parameter support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatVertexAI\u003c/strong\u003e: Added support for native tool calls (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added full thinking configuration support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBedrock\u003c/strong\u003e: Added optional AWS session token handling in BedrockHelpers (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLLMChain\u003c/strong\u003e: Added \u003ccode\u003eshould_continue?\u003c/code\u003e function for automatic looping on mode \u003ccode\u003e:step\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Added \u003ccode\u003eretry_on_fallback?\u003c/code\u003e to chat model definition and all models (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eImages\u003c/strong\u003e: Fixed handling of LiteLLM responses with null \u003ccode\u003eb64_json\u003c/code\u003e in OpenAI image generation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/368\"\u003e#368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCore\u003c/strong\u003e: Fixed handling of missing \u003ccode\u003efinish_reason\u003c/code\u003e in streaming responses for LiteLLM compatibility (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Fixed error prevention from thinking content parts (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Fixed handling of Gemini's cumulative token usage (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003ev0.4.0-rc.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eChatGrok\u003c/strong\u003e: Added xAI Grok chat model support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added thinking support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatGoogleAI\u003c/strong\u003e: Added \u003ccode\u003ereq_config\u003c/code\u003e option for custom Req configuration (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatOllamaAI\u003c/strong\u003e: Added missing \u003ccode\u003everbose_api\u003c/code\u003e field for streaming compatibility (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChatVertexAI\u003c/strong\u003e: Added usage data to Message response metadata (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/335\"\u003e#335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eImages\u003c/strong\u003e: Added support for \u003ccode\u003egpt-image-1\u003c/code\u003e model in OpenAI image generation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLLMChain\u003c/strong\u003e: Added new run mode \u003ccode\u003e:step\u003c/code\u003e for step-by-step execution (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/177ac13bbd6822c8f2bf0158425a8f7c07563a70\"\u003e\u003ccode\u003e177ac13\u003c/code\u003e\u003c/a\u003e set new version (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/1f5d9a93326dc35b2407fc758757fec6534ebb38\"\u003e\u003ccode\u003e1f5d9a9\u003c/code\u003e\u003c/a\u003e fix: Support for json-schema in OpenAI responses API (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/9b5630d909e3be2d4713af48052388df3cdc642d\"\u003e\u003ccode\u003e9b5630d\u003c/code\u003e\u003c/a\u003e suppress the compiler warning messages for ChatBumblebee (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/6ffefc39e03ec680a9e8a0050a0e765e85dc750c\"\u003e\u003ccode\u003e6ffefc3\u003c/code\u003e\u003c/a\u003e add AGENTS.md and CLAUDE.md file support (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/846b78d77c9afc00298cc9b2d1d1c47ac1f042a9\"\u003e\u003ccode\u003e846b78d\u003c/code\u003e\u003c/a\u003e fixed ecto field formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/41bbc57adfdf442fc9c261123f8295b8cebd1dfb\"\u003e\u003ccode\u003e41bbc57\u003c/code\u003e\u003c/a\u003e added clarity to a message stopped for length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/477a9fe239637a6a8d647c7e10c015f273ef9faf\"\u003e\u003ccode\u003e477a9fe\u003c/code\u003e\u003c/a\u003e OpenAI responses (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/93afd2e09886d5c57ab78a8014edaabf6768ae9b\"\u003e\u003ccode\u003e93afd2e\u003c/code\u003e\u003c/a\u003e Support OTP 28 in CI (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/6b96860d8b35f0727a7d7da1c242dbef16871746\"\u003e\u003ccode\u003e6b96860\u003c/code\u003e\u003c/a\u003e Use moduledoc instead of doc for LLMChain documentation (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/d4e7e78c77632e4d08a276dc1c678f6b4a999b0a\"\u003e\u003ccode\u003ed4e7e78\u003c/code\u003e\u003c/a\u003e Prep for v0.4.o-rc.3 (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.3.3...v0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=langchain\u0026package-manager=hex\u0026previous-version=0.3.3\u0026new-version=0.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/agentjido/jido_ai/pull/74","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentjido%2Fjido_ai/issues/74","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/74/packages"}},{"old_version":"0.2.0","new_version":"0.3.3","update_type":"minor","path":null,"pr_created_at":"2025-06-26T00:06:34.000Z","version_change":"0.2.0 → 0.3.3","issue":{"uuid":"2619621248","node_id":"PR_kwDOOzTDmM6cJD-A","number":31,"state":"closed","title":"chore(deps): bump langchain from 0.2.0 to 0.3.3","user":"dependabot[bot]","labels":["dependencies","elixir"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-06-26T14:09:34.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-26T00:06:34.000Z","updated_at":"2025-06-26T14:09:34.000Z","time_to_close":50580,"merged_at":"2025-06-26T14:09:34.000Z","merged_by":"Thunderblok","closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"langchain","old_version":"0.2.0","new_version":"0.3.3","repository_url":"https://github.com/brainlid/langchain"}],"path":null,"ecosystem":"hex"},"body":"Bumps [langchain](https://github.com/brainlid/langchain) from 0.2.0 to 0.3.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/releases\"\u003elangchain's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade gettext and migrate by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/271\"\u003ebrainlid/langchain#271\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport caching tool results for Anthropic calls by \u003ca href=\"https://github.com/ci\"\u003e\u003ccode\u003e@​ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/269\"\u003ebrainlid/langchain#269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAI verbose_api by \u003ca href=\"https://github.com/aaparmeggiani\"\u003e\u003ccode\u003e@​aaparmeggiani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/274\"\u003ebrainlid/langchain#274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport choice of Anthropic beta headers by \u003ca href=\"https://github.com/ci\"\u003e\u003ccode\u003e@​ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/273\"\u003ebrainlid/langchain#273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix specifying media uris for google vertex by \u003ca href=\"https://github.com/mattmatters\"\u003e\u003ccode\u003e@​mattmatters\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/242\"\u003ebrainlid/langchain#242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add support for pdf content with OpenAI model by \u003ca href=\"https://github.com/bwan-nan\"\u003e\u003ccode\u003e@​bwan-nan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/275\"\u003ebrainlid/langchain#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: File urls for Google by \u003ca href=\"https://github.com/vasspilka\"\u003e\u003ccode\u003e@​vasspilka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/286\"\u003ebrainlid/langchain#286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport streaming responses from mistral by \u003ca href=\"https://github.com/manukall\"\u003e\u003ccode\u003e@​manukall\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/287\"\u003ebrainlid/langchain#287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport for json_response in ChatModels.ChatGoogleAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/277\"\u003ebrainlid/langchain#277\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix options being passed to the ollama chat api by \u003ca href=\"https://github.com/alappe\"\u003e\u003ccode\u003e@​alappe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/179\"\u003ebrainlid/langchain#179\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport for file with file_id in ChatOpenAI by \u003ca href=\"https://github.com/nallwhy\"\u003e\u003ccode\u003e@​nallwhy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/283\"\u003ebrainlid/langchain#283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded LLMChain.run_until_tool_used/3 by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/292\"\u003ebrainlid/langchain#292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadds telemetry by \u003ca href=\"https://github.com/epinault\"\u003e\u003ccode\u003e@​epinault\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/284\"\u003ebrainlid/langchain#284\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ci\"\u003e\u003ccode\u003e@​ci\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/269\"\u003ebrainlid/langchain#269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aaparmeggiani\"\u003e\u003ccode\u003e@​aaparmeggiani\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/274\"\u003ebrainlid/langchain#274\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mattmatters\"\u003e\u003ccode\u003e@​mattmatters\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/242\"\u003ebrainlid/langchain#242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vasspilka\"\u003e\u003ccode\u003e@​vasspilka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/286\"\u003ebrainlid/langchain#286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/manukall\"\u003e\u003ccode\u003e@​manukall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/287\"\u003ebrainlid/langchain#287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/epinault\"\u003e\u003ccode\u003e@​epinault\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/284\"\u003ebrainlid/langchain#284\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.3.2...v0.3.3\"\u003ehttps://github.com/brainlid/langchain/compare/v0.3.2...v0.3.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd on_message_processed callback when tool response is created by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/248\"\u003ebrainlid/langchain#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etypos: Update Example for Syntax Issues by \u003ca href=\"https://github.com/bradschwartz\"\u003e\u003ccode\u003e@​bradschwartz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/249\"\u003ebrainlid/langchain#249\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eensure consistent capitalization by \u003ca href=\"https://github.com/JoaquinIglesiasTurina\"\u003e\u003ccode\u003e@​JoaquinIglesiasTurina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/257\"\u003ebrainlid/langchain#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadds tool calls and usage for mistral ai. by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/253\"\u003ebrainlid/langchain#253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature/support sys instruction vertexai by \u003ca href=\"https://github.com/vseng\"\u003e\u003ccode\u003e@​vseng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/260\"\u003ebrainlid/langchain#260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable tool support for ollama by \u003ca href=\"https://github.com/alappe\"\u003e\u003ccode\u003e@​alappe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/164\"\u003ebrainlid/langchain#164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds Perplexity AI by \u003ca href=\"https://github.com/fbettag\"\u003e\u003ccode\u003e@​fbettag\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/261\"\u003ebrainlid/langchain#261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos by \u003ca href=\"https://github.com/kianmeng\"\u003e\u003ccode\u003e@​kianmeng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/264\"\u003ebrainlid/langchain#264\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat/add text splitter by \u003ca href=\"https://github.com/JoaquinIglesiasTurina\"\u003e\u003ccode\u003e@​JoaquinIglesiasTurina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/256\"\u003ebrainlid/langchain#256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI housekeeping by \u003ca href=\"https://github.com/kianmeng\"\u003e\u003ccode\u003e@​kianmeng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/265\"\u003ebrainlid/langchain#265\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRedact api-key from models by \u003ca href=\"https://github.com/raulpe7eira\"\u003e\u003ccode\u003e@​raulpe7eira\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/266\"\u003ebrainlid/langchain#266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd native tool functionality (e.g. \u003ccode\u003egoogle_search\u003c/code\u003e for Gemini) by \u003ca href=\"https://github.com/avergin\"\u003e\u003ccode\u003e@​avergin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/250\"\u003ebrainlid/langchain#250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprep for v0.3.2 release by \u003ca href=\"https://github.com/brainlid\"\u003e\u003ccode\u003e@​brainlid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/270\"\u003ebrainlid/langchain#270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bradschwartz\"\u003e\u003ccode\u003e@​bradschwartz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/249\"\u003ebrainlid/langchain#249\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoaquinIglesiasTurina\"\u003e\u003ccode\u003e@​JoaquinIglesiasTurina\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/257\"\u003ebrainlid/langchain#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vseng\"\u003e\u003ccode\u003e@​vseng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/260\"\u003ebrainlid/langchain#260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kianmeng\"\u003e\u003ccode\u003e@​kianmeng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/264\"\u003ebrainlid/langchain#264\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/raulpe7eira\"\u003e\u003ccode\u003e@​raulpe7eira\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/brainlid/langchain/pull/266\"\u003ebrainlid/langchain#266\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.3.1...v0.3.2\"\u003ehttps://github.com/brainlid/langchain/compare/v0.3.1...v0.3.2\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/brainlid/langchain/blob/main/CHANGELOG.md\"\u003elangchain's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eUpgrade from v0.3.3 to v0.4.x\u003c/h3\u003e\n\u003cp\u003eAs LLM services get more advanced, they have begun returning multi-modal responses. For some time, they have been accepting multi-modal requests, meaning an image and text could be submitted at the same time.\u003c/p\u003e\n\u003cp\u003eNow, LLMs have changed to return multi-modal responses. This means they may return text along with an image. This is currently most common with receiving a \u0026quot;thinking\u0026quot; response separate from their text response.\u003c/p\u003e\n\u003cp\u003eIn an effort to provide a consistent interface to many different LLMs, now \u003cstrong\u003eall\u003c/strong\u003e message responses with content (text, image, thinking, etc.) will be represented as a list of \u003ccode\u003eContentPart\u003c/code\u003e structs.\u003c/p\u003e\n\u003cp\u003eThis is a breaking change and may require application updates to adapt.\u003c/p\u003e\n\u003ch3\u003eMessage Changes\u003c/h3\u003e\n\u003cp\u003eWhere this was received before:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e%Message{content: \u0026quot;this is a string\u0026quot;}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis is received now:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003e%Message{content: [%ContentPart{type: :text, content: \u0026quot;this is a string\u0026quot;}]}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis can be quickly turned back into plain text using \u003ccode\u003eLangChain.Message.ContentPart.parts_to_string/1\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIt looks like this:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003emessage = %Message{content: [%ContentPart{type: :text, content: \u0026quot;this is a string\u0026quot;}]}\nContentPart.parts_to_string(message.content)\n#=\u0026gt; \u0026quot;this is a string\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis also handles if multiple text content parts are received:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003emessage = %Message{content: [\n  %ContentPart{type: :text, content: \u0026quot;this is a string\u0026quot;},\n  %ContentPart{type: :text, content: \u0026quot;this is another string\u0026quot;},\n]}\nContentPart.parts_to_string(message.content)\n#=\u0026gt; \u0026quot;this is a string\\n\\nthisis another string\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor constructing your own messages, this is auto-converted for you:\u003c/p\u003e\n\u003cpre lang=\"elixir\"\u003e\u003ccode\u003eMessage.new_user!(\u0026quot;Howdy!\u0026quot;)\n#=\u0026gt; %Message{role: :user, content: [%ContentPart{type: :text, content: \u0026quot;Howdy!\u0026quot;}]}\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/7e0959d894aa229e474679651814b760b04fb417\"\u003e\u003ccode\u003e7e0959d\u003c/code\u003e\u003c/a\u003e updated mix.exs version for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/cf5c3c1c7363fef16ef1312326f49a55554e84b4\"\u003e\u003ccode\u003ecf5c3c1\u003c/code\u003e\u003c/a\u003e updated changelog for v0.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/a061445a4cc27459dd37058ad148a867b50fa516\"\u003e\u003ccode\u003ea061445\u003c/code\u003e\u003c/a\u003e added content part description to OpenAI module doc for file uploads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/486de37f8e148421752c102634580e83bfc69ac2\"\u003e\u003ccode\u003e486de37\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:brainlid/langchain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/3644c550b54606d0603cd8757c335dacd1a39b89\"\u003e\u003ccode\u003e3644c55\u003c/code\u003e\u003c/a\u003e fixed doc typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/3f8d32e272ca8a885b566072a16b81842ce0c956\"\u003e\u003ccode\u003e3f8d32e\u003c/code\u003e\u003c/a\u003e adds telemetry (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/855edd6b2fc1dc06aceae62a5772044b8ca70a00\"\u003e\u003ccode\u003e855edd6\u003c/code\u003e\u003c/a\u003e check that the requested tool_name exists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/459a392cb3bceb73b6d2f6980c885b52c9ec301c\"\u003e\u003ccode\u003e459a392\u003c/code\u003e\u003c/a\u003e added LLMChain.run_until_tool_used/3 (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/0ec977fb37e48cb6acc300e211066397d0b513e2\"\u003e\u003ccode\u003e0ec977f\u003c/code\u003e\u003c/a\u003e Support for file with file_id in ChatOpenAI (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brainlid/langchain/commit/4e3ffe7bdbdca09419d049e1c96d7ab3afdc7075\"\u003e\u003ccode\u003e4e3ffe7\u003c/code\u003e\u003c/a\u003e Fix options being passed to the ollama chat api (\u003ca href=\"https://redirect.github.com/brainlid/langchain/issues/179\"\u003e#179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/brainlid/langchain/compare/v0.2.0...v0.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=langchain\u0026package-manager=hex\u0026previous-version=0.2.0\u0026new-version=0.3.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Thunderblok/Thunderline/pull/31","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thunderblok%2FThunderline/issues/31","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/31/packages"}}]}