What you agreed is what arrives.

As-Agreed checks each step of a pipeline against what was agreed. It stops the last step if a must term changed.

Your agents report done. Today no part of your system checks that report against what was agreed.

In a multi-agent system, agents give work to agents, and at each hand-off a term you agreed can change. As-Agreed keeps the record of what was agreed, and names the hand-off where a declared term changed.

The library is public since , release 0.0.3 since , with one decorator for each step.

The record is a file on your disk. As of 2026-11-07, the library sends no data to the network.

Get the codeContact

  1. Step 1: the as-agreed record

    act “Pay the October invoice from Northwind Freight.”

    condition “Only if it matches purchase order 4471.”

    limit “18,400 dollars.”

  2. Step 2: the agent that prepares the payment. all fields: PRESERVED

    “Pay the October invoice from Northwind Freight if it matches purchase order 4471. Pay no more than 18,400 dollars.”

  3. Step 3: the payment instruction. 2 fields changed

    “Pay Northwind Freight 19,000 dollars today.”
    limit: WIDENED, 18,400 to 19,000 USD

    Missing from this instruction: “Only if it matches purchase order 4471”
    condition: DROPPED

    HOLD: the payment system is not called

An example, with data that we made. As-Agreed compares each step with the as-agreed record, not with the step before it. The payment instruction passes its schema check. 2 declared fields changed, thus As-Agreed stops the step, and the reason names the 2 fields.

What runs today

As of .

Runs today

A typed check of declared fields. You record what was agreed as a commitment. At each hand-off, the check compares the fields that you declared with that record, and names each field that changed.

A hold before the commit. If a step changed a declared field, it does not write its result.

A local record. The as-agreed record is a file on your disk. As of 2026-11-07, the library sends no data to the network.

Adapters for Python functions, for LangGraph and for Temporal.

It reads traces from Langfuse, LangSmith and OpenTelemetry: as-agreed import langfuse, langsmith or otlp.

Public since

Release 0.0.1, with one decorator for each step; release 0.0.3 since . If As-Agreed stops a step, the step will get the reason and try one more time.

Next

The As-Agreed service will keep one record for all the runs and teams that use it. To move to the service, you will change one value in your code, and no other code. We will make the service with the first team that uses it.

How it works

  1. Record what was agreed

    Write what was agreed as a commitment, with fields such as obligor, act, condition, limit and deadline. This is the as-agreed record.

  2. Compare at each hand-off

    As-Agreed compares the output of each step with the as-agreed record, not with the step before it. It checks only the fields that you declare, and it reports each field that it cannot check. It tells you which field changed, and at which step.

  3. Stop the last step

    If a declared field of a MUST commitment changed, As-Agreed stops the last step before it writes. Thus the change does not go into your system of record. Since release 0.0.1, public , the step will get the reason and try one more time.

What is free, and what is sold

One name, one library, one record. What runs in one run on one computer is free. What goes across runs, teams and time will be sold.

The library: free, on your computer

For engineers and researchers.

It is open source under the Apache-2.0 licence. It uses no account, and as of 2026-11-07 it sends no data about your use.

  • Today: a typed check of declared fields, a hold before the commit, and a local record.
  • Today: adapters for Python functions, for LangGraph and for Temporal.
  • Public since , release 0.0.3 since : one decorator for each step. The step that As-Agreed stops will get the reason and try one more time.

The As-Agreed service: sold

For persons who must show to others that what was agreed arrived.

It will run as a service, or in your VPC. We will make it with the first team that uses it.

  • One signed record, across runs and teams, of what was agreed and where it changed.
  • It will remove each output that uses a claim that was found incorrect.
  • The same library writes to it. To move from free to sold, you change one value in your code.

The record tells what was agreed. It does not make a new agreement. To be the first team, write to hello@bizbuilderai.com.

Who it is for

  • Teams with agents that write to a system of record, such as ERP, CRM or payment systems. There, you cannot easily remove a bad write.
  • Teams with pipelines of many steps, where no one agent has the full order. Their tools try a step again only when the step gives an error.
  • Persons who must show to others that what was agreed arrived. The As-Agreed service will be for them.
  • Operations and risk teams. A limit can increase from one step to the next, and no person agreed to that risk. As-Agreed stops the last step if a declared limit increased.

Keep your tools

As-Agreed runs with the tools that you use. A trace shows each step. Other tools examine one output at one point. Your tools try a step again when the step gives an error. A step can give no error, but change a term that you agreed. As-Agreed checks that term at each hand-off.

Today, adapters connect it to Python functions, LangGraph and Temporal. Since , release 0.0.1, one decorator will put it on a step.

Where it comes from

For 15 years, the founder of As-Agreed worked in operations. The problem was always the same: what arrived was not what was agreed. A team agrees a term. Then each person who writes it again can change it.

Agents do the same. But each step of an agent pipeline writes its output, thus you can find the step where a term changed. Teams of persons had this problem long before agents.

Research, in the open

The research examines 2 directions. A commitment goes down the pipeline: a typed record of what was agreed. A claim goes up the pipeline with its status: a hedge, a source, a date, or not found.

Ten public MAST runs, read step by step, with a replay that runs on your computer with no model: the runs on GitHub, under CC BY 4.0.

The research text goes out under the name of the founder.

Run it on your pipeline

Declare what was agreed for one step, and see which fields arrive at the commit.

Get the codeContact