ZOLVAAI agents in financial services
2026 field note

Everyone
shipped a
pilot.
Almost
nobody
shipped.

Why agents stall between the demo and the risk committee, and what closes the gap.

zolva.ai01 / 10  ›
ZOLVAThe gap

The model was
never the
bottleneck.

52%
are piloting agentsFinancial services firms, Cambridge CCAF 2026 survey
21%
have any in productionThe other thirty-one points are stuck in review
12%
of agentic use cases shippedAcross all industries in the past year
zolva.ai02 / 10  ›
ZOLVAWhat actually blocks it

Four questions
that kill the
demo.

  1. What exactly did it do?Not a transcript. A record.
  2. What stopped it doing worse?Name the control, not the prompt.
  3. Who approved this version?And what changed since.
  4. Prove it, six months from now.To an auditor who was not there.
zolva.ai03 / 10  ›
ZOLVAThe clock

The deadline
moved. The
evidence bar
did not.

EU AI Act
Annex III high risk, which includes creditworthiness, deferred to 2 Dec 2027. Article 50 transparency and Article 4 AI literacy stayed put.
DORA
Articles 28 to 30. 19 critical ICT providers designated, under direct EU oversight. Your register entry and exit plan are due regardless.
RBI
FREE-AI, seven sutras, 26 recommendations. The June 2026 model risk draft adds human override and kill switch expectations.
SR 11-7
Model risk management. It never stopped applying because the model started talking.
zolva.ai04 / 10  ›
ZOLVAControl 1

Guardrails are
config, not
prompts.

# policies/collections.yaml
pre:
  - block_outside_window:
      hours: "08:00-19:00"
      tz: Asia/Kolkata
post:
  - block_contact_frequency:
      max_contacts: 3
      window_hours: 168
  - require_disclaimer: ai_agent
never: [threats, third_party_disclosure]
A prompt is a request. A rule is a control: versioned, testable, diffable in a pull request, and enforced whether or not the model cooperates.
zolva.ai05 / 10  ›
ZOLVAControl 2

Blast radius is
the tool list,
nothing else.

# tools.py
@zolva.tool
def create_payment_link(loan_id: str) -> PaymentLink:
    """Amount comes from the loan system,
    never from the conversation."""

# there is no approve_application tool.
# that is the whole point.
Typed Python functions with Pydantic models. An agent cannot do what it has no tool for, so the review is a list of functions rather than an argument about intent.
zolva.ai06 / 10  ›
ZOLVAControl 3

Behaviour is a
test suite, and
CI is the gate.

# evals/safety.yaml
cohort: hardship_handoff
grader: handoff
min_pass_rate: 0.98

# .github/workflows/release.yml
$ zolva eval --gate
$ zolva synthetics --gate
$ zolva compliance --gate

# red build, no release. no meeting needed.
Cohorts of adversarial cases, graded by judge or by handoff. Regression in agent behaviour fails the build the same way a broken unit test does.
zolva.ai07 / 10  ›
ZOLVAControl 4

An audit trail
you can hand
to a regulator.

  1. Every input, output, and tool callwith the arguments, not a summary
  2. Every rule that fired, and what it blockedincluding the ones that passed
  3. The config hash in force at that momentso the version is not a guess
  4. Hash chained, so a gap is visibleSQLite to start, Postgres in production
Redaction protects the customer. The chain protects you. Both, or the record is not worth producing.
zolva.ai08 / 10  ›
ZOLVAWhere it fits

Seven jobs that
cannot ship
without evidence.

01
Customer support
Real balances, no advice, no leakage
02
Loan collections
Contact windows and frequency caps
03
Fraud and disputes
File the case, promise nothing
04
KYC and onboarding
Status and reupload, never approval
05
Insurance claims
No coverage calls, no estimates
06
Patient support
Claims and denial codes, not clinical
07
Telecom operations
Only offer codes that actually exist on the account
zolva.ai/use-cases09 / 10  ›
ZOLVAOpen source, Apache 2.0
The short version

Build the agent
in an afternoon.
Spend the rest
proving what it
cannot do.

$ pip install zolva
$ zolva validate && zolva eval --gate
DOCS AND USE CASES  ›  ZOLVA.AI
Repost if your pilot is stuck in review10 / 10