Back

langchain #34440

feat(core,langchain,anthropic,openai,xai): Builtin Tool Middleware

by keenborder786 · Feb 06, 2026 at 19:30 UTC · scan-09c3d249b4044bcb

High Risk (65%)

Get this automatically on every PR

Install the Axiomo GitHub App to get Signals as check runs and PR comments on every pull request.

Install App

Risk Assessment

Risk level: High (65%)

Risk Drivers

  • large_diff: Large change: 1936 lines modified
  • multiple_concerns: Spans 9 directories
  • api_surface_change: API surface changed in 8 file(s)

Intent

4/4 criteria met

Create BuiltinToolsMiddleware for dynamic provider-specific tool conversion

Non-Goals

  • - Introduce new tool types
  • - Refactor existing agent logic
  • - Change provider APIs

Acceptance Criteria

  • Standard TypedDict schemas are defined

    libs/core/langchain_core/tools/builtin.py defines TypedDict schemas

  • Provider-specific conversion utilities are implemented

    Conversion utilities in utils/builtin_tools.py for OpenAI, Anthropic, xAI

  • Middleware dynamically detects provider and uses conversions

    libs/langchain_v1/langchain/agents/middleware/builtin_tools.py imports and uses converters

  • Unit tests cover middleware functions

    tests/unit_tests/agents/middleware/implementations/test_builtin_tools.py has 770 new lines

Confidence: 95.0% Source: pr description AI: openai

Contributors

keenborder786 PR Author 45 commits ~ Established
Account Age: 2634 days
Prior PRs: 163
Merged: 89

Established contributor with 89 merged PRs. maintains 101 public repositories. unfamiliar with 10 files being modified.

Evidence

Evidence Completeness: 80.0%
ci_passing Passing
tests_passing Passing
lint_passing Passing
build_successful Passing
Missing: security_scan_clean, coverage_maintained

Supply Chain

None Risk
Modifies dependencies
Modifies lockfile
Modifies CI config
Modifies build scripts

Focus Files

Focus on 5 critical file(s)

libs/core/langchain_core/tools/builtin.py +195

195 lines changed; New file; Source code

critical
libs/langchain_v1/langchain/agents/middleware/builtin_tools.py +397

397 lines changed; New file; Source code

critical
libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_builtin_tools.py +770

770 lines changed; New file; Source code

critical
libs/partners/anthropic/langchain_anthropic/utils/builtin_tools.py +104

104 lines changed; New file; Source code

critical
libs/partners/anthropic/tests/unit_tests/utils/test_builtin_tools.py +112

112 lines changed; New file; Source code

critical
libs/partners/openai/tests/unit_tests/utils/test_builtin_tools.py +98

98 lines changed; New file; Source code

high
libs/partners/openai/langchain_openai/utils/builtin_tools.py +85

85 lines changed; New file; Source code

high
libs/partners/xai/tests/unit_tests/utils/test_builtin_tools.py +67

67 lines changed; New file; Source code

high
libs/partners/xai/langchain_xai/utils/builtin_tools.py +56

56 lines changed; New file; Source code

high
libs/partners/anthropic/langchain_anthropic/utils/__init__.py +5

New file; Source code

high

+7 more files

Triage

237

minutes to review

extensive

effort level

none

staleness risk

Schedule dedicated review time; consider pair review

Recommendation

COMMENT 62.0% readiness

Some concerns to address before approval

Next Steps

Concern

Consider breaking into smaller PRs

Question

Why is security_scan_clean missing? Consider adding this check.

Question

Why is coverage_maintained missing? Consider adding this check.

Concern libs/core/langchain_core/tools/builtin.py

Critical file: 195 lines changed; New file; Source code

Concern libs/langchain_v1/langchain/agents/middleware/builtin_tools.py

Critical file: 397 lines changed; New file; Source code

Concern libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_builtin_tools.py

Critical file: 770 lines changed; New file; Source code

Concern libs/partners/anthropic/langchain_anthropic/utils/builtin_tools.py

Critical file: 104 lines changed; New file; Source code

Concern libs/partners/anthropic/tests/unit_tests/utils/test_builtin_tools.py

Critical file: 112 lines changed; New file; Source code