Fundamental breaking changes are happening now, affecting protocol, transport, and APIs. Consider this version experimental. Join Alpha discussions to help shape it.

Overview

A provider is a process that exposes one or more agents using the Agent Communication Protocol. This guide explains how to register different types of providers with BeeAI.

Adding providers

You can manage providers by using the CLI:

# List providers
beeai provider list

# Show provider details
beeai provider info <id>

# Remove provider
beeai provider remove <id>

# Add a provider
beeai provider add <location>

Parameters

id
string

Either SHORT ID or unique short name such as official/beeai-framework

location
string

A path to the provider manifest detailed below. Some examples:

  • https://github.com/org/repo (remote location)
  • https://github.com/org/repo@version-tag#path=/sub/directory/custom-provider.yaml (GitHub location with a specific version-tag and path within the github repository)
  • file:///absolute/path/to/beeai-provider.yaml (local filesystem)

Provider manifest

The provider manifest (beeai-provider.yaml) defines how a provider connects to BeeAI. The platform uses it to start a new provider process.

Below is the list of supported providers.

Python provider

This provider uses uv.
beeai-provider.yaml
manifestVersion: 1
driver: python
pythonVersion: "3.11" # optional, will be installed if not found on machine

# Package location that can be used in a `uvx --from` clause
# see  (https://docs.astral.sh/uv/guides/tools)
# For example a package published on PyPI:
# package: "my-pypi-package@0.0.1"
#
# Or a package from GitHub:
package:
  "git+https://github.com/org/repo@agents-v0.0.1"

  # Executable command to run provider (must be part of the package)
command: ["gpt-researcher-agent"]

# These options are the recommended configuration
# stdio serverType is supported, but highly experimental:
serverType: http
mcpTransport: sse
mcpEndpoint: /sse

env: # Environment variables consumed by this provider
  - name: "LLM_API_KEY"
    description: "Secret key for accessing model"
    required: True

Node.js provider

This provider uses Node.js.
beeai-provider.yaml
manifestVersion: 1
driver: nodejs

# Package location that can be used in a `npx` clause or a GitHub URL
# For example a package published on NPM:
# package: "my-npm-opackage@0.0.1"
#
# Or a package from GitHub
package: "git+https://github.com/org/repo@agents-v0.0.1"

# Executable command to run provider (must be part of the package)
command: ["server"]

# These options are the recommended configuration
# stdio serverType is supported, but highly experimental:
serverType: http
mcpTransport: sse
mcpEndpoint: /sse

env: [] # Environment variables (see above in python provider above)

Container provider

This provider requires Docker, Podman or similar runtime installed, we recommend Rancher Desktop.

beeai-provider.yaml
manifestVersion: 1
driver: container

# Public docker image (identifier that can be used in docker run)
image: docker.io/something/here:1.0.0

# These options are the recommended configuration
# stdio serverType is supported, but highly experimental:
serverType: http
mcpTransport: sse
mcpEndpoint: /sse

env: [] # Environment variables (see above in python provider above)

Unmanaged provider

An unmanaged provider is a special case where the BeeAI platform does not manage the provider’s lifecycle. Instead, you register an already running provider.

This is useful for:

  • Local development
  • Running agents on a separate infrastructure

For example, if you’re running an agent server locally (e.g., by cloning the provider template and executing uv run beeai-agents), you can register it using the following manifest:

beeai-provider.yaml
manifestVersion: 1
driver: unmanaged
serverType: http
mcpTransport: sse
mcpEndpoint: /sse
# env: []
# Not valid for unmanaged provider as the provider process is already
# running, instead inject env directly when starting the provider server,
# for example: env MY_VARIABLE=MY_VALUE uv run beeai-agents