Action-level visual debugging and task reliability evaluation for Browser Use and Playwright agents.
Agent DevTools observes an existing agent and creates a local JSON trace and HTML report. It helps you see:
- what changed before and after each supported action;
- why an action failed, with its error and evidence;
- whether the complete task succeeded, separately from action execution.
No API key or agent is needed for these committed examples:
The current alpha is installed from the repository; it is not on PyPI yet.
git clone https://github.com/YYDongRo/39-tools.git
cd 39-tools
uv sync --extra browser-use
uv run playwright install chromiumSet one provider key in your shell, never in source code:
export GOOGLE_API_KEY="your-key" # Gemini
# export OPENAI_API_KEY="your-key" # OpenAI insteadPowerShell: $env:GOOGLE_API_KEY = "your-key"
Run a task and open its report:
uv run agent-devtools \
--task "Open https://example.com and confirm the Example Domain page is open." \
--headed --open-reportOmit --headed for headless mode, or omit --task to enter it interactively.
The command prints the exact report path.
uv run agent-devtools dashboard --openThe local page lets you run a Browser Use task, connect your own compatible
agent, check setup, and open all reports. It also shows the latest result and a
local Connected heartbeat when a wrapped Agent is writing to the selected
trace folder. It does not intercept arbitrary desktop calls or upload data.
Wrap your agent once at the run boundary. Calls through its tool dispatcher are recorded automatically:
from agent_devtools import observe_agent
raw_agent = MyAgent(tools=MyTools())
agent = observe_agent(
raw_agent, raw_agent.tools, "trace/my-agent", tools_attribute="tools"
)
agent.run(user_request)
print(agent.last_report_path)The agent must route computer actions through that dispatcher, such as
click, type_text, or scroll. Direct calls that bypass it are outside the
recording boundary. See the custom-agent guide.
For an agent you create with Browser Use, use
observe_browser_use_agent. For Playwright, use the
Playwright adapter.
Run the same Browser Use task with fresh agents:
uv run agent-devtools \
--task "Open https://example.com and confirm the Example Domain page is open." \
--runs 3 --headed --open-reportThe aggregate report links to every attempt and highlights the earliest useful trajectory difference. A small observed pass rate describes those runs; it does not prove true reliability. See the stability guide.
| Field | Question |
|---|---|
| Execution | Did this operation run or raise an error? |
| Action check | Did this action produce its expected local effect? |
| Task check | Did the complete user request succeed? |
Passed, Failed, Unverified, and Errored are different outcomes on
purpose. Traces and screenshots stay local by default and may contain URLs,
typed values, page text, or private screen content. Review them before sharing;
the CLI guide covers export and redaction.
Agent DevTools supports Browser Use, Playwright, and compatible tool-bound agents. It is not an agent runtime, universal desktop/Android interceptor, hosted dashboard, full replay system, or automatic recovery service.
Displayed name: Agent DevTools · distribution: 39-tools · Python import:
agent_devtools · command: agent-devtools.
uv sync
uv run pytest
uv buildAgent DevTools is available under the MIT License.
