Skip to content

About

Multi-agent client intelligence demo for corporate and institutional banking - Copilot Studio + Azure AI Foundry + LSEG MCP, on Power Platform

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FSI Intelligence Hub

A multi-agent client-intelligence demo for corporate and institutional banking, built on Microsoft Copilot Studio, Azure AI Foundry, Power Automate and Dataverse, grounded on the LSEG Data & Analytics MCP server.

A relationship manager types a company name in free text. Six Copilot Studio agents resolve the entity and research it in parallel against live LSEG data. An Azure AI Foundry orchestrator then synthesises the findings into a Bankable Wallet estimate with evidence-traced next best actions.

Unofficial demo. This is a personal technical demonstration. It is not a product, not supported, and not affiliated with or endorsed by London Stock Exchange Group plc or Microsoft Corporation. No LSEG data, content or credentials are included in this repository - you must supply your own licensed connection. Nothing here is investment advice. See Disclaimers.

Results dashboard

What makes this different

Free-text entity resolution. No dropdown, no pre-seeded company list, no GLEIF lookup. Type ADNOC Gas, adnoc gas plc or a misspelling - a dedicated resolver agent searches LSEG and returns a legal entity with RIC, PermID, LEI and a confidence score. Below the confidence threshold it returns ranked candidates for disambiguation rather than guessing.

Fail-closed, never fabricated. Every agent must prove it actually reached an LSEG MCP tool. If it did not, the run is marked ConnectorUnavailable and shown in red. Missing data is displayed as an explicit "no data" state - it is never silently smoothed over into a confident-looking answer.

Fully auditable agent conversations. Every agent panel opens the real transcript for that run: the exact prompt Power Automate sent, the agent's own message activities, and the parsed JSON envelope. None of it is reconstructed in the browser.

Agent transcript

Modelled numbers are labelled as modelled. The Bankable Wallet carries a Modelled chip, exposes its capture-rate band and revenue anchor, and every driver line references the evidence item it came from.

Architecture

FSI Intelligence Hub architecture

A relationship manager types free text into the web resource, which writes a row to Dataverse. A Power Automate flow picks it up, resolves the entity, gates on confidence, fans out to five specialists in parallel, and hands their envelopes to an Azure AI Foundry orchestrator for synthesis. Results land back on the run row, which the UI is polling.

Only the Entity Resolver and the five specialist agents talk to LSEG. The orchestrator reasons purely over what those agents already returned - it never queries market data itself.

How agent output reaches the UI

Agent data flow

Full detail, including the fail-closed status matrix and the transparency columns, is in docs/ARCHITECTURE.md.

The agents

Agent Platform Responsibility
Entity Resolver Copilot Studio Free text to legal entity: RIC, PermID, LEI, confidence, candidates
Fundamentals Copilot Studio Revenue, earnings, estimates, capital structure
Credit & Risk Copilot Studio Issuer credit, spreads, leverage signals
Markets & Pricing Copilot Studio Instruments, pricing, market context
News & Events Copilot Studio Corporate actions, announcements, disruptions
Macro & Country Copilot Studio Sovereign and sector backdrop
Orchestrator Azure AI Foundry (gpt-5.6-sol) Synthesis, wallet modelling, next best actions

Repository layout

src/webresource/hub-v2.html   Single-file UI (no build step, no dependencies)
scripts/                      Idempotent Python deployment scripts
solution/                     Exported Dataverse solution, managed + unmanaged
scripts/export_solution.py    Secret-safe solution export
tools/                        Diagram generators (Azure OpenAI gpt-image-2)
docs/ARCHITECTURE.md          Architecture notes, status matrix, column map
docs/FOUNDRY_SETUP.md         Standing up the Azure AI Foundry orchestrator
docs/images/                  Architecture and data-flow diagrams
docs/screenshots/             UI screenshots

Deploying

Prerequisites

  • A Dataverse environment with Copilot Studio and Power Automate
  • Access to the LSEG Data & Analytics MCP server
  • An Azure AI Foundry project with a model deployment that supports the Agents API and strict json_schema output (gpt-5.6-sol or gpt-4.1)
  • An Entra app registration holding Azure AI Developer and Cognitive Services User on that Foundry resource

Setting those up is walked through in docs/FOUNDRY_SETUP.md.

  • Python 3.11+ and the Azure CLI

1 - Import the solution

Download the packages from the latest release, or use the copies in solution/:

File Use
lseg_IntelligenceHubV2_2_0_0_0_managed.zip Managed - clean install
lseg_IntelligenceHubV2_2_0_0_0.zip Unmanaged - if you want to customise it

During import you will be prompted for the lseg_FoundryClientSecret environment variable. The published packages ship with that value blank on purpose - supply your own. See Security.

2 - Configure

export DATAVERSE_URL="https://yourorg.crm.dynamics.com"

