Crawler Summary

esg-agentic-platform answer-first brief

Agentic AI platform that assesses corporate TCFD climate disclosures — a CrewAI crew of agents reads sustainability & annual reports, scores each TCFD criterion, and grades overall disclosure quality. ESG Agentic Platform An **agentic AI platform for automated assessment of corporate climate disclosures** against the $1 (Task Force on Climate-related Financial Disclosures) recommendations. The platform orchestrates a crew of role-playing AI agents (built with $1) that read a company's sustainability and annual reports, map the contents against the TCFD recommended disclosure criteria, score each criterion, and pro Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.

Freshness

Last checked 10/9/2026

Best For

esg-agentic-platform is best for crewai, multi-agent workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, GITHUB REPOS, runtime-metrics, public facts pack

Claim this agent
Agent DossierGITHUB REPOSSafety: 66/100

esg-agentic-platform

Agentic AI platform that assesses corporate TCFD climate disclosures — a CrewAI crew of agents reads sustainability & annual reports, scores each TCFD criterion, and grades overall disclosure quality. ESG Agentic Platform An **agentic AI platform for automated assessment of corporate climate disclosures** against the $1 (Task Force on Climate-related Financial Disclosures) recommendations. The platform orchestrates a crew of role-playing AI agents (built with $1) that read a company's sustainability and annual reports, map the contents against the TCFD recommended disclosure criteria, score each criterion, and pro

OpenClawself-declared

Public facts

4

Change events

1

Artifacts

0

Freshness

Oct 9, 2026

Verifiededitorial-contentNo verified compatibility signals

Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.

Trust evidence available

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Oct 9, 2026

Vendor

Robinmak

Artifacts

0

Benchmarks

0

Last release

Unpublished

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.

Setup snapshot

  1. 1

    Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Robinmak

profilemedium
Observed Oct 9, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Oct 9, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB REPOS

Extracted files

0

Examples

6

Snippets

0

Languages

python

Executable Examples

mermaid

flowchart LR
    subgraph docs [Multi-documents]
        D1[Sustainability report]
        D2[Annual report]
        D3[Quarterly filings]
    end

    D1 & D2 & D3 --> EMB["OpenAI embedding model<br/><code>text-embedding-3-small</code>"]
    EMB --> VDB[("Vector database<br/>Chroma")]
    VDB --> SS["Semantic search<br/>+ prompts with domain expertise"]
    SS --> LLM["OpenAI chat model<br/><code>gpt-4o-mini-2024-07-18</code>"]

    LLM --> CREW

    subgraph CREW ["TCFD Disclosures Assessment (CrewAI)"]
        direction TB
        AG["<b>Climate Agents</b><br/>Data Analyst · Research Analyst<br/>Filings Analyst · Assessor · Grader<br/><i>+ Grading Moderator (planned)</i>"]
        TK["<b>Tasks</b><br/>read criteria · sustainability analysis<br/>filings analysis · scoring · grading<br/><i>+ rubric design / moderation (planned)</i>"]
        AG -. each agent runs its task .- TK
    end

    CREW --> RPT[[Assessment report]]

    classDef store fill:#e3f2fd,stroke:#1565c0,color:#0d47a1;
    classDef crew fill:#e8f5e9,stroke:#2e7d32,color:#1b5e20;
    class VDB store;
    class AG,TK crew;

mermaid

flowchart TD
    subgraph inputs [Reference data & documents]
        C[tcfd_disclosure_criteria.csv<br/>Core Element - Item - 29 Criteria]
        R[tcfd_disclosure_rubric.csv<br/>scoring definition / method / sample]
        G[tcfd_disclosure_grading.csv<br/>A-D grade bands]
        SR[(Sustainability / TCFD report PDF)]
        AR[(Annual report PDF)]
    end

    C --> A1[1 . TCFD Data Analyst<br/>loads &amp; explains the 29 criteria]
    A1 -- criteria definitions --> A2[2 . Research Analyst<br/>extracts disclosures from sustainability report]
    A1 -- criteria definitions --> A3[3 . Filings Analyst<br/>extracts disclosures from annual report]
    SR --> A2
    AR --> A3

    A2 -- evidence per criterion --> A4[4 . Assessor Specialist<br/>scores each criterion 0-4 vs rubric]
    A3 -- evidence per criterion --> A4
    R --> A4

    A4 -- 29 criterion scores<br/>+ 11 item aggregates --> A5[5 . Grading Expert<br/>totals score, assigns A-D]
    G --> A5
    A5 --> OUT[[TCFD assessment report<br/>scores + justifications + grade]]

