Skip to main content

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
See a demo video here.

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.
Adapters and tools live on the organization and are attached to templates via 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:
AdapterDescription
ContactsStore and manage contact information
SMSSend and receive text messages via Twilio
MMSSend and receive iMessage/RCS via Linq
SurgeSend and receive SMS via Surge
BlooioSend and receive iMessage/RCS/SMS via Blooio
EmailSend and receive emails via AgentMail
GmailRead/send from a user’s Gmail via OAuth
Google CalendarManage events on a user’s Google Calendar
Google DriveBrowse/read/write a user’s Google Drive
StravaRead a user’s activities and training data
SlackMessage and receive events from Slack
NotificationsInternal notification/reminder system
ProjectsHierarchical project tracking with sub-projects
DocumentsStore text documents for agent reference
ComputerCloud VM sandbox for shell commands and files
BrowserAsynchronous browser automation for web tasks
ExaWeb and people/profile search via Exa
Sub-AgentsSpawn child agents that run autonomously
WebchatLocal web chat channel for dev / testing

Custom Integrations

Build your own adapters to connect agents to any system:
  1. Create an adapter — a named container for related tools
  2. Add webhook tools — each tool POSTs to your API when called
  3. Verify requests — check the X-Agent-Secret header to authenticate
  4. Return data — your JSON response becomes the tool result the agent sees
See Custom Adapters for a full walkthrough.

How Agents Run

Every run spawns an isolated bedrock-harness subprocess (pinned to the template’s harness_git_ref, or latest main if unset):
  1. Wake agent (API call or scheduled)
  2. Load memory context
  3. Build prompt with tools
  4. Call LLM (OpenAI / Anthropic)
  5. Execute tool calls
  6. Log to memory
  7. Repeat until agent sleeps
Agents are autonomous — they decide when to sleep and what actions to take based on their tools and memory.

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
Keys live on the Organization (openai_api_key / anthropic_api_key). If unset, Bedrock falls back to OPENAI_API_KEY / ANTHROPIC_API_KEY environment variables.

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