Skip to main content

Back-office Agents

Back-office Agents turns a business document into an accounting entry, with a person in the loop. A document comes in, its fields are extracted, checked and matched against your records, someone with the right role approves, the result is posted to accounting, and every step is written to a tamper-evident audit trail. The first workflow is supplier invoice processing (invoice_v1).

The platform lives in agents/backoffice-agents/ of the CEDM specification repository.

What makes it different​

  • Behaviour is YAML. Workflows, prompts, extraction schemas, connectors, roles, policies and per-tenant overrides live in config/agents/. Changing a threshold, or adding a workflow built from existing steps, needs no Rust, only a restart.
  • A mistake stops boot. A typo, an unknown step type, a dangling reference, a disallowed model license, or a payment reachable without an approval each refuse to start the server, naming the file or node.
  • Approvals are real. Who may decide is a role, the person who started a run cannot approve it (four-eyes), only the fields the workflow marks editable can be changed, and a run waiting for a decision survives a restart.
  • Posting happens once. Calls to accounting go through an idempotency key reserved before the call, so a replayed decision, a second worker or a retry never posts twice.
  • Open source throughout. Every dependency, model and service is under an OSI-approved license, and CI holds that with a license gate that runs first.

How it is built​

PartWhat it is
BackendOne Loco.rs application: HTTP server, PostgreSQL job queue, scheduler, tasks and CLI, plus framework-free library crates behind traits.
Workflow enginegraph-flow graphs, compiled at boot from the YAML and a registry of Rust task kinds.
FrontendCopilotKit v2 on Next.js, talking AG-UI 1.0 over server-sent events.
ModelsAny OpenAI-compatible endpoint (vLLM in production); a fixture model for tests and demos.
Documentsdocling-serve for parsing; a plain_text parser for tests and demos.
StoragePostgreSQL with pgvector: business data, checkpoints, approvals, the audit log and the queue.

Where to go next​

If you want to…Read
See it work in five minutes, without a GPUQuick start
Understand the moving partsHow it fits together, then Concepts
Approve an invoice in the web appUsing the web app
Change what a workflow doesWriting a workflow and the definition reference
Give one customer different rulesTenants
Connect a real accounting systemConnectors and exactly-once posting
Call it from your own clientHTTP and AG-UI
Run it in productionRunning in production and Troubleshooting
Add a new kind of stepExtending it in Rust
Know what is not built yetProject status
Read the original designArchitecture and build plan

Unfamiliar term? See the Glossary.