mermaid

flowchart LR
    A["<b>Score (0–4 points)</b><br/>per TCFD Recommended<br/>Disclosure Criterion<br/><i>29 criteria</i>"]
    B["<b>Aggregate Score</b><br/>per TCFD Recommended<br/>Disclosure Item<br/><i>11 items</i>"]
    C["<b>Grade Scale</b><br/>overall total 0–116<br/><i>A · B · C · D</i>"]
    M["<b>Grading Moderator</b><br/>peer-normalize vs comparable<br/>banks — by size &amp; HQ region<br/><i>(planned extension)</i>"]

    A -- "sum criteria within each item" --> B
    B -- "sum all 11 items → map to band" --> C
    C -. "optional peer benchmarking" .-> M

    classDef done fill:#e8f5e9,stroke:#2e7d32,color:#1b5e20;
    classDef grade fill:#e3f2fd,stroke:#1565c0,color:#0d47a1;
    classDef plan fill:#fff8e1,stroke:#c8a020,color:#7a5c00,stroke-dasharray:5 3;
    class A,B done;
    class C grade;
    class M plan;

text

esg-agentic-platform/
├── agents/
│   ├── main.py               # CLI entry point
│   ├── streamlit_app.py      # Streamlit web UI
│   ├── climate_agents.py     # Agent definitions (the "crew")
│   ├── climate_tasks.py      # Task/prompt definitions for each agent
│   ├── pdf_tools.py          # PDF search tool
│   ├── tools/                # Search, load, calculator, browser, PDF tools
│   ├── tcfd_disclosure_criteria.csv   # TCFD criteria & definitions
│   ├── tcfd_disclosure_rubric.csv     # Scoring rubric
│   ├── tcfd_disclosure_grading.csv    # Grading scale
│   ├── requirements.txt
│   └── pyproject.toml
├── .env.example              # Template for required API keys
├── .gitignore
├── LICENSE
└── README.md

bash

# 1. Clone
git clone https://github.com/robinmak/esg-agentic-platform.git
cd esg-agentic-platform

# 2. Configure API keys
cp .env.example .env
# then edit .env and fill in your keys

# 3. Install dependencies
cd agents
pip install -r requirements.txt          # or: poetry install --no-root

bash

cd agents
python main.py \
  --company "DBS" \
  --sustainability-report /path/to/sustainability_report.pdf \
  --annual-report /path/to/annual_report.pdf

# or just run it and answer the prompts:
python main.py

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB REPOS

Docs source

GITHUB REPOS

Editorial quality

ready

Agentic AI platform that assesses corporate TCFD climate disclosures — a CrewAI crew of agents reads sustainability & annual reports, scores each TCFD criterion, and grades overall disclosure quality. ESG Agentic Platform An **agentic AI platform for automated assessment of corporate climate disclosures** against the $1 (Task Force on Climate-related Financial Disclosures) recommendations. The platform orchestrates a crew of role-playing AI agents (built with $1) that read a company's sustainability and annual reports, map the contents against the TCFD recommended disclosure criteria, score each criterion, and pro

Full README

ESG Agentic Platform

An agentic AI platform for automated assessment of corporate climate disclosures against the TCFD (Task Force on Climate-related Financial Disclosures) recommendations.

The platform orchestrates a crew of role-playing AI agents (built with CrewAI) that read a company's sustainability and annual reports, map the contents against the TCFD recommended disclosure criteria, score each criterion, and produce an overall disclosure grade — helping analysts evaluate the completeness and quality of climate-related financial disclosures at scale.

Disclaimer: This is a research/experimental project. Its output is an AI-generated assessment and should not be treated as professional, financial, legal, or compliance advice. Always have a qualified human review the results.

How it works

Architecture: RAG & multi-agent framework

At a high level, the platform combines retrieval-augmented generation (RAG) over the company's documents with a CrewAI multi-agent assessment. Reports are embedded into a vector database; agents retrieve the relevant passages via semantic search and reason over them with an LLM to produce the assessment report:

