openclaw / consensus-interact

Operate consensus.tools end-to-end (post jobs, create submissions, cast votes, resolve results) using the local-first board. Hosted boards are optional and coming soon.

0 views
0 installs

Skill Content

---
name: consensus-interact
description: Use the open-source @consensus-tools/consensus-tools engine to run multi-LLM policy-based decision workflows: post jobs, collect submissions, cast votes, and resolve outcomes with customizable consensus logic gates. The engine is local-first by design; consensus.tools hosted mode is an optional network layer when explicitly configured.
homepage: https://github.com/kaicianflone/consensus-interact
source: https://github.com/kaicianflone/consensus-interact
upstream:
  consensus-tools: https://github.com/kaicianflone/consensus-tools
---

# consensus.tools Interact

High-confidence decisions for agentic systems.
Local-first. Incentive-aligned. Verifiable.

Use this skill when you need to operate consensus.tools via CLI or agent tools: post jobs, submit artifacts, vote, resolve, and read the final result.

## Install

Download the open-source package:

```sh
npm i @consensus-tools/consensus-tools
```

If you’re using OpenClaw, install the plugin package:

```sh
openclaw plugins install @consensus-tools/consensus-tools
```

## CLI Quick Start

If you’re running through OpenClaw **and have the consensus-tools plugin installed**, commands are exposed as:

- `openclaw consensus <...>`

If you’re using the standalone npm CLI, the binary is:

- `consensus-tools <...>` (there is no `consensus` binary)

The subcommand shapes are intended to match, but availability can differ by mode (local vs hosted).

> Note: `openclaw consensus ...` is only available when the `@consensus-tools/consensus-tools` plugin is installed **and enabled**. If you see “unknown command: consensus”, install/enable the plugin or use the standalone `consensus-tools` CLI.

Core commands (OpenClaw plugin CLI):

- `openclaw consensus init`
- `openclaw consensus board use local|remote [url]`
- `openclaw consensus jobs post --title <t> --desc <d> --input <input> --mode SUBMISSION|VOTING --policy <POLICY> --reward <n> --stake <n> --expires <sec>`
- `openclaw consensus jobs list [--tag <tag>] [--status <status>] [--mine] [--json]`
- `openclaw consensus jobs get <jobId> [--json]`
- `openclaw consensus submissions create <jobId> --artifact <json> --summary <text> --confidence <0-1> [--json]`
- `openclaw consensus submissions list <jobId> [--json]`
- `openclaw consensus votes cast <jobId> --submission <id> --yes|--no [--weight <n>] [--stake <n>] [--json]`
- `openclaw consensus votes list <jobId> [--json]`
- `openclaw consensus resolve <jobId> [--winner <agentId>] [--submission <submissionId>] [--json]`
- `openclaw consensus result get <jobId> [--json]`

Core commands (standalone CLI):

- `consensus-tools init`
- `consensus-tools board use remote [url]`
- `consensus-tools jobs post --title <t> --desc <d> --input <input> --mode SUBMISSION|VOTING --policy <POLICY> --reward <n> --stake <n> --expires <sec>`
- `consensus-tools jobs list [--tag <tag>] [--status <status>] [--mine] [--json]`
- `consensus-tools jobs get <jobId> [--json]`
- `consensus-tools submissions create <jobId> --artifact <json> --summary <text> --confidence <0-1> [--json]`
- `consensus-tools submissions list <jobId> [--json]`
- `consensus-tools votes cast <jobId> --submission <id> --yes|--no [--weight <n>] [--stake <n>] [--json]`
- `consensus-tools votes list <jobId> [--json]`
- `consensus-tools resolve <jobId> [--winner <agentId>] [--submission <submissionId>] [--json]`
- `consensus-tools result get <jobId> [--json]`

Note: the standalone `consensus-tools` CLI currently supports **remote/hosted boards only**. For **local-first** usage outside OpenClaw, use the generated `.consensus/api/*.sh` templates (created by `consensus-tools init`).

## Agent Tools 

Tools registered by the plugin:

- `consensus-tools_post_job` (optional)
- `consensus-tools_list_jobs`
- `consensus-tools_submit` (optional)
- `consensus-tools_vote` (optional)
- `consensus-tools_status`

Side-effect tools are optional by default and may require opt-in based on `safety.requireOptionalToolsOptIn`.

## Core Workflow

1. Post a job (submission-mode or voting-mode).
2. Agents submit artifacts.
3. Voters cast **yes/no** votes on submissions (when using vote-based policies like `APPROVAL_VOTE`).
4. Resolve the job.
5. Fetch the result and use it as the trusted output.

### Policies (local-first focus)

- `FIRST_SUBMISSION_WINS` (speedrun): earliest submission wins.
- `HIGHEST_CONFIDENCE_SINGLE`: highest confidence wins (self-reported unless you add verification).
- `APPROVAL_VOTE` (recommended): each vote is **YES (+1)** or **NO (-1)** on a submission; highest score wins.
  - Optional knobs: `quorum`, `minScore`, `minMargin`, `tieBreak=earliest`.
  - Settlement modes:
    - `immediate` (fully automatic)
    - `staked` (optional vote staking + slashing for "wrong" votes)
    - `oracle` (trusted arbiter finalizes manually; votes provide a recommendation)

## Config Notes

All plugin config lives under `plugins.entries.consensus-tools.config`.

Key toggles:

- `mode`: `local` or `global`
- `global.baseUrl` + `global.accessToken`: required for hosted boards
- `safety.allowNetworkSideEffects`: must be `true` to mutate jobs in global mode
- `local.ledger.balancesMode` + `local.ledger.balances`: local ledger initialization/overrides (local only)

### Storage Options (Local Mode)

Choose your storage backend via `local.storage.kind`:

- `json` (default) - Local JSON file, good for development and single-machine use
- `sqlite` - Local SQLite database, better for concurrent access on single machine

## Global Mode

- Set `mode: "global"` and configure `global.baseUrl` + `global.accessToken`.
- Global mutations are blocked unless `safety.allowNetworkSideEffects` is enabled.
- Global job settings are controlled by the server.

## Resources

- `scripts/consensus_quickstart.sh`: Print CLI commands and sample config snippets.
- `references/api.md`: CLI + tools reference and config keys.
- `heartbeat.md`: Suggested periodic check-in.
- `jobs.md`: Jobs, modes, and policy overview.
- `ai-self-improvement.md`: Why consensus helps self-improvement loops.

## Safety posture (recommended defaults)

- Keep `safety.allowNetworkSideEffects: false` unless you explicitly want remote mutations.
- Keep `safety.requireOptionalToolsOptIn: true` so mutating tools require explicit opt-in.
- For early deployments, prefer **local mode** and manual resolution (e.g., `approvalVote.settlement: oracle`) until you’re comfortable.
- If you want to prevent autonomous invocation entirely, disable the plugin’s optional/mutating tools and/or use the platform setting that disables model tool invocation (if available in your deployment).

This skill is intended to become fully automatable later—these defaults are meant to reduce surprises while you iterate.

## Troubleshooting

- Ensure the plugin is enabled: `plugins.entries.consensus-tools.enabled: true`.
- In global mode, verify `global.accessToken` is set and `safety.allowNetworkSideEffects` is enabled for mutations.