Generate Agent Integration Kits for existing systems with AI-powered dynamic generation via Claude Agent SDK.
Project description
๐ AgentBridge
Turn your existing system into an AI-agent-ready platform โ in seconds.
AgentBridge discovers capabilities from your API schemas, database schemas, and source routes, then generates a complete Agent Integration Kit that works with MCP, Claude, OpenAI, and Vercel AI SDK out of the box.
With built-in Claude Agent SDK support and AI-powered dynamic generation, AgentBridge goes beyond static templates โ it uses AI to craft richer tool definitions, domain-specific skills, and intelligent prompts tailored to your system.
๐ Table of Contents
- โจ Features
- ๐ Quick Start
- ๐ CLI Reference
- ๐ What AgentBridge Discovers
- ๐ Generated Kit Layout
- ๐ค AI-Powered Generation
- ๐ก๏ธ Safety Model
- ๐๏ธ Architecture
- ๐งฉ Extending AgentBridge
- ๐ฆ Publishing & Installation
- ๐ค Contributing
- ๐ License
โจ Features
|
๐ Auto-discovery Extracts capabilities from OpenAPI, GraphQL, SQL, and source code routes (Python/Flask/FastAPI, JS/Express, Java/Spring) |
๐ง Multi-format Generation Outputs MCP, Claude, OpenAI, and Vercel AI SDK tool definitions simultaneously |
|
๐ค AI-Powered Generation Uses Claude Agent SDK (primary) or Anthropic API (fallback) to dynamically generate tools, skills, and prompts |
๐ง Agent as a Service Runs as an interactive agent for your existing project via Claude Agent SDK |
|
๐ก๏ธ Safety-first Classifies operations by risk level with human-in-the-loop confirmation for dangerous actions |
๐งช Dry-run Validation Test tool invocations against generated guardrails before executing |
|
๐ Custom LLM Providers Supports DeepSeek, OpenRouter, and any Anthropic-compatible endpoint |
๐ชถ Rules + LLM Combined Rule-based analysis (risk keywords, HTTP verbs) feeds into LLM as context for smarter generation |
๐ Quick Start
Installation
pip install agbr
๐ฆ Install with optional features
# AI-powered generation + agent sessions (recommended)
pip install "agbr[agent]"
# Lightweight AI generation (no Claude Agent SDK)
pip install "agbr[ai]"
# Everything
pip install "agbr[all]"
# Install from source (for development)
git clone git@github.com:jastfkjg/AgentBridge.git
cd AgentBridge
pip install -e ".[all]"
Configure LLM Provider
AgentBridge requires an LLM API key for all generation. By default it uses Anthropic's Claude, but you can configure any Anthropic-compatible provider:
# Required
export ANTHROPIC_API_KEY="sk-ant-..."
# Optional: Custom API endpoint
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" # DeepSeek
# export ANTHROPIC_BASE_URL="https://openrouter.ai/api/v1" # OpenRouter
# Optional: Custom model name
export ANTHROPIC_MODEL="deepseek-v4-flash"
๐ Or pass via CLI flags
agentbridge generate examples/writing_system --output build/kit \
--api-key "sk-..." \
--base-url "https://api.deepseek.com/anthropic" \
--model "deepseek-v4-flash"
Note: When
ANTHROPIC_BASE_URLis set, AgentBridge automatically uses theanthropicSDK backend (notclaude-agent-sdk) for generation, since custom endpoints are not supported by the agent SDK.
Generate an Agent Integration Kit
# Requires ANTHROPIC_API_KEY (set via env var or --api-key flag)
agentbridge generate examples/writing_system --output .agentbridge/writing-kit
Run as an Agent
agentbridge chat .agentbridge/writing-kit
Run Tests
PYTHONPATH=src python -m unittest discover -s tests
๐ CLI Reference
| Command | Description |
|---|---|
agentbridge discover <paths> |
Discover and print capabilities as JSON |
agentbridge generate <paths> -o <dir> |
Generate an Agent Integration Kit |
agentbridge dry-run <kit> <tool> |
Dry-run a tool invocation |
agentbridge chat <kit> |
Start an interactive AI agent session |
๐ Full command details
discover
agentbridge discover examples/writing_system
generate
agentbridge generate examples/writing_system --output build/agent-kit
# With custom name
agentbridge generate examples/writing_system --output build/agent-kit --name my-kit
# With custom LLM provider
agentbridge generate examples/writing_system --output build/agent-kit \
--api-key "sk-..." --base-url "https://api.deepseek.com/anthropic" --model "deepseek-v4-flash"
dry-run
# Normal invocation
agentbridge dry-run build/agent-kit create_chapter --args '{"project_id":"p1","title":"Opening"}'
# High-risk operation (requires confirmation)
agentbridge dry-run build/agent-kit delete_character \
--args '{"project_id":"p1","character_id":"c1"}' --confirmed
chat
agentbridge chat build/agent-kit
# Or with custom LLM provider:
agentbridge chat build/agent-kit --api-key "sk-..." --base-url "https://api.deepseek.com/anthropic"
๐ What AgentBridge Discovers
| Source Type | Formats |
|---|---|
| ๐ API Schemas | OpenAPI JSON/YAML, GraphQL schemas |
| ๐๏ธ Database Schemas | SQL CREATE TABLE statements |
| ๐ Python Routes | FastAPI @router.get/post/..., Flask @app.route |
| ๐ JavaScript Routes | Express app.get/post/... |
| โ Java Routes | Spring @GetMapping/@PostMapping/... |
All sources are normalized into a common capability model with:
| Field | Description |
|---|---|
domain + resource |
Logical grouping |
action |
What the capability does |
input_schema |
JSON Schema parameters |
risk |
read / write / destructive / external_side_effect |
confirm_required |
Whether human approval is needed |
source |
Full traceability back to the origin file |
๐ Generated Kit Layout
agent-kit/
โโโ manifest.json # Kit metadata and summary
โโโ capabilities.json # All discovered capabilities
โโโ tools/
โ โโโ mcp_tools.json # MCP tool definitions
โ โโโ openai_tools.json # OpenAI function calling format
โ โโโ claude_tools.json # Claude tool use format
โ โโโ vercel_ai_tools.ts # Vercel AI SDK TypeScript tools
โโโ skills/
โ โโโ writing.md # Domain-specific skill definitions
โโโ prompts/
โ โโโ system.md # Agent system prompt
โโโ resources/
โ โโโ schema.json # Resource schema summary
โโโ guardrails/
โ โโโ permissions.json # Risk policy and confirmation rules
โโโ tests/
โ โโโ tool_invocation_tests.json # Auto-generated invocation tests
โ โโโ test_generated_tools.py # Python unit tests for tool contracts
โโโ dry_run_plan.json # Dry-run execution plan
๐ค AI-Powered Generation
AgentBridge uses LLM to generate all content โ tool descriptions, skills, system prompts, risk assessments, and inferred tools. Rule-based analysis (keyword matching, HTTP verb classification) is fed into the LLM as context, not used directly.
| What | Description |
|---|---|
| ๐ Enhanced tool descriptions | Context-aware descriptions that capture business semantics |
| ๐ฏ Domain-specific skills | Workflow prompts tailored to your domain with best practices |
| ๐ง Intelligent system prompts | Prompts that understand resource relationships and suggest safe sequences |
| ๐ Inferred additional tools | Tools implied by your schema but not explicitly present |
| โ ๏ธ Improved risk assessments | LLM evaluates risk with rule-based hints as context |
AI Backend
| Backend | Package | Use Case |
|---|---|---|
| Claude Agent SDK (primary) | claude-agent-sdk |
Generation + interactive agent sessions |
| Anthropic API (fallback) | anthropic |
Generation only, supports custom endpoints |
When claude-agent-sdk is installed and no custom ANTHROPIC_BASE_URL is set, it is used automatically. When a custom endpoint is configured or claude-agent-sdk is not installed, the anthropic SDK is used.
Programmatic Usage
from pathlib import Path
from agentbridge.generator import AgentKitGenerator
from agentbridge.agent import AIGenerator, AgentRunner
# Generate with default provider (Anthropic Claude)
ai = AIGenerator(api_key="sk-ant-...")
kit = AgentKitGenerator(ai_generator=ai).generate(
[Path("examples/writing_system")],
Path("build/agent-kit"),
)
# Custom LLM provider (e.g., DeepSeek)
ai = AIGenerator(
api_key="sk-d831ecabc21842fdae6f30c24dd3b052",
base_url="https://api.deepseek.com/anthropic",
model="deepseek-v4-flash",
)
# Agent session
import asyncio
async def main():
runner = AgentRunner(kit_dir="build/agent-kit", api_key="sk-ant-...")
async for message in runner.query("List all chapters in project p1"):
print(message)
asyncio.run(main())
๐ก๏ธ Safety Model
| Risk Level | Confirmation | Examples |
|---|---|---|
๐ข read |
Not required | GET, list, search, find |
๐ก write |
Optional by policy | POST, create, update, rewrite |
๐ด destructive |
Required | DELETE, remove, destroy, drop, cancel |
๐ external_side_effect |
Required | publish, send, email, pay, deploy, export |
The safety model is applied consistently. Rule-based risk classification provides initial context, and the LLM may override when justified.
๐๏ธ Architecture
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Discovery โโโโโโถโ Generator โโโโโโถโ Agent Kit โ
โ (schemas, โ โ (LLM-driven โ โ (tools, skills,โ
โ routes, โ โ + rules as โ โ prompts, โ
โ SQL) โ โ context) โ โ guardrails) โ
โโโโโโโโโโโโโโโ โโโโโโโโฌโโโโโโโโ โโโโโโโโโโฌโโโโโโโโโ
โ โ
โโโโโโโโผโโโโโโโโ โโโโโโโโผโโโโโโโโโ
โ AI Generatorโ โ Agent Runner โ
โ (Claude SDK โ โ (Claude SDK โ
โ / Anthropicโ โ Client + โ
โ API) โ โ MCP Tools) โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
๐งฉ Extending AgentBridge
| Extension | How |
|---|---|
| New schema parser | Implement a discoverer in discovery.py |
| New tool format | Add a builder function in generator.py |
| Custom AI prompts | Override prompts in agent.py |
| Custom risk policy | Modify policy.py |
| Custom agent tools | Extend AgentRunner._build_kit_tools() |
๐ฆ Publishing & Installation
๐ง How does `pip install "agbr"` work?
AgentBridge is packaged as a standard Python package using pyproject.toml + setuptools. Here's the mechanism:
1. Package Structure
AgentBridge/
โโโ pyproject.toml # Package metadata, dependencies, entry points
โโโ src/
โ โโโ agentbridge/ # Actual Python package
โ โโโ __init__.py
โ โโโ cli.py # CLI entry point
โ โโโ agent.py
โ โโโ generator.py
โ โโโ ...
โโโ tests/
2. pyproject.toml Key Sections
[project]
name = "agbr" # pip install agbr
version = "0.2.0"
[project.optional-dependencies] # pip install "agbr[agent]"
agent = ["claude-agent-sdk>=0.1.0"]
ai = ["anthropic>=0.30.0"]
[project.scripts]
agentbridge = "agentbridge.cli:main" # CLI entry point
[tool.setuptools.packages.find]
where = ["src"] # Code lives in src/
3. How pip install Works
- Build:
pipreadspyproject.toml, usessetuptoolsto build a wheel (.whl) - Install: The wheel is installed into your Python environment's
site-packages/ - CLI: The
[project.scripts]section creates aagentbridgeexecutable in your PATH that callsagentbridge.cli:main
4. Publishing to PyPI (so anyone can pip install)
# Build the package
pip install build
python -m build
# Upload to TestPyPI (for testing)
pip install twine
twine upload --repository testpypi dist/*
# Upload to PyPI (for real)
twine upload dist/*
After publishing, anyone can run pip install "agbr".
5. Installing Without PyPI
Until the package is published on PyPI, users can install it in these ways:
# Install from local source (editable mode, for development)
pip install -e .
# Install from GitHub repository
pip install git+ssh://git@github.com/jastfkjg/AgentBridge.git
# Install from a local wheel
pip install dist/agentbridge-0.2.0-py3-none-any.whl
๐ค Contributing
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please make sure tests pass:
PYTHONPATH=src python -m unittest discover -s tests -v
๐ License
This project is licensed under the MIT License โ see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agbr-0.3.1.tar.gz.
File metadata
- Download URL: agbr-0.3.1.tar.gz
- Upload date:
- Size: 37.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87124c9d01d3a1d9edaaccb633c7ad753ff10375a3255627bcda480b0c5e51c4
|
|
| MD5 |
842c1996ae299ecc3769123ad9f4bdce
|
|
| BLAKE2b-256 |
62427bcb0ba6d86cb4ba69f613dec346261cb2e32f68d95f8a49d40eea4eebf7
|
File details
Details for the file agbr-0.3.1-py3-none-any.whl.
File metadata
- Download URL: agbr-0.3.1-py3-none-any.whl
- Upload date:
- Size: 28.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a889109b520618d1c0c9a606bbe702d204482c11a1135d035618684893a2b9a
|
|
| MD5 |
e6d97c4465445e7638b3509f552bc960
|
|
| BLAKE2b-256 |
51dfcef1b83ea7f65b4568f7c4412c6cb97a038a0445dcddadde792f948dc817
|