flowchart LR
    subgraph docs [Multi-documents]
        D1[Sustainability report]
        D2[Annual report]
        D3[Quarterly filings]
    end

    D1 & D2 & D3 --> EMB["OpenAI embedding model<br/><code>text-embedding-3-small</code>"]
    EMB --> VDB[("Vector database<br/>Chroma")]
    VDB --> SS["Semantic search<br/>+ prompts with domain expertise"]
    SS --> LLM["OpenAI chat model<br/><code>gpt-4o-mini-2024-07-18</code>"]

    LLM --> CREW

    subgraph CREW ["TCFD Disclosures Assessment (CrewAI)"]
        direction TB
        AG["<b>Climate Agents</b><br/>Data Analyst · Research Analyst<br/>Filings Analyst · Assessor · Grader<br/><i>+ Grading Moderator (planned)</i>"]
        TK["<b>Tasks</b><br/>read criteria · sustainability analysis<br/>filings analysis · scoring · grading<br/><i>+ rubric design / moderation (planned)</i>"]
        AG -. each agent runs its task .- TK
    end

    CREW --> RPT[[Assessment report]]

    classDef store fill:#e3f2fd,stroke:#1565c0,color:#0d47a1;
    classDef crew fill:#e8f5e9,stroke:#2e7d32,color:#1b5e20;
    class VDB store;
    class AG,TK crew;

Pipeline stages:

  1. Ingest — the supplied report PDFs (sustainability, annual, and optionally quarterly filings) are the source documents.
  2. Embed — text is converted to vectors with OpenAI's text-embedding-3-small model.
  3. Store — embeddings are held in a local Chroma vector database (created on first run under agents/db/, which is git-ignored).
  4. Retrieve — for each question, semantic search pulls the most relevant passages; domain-expert prompts frame the task for the LLM (this is the PDFSearchTool RAG step).
  5. Reason — the gpt-4o-mini-2024-07-18 chat model answers grounded in the retrieved text.
  6. Assess — the CrewAI agents each execute their task in sequence (see the pipeline below), producing the final assessment report.

The RAG models above are the defaults; see Configuration to swap in another LLM or embedding provider. The Grading Moderator agent and the rubric-design / moderation tasks shown as "planned" are part of the intended design but are not wired into the current pipeline.

Five specialized agents collaborate in a pipeline:

| Agent | Role | Input | | --- | --- | --- | | TCFD Data Analyst | Loads and interprets the TCFD recommended disclosure criteria and their definitions | tcfd_disclosure_criteria.csv | | TCFD Disclosure Research Analyst | Extracts climate-related disclosures from a company's ESG / CSR / sustainability / TCFD reports | Sustainability report PDF | | Filings Research Analyst | Extracts climate-related disclosures from a company's annual report | Annual report PDF | | TCFD Disclosure Assessor Specialist | Scores each of the TCFD recommended disclosure criteria (0–4) against a scoring rubric, critically screening for greenwashing and unsubstantiated "cheap talk" | tcfd_disclosure_rubric.csv + report PDFs | | TCFD Disclosure Grading Expert | Aggregates criterion scores into the 11 recommended-disclosure-item scores and assigns an overall grade (A–D) | tcfd_disclosure_grading.csv |

The final output is a report containing per-criterion scores with justifications, aggregated disclosure-item scores, an overall score (0–116), and a letter grade.

TCFD recommended disclosures & criteria

The TCFD framework is organized as a three-level hierarchy. This project builds on it — following the approach in the JPX and TCFD reference documents (see References) — by subdividing the 11 recommended disclosures into 29 fine-grained, individually-scorable criteria:

  • 4 Core Elements — the themes every organization should report on: Governance, Strategy, Risk Management, and Metrics & Targets.
  • 11 Recommended Disclosures — the specific disclosures TCFD recommends under those elements (e.g. "Board oversight", "Management's role" under Governance).
  • 29 Recommended Disclosure Criteria ("the Criteria") — a more detailed, measurable breakdown of each disclosure, so the assessment can evaluate how well each recommendation is met rather than just whether it is mentioned (e.g. "Board oversight" expands into criteria such as "Process of reporting to the board on climate-related issues" and "Frequency of reporting to the board").
<p align="center"> <img src="docs/images/tcfd-hierarchy.png" width="640" alt="TCFD three-level hierarchy: 4 core elements map to 11 recommended disclosures, which expand into 29 recommended disclosure criteria"> </p>

