- 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>
1.5 KiB
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_refundstate:draft,posted,cancelpayment_state:not_paid,in_payment,paid,partial,reversedinvoice_date_due: payment due dateamount_residual: outstanding balancepartner_id: customer/vendor
account.payment
- Payments linked to invoices via
account.movereconciliation 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)