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:
@@ -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`.
|
||||
@@ -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.
|
||||
@@ -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`.
|
||||
@@ -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`.
|
||||
Reference in New Issue
Block a user