Skip to main content
Give Holo a Python runner and it solves the task by writing a script, running it, and reading the output. There is no screen, so there are no screenshots: the task is the first user message and each run’s output goes back as a tool message.
This example runs model-written code on your machine with subprocess. Outside a demo, run it in a container or a sandbox with no network and no secrets.
1

Install

2

Save the agent

code_agent.py
3

Run it

Output

How it works

  • Observations are tool results. Output is capped at the last 4,000 characters, so a runaway print cannot flood the context.
  • Errors are feedback. stderr goes back with stdout. When a script fails, Holo reads the traceback and fixes it on the next step.
  • Timeouts. Each run is killed after 30 seconds, and Holo is told so. Raise the limit for heavier jobs.
The same pattern fits any runner: a bash tool, a Jupyter kernel, or a remote sandbox. Keep one tool per runtime and describe it in plain words.

Next steps

Hybrid agent

Pair this runner with a browser.

MCP agent

Swap the runner for an MCP server’s tools.