ESG Portfolio Risk Analysis with Critique-Correct Agents
The client needed to audit thousands of unstructured ESG reports to identify high-risk investments, a process previously requiring weeks of manual analyst labor.
The Problem
A sustainability-focused investment firm was drowning in ESG documentation. Their analysts spent weeks manually reviewing thousands of unstructured reports—PDF sustainability disclosures, annual reports, third-party audits—trying to identify “greenwashing” and quantify actual environmental impact. The manual process was not only slow but prone to inconsistency.
The Architecture
flowchart TB
subgraph intake [Document Intake]
PDFs[ESG Reports / PDFs]
Unstructured[unstructured.io]
end
subgraph agents [Critique-Correct System]
Extractor[Extractor Agent]
Auditor[Auditor Agent]
Reconciler[Reconciliation Engine]
end
subgraph memory [Knowledge Layer]
Pinecone[(Pinecone Vector DB)]
SourceDocs[Source Document Store]
end
subgraph output [Output]
RiskReport[Risk Assessment Report]
Flags[Greenwashing Flags]
end
PDFs --> Unstructured
Unstructured --> Extractor
Extractor --> Auditor
Auditor -->|"Verify Claims"| SourceDocs
SourceDocs --> Auditor
Auditor -->|"Corrections"| Reconciler
Extractor --> Pinecone
Reconciler --> RiskReport
Reconciler --> Flags The Critique-Correct Loop
The key innovation is a dual-agent verification system:
- Extractor Agent: Parses ESG reports using Claude 3.5 Sonnet, extracting quantitative claims (emissions data, diversity metrics, supply chain audits)
- Auditor Agent: Cross-references every extracted claim against the original source PDFs, flagging hallucinations or unsupported assertions
- Reconciliation Engine: Resolves conflicts and produces a confidence-scored final output
This approach eliminates the hallucination problem that plagues single-agent extraction in high-stakes financial contexts.
Tech Stack
- LangGraph — Multi-agent orchestration with conditional routing
- Claude 3.5 Sonnet — Primary extraction and reasoning
- Pinecone — Semantic search across historical ESG data
- unstructured.io — PDF parsing and chunking
The Impact
| Metric | Before | After |
|---|---|---|
| Report Processing Time | 3 weeks | 2 days |
| Analyst Hours per Report | 40+ | 4 |
| Greenwashing Detection | Manual spot-check | Systematic |
| Risk Coverage | $50M portfolio | $4.5M flagged risk identified |
The system now processes the firm’s entire portfolio quarterly, surfacing risks that would have gone undetected.