feat(tools): add internal HTTP request tool#1008
Open
ionut-mihalache-uipath wants to merge 2 commits into
Open
feat(tools): add internal HTTP request tool#1008ionut-mihalache-uipath wants to merge 2 commits into
ionut-mihalache-uipath wants to merge 2 commits into
Conversation
Add an HTTP_REQUEST internal tool that issues outbound HTTP requests to a caller-provided URL. Arguments (url/method/headers/params/body/timeout) come from the resource input schema and may be static, agent-input-bound, or LLM-inferred via the shared argument_properties mechanism. Requests resolving to private, loopback, link-local, or cloud-metadata addresses are rejected to guard against SSRF, including on redirect hops. Wire the tool into the internal tool factory, add the INVALID_INPUT_ARGUMENT error code, and bump the uipath dependency to >=2.13.16. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hw5JP9xHn5atKPrASKmDVq
There was a problem hiding this comment.
Pull request overview
Adds a new HTTP_REQUEST internal structured tool to let agents issue outbound HTTP requests using a caller-provided schema, with SSRF protections intended to block private/loopback/link-local/metadata targets. The tool is wired into the internal tool factory, a new runtime error code is introduced for invalid inputs, and dependencies/versioning are bumped accordingly.
Changes:
- Implement
create_http_request_toolwith URL normalization, method/timeout/body handling, and SSRF validation. - Register
HTTP_REQUESTininternal_tool_factoryand addINVALID_INPUT_ARGUMENTerror code. - Bump package version and
uipathdependency (and update lockfile).
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| uv.lock | Updates lockfile (exclude-newer marker, uipath version, package version). |
| pyproject.toml | Bumps package version and uipath dependency constraint. |
| src/uipath_langchain/agent/exceptions/exceptions.py | Adds INVALID_INPUT_ARGUMENT error code used by the new tool. |
| src/uipath_langchain/agent/tools/internal_tools/internal_tool_factory.py | Wires HTTP_REQUEST into the internal tool handler mapping and updates docstring. |
| src/uipath_langchain/agent/tools/internal_tools/http_request_tool.py | New internal HTTP request tool implementation with SSRF guard and httpx client creation. |
| tests/agent/tools/internal_tools/test_http_request_tool.py | Adds unit tests for the new HTTP request tool and SSRF/normalization helpers. |
ionut-mihalache-uipath
force-pushed
the
feat/http-tool
branch
from
July 24, 2026 17:30
ae665d8 to
669d072
Compare
ionut-mihalache-uipath
force-pushed
the
feat/http-tool
branch
from
July 24, 2026 17:43
669d072 to
70bf9c0
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Adds an
HTTP_REQUESTinternal tool that issues outbound HTTP requests to a caller-provided URL, mirroring the existing analyze-files internal tool.url/method/headers/params/body/timeout) come from the resource's input schema authored in the agent definition. Each may be pinned to a static value, bound to an agent input, or left for the LLM to infer via the sharedargument_propertiesmechanism.GET,POST,PUT,PATCH,DELETE. Default per-request timeout of 30s.get_httpx_client_kwargs()per repo convention.Changes
http_request_tool.pyimplementingcreate_http_request_tool.HTTP_REQUESTintointernal_tool_factory.INVALID_INPUT_ARGUMENTerror code.uipathdependency to>=2.13.16, <2.14.0and package version to0.14.17.Testing
uv run pytest tests/agent/tools/internal_tools/test_http_request_tool.py— 23 passed.ruff checkand the custom httpx-client linter pass on the changed files.🤖 Generated with Claude Code
https://claude.ai/code/session_01Hw5JP9xHn5atKPrASKmDVq