Sections
How to use a Harness
The practical sequence: assemble a version, run it, connect a participant, review the decision, and move only a confirmed result into the plan.
Assemble a version
- Create a Harness for one repeatable decision type, not a universal council.
- Create a Version and pin its input/output schema, roles, and step graph.
- For each role, state its objective, responsibilities, prohibitions, and result format.
- Add rules for tools, data access, voting, budget, and human approval.
- Validate the graph and publish a version only after it passes review.
harness_create({ name: "architecture-review", description: "Evaluate architecture options before a decision" })
harness_create_version({ harness_id, input_schema, output_schema })
harness_add_role({ version_id, key: "proposer", goal: "Propose a solution option" })
harness_add_workflow_node({ version_id, kind: "proposal", role_key: "proposer" })
harness_validate({ version_id })
harness_publish({ version_id })Run and observe
A Run receives a concise goal, the needed context, and links to Flownix nodes. Follow the timeline, assignments, open critiques, votes, budget checks, and approval requests—not a hidden chat.
External agent participation
An agent finds available WorkItem, claims its lease, sends heartbeats, and publishes a structured result. If it cannot finish, the lease expires and work safely returns to the queue; duplicate execution must not create a second result.
work_list_available({ run_id })
work_claim({ work_item_id, agent_instance_id })
work_heartbeat({ work_item_id, lease_token })
work_complete({ work_item_id, lease_token, result: { summary: "Outcome of the assigned step" } })