AgentDeck 6.0 is here: serve one deck over HTTP, AG-UI or the terminal.See what's new

Agentic software should feel like software.

Build agents, tools and workflows as normal software. AgentDeck gives them one execution model you can observe, control and extend.

Agent
Tool
Workflow
Skill

Built to stay out of your way.

Agent systems accumulate infrastructure quickly, and the decisions that look small early are the hardest to change later. Execution, control, state, observability, reporting, interaction and integration already have their place in AgentDeck, and they were designed to work together: less machinery to build today, and nothing to retrofit around your application when you need the next one.

The model

Simple code. Serious capabilities.

Your code stays about the behavior and the structure of your application. Tools do work, agents make decisions, workflows manage process, and a Deck is where they come together.

jack = Agent(
    name="Jack",
    instructions="Help developers build with AgentDeck.",
    tools=[search_docs, read_doc, read_changelog],
)

deck = Deck(agents=[jack], context=DocsCorpus)
deck.serve(Native.http("/api"), AGUI.http("/agui"), Terminal.stdio())
  • Run
  • Jack
  • search_docs
  • read_doc
  • read_changelog
That code, running. Everything else attaches to this same model.
Events
One ordered stream of what happened.
Reporting
Progress and status, sent from inside the work.
Control
Execution can be paused, resumed or cancelled.
Interaction
Branches can wait for external input.
State
Sessions that outlive a single call.
Bindings
Native HTTP/SSE, the terminal, AG-UI clients such as Assistant UI, and any binding you write reach the same run.

Needing more costs one call, not a redesign.

Concurrency
ctx.parallel(...)Child runs whose failures and cancellation compose.
A human
ctx.ask(...)The run suspends in place, durably, and resumes on the next line.
Another agent
ctx.invoke(...)A child run with its own cost, cancel cascade and events.
A protocol
deck.serve(AGUI.http("/agui"))One more surface onto the same runs and controls.

The complexity is still there. It just lives in the layer built for it. The outside reaches them through bindings: the runtime never learns which one is talking.

Jack, running

Anything you want to ask?

Jack is an AgentDeck developer agent running on this site. Ask him about the SDK, architecture, integration, or paste code you are working with. The tree beside him is his actual run: every node is an event the runtime emitted, in the order it emitted it.

Try one

Execution

Ask Jack something. Every node that appears here is an event his run emitted.

Jack is built entirely with AgentDeck.

See how Jack is built

Build agentic software like software.

pip install agentdeck-sdk