a2a cloud
production blueprint · finance

Expense policy review agent blueprint.

Evaluate an expense packet against the applicable policy and prepare a cited decision for a human approver.

Search intent: AI agent for expense report review

Published by a2a cloudProduct-source methodology →
01 · the contract

Start from a bounded job, not a blank chat box.

trigger

An expense report enters policy review.

owner

finance owner

agent stops at

The designated finance approver decides reimbursement or exception treatment.

KPI · decrease

expense review touch time (minutes). Measure reviewer time spent per completed report.

inputs

Evidence the run may read

  • Expense lines and receipts
  • Applicable expense policy
  • Approved exception context
outputs

Artifacts the run must produce

  • Policy comparison
  • Missing evidence list
  • Approve, return, or escalate proposal
02 · topology

Small specialists. Named handoffs. One accountable decision.

Each stage produces an artifact another stage can inspect. The final node is a person, not an autonomous write to an external system.

  1. 01

    intake

    Validate and normalize the expense policy review inputs.

  2. 02

    receipt matcher

    Produce the policy comparison.

  3. 03

    policy analyst

    Produce the missing evidence list.

  4. 04

    expense reviewer

    Challenge the expense policy review result and prepare an approval packet.

  5. 05

    finance owner

    The designated finance approver decides reimbursement or exception treatment.

intakevalidated input packetreceipt-matcher
receipt-matcherPolicy comparisonpolicy-analyst
policy-analystMissing evidence listexpense-reviewer
expense-reviewerapproval packet with evidence referenceshuman-approver
03 · authority

Grant the run only what this case needs.

Source material is read-only. Drafts land in a case-specific output path. Tools may read or propose; the human gate owns the external write.

read

case inputs

workspace/finance/expense-policy-review/inputs/**

Read only the evidence attached to this workflow instance.

write-output

case outputs

workspace/finance/expense-policy-review/outputs/**

Write drafts and evidence artifacts without modifying source records.

invoke-scoped-tool

approved tools

finance:expense-policy-review:read-or-propose

Invoke only tools explicitly granted for this run; external writes remain gated.

required human decision

The designated finance approver decides reimbursement or exception treatment.

Decision owner: finance owner.

04 · implementation

A private, bounded starting manifest.

The blueprint starts private, caps its DAG, disables replanning, and exposes no public endpoint. Add only the tools and data adapters this workflow has approved.

a2a.yamlsafe starting point
name: finance-expense-policy-review
version: 0.1.0
entrypoint: agent:BlueprintAgent
expose:
  public: false
composition:
  planning: deterministic_dag
  max_nodes: 6
  max_parallel: 1
  max_replans: 0
05 · acceptance test

Pass only with evidence.

  1. 01

    Evidence traceability

    Every material conclusion cites an input artifact or a scoped tool result from this run.

  2. 02

    Every exception cites the exact policy rule and affected line; ambiguous items are escalated.

    Every exception cites the exact policy rule and affected line; ambiguous items are escalated.

  3. 03

    Approval boundary

    The run stops at a proposal and records the human decision before any external side effect.

failure containment

Stop small. Preserve the evidence.

A receipt is unreadable or the applicable policy and jurisdiction cannot be established.

Containment: Return a partial result with unresolved items; do not broaden scope or perform an external write.

Operator: Attach the missing evidence, narrow the brief, or explicitly approve a new scoped run.

A required input or tool grant is unavailable.

Containment: Stop the affected branch and preserve completed artifacts in the case output workspace.

Operator: Grant only the missing resource or continue with that branch marked out of scope.

06 · proof

Sign the run facts. Keep money in the billing ledger.

Current platform receipts sign caller identity or classification, skill, bounded input evidence, verified grant IDs when present, outcome or result preview, and timing. Optional file, tool, artifact, handoff, evaluation, and review fields require separate instrumentation and are not populated by default. Price, fees, payouts, and later human approvals remain separate platform records.

The example uses only fields populated by the current platform sealing paths. It is illustrative, not a record of a real customer run.

ExecutionReceipt · selected fieldsEd25519 token
{
  "receipt_id": "rcpt_01J...",
  "schema_version": 1,
  "agent_name": "finance-expense-policy-review",
  "caller": "user:workflow-owner",
  "task_id": "case_expense_policy_review",
  "skill_name": "expense_policy_review",
  "input_hash": "4d7c...9a2f",
  "grant_ids": [
    "grt_case_inputs",
    "grt_tool_propose"
  ],
  "status": "ok",
  "result_preview": "Output prepared: Policy comparison. Human decision remains separate.",
  "elapsed_ms": 4218
}
put the pattern to work

Start private. Scope the authority. Require the decision.

Deploy the workflow as a bounded internal agent, verify its outputs and the receipt fields actually emitted, then expand only the scopes your acceptance test proves it needs.