AI-Powered Trade Assistant for Equities Trading Workflows
jefferies_equities · Finance · 2025 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.4 (schema v2)
Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.
Problem
Domain: Equities trading analytics
Jefferies front-office traders needed faster access to fragmented global trading data and real-time insights without depending on analysts or developers to build custom dashboards and queries.
Constraints:
- equities data spans millions of trades per day across multiple global stores and visualization tools
- traders need insights during the trading day, not after a developer builds a dashboard
- row-level entitlements and audit trails are required for sensitive customer data
- answers must fit existing trading workflows and BI tools
- visualizations must be controlled enough to avoid hallucinated charts
Architecture
Jefferies built a Trade Assistant inside its Global Flow Monitor BI platform on AWS. Authenticated traders use a UI widget to ask natural-language questions. EKS-hosted services manage authentication, sessions, bot routing, and query-agent invocation. A Strands agent uses Amazon Bedrock, Titan, a Bedrock Knowledge Base, and multiple MCP tools to choose the right data source, generate SQL, execute it against GridGain-backed trading data, and return text, tables, charts, or graphs. Guardrails, row-level entitlements, and conversation logging provide governance.
Diagram confidence: explicit (topology described by the source).
flowchart LR global-flow-monitor["global-flow-monitor"] --> eks-bot-services["eks-bot-services"] global-flow-monitor["global-flow-monitor"] --> row-level-entitlements["row-level-entitlements"] eks-bot-services["eks-bot-services"] --> strands-query-agent["strands-query-agent"] strands-query-agent["strands-query-agent"] --> mcp-tool-layer["mcp-tool-layer"] strands-query-agent["strands-query-agent"] --> amazon-bedrock-knowledge-base["amazon-bedrock-knowledge-base"] strands-query-agent["strands-query-agent"] --> query-executor-service["query-executor-service"] strands-query-agent["strands-query-agent"] --> bedrock-model-layer["bedrock-model-layer"] mcp-tool-layer["mcp-tool-layer"] --> trading-data-sources["trading-data-sources"] amazon-bedrock-knowledge-base["amazon-bedrock-knowledge-base"] --> bedrock-model-layer["bedrock-model-layer"] query-executor-service["query-executor-service"] --> gridgain-data-grid["gridgain-data-grid"] query-executor-service["query-executor-service"] --> markdown-visualization-renderer["markdown-visualization-renderer"] gridgain-data-grid["gridgain-data-grid"] --> trading-data-sources["trading-data-sources"] markdown-visualization-renderer["markdown-visualization-renderer"] --> global-flow-monitor["global-flow-monitor"] row-level-entitlements["row-level-entitlements"] --> trading-data-sources["trading-data-sources"]
Components
| Component | Role | Interacts with |
|---|---|---|
global-flow-monitor |
Existing Jefferies BI platform where traders authenticate and use the Trade Assistant widget. | eks-bot-services, row-level-entitlements |
eks-bot-services |
AWS EKS services for authentication, session creation, bot routing, and query-agent invocation. | global-flow-monitor, strands-query-agent |
strands-query-agent |
Core agent that interprets trader questions, plans steps, calls MCP tools, selects data sources, and creates SQL. | mcp-tool-layer, amazon-bedrock-knowledge-base, query-executor-service, bedrock-model-layer |
mcp-tool-layer |
Tool interface that exposes data-source choices and execution capabilities to the Strands agent. | strands-query-agent, trading-data-sources |
amazon-bedrock-knowledge-base |
Vector store providing relevant context for the agent's reasoning. | strands-query-agent, bedrock-model-layer |
bedrock-model-layer |
Amazon Bedrock model access, including Titan embeddings and future model flexibility. | strands-query-agent, amazon-bedrock-knowledge-base |
query-executor-service |
Runs generated SQL against underlying trading data and returns query results. | strands-query-agent, gridgain-data-grid, markdown-visualization-renderer |
gridgain-data-grid |
In-memory data grid hosting Jefferies trading data for fast retrieval. | query-executor-service, trading-data-sources |
markdown-visualization-renderer |
Controlled renderer for charts, tables, and visualizations selected by the LLM. | query-executor-service, global-flow-monitor |
row-level-entitlements |
Security layer that limits traders to data they are authorized to view and supports auditability. | global-flow-monitor, trading-data-sources |
trading-data-sources |
Fragmented global equity-trading stores and visualization systems behind the assistant. | mcp-tool-layer, gridgain-data-grid, row-level-entitlements |
Data flow
A trader logs into GFM and is authorized for the data they may see. Their natural-language query is routed to bot services that create a session and invoke the Strands query agent. The agent uses MCP tools and Bedrock context to pick a data source, create SQL, and pass it to a query executor. The executor queries GridGain and underlying data services, while the LLM chooses the output format and a markdown UI library renders the visualization in the BI interface.
4 supporting quotes
Why this architecture
The architecture keeps the assistant inside an existing BI product to fit trader workflows, uses Strands and MCP tools for low-code agent orchestration across fragmented data sources, and reserves visualization rendering for a deterministic UI library rather than letting the LLM draw charts directly. Bedrock provides model flexibility and knowledge-base retrieval, while EKS, GridGain, entitlements, and logging fit the operational and compliance needs of a financial institution.
4 supporting quotes
Models used: Amazon Bedrock · Amazon Titan embeddings · Strands Agents · Amazon Bedrock Knowledge Base · MCP · AWS EKS · GridGain · markdown UI library
Scale
- Jefferies is a 60-year-old full-service investment bank.“So Jefferies is a 60-year-old full service investment bank.”transcript, stated
- Equities traders deal with millions of trades per day.“we are talking about millions of trades a single day just stored in multiple different data stores and visualization tools and this is global.”transcript, stated
- The beta rollout covered around 50 sales and trading users.“in our beta rollout to around 50 users across sales and trading operations”transcript, stated
- The assistant delivered an 80% reduction in routine analytical-task time.“we delivered an 80% reduction in the time spent on routine analytical tasks.”transcript, stated
- Jefferies is planning a global rollout to its trading user base.“we are planning for a global rollout to your trading user base.”transcript, stated
Alternatives considered (roads not taken)
LangChain as the agent orchestration layer
Rejected because: Jefferies pivoted to Strands after AWS recommended it and the team observed better processing and easier orchestration for a from-scratch build.
Custom dashboards built by analysts and developers
Rejected because: That approach slowed traders and imposed technical burden across desks; self-service natural-language analytics reduced dependency on tech resources.
Direct LLM-generated visualizations
Rejected because: The LLM only chooses the visualization while the markdown UI library renders it, giving the team more control over outputs.
Patterns
tool-use-orchestration (agent architecture)
The Strands agent calls MCP tools to choose the appropriate trading data source and drive SQL execution.
rag-retrieval (retrieval)
Amazon Bedrock Knowledge Base provides vector-store context for the agent before it creates SQL over trading data.
structured-output-contract (reliability)
The LLM generates SQL and chooses an output form, while execution and visualization rendering are handled by controlled services.
privacy-preserving-processing (security)
Row-level data entitlements, intelligent access controls, and conversation audit trails protect sensitive financial data.
Tradeoffs
Pivot agent orchestration from LangChain to Strands.
Chose Strands agents over LangChain.
Rationale: AWS recommended Strands, and Jefferies observed processing improvements and simpler orchestration while starting from scratch.
Embed the assistant in GFM.
Chose Existing Global Flow Monitor BI platform over A separate analytics application.
Rationale: Traders already rely on GFM for real-time trading data, so embedding the widget avoids workflow switching and preserves entitlements.
Use self-service conversational analytics.
Chose Natural-language queries over trading records over IT-produced custom dashboards for each request.
Rationale: Self-service reduces dashboard toil while giving business users real-time discovery over trading data.
Gotchas (what bit them)
Trading insight data was too fragmented for direct human exploration.
Root cause: Millions of trades were spread across multiple data stores and visualization tools globally.
Resolution: Use an agent to coalesce access through natural-language SQL generation and data-source selection.
The assistant has to respect trader-specific data authorization.
Root cause: Front-office trading data includes customer-sensitive information and users should only see authorized data.
Resolution: Verify GFM credentials, enforce row-level entitlements, and log conversations for audit trails.
Visual outputs need guardrails beyond model text generation.
Root cause: Trading users need charts and tables, but hallucinated visualization generation would be risky.
Resolution: Let the model select a visualization and render it through a markdown UI library.
Evaluation
Jefferies evaluated the assistant through beta deployment with sales and trading users, measuring time saved on routine analytics, adoption, user satisfaction, tech-burden reduction, and readiness for global rollout.
Metrics: 50 beta users · 80% reduction in routine analytical-task time · adoption rate · user satisfaction · technical burden for custom dashboards · global rollout readiness
3 supporting quotes
Outcomes
- The Trade Assistant beta reached around 50 sales and trading users.
- Jefferies reported an 80% reduction in time spent on routine analytical tasks.
- The assistant reduced dependency on technical teams for custom dashboards.
- Business users can query millions of equity-trading records in natural language.
- Jefferies plans a global rollout to the trading user base.
The case reports millions of daily trades, a 50-user beta, an 80% time reduction for routine analytical tasks, and planned global rollout.