Skip to content

[Hackathon] chainaim-sathya: feasible-frontier audit + generic-N multi-attribute negotiation with a heuristic/Bayesian opponent-model seam (price + deadline + quantity-3 axis active)#47

Open
chainaim-sathya wants to merge 1 commit into
projnanda:mainfrom
chainaim-sathya:hackathon/chainaim-sathya-nattr-comprehensive-negotiator

Conversation

@chainaim-sathya

Copy link
Copy Markdown

[Hackathon] chainaim-sathya: feasible-frontier audit + generic-N multi-attribute negotiation with a heuristic/Bayesian opponent-model seam (price + deadline + quantity)

Short summary

Problem #7 — multi-attribute negotiation. A plugin that bargains over several attributes and converges on Pareto-efficient deals, plus an adversarial validator that catches inefficiency a price-only check structurally misses.

What this does. Adds a multi-attribute negotiation plugin at ("negotiation", "chainaim_neg_multi_pareto") that bargains over an ordered attribute list (price + deadline, extended to price + deadline + quantity ), inferring the opponent's weights from observed offers only behind a swappable heuristic/Bayesian seam. Adds a feasible-frontier validator that reconstructs the outcome space from disclosed profiles and flags dominated settlements. Backward-compatible — ships alongside alternating_offers (untouched).

Registration / key surface

Surface Where Notes
("negotiation","chainaim_neg_multi_pareto") plugins.py _BUILTINS and pyproject.toml entry point registered literally and via entry point
open() / offer() / respond() / close() the plugin full alternating-offers protocol surface (all four methods), matched
opponent_model="heuristic" | "bayesian" constructor flag swappable opponent inference (Mechanism B)
attributes=(...) constructor flag ordered, generic-N attribute list

Negotiation validators

  • validate_negotiation_pareto — exchanged-offers Pareto check (spec-literal gate, unchanged).
  • validate_negotiation_frontier — feasible-frontier reconstruction; flags a settlement when a feasible point dominates it. The mandated adversarial check: FAILs the price-only baseline, PASSes the multi-attribute plugin.
  • validate_negotiation_disclosure + validate_negotiation_individual_rationality — defense-in-depth.

Files (negotiation layer only)

  • packages/nest-plugins-reference/nest_plugins_reference/negotiation/chainaim_neg_multi_pareto.py — the plugin (~1,217 lines; heuristic + Bayesian opponent models, generic-N decision)
  • packages/nest-core/nest_core/validators.py — the negotiation validators (frontier reconstruction + helpers)
  • packages/nest-core/nest_core/plugins.py_BUILTINS registry entry
  • packages/nest-plugins-reference/pyproject.tomlnest.plugins.negotiation entry point
  • packages/nest-core/tests/test_negotiation_golden.py, test_negotiation_price_deadline_quantity.py, test_negotiation_asymmetric.py, test_negotiation_direction.py, test_negotiation_ir.py, test_negotiation_metrics.py, test_negotiation_nattr.py, test_negotiation_nattr_equivalence.py, test_negotiation_ab_property.py, plus negotiation cases in test_validators.py
  • packages/nest-plugins-reference/tests/test_negotiation_opponent_model.py, test_negotiation_strategy_seam.py, plus the plugin case in test_plugins.py
  • scenarios/chainaim_multi_attribute_market.yaml, multi_attribute_baseline.yaml, multi_attribute_asymmetric.yaml, multi_attribute_market_3attr_price_deadline_quantity.yaml, …_bayes.yaml

CI. All green: uv sync · ruff check · ruff format --check · pyright · pytest (833 passed, 2 skipped).

Verify

uv run pytest packages/nest-core/tests/test_negotiation_golden.py -v
uv run pytest packages/nest-core/tests/test_negotiation_price_deadline_quantity.py -v
uv run pytest packages/nest-plugins-reference/tests/test_negotiation_opponent_model.py -v

The agent — a configurable, attribute-generic negotiation plugin that bargains over an ordered attribute list (here price + deadline + quantity) but configurable for n-attr , price + deadline + quantity, price + deadline + quality , and further extension of attributes, inferring the opponent's per-attribute weights from observed offers only (never the disclosed profile), behind two clean construction-time seams., with hueristic and bayesian modes.

Adds a Non-obvious variant from peers:
The feasible-frontier validator enforces an invariant the rig didn't have: it catches a Pareto-dominated multi-attribute settlement that an observed-bids check structurally cannot (the price-only antichain).

The Heuristic-vs-Bayesian A/B: on the 3-attribute market the heuristic leaves 4 deals inside the frontier, Bayesian only 2 — a benchmark that surfaces a measurable efficiency property that would otherwise stay hidden.

Fully compliant with hackathon rules, configurable and extensible to n attributes ( 3 axis active bargaining in reference implementation )

Detailed and Visual Explanation

📊 Visual concept explainer — an animated walkthrough of the design, the feasible-frontier audit, and the heuristic-vs-Bayesian benchmark: view the interactive explainer

…) + feasible-frontier audit + heuristic/Bayesian opponent-model seam
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant