Skip to content

Example walkthroughs ​

This page walks through Agentweaver from project creation to reviewed work. Collective gates depend on the selected workflow. For built-in software workflows:

children: Agent → Assemble-ready
combined output: RAI → Build & Test → Human review → Merge → Scribe

The shared canonical-default-workflow image is awaiting owner reconciliation of collective inputs, applicable Build & Test, and coordinator-driven revision. Until promotion, the textual pipeline and review guide describe current behavior. Children do not run their own RAI, human review, merge, or Scribe.


Scenario 1 — Create a project, cast a team, run the default workflow, review and merge ​

This is the define-outcome path with autopilot off for software delivery, not the direct-start or unattended-confirmation path.

1. Create a project ​

From the Project Gallery (/projects), choose a creation path:

  • Create blank project — enter a name and a repository folder. Agentweaver initializes an empty git repository (POST /api/projects with origin: blank).
  • Create from GitHub — enter a name, select a Repo App-authorized repository, and a folder. Agentweaver first reserves a trackable project, then clones it after consuming an opaque repository_selection_code (POST /api/projects with origin: github). A disconnected client does not cancel work after that reservation. Retrying the same still-valid selection code returns the same creating, active, or failed project instead of creating another workspace.

You land on the project Dashboard (/projects/{id}).

2. Cast a team ​

Open Team → Cast (the Casting Wizard at /projects/{id}/team/cast). The wizard offers three strategies:

Strategy (UI tab)What it doesAPI
FormulateDescribe the goal in plain language; the wizard proposes a rosterPOST /api/projects/{id}/casting/proposals (mode: free_text, goal)
TemplatePick a predefined team template (e.g. Quick Software Development)GET /api/casting/templates, then POST .../casting/proposals (mode: scenario, template_id)
AnalyzeThe wizard reads the project files and suggests a best-fit teamPOST .../casting/proposals (mode: analysis)

(A manual mode also exists, which takes an explicit role_ids list.)

Review the proposed members, amend if needed (PATCH .../casting/proposals/{proposalId}), then Confirm (POST .../casting/proposals/{proposalId}/confirm). The casting algorithm assigns named personas from a thematic universe (The Matrix, Star Wars, and others) to each role, and the team is recorded. See Agent Teams & Blueprints.

3. Start the orchestration ​

From the project Board (/projects/{id}/board), click Start orchestration and enter a goal:

"Add input validation to the signup form and cover it with unit tests."

This calls POST /api/projects/{id}/orchestrations and takes you to the coordinator run page (/projects/{id}/orchestrations/{runId}).

4. Confirm the OutcomeSpec ​

The coordinator drafts an OutcomeSpec — goal, desired outcome, scope, and assumptions — and emits a coordinator.outcome_spec event. No agent work starts until you confirm it.

  • Confirm: POST /api/runs/{runId}/outcome-spec/confirm
  • Revise with feedback: POST /api/runs/{runId}/outcome-spec/revise

5. Watch the WorkPlan and topology ​

On confirmation, the coordinator decomposes the spec into a WorkPlan (coordinator.work_plan) — a dependency graph of subtasks. It dispatches independent subtasks in parallel, each in its own isolated git worktree. The topology view streams live over SSE (GET /api/runs/{runId}/stream); you can also fetch the plan (GET /api/runs/{runId}/work-plan) and child runs (GET /api/runs/{runId}/children).

Each child emits subtask.dispatched → subtask.running → subtask.assemble_ready. While the orchestration is active you can steer it (POST /api/runs/{runId}/steer) — send a directive, redirect a child, or stop the run.

6. Review and merge the assembled diff ​

When children reach assemble-ready, the coordinator combines their output and runs the selected collective gates, including RAI and applicable Build & Test. When the run reaches Human Review, open the file panel:

  • Changes lists modified files (GET /api/runs/{runId}/files); click any file for a diff (GET /api/runs/{runId}/files/{path}).
  • Commit and Merge approves and merges to the originating branch: POST /api/runs/{runId}/review with approved: true (or POST /api/runs/{runId}/commit).
  • Change requests a revision: POST /api/runs/{runId}/review with request_changes and feedback — the coordinator decides how to steer or dispatch the required work.
  • Decline discards the work: POST /api/runs/{runId}/review with approved: false.

If the target branch has moved, the merge may report conflicting files (merge.conflicted); the worktree is preserved for manual resolution.

7. Scribe records what the team learned ​

After successful merge, Scribe records the session and promotes only low-risk learning, pattern, and update entries attributed to that completed run. architectural/scope entries remain for owner/coordinator review. Structured trust records are authoritative; files are inspectable mirrors. See Team Memory.


Scenario 2 — Pick up a backlog task with the board and heartbeat ​

Use the Kanban board to queue work and let the heartbeat dispatch it.

  1. Capture a task in the Backlog column (POST /api/projects/{id}/backlog/tasks). Add a description for context — sharper descriptions produce sharper OutcomeSpecs.
  2. Rank the backlog by dragging cards (POST .../backlog/tasks/{taskId}/reorder), and optionally pin a workflow per card (PUT .../backlog/tasks/{taskId}/workflow-override).
  3. Move to Ready when the task is ready to run (POST .../backlog/tasks/{taskId}/ready), or send everything at once (POST .../backlog/ready-all).
  4. The heartbeat claims Ready tasks up to the concurrency limit and starts a coordinator orchestration for each, moving the card to Active. Inspect status on the Heartbeat page (GET /api/diagnostics/heartbeat).
  5. When approval is needed, open Human Review as in Scenario 1. Failed runs land in Problems; inspect diagnostics and use explicit retry/recovery controls. Dragging is supported only between Backlog and Ready, not Problems to Ready.

See Board and Backlog.


Scenario 3 — Decompose a specification into backlog tasks ​

Turn a PRD, design doc, or feature spec already in the repository into queued work.

  1. Open the Workspace page (/projects/{id}/workspace) and browse the repository (GET /api/projects/{id}/workspace, GET /api/projects/{id}/workspace/files).
  2. Select a Markdown spec file and choose Decompose into tasks (POST /api/projects/{id}/backlog/decompose with the file_path). The response lists proposed backlog items (and flags any that already exist).
  3. Review the preview and explicitly confirm (confirm: true) to persist new items. Edit saved tasks, then move selected items to Ready for heartbeat pickup. See Decomposition.

Scenario 4 — Drive the full lifecycle from an MCP client (Copilot CLI) ​

Everything above is available programmatically through the MCP server. Any MCP-compatible client can run the complete lifecycle. The tool names below are exact.

  1. Sign in and connect repository access if needed — complete MCP OAuth with Agentweaver's Entra-backed identity. When GitHub access is needed, use github_repo_app_connect, open its browser_url, and poll github_repo_app_authorization_status.
  2. Choose or create a project — project_list / project_get, or project_create. GitHub-origin creation first uses github_repository_selections_list and github_repository_selection_issue for its opaque selection code. Once the project exists, a Project Owner can use project_copilot_app_connect and project_copilot_app_authorization_status when a project binding is needed. Check project_github_capability_status; an eligible platform provider can supply project work without a project Copilot binding.
  3. Confirm a team — team_cast defaults to a proposal. Confirm via team_cast(confirm_proposal_id=...) or confirm=true; inspect with team_get.
  4. Choose one launch path — queue via backlog_capture_task and backlog_move_to_ready for heartbeat pickup, or explicitly start a new run. Do not queue the task and then start it again with run_task.
  5. For manual define-outcome control — use coordinator_start with start_mode="defineOutcome", autopilot=false, and optional workflow_id. Inspect coordinator_outcome_spec_get, then use coordinator_outcome_spec_confirm or coordinator_outcome_spec_revise. Alternatively, run_task defaults to direct mode and starts/polls a new run.
  6. Observe and steer — coordinator_work_plan_get, coordinator_children_get, orchestration_topology, coordinator_steer; monitor child runs with run_status, run_watch (SSE), run_show_artifacts, run_get_file.
  7. Review — list artifacts before run_get_file. run_review(approved=true|false) supports approve/decline only. Request-changes feedback is available through the web/REST review surface; coordinator_steer is a separate steering control.
  8. Optionally curate/export knowledge — decision_inbox_submit, memory_record, memory_search, or memory_export. Export is not a mandatory final run stage.

See the MCP reference for full tool parameters and the API reference for the underlying endpoints.

