Learning proposals
Requires @openlatch/client 0.11.2 or later
Use this page to understand the proposals OpenLatch makes from your own records, and what changes when an editor accepts one. This is the Improve step of the control loop: OpenLatch proposes, and your organization decides.
What OpenLatch proposes
Section titled “What OpenLatch proposes”Once a day, OpenLatch reviews what your organization recorded and proposes changes for an editor to accept or dismiss: switch an Agent Intent Policy (AIP) from Monitor to Enforce in a zone, add a value to a zone dictionary, let an intent policy’s declarations decide, or add a regression case.
The console names each kind by what it does for you:
| Kind | What it proposes | What it rests on | Effect |
|---|---|---|---|
| Start enforcing | Switch an AIP’s attachment to a zone from Monitor to Enforce | 14 consecutive days in Monitor with decisions recorded every day, at least 20 of them, and no reviewer who allowed an action it asked about | Agents may do less |
| Add to your dictionary | Add one observed value to a table of a zone’s dictionary, for that zone and the zones below it | At least three reviewers’ answers in the last 14 days that agree, and none the other way | Agents may do more, or less, as the reviewers answered |
| Skip repeat approvals | Let an intent policy’s declarations decide | At least three reviewers’ answers in the last 14 days that allowed actions whose declaration could not be checked, none that blocked one, and no rejected hold | Agents may do more on their own |
| Keep as an example | Keep an action a reviewer answered as a regression case of the intent policy, called an example action | One reviewer’s answer on that intent policy | No decision changes |
A dictionary proposal names the exact value your agents reached, never a pattern OpenLatch inferred, and a value that looks like a secret is never proposed. Before it opens, OpenLatch runs the intent policies of the zone with the value added: every answered action must settle as the reviewers answered, and no test case of an intent policy that uses the table may change its outcome.
You decide, in one click
Section titled “You decide, in one click”A proposal never takes effect on its own: an editor accepts or dismisses it in one click.
Each proposal shows the evidence behind it and the recorded actions whose outcome would change, so you see before you accept whether agents may do more or less. A proposal is computed from your organization’s own decisions and your reviewers’ answers, inside your organization, with no generative AI model.
| When | What happens |
|---|---|
| An editor accepts | OpenLatch checks the proposal again against the current records, then applies it the way the same change made by hand would be applied. The change is in the audit trail with who accepted it |
| Something moved since it opened, such as a new AIP version, a changed mode or a value added by hand | Nothing is applied, and the proposal is withdrawn. A proposal that still holds may open again on a later day |
| An editor dismisses | Nothing changes. A dismissed proposal does not come back |
| Nobody decides within 30 days | The proposal expires, and nothing changes |
An organization holds at most 50 open proposals at a time; the rest wait for a later day. Accepted, dismissed, withdrawn and expired proposals stay in the history for 180 days.
Every accepted change can be undone the way you would undo it by hand:
| Kind | Undo |
|---|---|
| Start enforcing | Switch the AIP back to Monitor in that zone |
| Add to your dictionary | Remove the value from the dictionary |
| Skip repeat approvals | Revoke: the intent policy goes back to its fallback when a declaration cannot be checked |
| Keep as an example | Remove example from the intent policy |
When declarations decide
Section titled “When declarations decide”On the decision ladder, the agent is asked to declare a fact the client cannot read. When the client cannot verify the declaration, the intent policy’s fallback settles the action, Ask by default: after two requests, or after one on a question of meaning. Accepting a Skip repeat approvals proposal changes that one step for one intent policy.
When an intent policy’s declarations decide, a declaration the client cannot verify is taken on the agent’s word and the action is allowed instead of the fallback, wherever the intent policy is enforced; it is never recorded as verified, a matching Block rule still blocks, and you chose this for that intent policy and can revoke it.
| The declaration | Outcome on an intent policy whose declarations decide |
|---|---|
| Verified by what the client observed | Allow, as before |
| Contradicted by what the client observed | Block, as before |
| Absent | Refused twice, or once on a question of meaning, then the fallback settles it |
| Given, but the client cannot verify it | Allow, recorded as unverifiable: after two requests, or after one on a question of meaning |
On a question of meaning, a self-assessment of violates with a confidence of 80 or more | Block |
| Any declaration, when a Block rule of the zone matches the action | Block |
The decision record still says the declaration was unverifiable, and carries oldecisive to show that your choice settled it. In Monitor, nothing reaches the agent, and the record carries the Allow it would have received.
Declarations decide only on clients that support it; older clients keep the intent policy’s fallback. A revoke reaches each machine on its next policy update, and a machine that is offline keeps the earlier setting until it next connects. Editing the intent policy’s sentence ends the setting when you ratify the new version; a new version that keeps the sentence unchanged keeps it.
Example actions
Section titled “Example actions”A regression case you accept stays with the intent policy, and a suggested fix is offered only when every case that passed before still passes with the fix.
An example action is kept with what the reviewer said: should allow, or should block. It is listed beside the generated test cases when you edit the AIP, it is carried into every new version that keeps the intent policy, and it is never replaced when the test cases are generated again. An editor can remove it at any time.
Who sees what
Section titled “Who sees what”Editors and above accept, dismiss, revoke and remove; viewers read every proposal. A unit sees the proposals of its own zone and of the zones below it, never those of a zone above. When new proposals open, editors receive one notification in the Learning group, at most once a day. The Public API offers the same operations in beta.
Review learning proposals walks through the console.