Document the SDK-provided tools as stub dirs under strix/tools/

Every agent-facing tool now has a corresponding directory: the
strix-implemented ones already do, and the SDK-provided ones
(exec_command/write_stdin shell, apply_patch, view_image) plus the
sandbox-CLI agent-browser get README-only stubs. Each README names the
implementation source, where the tool is wired up, the strix-specific
config it inherits, and the skill that teaches its usage. Listing
strix/tools/ now gives a new reader the full agent toolset at a glance.

The stub dirs intentionally have no __init__.py — they are not Python
packages, just documentation. Nothing in the codebase auto-discovers
strix.tools.* as packages (all imports are explicit), so the stubs
cannot accidentally affect runtime behavior.
This commit is contained in:
0xallam
2026-05-25 22:23:14 -07:00
parent 8ed5311b8e
commit 867a0c81fc
4 changed files with 54 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
# agent-browser
Browser automation CLI installed in the sandbox image. Driven by the agent
through `exec_command` (not a function tool).
- **Implementation:** sandbox CLI at
`/home/pentester/.npm-global/bin/agent-browser` — npm package
`agent-browser@0.26.0` (Vercel), driving Chromium directly.
- **Strix config:** `containers/Dockerfile` sets `AGENT_BROWSER_*` env
(executable path, UA, launch args, screenshot dir).
- **Skill:** `strix/skills/tooling/agent_browser.md`**always-loaded**
into every agent prompt by `strix/agents/prompt.py:_resolve_skills`.
+10
View File
@@ -0,0 +1,10 @@
# apply_patch
SDK-provided file patching tool — the agent's only first-class way to edit
files in the sandbox. Surfaced to the model as `patch` (renamed via
`_TOOL_NAME_OVERRIDES` in `strix/agents/factory.py`).
- **Implementation:** `agents.sandbox.capabilities.tools.apply_patch_tool.ApplyPatchTool`
(upstream `agents` SDK)
- **Wired in:** `strix/agents/factory.py` — added per-run via the SDK
`Filesystem` capability.
+15
View File
@@ -0,0 +1,15 @@
# shell — `exec_command` + `write_stdin`
SDK-provided shell tools wired per-run from the sandbox session. Every CLI
invocation the agent makes (nmap, ffuf, agent-browser, python3, …) goes
through `exec_command`. `write_stdin` streams input to a still-running
process started by an earlier `exec_command` (for interactive prompts).
- **Implementation:** `agents.sandbox.capabilities.tools.shell_tool.ShellTool`
(in the upstream `agents` SDK)
- **Wired in:** `strix/agents/factory.py` — added per-run via the SDK
`Shell` capability; `write_stdin` is wrapped to drop the SDK's `pid`
arg from the function schema.
- **Sandbox env:** `http_proxy` / `https_proxy` route every shell child
through Caido; `AGENT_BROWSER_*`, `REQUESTS_CA_BUNDLE` etc. come from
`containers/Dockerfile`.
+17
View File
@@ -0,0 +1,17 @@
# view_image
SDK-provided tool that loads an image from the sandbox workspace and
returns it as an image content block for vision-capable models.
- **Implementation:** `agents.sandbox.capabilities.tools.view_image.ViewImageTool`
(upstream `agents` SDK)
- **Wired in:** `strix/agents/factory.py` — added per-run via the SDK
`Filesystem` capability.
- **Strix defaults:** screenshots default to
`/workspace/.agent-browser-screenshots/` via `AGENT_BROWSER_SCREENSHOT_DIR`
(set in `containers/Dockerfile`; dir is created at container start in
`containers/docker-entrypoint.sh`).
- **Skill:** screenshot workflow lives in `strix/skills/tooling/agent_browser.md`.
- **Recovery:** vision-not-supported model rejections are auto-recovered
via `strix.core.sessions.strip_latest_image_from_session`, invoked from
`strix/core/execution.py`.