# nana7mi-swjtu/agent architecture

> Architecture diagram of the GitHub repository nana7mi-swjtu/agent, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nana7mi-swjtu/agent
- Repository: https://github.com/nana7mi-swjtu/agent

## Overview

This is a web-based, workspace-scoped AI application with chat, document-grounded retrieval, knowledge-graph context, and bankruptcy analysis, alongside authentication and profile settings. The main workflow is a user sending a workspace chat request: the backend loads conversation context, invokes the agent service, and returns or streams a reply; the frontend also supports uploading and indexing documents for retrieval. Bankruptcy analysis is a separate workflow for submitting and reviewing records. The tree and excerpts establish these entry points and capabilities, but not all internal calls or provider wiring; uncertain links are omitted.

Main entry points: [`frontUI/src/app/main.js`](https://github.com/nana7mi-swjtu/agent/blob/master/frontUI/src/app/main.js) (Vue application), [`app/workspace/routes.py`](https://github.com/nana7mi-swjtu/agent/blob/master/app/workspace/routes.py) (Workspace chat routes), [`app/rag/pipeline/indexer.py`](https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/pipeline/indexer.py) (Document indexing), [`app/db.py`](https://github.com/nana7mi-swjtu/agent/blob/master/app/db.py) (Application database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web client"]
  node_webapp["Vue application<br/>[main.js]"]
  node_chatui["Chat workspace"]
  node_ragui["RAG workspace<br/>[useWorkspaceRag.js]"]
  node_bankruptcyui["Bankruptcy workspace"]
  node_authui["Authentication UI<br/>[actions.js]"]
end

subgraph group_identity["Identity and workspace"]
  node_authroutes["Authentication routes<br/>[routes.py]"]
  node_workspace["Workspace chat routes<br/>[routes.py]"]
  node_useroutes["Profile routes<br/>[routes.py]"]
  node_db[("Application database<br/>[db.py]")]
end

subgraph group_agent["Agent runtime"]
  node_agentservice["Agent service<br/>[services.py]"]
  node_agentgraph["Agent graph<br/>[builder.py]"]
  node_agenttools["Agent tools<br/>[tools.py]"]
  node_kgtool["Knowledge graph query"]
end

subgraph group_rag["Document retrieval"]
  node_ragroutes["RAG routes<br/>[routes.py]"]
  node_ragservice["RAG service<br/>[service.py]"]
  node_ragpipeline["Document indexing<br/>[indexer.py]"]
  node_fileloaders["File loaders<br/>[registry.py]"]
  node_ragproviders["Embedding and retrieval providers<br/>[registry.py]"]
  node_vectorstore[("Vector store<br/>[chromadb_store.py]")]
end

subgraph group_analysis["Bankruptcy analysis"]
  node_bankruptcyroutes["Bankruptcy routes<br/>[routes.py]"]
  node_bankruptcyservice["Bankruptcy service<br/>[service.py]"]
  node_bankruptcyrepo["Bankruptcy repository<br/>[repository.py]"]
end

node_user(("User"))

node_user -->|"uses"| node_webapp
node_webapp -->|"opens"| node_chatui
node_webapp -->|"opens"| node_ragui
node_webapp -->|"opens"| node_bankruptcyui
node_webapp -->|"opens"| node_authui
node_authui -->|"HTTP requests"| node_authroutes
node_chatui -->|"chat requests"| node_workspace
node_ragui -->|"document requests"| node_ragroutes
node_bankruptcyui -->|"analysis requests"| node_bankruptcyroutes
node_workspace -->|"generates reply"| node_agentservice
node_workspace -->|"loads and saves"| node_db
node_authroutes -->|"reads and writes"| node_db
node_useroutes -->|"reads and writes"| node_db
node_ragroutes -->|"dispatches"| node_ragservice
node_ragservice -->|"indexes documents"| node_ragpipeline
node_ragpipeline -->|"loads files"| node_fileloaders
node_ragpipeline -->|"uses providers"| node_ragproviders
node_ragproviders -->|"stores vectors"| node_vectorstore
node_bankruptcyroutes -->|"dispatches"| node_bankruptcyservice
node_bankruptcyservice -->|"persists records"| node_bankruptcyrepo

click node_webapp "https://github.com/nana7mi-swjtu/agent/blob/master/frontUI/src/app/main.js"
click node_chatui "https://github.com/nana7mi-swjtu/agent/blob/master/frontUI/src/features/chat/model/useChatMessaging.js"
click node_ragui "https://github.com/nana7mi-swjtu/agent/blob/master/frontUI/src/features/rag/model/useWorkspaceRag.js"
click node_bankruptcyui "https://github.com/nana7mi-swjtu/agent/blob/master/frontUI/src/features/bankruptcy/model/useBankruptcyWorkspace.js"
click node_authui "https://github.com/nana7mi-swjtu/agent/blob/master/frontUI/src/features/auth/model/actions.js"
click node_authroutes "https://github.com/nana7mi-swjtu/agent/blob/master/app/auth/routes.py"
click node_workspace "https://github.com/nana7mi-swjtu/agent/blob/master/app/workspace/routes.py"
click node_useroutes "https://github.com/nana7mi-swjtu/agent/blob/master/app/user/routes.py"
click node_db "https://github.com/nana7mi-swjtu/agent/blob/master/app/db.py"
click node_agentservice "https://github.com/nana7mi-swjtu/agent/blob/master/app/agent/services.py"
click node_agentgraph "https://github.com/nana7mi-swjtu/agent/blob/master/app/agent/graph/builder.py"
click node_agenttools "https://github.com/nana7mi-swjtu/agent/blob/master/app/agent/tools/tools.py"
click node_kgtool "https://github.com/nana7mi-swjtu/agent/blob/master/knowledge_graph/graph_cypher_query_tool.py"
click node_ragroutes "https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/routes.py"
click node_ragservice "https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/service.py"
click node_ragpipeline "https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/pipeline/indexer.py"
click node_fileloaders "https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/fileloaders/registry.py"
click node_ragproviders "https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/providers/registry.py"
click node_vectorstore "https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/providers/chromadb_store.py"
click node_bankruptcyroutes "https://github.com/nana7mi-swjtu/agent/blob/master/app/bankruptcy/routes.py"
click node_bankruptcyservice "https://github.com/nana7mi-swjtu/agent/blob/master/app/bankruptcy/service.py"
click node_bankruptcyrepo "https://github.com/nana7mi-swjtu/agent/blob/master/app/bankruptcy/repository.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_webapp,node_chatui,node_ragui,node_bankruptcyui,node_authui,node_user toneBlue
class node_authroutes,node_workspace,node_useroutes,node_db toneAmber
class node_agentservice,node_agentgraph,node_agenttools,node_kgtool toneMint
class node_ragroutes,node_ragservice,node_ragpipeline,node_fileloaders,node_ragproviders,node_vectorstore toneRose
class node_bankruptcyroutes,node_bankruptcyservice,node_bankruptcyrepo toneIndigo
```

## Components

### Web client

- [Vue application](https://github.com/nana7mi-swjtu/agent/blob/master/frontUI/src/app/main.js): `frontUI/src/app/main.js`
- [Chat workspace](https://github.com/nana7mi-swjtu/agent/blob/master/frontUI/src/features/chat/model/useChatMessaging.js): `frontUI/src/features/chat/model/useChatMessaging.js`
- [RAG workspace](https://github.com/nana7mi-swjtu/agent/blob/master/frontUI/src/features/rag/model/useWorkspaceRag.js): `frontUI/src/features/rag/model/useWorkspaceRag.js`
- [Bankruptcy workspace](https://github.com/nana7mi-swjtu/agent/blob/master/frontUI/src/features/bankruptcy/model/useBankruptcyWorkspace.js): `frontUI/src/features/bankruptcy/model/useBankruptcyWorkspace.js`
- [Authentication UI](https://github.com/nana7mi-swjtu/agent/blob/master/frontUI/src/features/auth/model/actions.js): `frontUI/src/features/auth/model/actions.js`

### Identity and workspace

- [Authentication routes](https://github.com/nana7mi-swjtu/agent/blob/master/app/auth/routes.py): `app/auth/routes.py`
- [Workspace chat routes](https://github.com/nana7mi-swjtu/agent/blob/master/app/workspace/routes.py): `app/workspace/routes.py`
- [Profile routes](https://github.com/nana7mi-swjtu/agent/blob/master/app/user/routes.py): `app/user/routes.py`
- [Application database](https://github.com/nana7mi-swjtu/agent/blob/master/app/db.py): `app/db.py`

### Agent runtime

- [Agent service](https://github.com/nana7mi-swjtu/agent/blob/master/app/agent/services.py): `app/agent/services.py`
- [Agent graph](https://github.com/nana7mi-swjtu/agent/blob/master/app/agent/graph/builder.py): `app/agent/graph/builder.py`
- [Agent tools](https://github.com/nana7mi-swjtu/agent/blob/master/app/agent/tools/tools.py): `app/agent/tools/tools.py`
- [Knowledge graph query](https://github.com/nana7mi-swjtu/agent/blob/master/knowledge_graph/graph_cypher_query_tool.py): `knowledge_graph/graph_cypher_query_tool.py`

### Document retrieval

- [RAG routes](https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/routes.py): `app/rag/routes.py`
- [RAG service](https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/service.py): `app/rag/service.py`
- [Document indexing](https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/pipeline/indexer.py): `app/rag/pipeline/indexer.py`
- [File loaders](https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/fileloaders/registry.py): `app/rag/fileloaders/registry.py`
- [Embedding and retrieval providers](https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/providers/registry.py): `app/rag/providers/registry.py`
- [Vector store](https://github.com/nana7mi-swjtu/agent/blob/master/app/rag/providers/chromadb_store.py): `app/rag/providers/chromadb_store.py`

### Bankruptcy analysis

- [Bankruptcy routes](https://github.com/nana7mi-swjtu/agent/blob/master/app/bankruptcy/routes.py): `app/bankruptcy/routes.py`
- [Bankruptcy service](https://github.com/nana7mi-swjtu/agent/blob/master/app/bankruptcy/service.py): `app/bankruptcy/service.py`
- [Bankruptcy repository](https://github.com/nana7mi-swjtu/agent/blob/master/app/bankruptcy/repository.py): `app/bankruptcy/repository.py`

### Other components

- **User**

## Connections

- User → Vue application: uses
- Vue application → Chat workspace: opens
- Vue application → RAG workspace: opens
- Vue application → Bankruptcy workspace: opens
- Vue application → Authentication UI: opens
- Authentication UI → Authentication routes: HTTP requests
- Chat workspace → Workspace chat routes: chat requests
- RAG workspace → RAG routes: document requests
- Bankruptcy workspace → Bankruptcy routes: analysis requests
- Workspace chat routes → Agent service: generates reply
- Workspace chat routes → Application database: loads and saves
- Authentication routes → Application database: reads and writes
- Profile routes → Application database: reads and writes
- RAG routes → RAG service: dispatches
- RAG service → Document indexing: indexes documents
- Document indexing → File loaders: loads files
- Document indexing → Embedding and retrieval providers: uses providers
- Embedding and retrieval providers → Vector store: stores vectors
- Bankruptcy routes → Bankruptcy service: dispatches
- Bankruptcy service → Bankruptcy repository: persists records
