Conjure.Backend.Docker (Conjure v0.1.1-alpha)

View Source

Backend for Docker-based execution of skills.

Executes skill tool calls inside Docker containers for isolation and security. Uses Conjure.Executor.Docker for command execution and Conjure.Conversation for the tool-use loop.

For new code, use Conjure.Session.new_docker/2 which provides proper storage integration and working directory management:

{:ok, skills} = Conjure.load("priv/skills")
{:ok, session} = Conjure.Session.new_docker(skills)

{:ok, response, session} = Conjure.Session.chat(
  session,
  "Run the analysis",
  &api_callback/1
)

# Cleanup when done
{:ok, _} = Conjure.Session.cleanup(session)

Direct Backend Usage

For lower-level control, you can use this backend directly:

{:ok, skills} = Conjure.load("priv/skills")
session = Conjure.Backend.Docker.new_session(skills, [])

{:ok, response, session} = Conjure.Backend.Docker.chat(
  session,
  "Run the analysis",
  &api_callback/1,
  []
)

Options

  • :working_directory - Working directory on host (mounted to /workspace in container)
  • :timeout - Execution timeout in milliseconds (default: 30_000)
  • :max_iterations - Maximum tool-use iterations (default: 25)
  • :executor_config - Docker-specific configuration:
    • :image - Docker image to use
    • :volumes - Volume mounts
    • :network - Network mode

See Also