export AZURE_TENANT_ID="<tenant-id>"
export FOUNDRY_CLIENT_ID="<app-registration-client-id>"
export LSEG_FOUNDRY_CLIENT_SECRET="<client-secret>"
export FOUNDRY_ACCOUNT="<foundry-resource-name>"
export FOUNDRY_PROJECT="DefaultProject"
export FOUNDRY_MODEL="gpt-5.6-sol"
export FOUNDRY_PROJECT_ENDPOINT="https://<foundry-resource-name>.services.ai.azure.com/api/projects/DefaultProject"

az login

The Foundry values come from docs/FOUNDRY_SETUP.md. Do that first if you have not already - the orchestrator is the one component the solution zip cannot bring with it.

3 - Deploy the components

python scripts/deploy_v2_foundation.py          # tables and columns
python scripts/deploy_v2_agents.py              # Copilot Studio agents
python scripts/publish_v2_agents.py             # publish them
python scripts/deploy_foundry_orchestrator.py   # Foundry orchestrator (see FOUNDRY_SETUP.md)
python scripts/deploy_v2_flow.py                # orchestration flow
python scripts/deploy_webresource.py            # UI
python scripts/deploy_v2_app.py                 # model-driven app

Every script is idempotent - safe to re-run.

4 - Verify

python scripts/test_v2_agents.py

Security

No secrets are stored in this repository. The Foundry client secret is held in the Dataverse environment variable lseg_FoundryClientSecret and is read by the flow at runtime. Tenant, client, org, Foundry resource and model names are all read from environment variables.

A warning worth repeating. Dataverse's ExportSolution writes environment variable values into the package, so a raw export of this solution contains the Foundry client secret in plaintext. Never publish one. Use scripts/export_solution.py, which exports, blanks every environment variable value, then re-reads the zip and refuses to finish if any value survived:

python scripts/export_solution.py

The published release assets were produced this way and re-verified after upload.

For anything beyond a demo, back that environment variable with Azure Key Vault rather than storing the secret in Dataverse directly.

Screenshots

Landing Agents running
Free-text entry Live agent progress
Wallet Orchestrator
Modelled wallet and next best actions Orchestrator synthesis transcript

Disclaimers

Not an official product. This is a personal technical demonstration built to show a Microsoft agent architecture pattern. It is not a Microsoft or LSEG product, it is not supported, it carries no SLA, and it is not affiliated with, sponsored by, or endorsed by London Stock Exchange Group plc or Microsoft Corporation. Views and design choices here are the author's own and do not represent either company.

Trademarks. "LSEG", "Refinitiv", "Datastream", "Microsoft", "Dynamics 365", "Power Platform", "Copilot Studio", "Dataverse" and "Azure" are trademarks of their respective owners. They are used here descriptively to identify the technologies involved. No trademark rights are claimed or granted.

No market data is included. This repository contains no LSEG data, content, entitlements or credentials. Running the demo requires your own licensed LSEG Data & Analytics subscription and MCP connector access, used under your own agreement with LSEG. Screenshots are illustrative only, show point-in-time output for one company, and must not be relied upon or redistributed as market data.

Not investment, financial or credit advice. Nothing produced by this demo - including the Bankable Wallet estimate, risk signals, credit commentary or next best actions - is investment research, a recommendation, a solicitation, or advice of any kind. Do not use any output to make financial, credit, trading or commercial decisions.

The wallet figure is modelled, not reported. The Bankable Wallet applies an assumed capture-rate band to a revenue anchor drawn from the fundamentals evidence. It is a synthetic illustration of a modelling technique. It is not a forecast, not a valuation, and it is not LSEG's or anyone else's estimate of actual banking revenue. The UI labels it Modelled for that reason.

Generative AI output can be wrong. Every agent in this system is a large language model. Output can be incomplete, out of date, misattributed, or simply incorrect, even when it cites evidence. The fail-closed design reduces the chance of a confident answer built on a failed data call - it does not make the content correct. Always verify against the source before acting.

Not production-ready. The LSEG connector runs in maker mode with a single shared credential, so there is no per-user entitlement enforcement and no per-user audit trail. The Foundry client secret is held in a Dataverse environment variable rather than Key Vault. Neither is appropriate for production use with licensed market data or for handling client information.

Diagrams are AI-generated illustrations. The architecture and data-flow images in docs/images/ were produced with gpt-image-2 from the prompts in tools/. They are conceptual and may simplify or omit detail. The authoritative description is docs/ARCHITECTURE.md and, ultimately, the code.

Use at your own risk. Provided "as is", without warranty of any kind. See LICENSE.

Notes

  • The UI is a single self-contained HTML file. There is no build step and no runtime dependencies.
  • Every deployment script is idempotent and safe to re-run.
  • This is a demonstration asset, not a supported product.

Licence

MIT - applies to the code in this repository only.

Market data, the LSEG connector, and Microsoft platform services are governed by their own separate licences and are not granted by this repository.

About

Multi-agent client intelligence demo for corporate and institutional banking - Copilot Studio + Azure AI Foundry + LSEG MCP, on Power Platform

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages