Skip to content

How A2A Works

A2A is the core of what makes Moe’s different. Instead of one AI trying to do everything, you deploy a team of specialized agents that pass work between each other through observable channels.

Agents talk to each other through Telegram topics (or Slack channels). Every message between agents is visible to you in real time.

Support Agent → posts to #research topic
Research Agent → picks up the brief, does the work
Research Agent → posts findings to #research
Content Agent → reads findings, makes the fix
Content Agent → posts to #ops: "committed, deploying"
QA Agent → verifies the deployment
QA Agent → posts to #ops: "verified, screenshot attached"
Support Agent → closes the loop with the customer

Every step is logged. Every handoff is visible. Nothing happens in a black box.

You might wonder why agents don’t just call each other directly through an API. They could. But using a messaging platform gives you three things that matter for production:

  1. Observability — you see every message in real time, no special dashboard needed
  2. Interruptibility — you can jump in at any point and redirect an agent
  3. Audit trail — full searchable history of every decision, built in

For enterprise deployments, this is often a compliance requirement. For smaller teams, it just means you always know what your agents are doing.

Moe’s supports three levels of human oversight for every handoff in a pipeline:

The agent proceeds immediately. You get notified but nothing stops.

Best for: routine tasks, low-risk changes, high-confidence operations.

Research Agent finishes → immediately hands off to Content Agent
You get a notification: "Research complete, Content Agent is making the fix"

The agent stops and waits for your explicit approval before proceeding.

Best for: sensitive changes, customer-facing content, financial operations.

Research Agent finishes → posts findings → waits
You review the findings → reply "approved" or "hold, check X first"
Content Agent only proceeds after your approval

The agent pauses for a configurable window to give you time to review. If you don’t respond within that window, it proceeds automatically.

Best for: teams that want oversight without bottlenecks. Good default for most workflows.

Research Agent finishes → posts findings → waits 15 minutes
If you respond: follows your direction
If no response after 15 min: proceeds to Content Agent automatically

You configure this per-handoff, so you can have tight oversight on customer-facing steps and full autonomy on internal ones.

In your agent’s pipeline config, set the review mode per step:

pipeline:
- agent: research
on_complete: handoff
review: none # autonomous
- agent: content
on_complete: handoff
review: timed # wait for human
review_timeout_minutes: 15
- agent: qa
on_complete: handoff
review: required # always wait for approval

Agents work one after another. Each waits for the previous to finish.

Support → Research → Content → QA → Support

One agent dispatches to multiple agents in parallel.

Support → Research (competitor A)
→ Research (competitor B)
→ Research (competitor C)
← all results collected
→ Content (write comparison)

An agent tries to handle something, and if it can’t, passes it up.

Support Agent receives ticket
→ tries to answer from knowledge base
→ can't find answer
→ escalates to Research Agent
→ Research Agent finds the answer
→ Support Agent replies to customer

Any Moe’s agent can participate in A2A workflows. The key ingredients:

  1. Shared communication channel — all agents in the same Telegram group with topics
  2. Clear handoff format — structured messages so receiving agents know what to do
  3. Pipeline configuration — define the order, review gates, and error handling

See Pipelines for detailed configuration guides.