The problem we left open
In the last post I used Bertrand's Paradox to name a failure mode that keeps showing up in financial AI.
When data is thin, teams ask a model to stay unbiased. The model reaches for something like maximum entropy: given what little you know, pick the least assumptive probability picture you can. That sounds fair. It is not enough.
Neutrality only starts after you choose how to measure the market. Looking at raw prices is one ruler. Looking at percentage moves is another. Looking at stress signals like trading activity, funding pressure, and fear is a third. All three can be valid. Run the same "unbiased" idea inside each one and you can get different crash odds, different fair prices, different portfolio weights. The math can still look clean every time.
That creates three real headaches in production:
- The illusion of risk: a confident answer that secretly depends on how you defined the inputs.
- The arbitrage trap: two AI agents, two different rulers, both calling themselves unbiased, then trading a gap that may be measurement mismatch rather than real opportunity.
- The invariance break: a portfolio looks fine in one currency or unit system, then the risk picture quietly changes after a conversion that should not have mattered.
So the question for this post is simple. If that is the failure mode, what does a real AI solution look like?
The solution, as one stack
The core idea is older than today's agent tools, and it still holds: do not let the system invent structure the problem never gave it. In engineering language: lock the ruler first. Only then fill the remaining unknowns with learning, priors, or maximum entropy.
I turn that into five moves. Together they are one solution, not five optional add-ons.
1. Make the decision well-posed before any model runs
Every pipeline that outputs a price, a risk number, a hedge, or a portfolio weight needs a short contract up front:
- What are we measuring?
- Which ways of measuring are allowed?
- Which changes must leave the answer the same (currency, units, inflation adjustment, and so on)?
- What real action is this output allowed to drive?
If that contract is missing, the problem is still Bertrand-shaped. A bigger model does not fix an underspecified question. It just answers it faster.
2. Put hard market rules inside the learner
A polite prompt is not enough. The model should be blocked, or heavily penalized, when it leaves the set of answers finance allows.
In practice that means baking market sense into the model design or the training objective. Examples: do not allow price surfaces that create free money against instruments you can already trade; force internal consistency checks on related prices; encode "must never do X" rules as hard gates, not suggestions. The model can still learn. It just cannot freely invent prices or risks that the problem itself forbids.
3. Treat the input recipe as part of the answer
Choosing raw prices vs percentage moves vs curve metrics vs stress features is not harmless cleanup. It changes the shape of the decision.
So scaling, currency conversion, inflation adjustment, and similar steps belong in the model card and in automated tests. If a change that should be irrelevant flips the risk picture, fail the build. If the right measurement frame is genuinely unknown, keep more than one frame alive on purpose.
4. Treat disagreement between frames as risk, not noise
When two allowed setups disagree, that gap is information. Call it frame uncertainty.
Run a small set of models across the frames your team actually respects. Show the spread next to the single number. Get more careful when the spread widens. Lean toward a safer classical fallback when confidence collapses. Do not average conflicting rulers into one fake certainty and ship it.
5. Give multi-agent systems a shared measurement policy
If Agent A thinks in price space and Agent B thinks in volatility / stress space, they need a contract before they can trade or size risk together.
Shared units. Shared "what must stay the same" list. Trust agreement more than blind averaging. A risk agent with veto power. Automation paused when disagreement crosses a threshold. That is how you stop a measurement mismatch from turning into a sudden market shock.
Put together: clear contract, hard market rules, honest input recipe, frame-uncertainty number, agent conflict policy. That is the solution stack. Learning and maximum entropy still matter. They just sit inside the cage instead of pretending to be the cage.
The example: pricing something that has never traded
Take the case from the first post. A complex product has never traded. No direct history. An AI has to invent a probability picture and propose a fair price.
Without the stack, two models both claim to be unbiased. One builds on raw interest-rate spreads and lands on 1.50. The other builds on continuous yield-curve style metrics and lands on 2.10. Both look clean inside their own setup. Both disagree. More compute will not settle that by itself.
Now run the same case through the solution.
First the contract asks a human question the models cannot answer alone: what does the team actually manage risk against here, spreads or curve metrics? If the job is spread-based, Model Y is not equal truth. It is a stress check. If the job needs both, both stay, but neither becomes the one "unbiased" price.
Second, hard market rules reject any made-up distribution that creates free money against products you can already observe and trade. A beautiful entropy fit that breaks those checks does not ship.
Third, the input recipe is part of the published answer. "1.50 under spread coordinates" and "2.10 under curve coordinates" are different claims. They are not two nicknames for the same number.
Fourth, frame uncertainty is explicit: 0.60 wide on a never-traded claim. That spread is now something you manage. The team may use a midpoint, a conservative bound, or a no-trade zone. What it cannot do is silently average the conflict away and pretend certainty.
Fifth, if two agents are live on this product, they cannot automatically trade against each other on that 0.60 gap. Policy either forces a shared marking rule or sends the case to human review / lower automation when disagreement is that large.
End state: you still use AI. You still fill unknowns where unknowns remain. You just stop manufacturing false certainty from a fuzzy measuring system.
The flow in one breath
Problem: unbiased AI under uncertainty still depends on the ruler. Solution: lock the ruler, constrain the learner, test the input recipe, treat frame disagreement as risk, and stop agents from trading incompatible maps. Example: 1.50 vs 2.10 becomes a managed uncertainty object instead of two confident mistakes.
That is the systems work I care about in financial AI. Curious how others pause automation when two allowed measurement frames disagree on the same decision.