# avinash-02/cred-domain-support-agent architecture

> Architecture diagram of the GitHub repository avinash-02/cred-domain-support-agent, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/avinash-02/cred-domain-support-agent
- Repository: https://github.com/avinash-02/cred-domain-support-agent

## Overview

This is a retail-banking credit support agent for policy questions and loan-application status or escalation queries. The principal workflow is HTTP/WebSocket input, budget and input-safety checks, cached or CrewAI handling, policy retrieval and/or privileged loan lookup, groundedness checks, structured review, then a validated response with session state and logging. The README documents capabilities whose implementation was not sampled; those links are shown only where the README states the relationship. Unsampled subsystems are represented by their exact tree paths.

Main entry points: [`Final Project/credit-support-agent/src/api/server.py`](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/api/server.py) (HTTP / WebSocket API), [`Final Project/credit-support-agent/src/orchestration/crew.py`](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/orchestration/crew.py) (CrewAI Orchestrator), [`Final Project/credit-support-agent/src/retrieval/rag_pipeline.py`](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/retrieval/rag_pipeline.py) (RAG Pipeline), [`Final Project/credit-support-agent/src/governance/review.py`](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/governance/review.py) (Draft Governance Review)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["API and State"]
  node_api["HTTP / WebSocket API<br/>[server.py]"]
  node_schemas["Request Schemas<br/>[schemas.py]"]
  node_memory[("Session Memory<br/>[session_memory.py]")]
  node_logging["Structured Logging<br/>[logging.py]"]
  node_cache[("Response Cache<br/>[response_cache.py]")]
end

subgraph group_safety["Safety and Review"]
  node_guard["Input / Output Guardrails"]
  node_review["Draft Governance Review<br/>[review.py]"]
  node_verdict["Review Verdict<br/>[models.py]"]
  node_reviewclient["Review Model Client<br/>[mock_client.py]"]
end

subgraph group_agents["Agent Orchestration"]
  node_response["Agent Response Model"]
  node_crew["CrewAI Orchestrator<br/>[crew.py]"]
  node_llm["CrewAI Mock LLM<br/>[mock_llm_crewai.py]"]
  node_crewtools["CrewAI Tools<br/>[crewai_tools.py]"]
end

subgraph group_knowledge["Policy Retrieval"]
  node_rag["RAG Pipeline<br/>[rag_pipeline.py]"]
  node_chunking["Dual Chunking<br/>[strategies.py]"]
  node_embedding["Embedding Generator<br/>[generator.py]"]
  node_vectordb[("Vector Store<br/>[factory.py]")]
  node_chromadb[("ChromaDB Backend<br/>[chromadb_store.py]")]
  node_memorystore[("Memory Vector Backend<br/>[memory_store.py]")]
end

subgraph group_credit["Credit Operations"]
  node_dataset[("Loan Dataset<br/>[dataset.py]")]
  node_lookup["Loan Status Lookup"]
end

node_user(("Banking User"))

node_user -->|"submits query"| node_api
node_api -->|"validates requests"| node_schemas
node_api -->|"checks input"| node_guard
node_api -->|"checks cache"| node_cache
node_api -->|"runs query"| node_crew
node_api -->|"ingests documents"| node_rag
node_api -->|"updates session"| node_memory
node_api -->|"logs requests"| node_logging
node_crew -->|"generates responses"| node_llm
node_crew -->|"dispatches tools"| node_crewtools
node_crew -->|"checks cache"| node_cache
node_crew -->|"formats response"| node_response
node_crewtools -->|"retrieves policy"| node_rag
node_crewtools -->|"checks application"| node_lookup
node_lookup -->|"reads records"| node_dataset
node_guard -->|"validates output"| node_response
node_response -->|"submits draft"| node_review
node_review -->|"queries client"| node_reviewclient
node_review -->|"returns verdict"| node_verdict
node_rag -->|"chunks documents"| node_chunking
node_rag -->|"embeds chunks"| node_embedding
node_rag -->|"queries and indexes"| node_vectordb
node_vectordb -->|"selects backend"| node_chromadb
node_vectordb -->|"selects backend"| node_memorystore