<sub>Structure of the TCFD framework — Core Elements → Recommended Disclosures → the 29 Criteria. Source: Doi, N., Oda, Y., Nakakubo, N., & Sugimoto, J. (2024). Automated Determination of TCFD Recommended Disclosures through Zero-shot Text Classification Using Large Language Models. Japan Exchange Group (JPX) Working Paper Vol. 43. See References.</sub>

The number of criteria per core element is not uniform — it reflects how many measurable points each disclosure breaks into:

| Core Element | Recommended Disclosures | Criteria | | --- | :---: | :---: | | Governance | 2 | 7 | | Strategy | 3 | 10 | | Risk Management | 3 | 5 | | Metrics & Targets | 3 | 7 | | Total | 11 | 29 |

Each criterion carries a definition (and guidance for financial vs. non-financial reporters) describing exactly what a compliant disclosure looks like — this is what the agents assess a company's reports against. The framework is also improved with pathways and guidance tailored to financial-sector and non-financial organizations for each disclosure item.

The TCFD reference data

The assessment is driven by three CSV files that ship with the repo. They encode the TCFD framework as the same three-level hierarchy — Core Element → Recommended Disclosure Item → Recommended Disclosure Criterion — plus the rules for scoring and grading:

| File | What it defines | Consumed by | | --- | --- | --- | | tcfd_disclosure_criteria.csv | The TCFD framework itself: each Core Element, its 11 Recommended Disclosure Items, and the 29 fine-grained Criteria, each with definitions and guidelines. This is the checklist of what a company should disclose. | TCFD Data Analyst | | tcfd_disclosure_rubric.csv | For every criterion: a scoring definition (what to measure), a scoring method (how to assign 0–4), and a sample answer (the benchmark for full marks). This turns the checklist into a gradebook. | TCFD Disclosure Assessor Specialist | | tcfd_disclosure_grading.csv | The grade bands that map a total score (0–116) to a letter grade A–D. | TCFD Disclosure Grading Expert |

So the criteria file says what to look for, the report PDFs supply the evidence, the rubric says how to score each piece of evidence, and the grading file says how to turn the total into a grade.

How the agents work together

The five agents run as a sequential pipeline (defined in main.py / streamlit_app.py). Each agent's output becomes context for the ones after it, so knowledge flows left-to-right: the framework is loaded, evidence is gathered from two report sources, the evidence is scored against the rubric, and the scores are finally graded.

flowchart TD
    subgraph inputs [Reference data & documents]
        C[tcfd_disclosure_criteria.csv<br/>Core Element - Item - 29 Criteria]
        R[tcfd_disclosure_rubric.csv<br/>scoring definition / method / sample]
        G[tcfd_disclosure_grading.csv<br/>A-D grade bands]
        SR[(Sustainability / TCFD report PDF)]
        AR[(Annual report PDF)]
    end

    C --> A1[1 . TCFD Data Analyst<br/>loads &amp; explains the 29 criteria]
    A1 -- criteria definitions --> A2[2 . Research Analyst<br/>extracts disclosures from sustainability report]
    A1 -- criteria definitions --> A3[3 . Filings Analyst<br/>extracts disclosures from annual report]
    SR --> A2
    AR --> A3

    A2 -- evidence per criterion --> A4[4 . Assessor Specialist<br/>scores each criterion 0-4 vs rubric]
    A3 -- evidence per criterion --> A4
    R --> A4

    A4 -- 29 criterion scores<br/>+ 11 item aggregates --> A5[5 . Grading Expert<br/>totals score, assigns A-D]
    G --> A5
    A5 --> OUT[[TCFD assessment report<br/>scores + justifications + grade]]

Step by step:

  1. TCFD Data Analyst reads tcfd_disclosure_criteria.csv and produces a structured explanation of the 29 criteria and their definitions — establishing the shared checklist the downstream agents work against.

  2. Research Analyst searches the sustainability / TCFD report for disclosures that map to each criterion, quoting the supporting text.

  3. Filings Analyst does the same against the annual report, so evidence is drawn from both document types.

  4. Assessor Specialist takes the gathered evidence and, using tcfd_disclosure_rubric.csv, scores each of the 29 criteria 0–4. For every criterion the rubric supplies three things — a scoring definition (what to measure), a scoring method (how to map the evidence to a 0–4 score), and a sample answer (the benchmark for full marks) — and the agent critically screens for greenwashing and unsubstantiated "cheap talk". It then aggregates the criterion scores into the 11 disclosure-item scores. Input: evidence from steps 2–3 + the rubric. Output: 29 criterion scores + 11 item aggregates.

  5. Grading Expert sums the 11 item scores into an overall total and maps it to a letter grade using the bands in tcfd_disclosure_grading.csv. Because there are 29 criteria scored 0–4, the maximum total is 29 × 4 = 116. Input: the item scores + the grading bands. Output: the overall score and grade.

    | Grade | Overall score | | --- | --- | | A | 87–116 | | B | 58–86 | | C | 29–57 | | D | 0–28 |

