feat: add network request capture for browser agent#164
Merged
Conversation
- Add NetworkRequestCapture class to capture XHR/fetch via CDP - Add get_network_requests tool for browser agent to inspect API calls - Implement on-demand response body capture with size limits (1MB) - Filter capturable content types (JSON, XML, HTML, etc.) - Truncate output at 45k chars with file save for full data - Add 20 unit tests (all passing) This gives the browser agent visibility into API calls for: - Analyzing API endpoints and request/response patterns - Capturing auth tokens (bearer tokens, API keys, cookies) - Finding hidden API endpoints not visible in page source - Understanding client-side API interactions on SPAs
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 network request capture capability to the browser agent, enabling visibility into XHR/fetch API calls made by web applications.
Changes
New Files
tempo/tools/network_capture.py-NetworkRequestCaptureclass that:tests/tools/test_network_capture.py- 20 unit tests (all passing)Modified Files
tempo/agents/browser.py- Addednetwork_captureparameter tocreate_browser_use_agent()tempo/tools/browser_task_tool.py- IntegratesNetworkRequestCapturewith background CDP attachmenttempo/tools/browser_use_adapter.py- Registersget_network_requeststool with async body fetchingtempo/prompts/templates/browser_base.txt- Documents the new tool for the agentNew Tool:
get_network_requestsUse cases for security testing:
Testing
python -m pytest tests/tools/test_network_capture.py -v # 20 passed