AgentBridge keeps heavy or blocked framework adapters outside the core install path. External packages can register adapters through Python entry points, while local development can use an environment variable.
Use the CLI scaffolder for a new adapter package:
agentbridge scaffold-plugin plugins/agentbridge-google-adk --backend google_adkThe generated package includes:
pyproject.tomlwith anagentbridge.adaptersentry point.- A package containing an
Adapterclass. - A README with install and verification commands.
- A starter test for the generated adapter.
Install and verify:
cd plugins/agentbridge-google-adk
pip install -e ".[dev]"
pytest
agentbridge plugins
agentbridge inspect-backend google_adk --json
agentbridge conformance --backend google_adkThe generated adapter intentionally echoes input. Replace compile(), run(), and stream() with native framework behavior before marking real capabilities as supported.
External packages should expose a BackendAdapter subclass:
from agentbridge.adapters import BackendAdapter
class MyFrameworkAdapter(BackendAdapter):
backend_name = "my_framework"Then register it in pyproject.toml:
[project.entry-points."agentbridge.adapters"]
my_framework = "my_package.adapter:MyFrameworkAdapter"AgentBridge discovers the adapter automatically when list_adapters(), get_adapter(), or CLI commands access the registry.
Set AGENTBRIDGE_ADAPTER_PLUGINS to comma-separated module names:
export AGENTBRIDGE_ADAPTER_PLUGINS="my_local_adapter,another_adapter"
agentbridge pluginsEach module must expose either:
Adapter: aBackendAdaptersubclass.get_adapter(): returns aBackendAdaptersubclass or instance.
Use:
agentbridge plugins --jsonThe command reports which plugins loaded, which backend names they registered, and any import or validation errors.
Plugins cannot overwrite an existing backend by default. To intentionally replace a backend during development:
export AGENTBRIDGE_ADAPTER_PLUGIN_OVERRIDES="mock"
export AGENTBRIDGE_ADAPTER_PLUGINS="my_mock_replacement"Use overrides sparingly. Published adapter packages should avoid backend names owned by core AgentBridge unless the package is intentionally replacing that adapter.
During tests or interactive development, reset_adapters() restores the registry to the built-in adapters, and reset_plugin_loader() also clears plugin discovery state.
CrewAI is currently blocked in the core Python 3.14 environment because its adopted package range pulls older LangChain/LangSmith dependencies. The scaffold lives in plugins/agentbridge-crewai as an external plugin package with its own Python and dependency constraints.
Additional external plugin scaffolds live under plugins/:
agentbridge-openai-agents: targetsopenai-agents>=0.22,<1.agentbridge-strands: targetsstrands-agents>=1.55,<2.agentbridge-langchain: targetslangchain>=1.4,<2.agentbridge-google-adk: targetsgoogle-adk>=2.9,<3.
These packages should stay outside the core dependency set until their native framework execution is verified and their dependency footprint is acceptable for all users.