🌐 HelmsmanBrowseTool

A Helmsman tool that gives AI agents the ability to browse the web using Browse. 🤖🧭

📦 Installation

Add helmsman_browse_tool to your list of dependencies in mix.exs, along with a browser backend:

def deps do
  [
    {:helmsman_browse_tool, "~> 0.2.0"},

    # Pick a browser backend:
    {:browse_chrome, "~> 0.2"},  # Headless Chrome via CDP
    # or
    {:browse_servo, "~> 0.1"},   # Servo-powered browser
  ]
end

🚀 Usage

Add the browse tool to your Helmsman agent:

defmodule MyAgent do
  use Helmsman

  @impl true
  def tools do
    [
      {HelmsmanBrowseTool, pool: MyApp.BrowserPool}
    ]
  end
end

The tool exposes a browse tool to the LLM with the following actions:

⚙️ Configuration

The tool requires a Browse pool backed by a browser engine. You can choose between:

Example with BrowseChrome

# config/config.exs
config :browse_chrome,
  default_pool: MyApp.BrowserPool,
  pools: [
    {MyApp.BrowserPool, pool_size: 4}
  ]
# application.ex
def start(_type, _args) do
  children = BrowseChrome.children() ++ [
    # ... your other children
  ]

  Supervisor.start_link(children, strategy: :one_for_one)
end

Example with BrowseServo

# config/config.exs
config :browse_servo,
  default_pool: MyApp.BrowserPool,
  pools: [
    {MyApp.BrowserPool, pool_size: 4}
  ]
# application.ex
def start(_type, _args) do
  children = BrowseServo.children() ++ [
    # ... your other children
  ]

  Supervisor.start_link(children, strategy: :one_for_one)
end

📝 License

MIT