Skip to main content

Sandbox container tool code for inspect_ai

Project description

Design

diagram

Inspect calls into the sandboxed image are done statelessly via docker exec inspect-tool-support.

Some tools can be implemented without the need for any in-process state. For those tools, the tool code will be executed within the inspect-tool-support process.

For tools that require the maintenance of state over the lifetime of and sandbox, this image marshals tool calls into a long running process via JSON RPC to an http server process. That server then dispatches tool calls to tool specific @method handlers.

Stateful Tool Design Pattern

Each stateful tool should have its own subdirectory that contains the following files:

  • json_rpc_methods.py

    This module contains all of the JSON RPC @method functions — one for each tool (e.g. the web browser tool is actually a set of distinct tools). It is responsible for unpacking the JSON RPC request and forwarding the call to a transport-agnostic, strongly typed, stateful controller.

  • tool_types.py

    This module includes the pydantic models representing the types for tool call parameters and results.

  • controller.py

    This is transport-agnostic, strongly typed code that manages the tool specific in-process state and performs requested commands.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inspect_tool_support-0.1.8.tar.gz (81.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

inspect_tool_support-0.1.8-py3-none-any.whl (72.2 kB view details)

Uploaded Python 3

File details

Details for the file inspect_tool_support-0.1.8.tar.gz.

File metadata

  • Download URL: inspect_tool_support-0.1.8.tar.gz
  • Upload date:
  • Size: 81.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for inspect_tool_support-0.1.8.tar.gz
Algorithm Hash digest
SHA256 dd66192a865747de8c0e2ac73d87eaa17ccab9d31b9d6758c2b83f3fad99d1d8
MD5 eb57c4ce2b4c0eaf81bb6babb7d176b9
BLAKE2b-256 c7e85a14831e8464d4bf32ef696ab2535da7838e1538f41857339020cd9b2e1e

See more details on using hashes here.

File details

Details for the file inspect_tool_support-0.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for inspect_tool_support-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 d2125e281f12622cd501f4d1c817f555ad91f100254f8e99b920fa0f8674326c
MD5 4043512f3589459e2cf80e48292569af
BLAKE2b-256 839cc2c324340e5f80ab0a69d2b261c692d8a2a7b4ccfbb79aa83e0b9359094b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page