Work/Autonomous Agents

AutoNegotiate

An always-on supplier negotiator that stops at limits you set

Typeproduct
Statusin-progress
Updated2026-09-17
Commits94
SourcePrivate

What it is

AutoNegotiate haggles with suppliers over WhatsApp and Instagram on the buyer's behalf, anchoring, trading and holding a price until every term (price, lead time, incoterm, freight, payment terms, sample, spec) is settled. It never says yes or moves money on its own: it freezes the order, builds a one-page PDF receipt and waits for the human to approve before sending a supply agreement. Whether a deal is acceptable is decided by a pure, unit-tested guardrails function with no model output in it.

The problem

Sourcing from suppliers means hours of repetitive chat negotiation where a tired buyer can overpay or miss a quietly changed term.

How it works

  1. Messaging sessions run through Unipile, so WhatsApp and Instagram threads need no open browser; a local console on localhost:4317 controls the run.
  2. src/core/guardrails.ts is a pure function (price ceiling, quantity envelope, plausibility floor, spec integrity, no money up front, exposure cap) and the only thing that can accept a deal; close.ts decides when terms are settled.
  3. Model calls route through OpenRouter in tiers: cheap models for extraction and a gate on every outbound message, stronger models for drafting, strategy and deep adversary checks on closes.
  4. A vision model reads the required product mockup to write the spec a factory quotes from; receipts and contracts are drawn directly with pdf-lib.
  5. Express server, persistent store, supervisor, control UI and dashboard, covered by a Vitest suite.

Stack

TypeScriptNode.jsExpressOpenRouterUnipilePlaywrightpdf-libZodVitest

Disciplines

For your business

Guardrailed negotiation and procurement agents that work vendor chats around the clock and hand a human a finished, approval-ready deal.