Scoring & grading rubric model

The assessment escalates through three levels — a fine-grained criterion score rolls up into a disclosure-item aggregate, and the sum of all items maps to an overall grade:

flowchart LR
    A["<b>Score (0–4 points)</b><br/>per TCFD Recommended<br/>Disclosure Criterion<br/><i>29 criteria</i>"]
    B["<b>Aggregate Score</b><br/>per TCFD Recommended<br/>Disclosure Item<br/><i>11 items</i>"]
    C["<b>Grade Scale</b><br/>overall total 0–116<br/><i>A · B · C · D</i>"]
    M["<b>Grading Moderator</b><br/>peer-normalize vs comparable<br/>banks — by size &amp; HQ region<br/><i>(planned extension)</i>"]

    A -- "sum criteria within each item" --> B
    B -- "sum all 11 items → map to band" --> C
    C -. "optional peer benchmarking" .-> M

    classDef done fill:#e8f5e9,stroke:#2e7d32,color:#1b5e20;
    classDef grade fill:#e3f2fd,stroke:#1565c0,color:#0d47a1;
    classDef plan fill:#fff8e1,stroke:#c8a020,color:#7a5c00,stroke-dasharray:5 3;
    class A,B done;
    class C grade;
    class M plan;
  • Score (0–4) — the Assessor grades each of the 29 criteria against tcfd_disclosure_rubric.csv.
  • Aggregate Score — criterion scores are summed within each of the 11 disclosure items.
  • Grade Scale — the Grading Expert totals the items (max 116) and assigns A–D per tcfd_disclosure_grading.csv.
  • Grading Moderator (planned, not yet in code) — a further step that normalizes a company's grade against comparable peers (e.g. by bank size and HQ region) using the moderating dataset in references/. This mirrors the design in the Auzepy et al. (2023) reference but is not implemented in the current 5-agent pipeline.

Project structure

esg-agentic-platform/
├── agents/
│   ├── main.py               # CLI entry point
│   ├── streamlit_app.py      # Streamlit web UI
│   ├── climate_agents.py     # Agent definitions (the "crew")
│   ├── climate_tasks.py      # Task/prompt definitions for each agent
│   ├── pdf_tools.py          # PDF search tool
│   ├── tools/                # Search, load, calculator, browser, PDF tools
│   ├── tcfd_disclosure_criteria.csv   # TCFD criteria & definitions
│   ├── tcfd_disclosure_rubric.csv     # Scoring rubric
│   ├── tcfd_disclosure_grading.csv    # Grading scale
│   ├── requirements.txt
│   └── pyproject.toml
├── .env.example              # Template for required API keys
├── .gitignore
├── LICENSE
└── README.md

Prerequisites

  • Python 3.10 or 3.11 (see agents/pyproject.toml)
  • An OpenAI API key — used by default (the agents run on GPT-4o-mini with OpenAI embeddings). CrewAI is model-agnostic, so this is not strictly required: you can swap in another LLM instead (e.g. Anthropic Claude, Google Gemini, Azure OpenAI, or a local model via Ollama). See Configuration for how to change the model — note that the PDF-search tool also uses an embedding model, so a provider offering embeddings (or a separate embeddings key) is needed for that step.
  • A Serper API key (for the internet-search tool)

Setup

# 1. Clone
git clone https://github.com/robinmak/esg-agentic-platform.git
cd esg-agentic-platform

# 2. Configure API keys
cp .env.example .env
# then edit .env and fill in your keys

# 3. Install dependencies
cd agents
pip install -r requirements.txt          # or: poetry install --no-root

Provide the report documents

The report PDFs are not included in this repository (they are third-party corporate documents and are excluded via .gitignore). Download the two reports you want to analyze and tell the app where they are — no code changes required. The paths are read from environment variables:

| Variable | What it points to | Default | | --- | --- | --- | | TCFD_SUSTAINABILITY_REPORT | ESG / CSR / sustainability / TCFD report PDF | ./sustainability_report.pdf | | TCFD_ANNUAL_REPORT | Annual report PDF | ./annual_report.pdf | | TCFD_CRITERIA_CSV | TCFD criteria & definitions (ships with repo) | ./tcfd_disclosure_criteria.csv | | TCFD_RUBRIC_CSV | Scoring rubric (ships with repo) | ./tcfd_disclosure_rubric.csv | | TCFD_GRADING_CSV | Grading scale (ships with repo) | ./tcfd_disclosure_grading.csv |

You can set the two report paths in your .env file, pass them as CLI arguments, or (in the Streamlit app) upload the PDFs directly through the browser — see Running below. The CSV rubric files ship with the repo and rarely need to change.

Running

CLI — pass the report paths as flags, or you'll be prompted for them:

cd agents
python main.py \
  --company "DBS" \
  --sustainability-report /path/to/sustainability_report.pdf \
  --annual-report /path/to/annual_report.pdf

# or just run it and answer the prompts:
python main.py

Streamlit web UI — enter the company name and upload the two report PDFs in the sidebar:

cd agents
streamlit run streamlit_app.py

⚠️ Cost note: Running the crew makes multiple calls to the OpenAI API (LLM + embeddings) and will incur usage charges on your account.

Configuration

  • Model: All agents default to gpt-4o-mini via ChatOpenAI in agents/climate_agents.py. CrewAI is model-agnostic, so you can point the agents at a different LLM by replacing the ChatOpenAI(...) instance passed to each agent's llm= argument. For example:

    • Anthropic Claude — from langchain_anthropic import ChatAnthropic; llm = ChatAnthropic(model="<claude-model>")
    • Google Gemini — from langchain_google_genai import ChatGoogleGenerativeAI; llm = ChatGoogleGenerativeAI(model="<gemini-model>")
    • Azure OpenAI — from langchain_openai import AzureChatOpenAI

    Install the matching LangChain integration package and set that provider's API key in your .env. Pick a current model name from your chosen provider's documentation.

  • Local models: CrewAI supports local models via Ollama. Pass an Ollama LLM instance to the llm= argument of an agent to run it fully offline.

  • Embeddings: The PDF-search tool (_pdf_search_tool in agents/climate_agents.py) also uses an embedding model — OpenAI's text-embedding-3-small by default. If you move off OpenAI entirely, update the embedder config there to a provider your setup supports (e.g. Ollama or Google embeddings).

Vision & roadmap

Today this project assesses one company at a time from a handful of uploaded PDFs. The vision is to scale it into an enterprise-grade TCFD assessment platform capable of continuously evaluating large portfolios of companies. Three pillars drive that scaling:

flowchart LR
    NOW["<b>Today</b><br/>single-company assessment<br/>from uploaded PDFs<br/>OpenAI RAG + 5 CrewAI agents"]
    NOW --> P1
    NOW --> P2
    NOW --> P3
    P1["<b>1 · Unified RAG</b><br/>LLM + Knowledge Graph"]
    P2["<b>2 · Agentic AI +</b><br/>Fast AI Inference"]
    P3["<b>3 · SERP API</b><br/>live web retrieval"]
    P1 & P2 & P3 --> ENT[["<b>Enterprise TCFD<br/>assessment at scale</b>"]]

    classDef now fill:#eceff1,stroke:#546e7a,color:#263238;
    classDef pil fill:#e3f2fd,stroke:#1565c0,color:#0d47a1;
    class NOW now;
    class P1,P2,P3 pil;

1. Unified RAG (LLM + Knowledge Graph)

Move beyond flat vector search to a unified RAG layer that pairs the vector store with a knowledge graph. Modeling companies, reports, disclosures, metrics, and their relationships as a graph adds deep, dynamic context — enabling multi-hop questions ("compare Scope 1 targets across a company's last three reports", "which subsidiaries lack board-oversight disclosures?") and stronger grounding/traceability than embeddings alone. Current state: single Chroma vector DB per run.

2. Agentic AI with fast AI inference

