Skip to content
parley.

Group decisions, private limits

AI assistants agree,limits stay private.

Each person tells only their own assistant what they will not accept. The assistants pick an option that crosses nobody's limit, and nobody has to say what their limit was. Afterwards, each person can check on their own computer that it held.

parley · replay af170229…transcript
abcde

Five people, five private lists of limits. For option A, three of the five answers are shown. One shared decision,checked by every owner, no list revealed.

bobscore 0.30acceptable
carascore 0.70acceptable
ana[masked]red-line

max-min → option P✓ sha256 verified 5/5
ana's reason stays private. only the verdict "red-line" ever leaves her agent.

In plain words

Parley is a way for several people's AI assistants to agree on one option, without anyone having to reveal their private limits.

For example

Three friends are picking the dates for a weekend trip and splitting the cost. Each has a limit they would rather not say out loud. Ana cannot spend more than 200. Bob cannot leave before Friday evening. Cara will not share a room.

Each one tells only their own assistant. The assistants go through the options together. Any option that crosses one friend's limit is out, no matter how much the other two like it.

Among the options left, the winner is the one that leaves the least happy friend as well off as possible. The others see that an assistant said no to an option, never why.

How it goes

  1. Tell your own assistant your limits, in private.

    A limit is a rule your assistant applies to each option. The list stays with your assistant and is not handed to the group.

  2. For each option, the assistants say only ok or no, plus a score.

    An assistant never says which limit was behind a no. The score is visible to the others, so it can hint at what you prefer.

  3. Afterwards, check on your own computer that your limit held.

    You replay your own list against the final choice. Nobody else needs to see the list.

Where this stands: Parley is early, version 0.2, alpha. It is open source under Apache-2.0. The demo on this site replays runs computed in advance with the same engine. It does not yet protect against people who misreport their own scores or team up against the rest.


The gap nobody productised

Most agent tooling solves transport (A2A, MCP), one-to-one agentic commerce, or cooperative debate between agents that already share one owner.

Parley solves a different gap: delegates of different, conflicting, private owners reaching a decision that crosses no owner's red line, and each owner can check it.


Four properties, enforced in code, not left to a model's discretion.

Red lines

Hard constraints written as code predicates. A crossed red line rejects an option outright. It is never negotiated away as soft utility.

preferences.py
round 1 · option A proposed
ana → verdict: ok
cara → verdict: red-line
option A rejected

Masked verdicts

The coordinator sees only an acceptable or red-line verdict and a soft score. Never the private sheet, and never which constraint was crossed.

agent.py
leaves the agent:
acceptable · score 0.71 · reason "ok"
stays private:
the sheet, and which line was crossed

Max-min consensus

Among options feasible for everyone, lift the least-happy participant, tie-broken by total welfare. No feasible option means an honest deadlock, never a forced decision.

consensus.py

Verifiable transcript

A SHA-256 hash over the canonical, masked record. Each owner replays their own private sheet locally to confirm no red line was crossed, without revealing it.

transcript.py

A real run, and you can check it.

The tape below is a real run. Five agents with conflicting private sheets, sixteen options, scored by the engine in this repository. Every verdict is recorded masked, hashed, and independently replayable by each owner against their own private sheet. The transcript hashes toaf1702294878…b7a84127, and landing/scripts/gen-tape.pyreproduces it byte for byte.

real transcript · sha256 af170229…b7a84127 · hover to pause

5/5
owners independently verified
256-bit
hash over the canonical record
0
red lines crossed, on each owner's replay
Open the demo

Positioning

Multilateral (more than two owners),no cryptocurrency,self-hosted,auditable. Not single-owner orchestration like AutoGen or CrewAI. Not bilateral on-chain commerce like Fetch.ai or Olas.

Guides: run Parley as an MCP tool in Claude or Cursor, how the negotiation stays fair, what a red line is, exactly, how to verify a decision receipt afterwards, a fair group decision when everyone has private limits.


Questions

What is Parley, and what problem does it solve?

Parley is an open-source Python library for one decision among AI agents whose owners have conflicting, private interests. Each owner states red lines and preferences in private; the engine drops every option that crosses anyone's red line, picks among the rest by the max-min rule, and writes a transcript of masked verdicts that each owner can check afterwards. It is multilateral (more than two owners), uses no cryptocurrency or blockchain, and runs on your own machine.

Guide: A fair group decision when everyone has private limits

How are red lines enforced, and what does the other side learn?

A red line is a code predicate on an option, such as cost <= 700. An option that fails it is rejected before any score is weighed, and it is never traded against a preference. The only thing that leaves an agent is a verdict per option: acceptable or not, a score between 0 and 1, and the word ok or red-line, never which rule was behind it. The score is public, so a reader of the record can infer preference ordering and the feasible region, and across enough options the pass/fail pattern shows roughly where a red line sits, even though the reason field stays masked. The engine enforces whatever limit you typed; it cannot tell a real limit from a tactical one.

Guide: Red lines for LLM agents, enforced in code

How does the group pick one option, and what happens when nothing fits?

Only options acceptable to every participant are candidates. Among them the engine picks the option whose lowest score across participants is highest, and breaks ties by the sum of scores; this is a max-min rule, not a majority vote, so a majority cannot outvote one owner's floor. When no option clears everyone's red lines the result is a deadlock with no decision, and a deadlock forces nothing on anyone. Scores are self-reported too, and there is no resistance yet to an owner misreporting them strategically or to collusion (SECURITY.md).

Guide: Fair multi-agent negotiation for rival owners

What can I check afterwards, and what does the receipt not prove?

You can re-hash the transcript (SHA-256 over its canonical JSON), recompute the max-min winner from the recorded verdicts, and replay your own private sheet against the decision with verify_non_betrayal, all on your own machine and without showing the sheet to anyone. The hash is unsigned, so it catches a later edit only when someone other than the editor kept the hash; verdicts are unsigned unless the run signed them, and a signed verdict is checked against the key carried in the same record, with no trusted owner-to-key roster yet. The participants list is written by the coordinator, scores are public and leak preference ordering, and every limit is self-reported.

Guide: Verify an AI-agent decision without trusting the coordinator

How do I try it, and what does it need?

pip install parley-consensus gives you the core with no third-party dependencies on Python 3.10 or later (tested on 3.11 to 3.14), plus the parley-mcp command, a stdio MCP server you can point Claude or Cursor at. Signed verdicts need the crypto extra, pip install "parley-consensus[crypto]". The examples and scripts, including the receipt verifier, are not in the PyPI wheel; clone the repository, which is Apache-2.0. It is Alpha (v0): do not run it against genuinely adversarial principals in production. The demo on this site replays pre-computed runs of the same engine.

Guide: Parley as an MCP server for multi-party agent decisions


Put your next decisionon the tape.