What is Bedrock?
Bedrock handles the hard parts of building AI agents:- Persistent State — Agents use Bedrock-owned adapter state for contacts, messages, documents, projects, and notifications
- Tool Execution — Connect agents to SMS, email, calendars, or your own APIs via webhooks
- Autonomous Runtime — Agents run independently, waking and sleeping on schedules
- Full Observability — Every LLM call, tool invocation, and decision is traced
Core Architecture
- Organization — your top-level tenant. Owns every template, agent, adapter, and API key. Holds the org-wide OpenAI / Anthropic keys used when Bedrock talks to a provider.
- AgentTemplate — a named blueprint: system prompt, default model, adapter set + per-adapter config, harness git ref, tool call secret.
- Agent 1, Agent 2, … — created from the template. Each agent snapshots the template’s configuration + adapter configs at creation time. Template edits don’t retroactively change live agents.
- AgentTemplate — a named blueprint: system prompt, default model, adapter set + per-adapter config, harness git ref, tool call secret.
AdapterConfig rows; each agent gets its own immutable AgentAdapterConfig snapshot.
Key Concepts
- Organization — Tenant account. Holds users, billing, LLM provider keys, and API keys.
- AgentTemplate — Blueprint for agents: prompt, model, adapter set, tool-call secret. Think of it like a Docker image.
- Agent — A running instance created from a template (or ad-hoc) with its own adapter state. Carries a
purpose(production|eval|dev) and free-form tags. - Adapter — An integration module (SMS, Email, CRM, etc.) that provides tools.
- Tool — A callable function an agent can invoke, either built-in or a webhook to your API.
Organizations
Accounts, members, invites, and organization-scoped API keys.
Templates
Blueprints for agents: prompt, model, adapters, tool-call secret.
Agents
Deploy autonomous AI instances with their own adapter state.
Adapters
Built-in integrations for SMS, email, calendars, and more.
Custom Adapters
Build your own adapters to connect agents to any API.
Notifications
Priority-based attention system that drives agent wake/sleep behavior.
Tracing
Full observability into every LLM call, tool execution, and decision.
Evaluations
End-to-end simulations driven by the external harness.
Built-in Adapters
Bedrock includes these default integrations:| Adapter | Description |
|---|---|
| Contacts | Store and manage contact information |
| SMS | Send and receive text messages via Twilio |
| MMS | Send and receive iMessage/RCS via Linq |
| Surge | Send and receive SMS via Surge |
| Blooio | Send and receive iMessage/RCS/SMS via Blooio |
| Send and receive emails via AgentMail | |
| Gmail | Read/send from a user’s Gmail via OAuth |
| Google Calendar | Manage events on a user’s Google Calendar |
| Google Drive | Browse/read/write a user’s Google Drive |
| Strava | Read a user’s activities and training data |
| Slack | Message and receive events from Slack |
| Notifications | Internal notification/reminder system |
| Projects | Hierarchical project tracking with sub-projects |
| Documents | Store text documents for agent reference |
| Computer | Cloud VM sandbox for shell commands and files |
| Browser | Asynchronous browser automation for web tasks |
| Exa | Web and people/profile search via Exa |
| Sub-Agents | Spawn child agents that run autonomously |
| Webchat | Local web chat channel for dev / testing |
Custom Integrations
Build your own adapters to connect agents to any system:- Create an adapter — a named container for related tools
- Add webhook tools — each tool POSTs to your API when called
- Verify requests — check the
X-Agent-Secretheader to authenticate - Return data — your JSON response becomes the tool result the agent sees
How Agents Run
Every run spawns an isolatedbedrock-harness subprocess (pinned to the template’s harness_git_ref, or latest main if unset):
- Wake agent (API call or scheduled)
- Load memory context
- Build prompt with tools
- Call LLM (OpenAI / Anthropic)
- Execute tool calls
- Log to memory
- Repeat until agent sleeps
Use Your Own LLM Keys
Bedrock uses your LLM provider accounts:- You control costs directly with OpenAI / Anthropic
- Use any model available on your account
- Prompt caching with Claude reduces costs significantly
openai_api_key / anthropic_api_key). If unset, Bedrock falls back to OPENAI_API_KEY / ANTHROPIC_API_KEY environment variables.
Quick Links
Quickstart
Create a template and deploy your first agent
Custom Adapters
Connect agents to your own APIs
API Reference
Full endpoint documentation
Authentication
API key setup and usage