The multi-agent pipeline is inference-heavy — every criterion involves retrieval plus LLM reasoning. Scaling to portfolios means optimizing for throughput and latency: routing work to fast-inference hardware (e.g. LPU-class accelerators alongside GPUs), batching agent calls, caching embeddings, and running company assessments in parallel. This keeps cost and turnaround viable when assessing hundreds of companies rather than one. Current state: sequential agents on a single LLM endpoint.

3. Search Engine Results Page (SERP) API

Broaden the evidence base from user-supplied PDFs to live web retrieval via a SERP API (Google, Bing, DuckDuckGo, Yandex, …), returning structured HTML/JSON. This lets agents automatically discover and pull the latest sustainability reports, filings, and news for any company — reducing manual document gathering and keeping assessments current. Current state: a Serper-based search_internet tool exists in agents/tools/search_tools.py but is not yet part of the assessment pipeline.

Other directions

  • Grading Moderator — implement the peer-normalization agent (by bank size / HQ region) shown as "planned" in the diagrams above, using the moderating dataset.
  • Multi-framework — extend beyond TCFD to adjacent frameworks (ISSB/IFRS S2, ESRS, SASB).
  • Batch & API — a service/API mode for scheduled, portfolio-wide runs with persisted results.
  • Human-in-the-loop review — reviewer UI to accept/override agent scores before sign-off.

This roadmap is aspirational and describes intended direction, not shipped functionality.

Security

Do not commit API keys. Keys are read from a local .env file (ignored by git). If you ever expose a key, rotate it immediately in the provider's dashboard.

References

This project's approach to automated TCFD disclosure analysis and scoring draws on the following frameworks, academic research, and datasets. The source documents are kept locally in the references/ directory (not committed to the repository, as they are third-party copyrighted material).

Framework & guidance

  • Task Force on Climate-related Financial Disclosures (TCFD). Implementing the Recommendations of the Task Force on Climate-related Financial Disclosures (Annex, amended December 2017). Financial Stability Board. — FINAL-TCFD-Annex-Amended-121517.pdf
  • Financial institutions' climate-related disclosure guidance document. — financial-institutions-climate-related-disclosure-document.pdf

Academic research

  • Ni, J., Bingler, J., Colesanti-Senni, C., Kraus, M., Gostlow, G., Schimanski, T., Stammbach, D., Ashraf Vaghefi, S., Wang, Q., Webersinke, N., Wekhof, T., Yu, T., & Leippold, M. (2023). CHATREPORT: Democratizing Sustainability Disclosure Analysis through LLM-based Tools. arXiv:2307.15770. — CHATREPORT - Democratizing Sustainability Disclosure Analysis.pdf
  • Auzepy, A., Tönjes, E., Lenz, D., & Funk, C. (2023). Evaluating TCFD Reporting: A New Application of Zero-Shot Analysis to Climate-related Financial Disclosures. arXiv:2302.00326. — Evaluating TCFD reporting - A new application of zero-shot analysis to climate-related financial disclosures.pdf
  • Doi, N., Oda, Y., Nakakubo, N., & Sugimoto, J. (2024, March 4). Automated Determination of TCFD Recommended Disclosures through Zero-shot Text Classification Using Large Language Models. Japan Exchange Group (JPX) Working Paper Vol. 43. PDF · news release. — JPX - Automated Determination of TCFD Recommended Disclosures through Zero-shot Text Classification Using LLMs.pdf

Datasets

  • TCFD disclosures dataset used for moderating/benchmarking TCFD disclosure scores. — tcfd_disclosures_dataset for moderating TCFD disclosure score.csv

Acknowledgements

License

Released under the MIT License.

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

MissingGITHUB REPOS

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/contract"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW
Machine Appendix

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/snapshot",
    "contractUrl": "https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/contract",
    "trustUrl": "https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/trust"
  },
  "curlExamples": [
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/snapshot\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/contract\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_REPOS",
      "generatedAt": "2026-10-09T06:13:49.833Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    },
    {
      "key": "crewai",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "multi-agent",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"
}

Facts JSON

[
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Robinmak",
    "href": "https://github.com/robinmak/esg-agentic-platform",
    "sourceUrl": "https://github.com/robinmak/esg-agentic-platform",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-10-09T03:24:47.358Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/contract",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-10-09T03:24:47.358Z",
    "isPublic": true
  },
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/trust",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-robinmak-esg-agentic-platform/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to esg-agentic-platform and adjacent AI workflows.