How anilch963/multi-agent-banking-assistant works
Anil Bank is a fictional, seeded-data banking assistant. A customer submits a message to FastAPI; the LangGraph screens it, selects up to three specialists, gathers their findings, synthesizes a reply, and applies a compliance review. Specialists use scoped MCP banking tools and, where enabled, product-policy retrieval. Separate API routes list or resolve confirmation-gated actions. The map follows documented orchestration and source-index references; some specialist-to-tool wiring and unsampled integrations are therefore omitted.
Main entry points: main.py FastAPI routes · graph.py LangGraph workflow · server.py Banking MCP tools · database.py SQLite banking data
Components 19
Customer API
- FastAPI routes
app/main.py
Conversation orchestration
- Input guardrail
app/agents/nodes.py - Supervisor
app/agents/nodes.py - LangGraph workflow
app/agents/graph.py - Response synthesis
app/agents/nodes.py - Compliance review
app/agents/nodes.py
Banking specialists
- Specialist agents
app/agents/registry.py - Tool-calling loop
app/agents/react.py
Banking services
- Banking MCP tools
app/mcp_server/server.py - Policy search
app/rag/store.py - Financial calculators
app/finance.py - SQL analytics sandbox
app/db/analytics.py - Pending actions
app/db/actions.py
Data and knowledge
- Banking policy docs
knowledge_base - Demo data seeding
app/db/seed.py - SQLite banking data
app/db/database.py - Runtime configuration
app/config.py
Other components
- Customer
- OpenAI chat model
Connections 33
- Customer → FastAPI routes: submits request
README.md - FastAPI routes → LangGraph workflow: invokes chat
app/main.py - FastAPI routes → Pending actions: lists or resolves
app/main.py - FastAPI routes → SQLite banking data: checks customer
app/main.py - FastAPI routes → Banking MCP tools: starts MCP server
app/main.py - FastAPI routes → Policy search: ingests knowledge
app/main.py - LangGraph workflow → Input guardrail: routes messages
app/agents/graph.py - LangGraph workflow → Supervisor: routes allowed turns
app/agents/graph.py - LangGraph workflow → Specialist agents: dispatches assignments
app/agents/graph.py - LangGraph workflow → Response synthesis: routes findings
app/agents/graph.py - LangGraph workflow → Compliance review: routes draft
app/agents/graph.py - Input guardrail → OpenAI chat model: classifies message
- Supervisor → OpenAI chat model: plans assignments
- Specialist agents → Tool-calling loop: creates agent loops
app/agents/nodes.py - Tool-calling loop → Banking MCP tools: calls banking tools
- Tool-calling loop → Policy search: searches policy
- Response synthesis → OpenAI chat model: drafts answer
- Compliance review → OpenAI chat model: reviews answer
- Banking MCP tools → SQLite banking data: reads and writes
app/mcp_server/server.py - Banking MCP tools → Financial calculators: calculates figures
app/mcp_server/server.py - Banking MCP tools → SQL analytics sandbox: runs sandbox SQL
app/mcp_server/server.py - Banking MCP tools → Pending actions: proposes actions
app/mcp_server/server.py - SQL analytics sandbox → SQLite banking data: copies customer data
app/db/analytics.py - Pending actions → SQLite banking data: persists proposals
app/db/actions.py - Pending actions → Financial calculators: calculates deposit maturity
app/db/actions.py - Demo data seeding → SQLite banking data: loads demo records
app/db/seed.py - Demo data seeding → Financial calculators: calculates seeded maturity
app/db/seed.py - Policy search → Banking policy docs: ingests documents
app/rag/store.py - FastAPI routes → Demo data seeding: initializes database
app/main.py - FastAPI routes → Runtime configuration: configures MCP launch
app/main.py - Policy search → Runtime configuration: uses storage settings
app/rag/store.py - SQLite banking data → Runtime configuration: uses database path
app/db/database.py - OpenAI chat model → Runtime configuration: uses model settings