Why Task-First Matters
In Key Concepts, you saw how Bindu task states enable interactive conversations. The reason Bindu leans so hard on tasks is that tasks are what make orchestration possible in the first place.| Message-first thinking | Task-first thinking |
|---|---|
| Communication is easy, but execution is hard to track | Every unit of work has a durable identifier and state |
| Parallel work becomes ambiguous | Multiple tasks can run at the same time with separate IDs |
| Dependencies live in application logic only | referenceTaskIds makes task relationships explicit |
| Paused work is hard to resume cleanly | State tells you whether work is working, input-required, or done |
| Multi-agent coordination gets messy quickly | Orchestrators can manage work by task instead of by guesswork |
Bindu follows the A2A “Task-only Agent” pattern where all responses are Task objects. That is what gives orchestrators a stable unit to coordinate at scale.
How The Task-First Pattern Works
Every message creates a task that moves through a lifecycle such assubmitted -> working -> input-required -> completed. The message starts the work, but the task is what tracks it.
The Core Model
A task gives the system a few things that a plain message cannot:- a unique task ID
- clear task state
- explicit dependency links through
referenceTaskIds - safe parallel execution across agents
Trackable
Every interaction becomes a unit of work with its own task ID.
Stateful
A task can be working, blocked on input, completed, or failed without losing the thread of execution.
Composable
Tasks can depend on other tasks, which is what makes orchestration and parallelism practical.
The Lifecycle: Create, Coordinate, Complete
Under the hood, every task-first workflow moves through three practical stages.Creation
A message creates a task. That task gets a unique ID and starts its lifecycle in a known state.The quick recap is still the core of the model:The important part is not only the message itself. It is the fact that the work now has a durable identity the system can track.
Coordination
Once work has task IDs, orchestrators can coordinate several pieces of work at the same time.Real-world example: travel planningWithout task IDs, the orchestrator could not keep that workflow straight. With task IDs, dependencies and parallel work become explicit.
Messages Vs Artifacts
Tasks sit at the center, but messages and artifacts still play different roles around them.| Aspect | Messages | Artifacts |
|---|---|---|
| Purpose | Interaction, negotiation, status updates, explanations | Final deliverable, task output |
| Task State | working, input-required, auth-required, completed, failed | completed only |
| When Used | During task execution AND at completion | When task completes successfully |
| Immutability | Task still mutable (non-terminal) or immutable (terminal) | Task becomes immutable |
| Content | Agent’s response text, explanations, error messages | Structured deliverable (files, data) |
- Intermediate states (
input-required,auth-required) - message only, no artifacts - Completed state - message (explanation) plus artifact (deliverable)
- Failed state - message (error explanation) only, no artifacts
- Canceled state - state change only, no new content
Messages carry the conversation while work is happening. Artifacts carry the deliverable once the work is done.
Task State Rules
There are two broad categories of task state. Non-terminal (task open):submittedworkinginput-requiredauth-required
completedfailedcanceledrejected
A2A Protocol Compliance
The task-first model lines up with the A2A protocol in a few concrete ways.Task Immutability
Terminal tasks cannot restart. Refinements create new tasks.
Context Continuity
Multiple tasks can share
contextId so conversation history stays coherent.Dependency Management
referenceTaskIds gives the system a clean way to express chained work.- Task Immutability - terminal tasks cannot restart; refinements create new tasks
- Context Continuity - multiple tasks share
contextIdfor conversation history - Parallel Execution - tasks run independently, tracked by unique IDs
- Dependency Management - use
referenceTaskIdsto chain tasks
The Value Of Task-First Execution
This model matters most when workflows stop being linear.Parallel execution
Parallel execution
Multiple tasks can run at the same time because each task has its own ID and state. The system does not need to overload one message thread with all active work.
Dependency tracking
Dependency tracking
When one task depends on another,
referenceTaskIds makes that dependency explicit. This is what lets an orchestrator wait for Task2 and Task3 before starting Task4.Interactive pauses
Interactive pauses
A task can move into
input-required or auth-required and stay there until the missing piece arrives. That pause does not destroy the task or require the system to infer where to resume.Multi-agent coordination
Multi-agent coordination
Orchestrators like Sapthami can coordinate several agents because the work is represented as tasks, not just as a pile of messages with implied state.
Related
- /bindu/introduction/key-concepts
- /bindu/concepts/protocol