- 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>
38 lines
1.5 KiB
Markdown
38 lines
1.5 KiB
Markdown
# 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)
|