Diagram details and constraints
ElementContract
titleThe board is a projection
subtitleColumns reflect persisted task and run state—not a separate workflow engine.
group-title0Before and during execution
group-title1Review / terminal outcomes
BacklogBacklog
BacklogCaptured task; not queued
Backlogtask: backlog
ReadyReady
ReadyQueued task
Readytask: ready
ActiveActive
ActiveWork is in progress
Activedefault non-review bucket
ProblemsProblems
ProblemsFailed / declined / merge failed
Problemsor assembly blocked / failed
Human ReviewHuman Review
Human ReviewAwaitingReview / InReview
Human Reviewor assembly stage: Review
DoneDone
DoneCompleted / Merged / AssembleReady
Doneor plan Complete / stage Done
e1queue
e2claim + start
e3await review
e4finish
e5problem
assurance-titleDEFAULT BUCKETS · NOT A NEW STATE MACHINE
assurance-line1Configured workflow stages may replace the default run columns. Arrows summarize typical changes, not every path.
assurance-line2The board polls persisted state. Ready tasks with unmet dependencies stay Ready; blocked is a flag.
BacklogEntity
BacklogBacklogTask
BacklogState
BacklogRun
BacklogNot required
BacklogAction
BacklogMove to Ready
ReadyBlocked
ReadyDependency metadata
ReadyPickup
ReadyAtomic claim
ActiveInput
ActiveCoordinator run
ActiveStatus
ActiveNon-review default
ActivePlan
ActiveDispatch / assembly
ActiveApproval
ActiveSeparate pending flag
ProblemsFailed / Declined
ProblemsMerge
ProblemsMergeFailed
ProblemsAssembly
ProblemsBlocked / Failed
ProblemsAlso
ProblemsAssemblyDeclined
Human ReviewAwaitingReview
Human ReviewInReview
Human ReviewReview stage
Human ReviewApprove
Human ReviewResumes execution
DoneCompleted / Merged
DoneAssembleReady
DoneComplete
DoneDone stage
backlogNo run is required yet; Move to Ready to queue work
readyUnresolved dependencies stay here; Blocked is a flag, not a column
progressClaimed tasks link to their run; Pending approval is a separate flag
failedBlocked assembly is recoverable; Not every problem is terminal
reviewApproval resumes the workflow; Approval alone is not Done
donePersisted-state mapping; Not merely a clicked approval
notesDEFAULT BUCKETS · NOT A NEW STATE MACHINE; Configured workflow stages may replace the default run columns. Arrows summarize typical changes, not every path.; The board polls persisted state. Ready tasks with unmet dependencies stay Ready; blocked is a flag.
groupsBefore and during execution; Review and terminal outcomes
Diagram details and constraints
ElementContract
titleMCP lifecycle: choose one launch path
takeawayQueue pickup and explicit starts are alternatives; inspection and approvals remain explicit.
m-prep-titlePREPARE AUTHORITY AND A CONFIRMED TEAM
m-launch-titleCHOOSE ONE • DO NOT QUEUE AND EXPLICITLY START THE SAME TASK
m-observe-titleOBSERVE, INSPECT AND DECIDE • NOT AUTOMATIC SUCCESS
AuthorizeAuthorize
AuthorizeMCP OAuth / Entra identity
AuthorizeRepo capability is separate
Choose projectChoose project
Choose projectproject_list / project_create
Choose projectCheck provider + repo readiness
Confirm teamConfirm team
Confirm teamteam_cast: proposal first
Confirm teamconfirm_proposal_id or confirm
Define outcomeDefine outcome
Define outcomecoordinator_start
Define outcomedefineOutcome; autopilot=false
Start and pollStart and poll
Start and pollrun_task
Start and pollDefault direct; creates NEW run
Queue for heartbeatQueue for heartbeat
Queue for heartbeatbacklog_capture_task
Queue for heartbeatthen backlog_move_to_ready
Observe / steerObserve / steer
Observe / steercoordinator_work_plan_get
Observe / steercoordinator_children_get
Inspect filesInspect files
Inspect filesrun_show_artifacts
Inspect filesthen run_get_file
Review when gatedReview when gated
Review when gatedrun_review(approved: bool)
Review when gatedtrue approves; false declines
m1authorize
m2prepare
m3confirm
m4new run
m5reserved run
m6list
m7inspect
m-confirm-headingMANUAL GATE
m-confirm-bodycoordinator_outcome_spec_get → coordinator_outcome_spec_confirm (or coordinator_outcome_spec_revise).
m-pickup-headingHEARTBEAT
m-pickup-bodyAtomically claims Ready item. Pickup autopilot controls confirmation, not tool or merge approval.
m-direct-headingBOUNDED WAIT
m-direct-bodyReturns artifacts, a gate, a next action, a timeout, or a failure. Never assume completion.
m-outcomes-headingREVIEW PARITY
m-outcomes-bodyRequest changes: web/REST review, not run_review. coordinator_steer is separate. memory_export is optional.
m-gates-headingCOLLECTIVE GATES
m-gates-bodyChildren: Agent → Assemble-ready. Selected workflow gates apply to combined output, not per child.
notes[object Object]; [object Object]; [object Object]; [object Object]; [object Object]
groups[object Object]; [object Object]; [object Object]