# pegasystems/infinity-ai-agent-demonstrations architecture

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

- Interactive diagram: https://gitdiagram.com/pegasystems/infinity-ai-agent-demonstrations
- Repository: https://github.com/pegasystems/infinity-ai-agent-demonstrations

## Overview

Two complementary but independently running applications support agent development: the Inspector explores configuration and conducts live chats; DeepEval captures representative sessions, manages golden datasets, runs regression evaluations, and exposes results through APIs and QA tooling. The recommended handoff is human-mediated rather than a direct app-to-app call. Several DeepEval subsystems are documented but their runtime wiring was not sampled, so those links are omitted or marked unverified.

Main entry points: [`apps/pega-agent-inspector/src/server.js`](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/server.js) (Express server), [`apps/deepeval-pega/api/app.py`](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/app.py) (FastAPI application), [`apps/deepeval-pega/capture_golden_session.py`](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/capture_golden_session.py) (Golden session capture), [`apps/deepeval-pega/api/auth.py`](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/auth.py) (API client authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inspector["Agent Inspector"]
  node_browser["Inspector browser UI<br/>[inspector-panel.js]"]
  node_chatui["Chat and config UI<br/>[chat-panel.js]"]
  node_webserver["Express server<br/>[server.js]"]
  node_authroute["Token route<br/>[auth.js]"]
  node_agentroute["Agent inspection route<br/>[agent.js]"]
  node_chatroute["Chat route<br/>[chat.js]"]
  node_pegaauth["Pega OAuth client<br/>[PegaAuth.js]"]
  node_dxapi["Pega DX API client<br/>[PegaDXApi.js]"]
  node_apichat["DX chat handler<br/>[ApiChatHandler.js]"]
  node_a2a["A2A handler<br/>[A2AHandler.js]"]
end

subgraph group_evaluation["Evaluation Platform"]
  node_deepevalui["DeepEval web app<br/>[DeepEval_Pega.py]"]
  node_capture["Golden session capture"]
  node_api["FastAPI application<br/>[app.py]"]
  node_auth["API client authentication<br/>[auth.py]"]
  node_models["API data models<br/>[models.py]"]
  node_projects["Project management<br/>[projects.py]"]
  node_datasets["Golden datasets<br/>[datasets.py]"]
  node_evaluations["Evaluation endpoints<br/>[evaluations.py]"]
  node_runner["Evaluation runner"]
end

subgraph group_qa["QA Results"]
  node_results["Result parsing and reports"]
  node_resultdb[("QA result storage<br/>[db_etl.py]")]
  node_mcp["QA outcomes MCP server"]
end

node_developer(("Developer"))
node_pega{{"Pega agent services"}}

node_developer -->|"inspects agents"| node_browser
node_developer -->|"tests interactively"| node_chatui
node_browser -.->|"uses served app"| node_webserver
node_chatui -.->|"calls proxy"| node_webserver
node_webserver -->|"mounts route"| node_authroute
node_webserver -->|"mounts route"| node_agentroute
node_webserver -->|"mounts route"| node_chatroute
node_authroute -->|"requests tokens"| node_pegaauth
node_agentroute -->|"inspects via"| node_dxapi
node_agentroute -->|"inspects via"| node_a2a
node_chatroute -->|"dispatches API chat"| node_apichat
node_chatroute -->|"dispatches A2A chat"| node_a2a
node_apichat -->|"sends messages"| node_dxapi
node_pegaauth -.->|"gets access token"| node_pega
node_dxapi -.->|"reads and chats"| node_pega
node_a2a -->|"fetches card, sends RPC"| node_pega
node_developer -->|"records conversations"| node_capture
node_capture -->|"retrieves session history"| node_pega
node_developer -->|"configures and evaluates"| node_deepevalui
node_deepevalui -->|"creates golden sessions"| node_capture
node_api -->|"mounts router"| node_projects
node_api -->|"mounts router"| node_datasets
node_api -->|"mounts router"| node_evaluations
node_api -->|"registers OAuth"| node_auth
node_projects -->|"checks scopes"| node_auth
node_datasets -->|"checks scopes"| node_auth
node_evaluations -->|"checks scopes"| node_auth
node_datasets -->|"builds datasets"| node_capture
node_evaluations -->|"starts evaluation"| node_runner
node_runner -.->|"produces run output"| node_results
node_results -.->|"persists QA results"| node_resultdb
node_mcp -.->|"queries outcomes"| node_resultdb
node_developer -->|"queries QA outcomes"| node_mcp

click node_browser "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/public/js/inspector-panel.js"
click node_chatui "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/public/js/chat-panel.js"
click node_webserver "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/server.js"
click node_authroute "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/routes/auth.js"
click node_agentroute "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/routes/agent.js"
click node_chatroute "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/routes/chat.js"
click node_pegaauth "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/lib/PegaAuth.js"
click node_dxapi "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/lib/PegaDXApi.js"
click node_apichat "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/lib/ApiChatHandler.js"
click node_a2a "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/lib/A2AHandler.js"
click node_deepevalui "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/DeepEval_Pega/DeepEval_Pega.py"
click node_capture "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/capture_golden_session.py"
click node_api "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/app.py"
click node_auth "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/auth.py"
click node_models "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/models.py"
click node_projects "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/routers/projects.py"
click node_datasets "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/routers/datasets.py"
click node_evaluations "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/routers/evaluations.py"
click node_runner "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/evaluation_runner.py"
click node_results "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/report_generator.py"
click node_resultdb "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/db_etl.py"
click node_mcp "https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/qa_results_mcp_server.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_browser,node_chatui,node_webserver,node_authroute,node_agentroute,node_chatroute,node_pegaauth,node_dxapi,node_apichat,node_a2a toneBlue
class node_deepevalui,node_capture,node_api,node_auth,node_models,node_projects,node_datasets,node_evaluations,node_runner toneAmber
class node_results,node_resultdb,node_mcp toneMint
class node_developer,node_pega toneIndigo
```

## Components

### Agent Inspector

- [Inspector browser UI](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/public/js/inspector-panel.js): `apps/pega-agent-inspector/public/js/inspector-panel.js`
- [Chat and config UI](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/public/js/chat-panel.js): `apps/pega-agent-inspector/public/js/chat-panel.js`
- [Express server](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/server.js): `apps/pega-agent-inspector/src/server.js`
- [Token route](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/routes/auth.js): `apps/pega-agent-inspector/src/routes/auth.js`
- [Agent inspection route](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/routes/agent.js): `apps/pega-agent-inspector/src/routes/agent.js`
- [Chat route](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/routes/chat.js): `apps/pega-agent-inspector/src/routes/chat.js`
- [Pega OAuth client](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/lib/PegaAuth.js): `apps/pega-agent-inspector/src/lib/PegaAuth.js`
- [Pega DX API client](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/lib/PegaDXApi.js): `apps/pega-agent-inspector/src/lib/PegaDXApi.js`
- [DX chat handler](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/lib/ApiChatHandler.js): `apps/pega-agent-inspector/src/lib/ApiChatHandler.js`
- [A2A handler](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/pega-agent-inspector/src/lib/A2AHandler.js): `apps/pega-agent-inspector/src/lib/A2AHandler.js`

### Evaluation Platform

- [DeepEval web app](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/DeepEval_Pega/DeepEval_Pega.py): `apps/deepeval-pega/DeepEval_Pega/DeepEval_Pega.py`
- [Golden session capture](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/capture_golden_session.py): `apps/deepeval-pega/capture_golden_session.py`
- [FastAPI application](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/app.py): `apps/deepeval-pega/api/app.py`
- [API client authentication](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/auth.py): `apps/deepeval-pega/api/auth.py`
- [API data models](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/models.py): `apps/deepeval-pega/api/models.py`
- [Project management](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/routers/projects.py): `apps/deepeval-pega/api/routers/projects.py`
- [Golden datasets](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/routers/datasets.py): `apps/deepeval-pega/api/routers/datasets.py`
- [Evaluation endpoints](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/routers/evaluations.py): `apps/deepeval-pega/api/routers/evaluations.py`
- [Evaluation runner](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/api/evaluation_runner.py): `apps/deepeval-pega/api/evaluation_runner.py`

### QA Results

- [Result parsing and reports](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/report_generator.py): `apps/deepeval-pega/report_generator.py`
- [QA result storage](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/db_etl.py): `apps/deepeval-pega/db_etl.py`
- [QA outcomes MCP server](https://github.com/pegasystems/infinity-ai-agent-demonstrations/blob/master/apps/deepeval-pega/qa_results_mcp_server.py): `apps/deepeval-pega/qa_results_mcp_server.py`

### Other components

- **Developer**
- **Pega agent services**

## Connections

- Developer → Inspector browser UI: inspects agents (evidence: `README.md`)
- Developer → Chat and config UI: tests interactively (evidence: `README.md`)
- Inspector browser UI → Express server: uses served app (evidence: `apps/pega-agent-inspector/src/server.js`)
- Chat and config UI → Express server: calls proxy (evidence: `README.md`)
- Express server → Token route: mounts route (evidence: `apps/pega-agent-inspector/src/server.js`)
- Express server → Agent inspection route: mounts route (evidence: `apps/pega-agent-inspector/src/server.js`)
- Express server → Chat route: mounts route (evidence: `apps/pega-agent-inspector/src/server.js`)
- Token route → Pega OAuth client: requests tokens (evidence: `apps/pega-agent-inspector/src/routes/auth.js`)
- Agent inspection route → Pega DX API client: inspects via (evidence: `apps/pega-agent-inspector/src/routes/agent.js`)
- Agent inspection route → A2A handler: inspects via (evidence: `apps/pega-agent-inspector/src/routes/agent.js`)
- Chat route → DX chat handler: dispatches API chat (evidence: `apps/pega-agent-inspector/src/routes/chat.js`)
- Chat route → A2A handler: dispatches A2A chat (evidence: `apps/pega-agent-inspector/src/routes/chat.js`)
- DX chat handler → Pega DX API client: sends messages (evidence: `apps/pega-agent-inspector/src/lib/ApiChatHandler.js`)
- Pega OAuth client → Pega agent services: gets access token
- Pega DX API client → Pega agent services: reads and chats
- A2A handler → Pega agent services: fetches card, sends RPC (evidence: `apps/pega-agent-inspector/src/lib/A2AHandler.js`)
- Developer → Golden session capture: records conversations (evidence: `README.md`)
- Golden session capture → Pega agent services: retrieves session history (evidence: `apps/deepeval-pega/capture_golden_session.py`)
- Developer → DeepEval web app: configures and evaluates (evidence: `README.md`)
- DeepEval web app → Golden session capture: creates golden sessions (evidence: `apps/deepeval-pega/DeepEval_Pega/DeepEval_Pega.py`)
- FastAPI application → Project management: mounts router (evidence: `apps/deepeval-pega/api/app.py`)
- FastAPI application → Golden datasets: mounts router (evidence: `apps/deepeval-pega/api/app.py`)
- FastAPI application → Evaluation endpoints: mounts router (evidence: `apps/deepeval-pega/api/app.py`)
- FastAPI application → API client authentication: registers OAuth (evidence: `apps/deepeval-pega/api/app.py`)
- Project management → API client authentication: checks scopes (evidence: `apps/deepeval-pega/api/routers/projects.py`)
- Golden datasets → API client authentication: checks scopes (evidence: `apps/deepeval-pega/api/routers/datasets.py`)
- Evaluation endpoints → API client authentication: checks scopes (evidence: `apps/deepeval-pega/api/routers/evaluations.py`)
- Golden datasets → Golden session capture: builds datasets (evidence: `apps/deepeval-pega/api/routers/datasets.py`)
- Evaluation endpoints → Evaluation runner: starts evaluation (evidence: `apps/deepeval-pega/api/routers/evaluations.py`)
- Evaluation runner → Result parsing and reports: produces run output
- Result parsing and reports → QA result storage: persists QA results
- QA outcomes MCP server → QA result storage: queries outcomes
- Developer → QA outcomes MCP server: queries QA outcomes (evidence: `README.md`)
