Files
odoo-ai/research/finance_research.md
ActiveBlue Build dab6354d09 feat(finance): add FinanceAgent with full 6-step contract and FinanceTools
- FinanceAgent implements _plan/_gather/_reason/_act/_report lifecycle
- Proactive sweep flags 30+ day overdue invoices, auto-sends reminders >60d/>$1k
- PeerBus handler exposes overdue_summary, payment_history, financial_summary
- HIPAA-locked: Ollama only, no cloud LLM routing
- FinanceTools wraps OdooClient with 9 read/write methods on account.move
- finance_system.txt prompt enforces no-write-to-invoices rule
- research/finance_research.md documents Odoo 18 account model details

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 17:51:49 -04:00

1.5 KiB

Finance Agent Research

Odoo 18 Finance Domain — Key Models

account.move (Invoices & Bills)

  • move_type: out_invoice (customer invoice), in_invoice (vendor bill), out_refund, in_refund
  • state: draft, posted, cancel
  • payment_state: not_paid, in_payment, paid, partial, reversed
  • invoice_date_due: payment due date
  • amount_residual: outstanding balance
  • partner_id: customer/vendor

account.payment

  • Payments linked to invoices via account.move reconciliation
  • payment_type: inbound (receipts), outbound (payments)
  • state: draft, posted, cancel

account.bank.statement.line

  • Bank statement lines for reconciliation
  • is_reconciled: bool — whether matched to a payment/invoice

Key Search Domains

  • Overdue: [('move_type','=','out_invoice'),('state','=','posted'),('payment_state','!=','paid'),('invoice_date_due','<', today)]
  • Unreconciled bank lines: [('is_reconciled','=',False),('journal_id','=',journal_id)]

HIPAA Constraints

  • Finance agent is HIPAA-locked — Ollama only, never cloud LLM
  • Do not expose partner financial data to non-finance agents via PeerBus
  • Aggregate/anonymise data in cross-agent responses

Automation Thresholds (from spec)

  • Auto-send reminder: overdue > 30 days AND amount_residual > 1,000
  • Flag for review: overdue > 90 days (regardless of amount)
  • Escalate to human: collection_rate < 70% OR overdue_total > 50,000

Tool Limits

MAX_TOOLS_PER_AGENT = 8 (finance agent is at limit)