click node_api "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/api/server.py"
click node_schemas "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/api/schemas.py"
click node_memory "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/memory/session_memory.py"
click node_logging "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/observability/logging.py"
click node_cache "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/cache/response_cache.py"
click node_guard "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/guardrails/pipeline_guardrails.py"
click node_review "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/governance/review.py"
click node_verdict "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/governance/models.py"
click node_response "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/orchestration/structured_output.py"
click node_crew "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/orchestration/crew.py"
click node_llm "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/llm/mock_llm_crewai.py"
click node_crewtools "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/tools/crewai_tools.py"
click node_rag "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/retrieval/rag_pipeline.py"
click node_chunking "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/chunking/strategies.py"
click node_embedding "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/embeddings/generator.py"
click node_vectordb "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/vectordb/factory.py"
click node_chromadb "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/vectordb/chromadb_store.py"
click node_memorystore "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/vectordb/memory_store.py"
click node_dataset "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/ingestion/dataset.py"
click node_lookup "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/tools/loan_lookup_tool.py"
click node_reviewclient "https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/governance/mock_client.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_api,node_schemas,node_memory,node_logging,node_cache,node_user toneBlue
class node_guard,node_review,node_verdict,node_reviewclient toneAmber
class node_response,node_crew,node_llm,node_crewtools toneMint
class node_rag,node_chunking,node_embedding,node_vectordb,node_chromadb,node_memorystore toneRose
class node_dataset,node_lookup toneIndigo
```

## Components

### API and State

- [HTTP / WebSocket API](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/api/server.py): `Final Project/credit-support-agent/src/api/server.py`
- [Request Schemas](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/api/schemas.py): `Final Project/credit-support-agent/src/api/schemas.py`
- [Session Memory](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/memory/session_memory.py): `Final Project/credit-support-agent/src/memory/session_memory.py`
- [Structured Logging](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/observability/logging.py): `Final Project/credit-support-agent/src/observability/logging.py`
- [Response Cache](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/cache/response_cache.py): `Final Project/credit-support-agent/src/cache/response_cache.py`

### Safety and Review

- [Input / Output Guardrails](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/guardrails/pipeline_guardrails.py): `Final Project/credit-support-agent/src/guardrails/pipeline_guardrails.py`
- [Draft Governance Review](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/governance/review.py): `Final Project/credit-support-agent/src/governance/review.py`
- [Review Verdict](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/governance/models.py): `Final Project/credit-support-agent/src/governance/models.py`
- [Review Model Client](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/governance/mock_client.py): `Final Project/credit-support-agent/src/governance/mock_client.py`

### Agent Orchestration

- [Agent Response Model](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/orchestration/structured_output.py): `Final Project/credit-support-agent/src/orchestration/structured_output.py`
- [CrewAI Orchestrator](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/orchestration/crew.py): `Final Project/credit-support-agent/src/orchestration/crew.py`
- [CrewAI Mock LLM](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/llm/mock_llm_crewai.py): `Final Project/credit-support-agent/src/llm/mock_llm_crewai.py`
- [CrewAI Tools](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/tools/crewai_tools.py): `Final Project/credit-support-agent/src/tools/crewai_tools.py`

### Policy Retrieval

- [RAG Pipeline](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/retrieval/rag_pipeline.py): `Final Project/credit-support-agent/src/retrieval/rag_pipeline.py`
- [Dual Chunking](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/chunking/strategies.py): `Final Project/credit-support-agent/src/chunking/strategies.py`
- [Embedding Generator](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/embeddings/generator.py): `Final Project/credit-support-agent/src/embeddings/generator.py`
- [Vector Store](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/vectordb/factory.py): `Final Project/credit-support-agent/src/vectordb/factory.py`
- [ChromaDB Backend](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/vectordb/chromadb_store.py): `Final Project/credit-support-agent/src/vectordb/chromadb_store.py`
- [Memory Vector Backend](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/vectordb/memory_store.py): `Final Project/credit-support-agent/src/vectordb/memory_store.py`

### Credit Operations

- [Loan Dataset](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/ingestion/dataset.py): `Final Project/credit-support-agent/src/ingestion/dataset.py`
- [Loan Status Lookup](https://github.com/avinash-02/cred-domain-support-agent/blob/main/Final%20Project/credit-support-agent/src/tools/loan_lookup_tool.py): `Final Project/credit-support-agent/src/tools/loan_lookup_tool.py`

### Other components

- **Banking User**

## Connections

- Banking User → HTTP / WebSocket API: submits query
- HTTP / WebSocket API → Request Schemas: validates requests (evidence: `Final Project/credit-support-agent/src/api/server.py`)
- HTTP / WebSocket API → Input / Output Guardrails: checks input (evidence: `Final Project/credit-support-agent/src/api/server.py`)
- HTTP / WebSocket API → Response Cache: checks cache
- HTTP / WebSocket API → CrewAI Orchestrator: runs query (evidence: `Final Project/credit-support-agent/src/api/server.py`)
- HTTP / WebSocket API → RAG Pipeline: ingests documents (evidence: `Final Project/credit-support-agent/src/api/server.py`)
- HTTP / WebSocket API → Session Memory: updates session (evidence: `Final Project/credit-support-agent/src/api/server.py`)
- HTTP / WebSocket API → Structured Logging: logs requests (evidence: `Final Project/credit-support-agent/src/api/server.py`)
- CrewAI Orchestrator → CrewAI Mock LLM: generates responses (evidence: `Final Project/credit-support-agent/src/orchestration/crew.py`)
- CrewAI Orchestrator → CrewAI Tools: dispatches tools (evidence: `Final Project/credit-support-agent/src/orchestration/crew.py`)
- CrewAI Orchestrator → Response Cache: checks cache (evidence: `Final Project/credit-support-agent/src/orchestration/crew.py`)
- CrewAI Orchestrator → Agent Response Model: formats response (evidence: `Final Project/credit-support-agent/src/orchestration/crew.py`)
- CrewAI Tools → RAG Pipeline: retrieves policy (evidence: `Final Project/credit-support-agent/src/tools/crewai_tools.py`)
- CrewAI Tools → Loan Status Lookup: checks application (evidence: `Final Project/credit-support-agent/src/tools/crewai_tools.py`)
- Loan Status Lookup → Loan Dataset: reads records (evidence: `Final Project/credit-support-agent/src/tools/loan_lookup_tool.py`)
- Input / Output Guardrails → Agent Response Model: validates output (evidence: `Final Project/credit-support-agent/src/guardrails/pipeline_guardrails.py`)
- Agent Response Model → Draft Governance Review: submits draft
- Draft Governance Review → Review Model Client: queries client (evidence: `Final Project/credit-support-agent/src/governance/review.py`)
- Draft Governance Review → Review Verdict: returns verdict (evidence: `Final Project/credit-support-agent/src/governance/review.py`)
- RAG Pipeline → Dual Chunking: chunks documents (evidence: `Final Project/credit-support-agent/src/retrieval/rag_pipeline.py`)
- RAG Pipeline → Embedding Generator: embeds chunks (evidence: `Final Project/credit-support-agent/src/retrieval/rag_pipeline.py`)
- RAG Pipeline → Vector Store: queries and indexes (evidence: `Final Project/credit-support-agent/src/retrieval/rag_pipeline.py`)
- Vector Store → ChromaDB Backend: selects backend (evidence: `Final Project/credit-support-agent/src/vectordb/factory.py`)
- Vector Store → Memory Vector Backend: selects backend (evidence: `Final Project/credit-support-agent/src/vectordb/factory.py`)
