Building Agents with Claude Opus 4.8: Live Demos with Letta and Browserbase
Table of Contents
- 1. Basics
- 2. Speakers
- 3. Core concepts
- 3.1. Effort tiers (Opus 4.8)
- 3.2. Self-narration
- 3.3. Ultracode
- 3.4. Letta: Context Repositories
- 3.5. Agentic Context Engineering
- 3.6. Coding agents are general agents
- 3.7. Local vs virtual filesystems
- 3.8. Letta Code architecture
- 3.9. KV caching for continual learning
- 3.10. KV cache pricing (Opus 4.8)
- 3.11. Mid-conversation system messages (Opus 4.8)
- 3.12. Letta memory UI
- 3.13. Browserbase: headless browser for agents
- 4. Architecture diagram
- 5. Comparison: memory models for agentic systems
- 6. Related
- 7. Upcoming Anthropic webinars (related)
- 8. Resources
1. Basics
| Field | Value |
|---|---|
| Date | |
| Format | Webinar (Goldcast), 60 min |
| Host | Anthropic |
| Page | anthropic.com/webinars |
| Recording | Goldcast on-demand |
| YouTube | YouTube (auto-subs available) |
| Duration | 59:36 |
2. Speakers
| Name | Company | Role |
|---|---|---|
| Charles Packer | Letta | CEO / Co-Founder |
| Shrey Pandya | Browserbase | Growth Engineer |
| Omeed Mariani | Anthropic | Applied AI |
3. Core concepts
3.1. Effort tiers (Opus 4.8)
Opus 4.8 introduces a five-level effort system that replaces the binary "think hard / think fast" of earlier models:
{"effort": "low" | "medium" | "high" | "xhigh" | "max"}
highis the new default (was medium). Same token budget as before, better results. This is the "free upgrade" tier.mediumcosts meaningfully less. For routine tasks (the daily audit, style checks) this is the right choice.xhighandmaxare new.maxenables Ultracode: dynamic multi-agent workflows for latency-insensitive tasks.
The cost implications for our LiteLLM proxy routing: the daily audit
should use medium (cheapest adequate model), brief generation uses
high (default), and formal verification tasks use xhigh or max.
3.2. Self-narration
4.8 reports progress between tool calls and writes fuller wrap-ups without scaffolding. The old pattern of "summarize every N calls" is no longer needed. A one-line silence default recovers 4.7-style quiet output with no quality change.
This connects to the REPL gossip model1: if the agent narrates its progress, participants sharing the REPL heap see intermediate state without polling.
3.3. Ultracode
The new top of the effort menu: xhigh effort + dynamic multi-agent
workflows. Claude Code spawns subagents for the hardest,
latency-insensitive tasks. This is the mechanism behind the
"Running 3 agents" display in the Letta demo.
3.4. Letta: Context Repositories
The key architecture from Charles Packer's demo. Letta (formerly MemGPT2) provides stateful agents with persistent memory via a filesystem abstraction:
3.5. Agentic Context Engineering
LLMs have limited context, so use LLMs to manage their own context. Memory subagents rewrite context over time for continual learning in token space. Structure memory in clear hierarchies:
system/ ├── human/ │ ├── prefs/ │ │ ├── coding_style.md │ │ ├── communication.md │ │ └── workflow.md │ └── identity.md ├── project/ │ ├── gotchas.md │ └── overview.md ├── persona.md ├── history/ │ └── project_timeline.md ├── claude.md ├── codex.md └── api_documentation.md
Our equivalent: CLAUDE.md + .claude/ + .beads/ + auto-memory
files in ~/.claude/projects/. The hierarchy is similar; the format
differs (Letta uses FS paths, we use org property drawers + JSONL).
3.6. Coding agents are general agents
"The most powerful way for an agent to interact with anything is via bash… including interacting with memory/context."
- Programmatic modification of memory/context
- Batch operations to restructure memory
- Coding is "in distribution"3
3.7. Local vs virtual filesystems
"How can we prevent agents from being 'stuck' on a local machine?"
From 1 agent : 1 machine to 1 agent : N machines.
This is exactly the problem the shared REPL solves: the nREPL on nexus is reachable from laptop, hydra, and any LAN machine. The agent's state (loaded namespaces, bound vars) is on the server, not the client.
3.8. Letta Code architecture
Letta Code agents live on the server (state/memory), but can move between deployment environments:
- Macbook → Letta Code server
- GitHub Action → Letta Code server
- Cloud Sandbox → Letta Code server
Server stores: Agent state (Postgres) + Context Repo (git + GCS).
Each agent has a UUID: agent-0c771d18-bc8f-4ae2-81a1-f64508688db1.
3.9. KV caching for continual learning
System-prompt editing is key to continual learning (in token space):
System Prompt → LLM → Experience
↑ │
└── Update memory ───┘
based on new experiences
This is the feedback loop our daily-publish audit implements: audit brief → annotate with verdict → next audit reads the annotation.
3.10. KV cache pricing (Opus 4.8)
| Model | Base Input | 5m Cache Writes | 1h Cache Writes | Cache Hits | Output |
|---|---|---|---|---|---|
| Opus 4.8 | $5/MTok | $6.25/MTok | $10/MTok | $0.50/MTok | $25/MTok |
Cache hits are 10x cheaper than base input. The Letta memory approach benefits from this: the system prompt (with memory) is cached; only the new experience invalidates the suffix.
3.11. Mid-conversation system messages (Opus 4.8)
New in 4.8: {"role": "system"} messages after a user turn.
Mid-conversation system messages have the same authority as the
top-level system field but don't invalidate the cached prefix.
Use for instructions that become relevant later.
Ref: platform.claude.com/docs/…/mid-conversation-system-messages
3.12. Letta memory UI
The Letta UI shows memory as nodes (PERSONA, ONBOARDING, HUMAN)
with recent memory changes tracked:
- "Dreaming" state:
chore(reflection): update onboarding tracking - "Tutor" role:
Save the user's name as provided - Git-style commits: "Initial commit" per user session
The "Reflected on /palace, the halls remember more now" message suggests a method-of-loci metaphor for memory organization.
3.13. Browserbase: headless browser for agents
Browserbase provides managed headless Chrome infrastructure. Agents get a browser session via API, execute actions (click, type, navigate, screenshot), and return structured results.
5. Comparison: memory models for agentic systems
| Property | Letta (FS) | wal.sh (REPL) | Claude Code (CLAUDE.md) |
|---|---|---|---|
| State location | Virtual filesystem | JVM heap (atoms, vars) | .claude/ + CLAUDE.md |
| Isolation | Per-agent worktree | Shared heap | Per-session |
| Persistence | Git commits | Git + .beads/, .verify/ |
CLAUDE.md (manual) |
| Conflict resolution | Git merge/rebase | Git + REPL reload! |
Manual |
| Cross-session memory | FS survives restart | Heap lost on JVM restart | CLAUDE.md persists |
| Multi-agent | Concurrent worktrees | Gossip (shared vars) | Agent tool spawns subagents |
| Provenance | Git log | Verification ledger | Chat JSONL |
6. Related
- Shared REPL as Gossip Protocol – our memory model, compared here
- PAgE 2026 – formal methods for agentic engineering
- Agent Sandbox Architectures – containment for agent execution
- LLM Cost Monitoring – effort tiers and cost routing
- Sandbox Practical Configs – credential boundary (LiteLLM proxy)
- Annotation Systems – property drawers as agent memory annotations
7. Upcoming Anthropic webinars (related)
Triaged from anthropic.com/events on 2026-06-21.
| Date | Title | Relevance |
|---|---|---|
| Monitoring and Securing Agents at Scale (Google Cloud) | Agent telemetry, sandbox isolation | |
| Cowork Workshop: Foundations | Multi-agent collaboration | |
| Securing & Governing Claude: Compliance API | Bot compliance, governance | |
| Claude Security: Putting Claude to Work for Defenders | Defensive security |
8. Resources
- Letta – stateful agent framework (formerly MemGPT)
- Letta Agent – agent filesystem documentation
- Browserbase – headless browser infrastructure for agents
- MemGPT paper (arXiv:2310.08560) – the research behind Letta
Footnotes:
Packer, C. et al. "MemGPT: Towards LLMs as Operating Systems." arXiv:2310.08560 (2023). Letta is the production version.
- Memory subagents revise memory in concurrent git worktrees
- Conflict resolution managed through git (merge/rebase)
- 3 parallel agents ran as
history-analyzerrole, each processing different history (Claude pt 1, Claude pt 2, Codex), 10-23 tool uses each - Each agent has a Letta URL:
app.letta.com/agents/<uuid>
"In distribution" means the task (writing code to modify files) is the same kind of task the model was trained on. Restructuring memory via bash is just file editing – something coding models do well.