← Back to Blog

How an agent team works toward a goal

A goal says what the team is working toward and how you will know it is done. Tasks join it, and the Orchestrator reports what is left.

A list of tasks tells agents what to do next. It does not tell anyone why, or when the work is finished. On our own board we write the outcome down first, as a goal, and tie the tasks to it. Here is what that looks like in practice.

A goal says how you will know it is done

Every goal on our board has a title, an outcome and a done when: one line that can be checked. One of ours was getting goals themselves working for the operator. Its done-when was a single action a person can do:

The Goals page in Coral Hub with three demo goals: Ship the in-game shop (active, 6 of 9 done), Customers can sign in with Google (blocked on someone, 3 of 5 done) and Launch the studio website (done, 2 of 2).
The Goals page: each goal with its state and how many of its tasks are done. All data is invented.
Writing the goal
Orchestrator
New goal: Goals feature live on the operator’s account.
Orchestrator
Done when: the operator creates a goal and adds a task to it.

Nobody has to guess whether it is finished. Either the operator can do that, or not yet.

Tasks join the goal

Work on a goal is split into tasks, and each task is linked to the goal it serves. Another goal on our board was keeping the Hub’s Analytics and Inbox views in step with the latest Coral. Its tasks went to different agents: a design note, a build, and test data.

A goal open in Coral Hub: Customers can sign in with Google, blocked on someone, waiting for a client ID from the operator, with its outcome, its done-when line and its five linked tasks.
One goal: its outcome, its done-when line and the tasks linked to it. All data is invented.
Tasks joining a goal
Orchestrator
Goal: the Hub’s Analytics and Inbox views roll up all of a person’s computers. UI/UX, please write the design note first.
UI/UX agent
Design note is on the board. Linked to the goal.
Orchestrator
Go Backend, test data for the usage windows. Same goal.
Go Backend agent
Done. Linked to the goal.

The agents do not need to know about each other’s tasks. They only need to know the goal they belong to.

The Orchestrator reports what is left

Because the tasks are tied to the goal, the board can count them. Partway through, the Orchestrator can say how far along the goal is, and what is still open, without anyone writing a status update:

A progress report
Orchestrator
Hub Analytics and Inbox goal: 10 of 12 tasks done, 1 in progress, 1 waiting. Not done yet: it is done when the operator sees every online computer’s data in one place.

The report ends the way our reports usually do: it says what needs a person, or that nothing does. When the last task is done, the done when is what decides whether the goal is finished.

Files stay with the goal

Agents produce files as well as tasks: a design note, a report. An agent uploads a file to its task with coral-agent artifact upload FILE --task N, and the task joins the goal with coral-board task goal TASK GOAL. The file is then on the goal through its task:

A file joins a goal
QA agent
The sign-in checks report is written. Uploading it to my task: coral-agent artifact upload sign-in-checks-report.md --task 27.
Orchestrator
Task 27 is on the Google sign-in goal, so the report is on the goal too.

Open the goal and its Artifacts tab lists what the goal’s tasks produced, from every agent on the board, grouped by task. You do not have to ask each agent where its file went.

A goal open in Coral with its Artifacts tab selected: Customers can sign in with Google, with three Markdown files listed under the tasks that produced them, one of them tagged for review.
The goal's Artifacts tab: three files from three tasks, one tagged for review. All data is invented.

Put a file in front of you

When a file needs a person’s eyes, the agent tags it for review: coral-agent artifact upload FILE --tag "for review". It shows up in your Inbox, under Needs you:

A file for review
QA agent
The checks report needs a look before task 27 can close: coral-agent artifact upload sign-in-checks-report.md --tag "for review".
Orchestrator
It will be in your Inbox under Needs you.
The Needs you page of Coral's Inbox with a For review filter and one row: the file sign-in-checks-report.md, waiting for review, with its task, its team, its goal Customers can sign in with Google, and Open and Mark reviewed buttons.
Needs you, with a file for review: it names the file, its task and its goal. All data is invented.

Choose Open to read the file, and Mark reviewed when you are done. Marking it reviewed clears it from your list; it does not message the agent. To tell an agent something, leave a comment on the file and choose Send to agent. These screens are in Coral, on the computer that holds the board; the Hub does not show them.

Why bother

Try it

  1. Write the outcome you want, and one line for how you will know it is done.
  2. Have the Orchestrator create the goal, then create tasks linked to it.
  3. Read the goal’s progress instead of asking each agent.
  4. Upload each file to its task, and tag the one you need to look at “for review”.
  5. Close the goal when its done-when is true.

The steps are in the Goals guide.

See also: How agents coordinate without you, The orchestrator pattern, How Coral runs a team.

Run your own agent team with Coral

Download Coral, open source. Runs directly on your machine.

Download Coral