สถาปัตยกรรม
Claude for Financial Services มี 3-layer architecture ที่ vertical-first: Verticals (source) → Agents (bundled) → Cookbooks (runtime)
graph TD
subgraph "Layer 1: Verticals (Source of Truth)"
FA["financial-analysis<br/>(core: comps, DCF, LBO, 3-stmt)"]
IB["investment-banking<br/>(CIM, teaser, buyer-list, merger-model)"]
ER["equity-research<br/>(earnings, initiation, thesis)"]
PE["private-equity<br/>(sourcing, DD, IC memo)"]
WM["wealth-management<br/>(planning, rebalancing, TLH)"]
FA_OPS["fund-admin<br/>(GL recon, accruals, NAV)"]
OPS["operations<br/>(KYC parsing, rules)"]
end
subgraph "Layer 2: Named Agents (Bundles)"
PA["Pitch Agent<br/>(bundles FA + IB)"]
MRA["Market Researcher Agent<br/>(bundles FA + ER)"]
GLR["GL Reconciler Agent<br/>(bundles FA_OPS)"]
EAR["Earnings Reviewer Agent<br/>(bundles FA + ER)"]
KYC["KYC Screener Agent<br/>(bundles OPS)"]
end
subgraph "Layer 3: Deployment (Runtime)"
CW["Cowork Plugin<br/>web UI"]
CMA["Managed Agents API<br/>via agent.yaml"]
CLI["Claude Code CLI<br/>plugin install"]
end
subgraph "Edge: Data Connectors (MCPs)"
MCP["11 MCP Servers<br/>Daloopa, Morningstar, CapIQ,<br/>FactSet, Moody's, LSEG,<br/>PitchBook, Chronograph,<br/>Egnyte, MT Newswires, Aiera"]
end
FA --> PA
IB --> PA
FA --> MRA
ER --> MRA
FA_OPS --> GLR
FA --> EAR
ER --> EAR
OPS --> KYC
PA --> CW
MRA --> CW
GLR --> CW
EAR --> CW
KYC --> CW
PA --> CMA
MRA --> CMA
GLR --> CMA
EAR --> CMA
KYC --> CMA
PA --> CLI
MRA --> CLI
GLR --> CLI
FA -.->|reference| MCP
IB -.->|reference| MCP
Layer 1: Verticals — แหล่งความจริง
7 vertical plugins แต่ละตัวเป็นเซต skills, commands, และ MCP configuration สำหรับ FSI domain เฉพาะ
plugins/vertical-plugins/
├── financial-analysis/ [CORE]
│ ├── skills/ # comps-analysis, dcf-model, lbo-model, 3-statement, audit-xls, ...
│ ├── commands/ # /comps, /dcf, /lbo, /3-statement-model, /debug-model, ...
│ ├── .mcp.json # 11 connectors (Daloopa, Morningstar, CapIQ, FactSet, Moody's, LSEG, PitchBook, Chronograph, Egnyte, MT Newswires, Aiera)
│ └── hooks/ # Validation & quality checks
├── investment-banking/
│ ├── skills/ # strip-profile, cim-builder, teaser, buyer-list, merger-model, deal-tracker
│ ├── commands/ # /one-pager, /cim, /teaser, /buyer-list, /merger-model, /process-letter, /deal-tracker
│ └── .mcp.json # (references parent financial-analysis MCPs)
├── equity-research/
│ ├── skills/ # earnings-analysis, earnings-preview, initiating-coverage, model-update, sector-overview, ...
│ ├── commands/ # /earnings, /earnings-preview, /initiate, /model-update, /morning-note, /sector, /catalysts, ...
│ └── .mcp.json
├── private-equity/
│ ├── skills/ # deal-sourcing, deal-screening, dd-checklist, unit-economics, ic-memo, portfolio-monitoring, ...
│ ├── commands/ # /source, /screen-deal, /dd-checklist, /dd-prep, /unit-economics, /ic-memo, /portfolio, ...
│ └── .mcp.json
├── wealth-management/
│ ├── skills/ # client-review, financial-plan, portfolio-rebalance, tax-loss-harvesting, ...
│ ├── commands/ # /client-review, /financial-plan, /rebalance, /tlh, /client-report, /proposal
│ └── .mcp.json
├── fund-admin/
│ ├── skills/ # gl-recon, break-tracing, accruals, roll-forwards, variance-commentary, nav-tieout
│ ├── commands/ # (integrated into agent workflows)
│ └── .mcp.json
└── operations/
├── skills/ # kyc-parser, rules-engine, gap-detection
├── commands/ # (integrated into KYC Screener agent)
└── .mcp.json
(README.md line 101–115, CLAUDE.md line 15–20)
ตัวอย่าง: financial-analysis Vertical
# plugins/vertical-plugins/financial-analysis/.mcp.json
{
"mcpServers": {
"daloopa": { "type": "http", "url": "https://mcp.daloopa.com/server/mcp" },
"morningstar": { "type": "http", "url": "https://mcp.morningstar.com/mcp" },
"sp-global": { "type": "http", "url": "https://kfinance.kensho.com/integrations/mcp" },
... # ทั้ง 11 providers
}
}
ทุก vertical อื่นๆ reference financial-analysis MCPs หรือ add เพิ่มเติมของตัวเอง (partner plugins เช่น LSEG, S&P Global)
Layer 2: Named Agents — Bundle Skills & Commands
10 named agents รวมกลุ่ม skills จากหนึ่งหรือมากกว่า verticals เพื่อครอบคลุม end-to-end workflow
plugins/agent-plugins/
├── pitch-agent/
│ ├── .claude-plugin/plugin.json
│ ├── agents/pitch-agent.md # System prompt (ไฟล์เดียว, 2 wrapper)
│ └── skills/ # Bundled from financial-analysis + investment-banking
│ ├── comps-analysis/
│ ├── dcf-model/
│ ├── lbo-model/
│ ├── pitch-deck/
│ ├── 3-statement-model/
│ └── ib-check-deck/
├── market-researcher/
│ ├── agents/market-researcher.md
│ └── skills/ # Bundled from financial-analysis + equity-research
│ ├── sector-overview/
│ ├── competitive-analysis/
│ ├── comps-analysis/
│ └── idea-generation/
├── gl-reconciler/
│ ├── agents/gl-reconciler.md
│ └── skills/ # Bundled from fund-admin
│ ├── gl-recon/
│ ├── break-tracing/
│ └── variance-commentary/
... # ทั้ง 10 agents
(CLAUDE.md line 9–13)
Key principle: ทุก agent ที่ bundle skill ต้อง keep synchronized ที่ vertical source:
# Edit skill ในที่เดียว:
# plugins/vertical-plugins/financial-analysis/skills/dcf-model/SKILL.md
# Propagate ไปยังทุก agent ที่ใช้มัน:
python3 scripts/sync-agent-skills.py
(CLAUDE.md line 31)
Anatomy: One Agent, One System Prompt
ตัวอย่าง Pitch Agent:
---
name: pitch-agent
description: End-to-end investment banking pitch agent...
tools: Read, Write, Edit, mcp__capiq__*
---
# Pitch Agent
You are the Pitch Agent — a senior investment banking associate...
## What you produce
1. Excel valuation workbook — trading comps, precedent transactions, DCF, football field
2. Pitch deck — populated on bank template
## Workflow
1. Scope the ask
2. Write situation overview (invoke sector-overview skill)
3. Pull data via CapIQ MCP
4. Spread peer set (invoke comps-analysis skill)
5. Stand up LBO (invoke lbo-model skill)
6. Build DCF + 3-statement (invoke dcf-model, 3-statement-model)
7. Generate football field
8. Populate deck (invoke pitch-deck skill)
9. Run QC (invoke ib-check-deck)
## Guardrails
- No external communications (no email tools)
- Cite every number [UNSOURCED] if can't be sourced
- Stop and surface for review after Excel, after deck
(agents/pitch-agent.md — README.md line 23)
ไฟล์เดียวนี้ serve สองวิธี:
- Cowork: read ตรง ใช้เป็น plugin system prompt
- Managed Agents API: parse by deploy script, append headless mode note, POST via
/v1/agents(managed-agent-cookbooks/pitch-agent/agent.yaml reference)
Layer 3: Deployment — Two Runtimes, One Source
Runtime A: Cowork Plugin (Web UI)
{
"name": "pitch-agent",
"description": "Comps, precedents, LBO → branded pitch deck",
"version": "0.1.0"
}
นำเข้า .claude-plugin/plugin.json ของแต่ละ agent เข้า Cowork marketplace:
# ใน Cowork:
# Settings → Plugins → Add plugin → https://github.com/anthropics/claude-for-financial-services
# เลือก "pitch-agent" จากรายการ
(README.md line 51–55)
Runtime B: Managed Agents API (Headless)
# managed-agent-cookbooks/pitch-agent/agent.yaml
name: pitch-agent
model: claude-opus-4-7
system:
file: ../../plugins/agent-plugins/pitch-agent/agents/pitch-agent.md
append: "You are running headless. Produce files in ./out/; do not assume an open Office document."
tools:
- type: agent_toolset_20260401
configs:
- name: read
enabled: true
- name: write
enabled: true
- type: mcp_toolset
mcp_server_name: capiq
default_config:
enabled: true
skills:
- { from_plugin: ../../plugins/agent-plugins/pitch-agent }
callable_agents:
- manifest: ./subagents/valuation-specialist.yaml
- manifest: ./subagents/deck-author.yaml
(managed-agent-cookbooks/pitch-agent/agent.yaml — CLAUDE.md line 21–26)
Deploy ผ่าน:
export ANTHROPIC_API_KEY=sk-ant-...
scripts/deploy-managed-agent.sh pitch-agent
# POST /v1/agents with orchestrator event loop → orchestrate.py
(README.md line 80–85)
ทั้งสองวิธี read system prompt (agents/pitch-agent.md) และ skills จากไฟล์เดียวกัน
Edge: MCP Catalog — Data Connectors
ทั้ง 11 MCP servers อยู่ใน financial-analysis vertical .mcp.json:
| Provider | Endpoint | ใช้สำหรับ |
|---|---|---|
| Daloopa | https://mcp.daloopa.com/server/mcp |
Financial metrics, time-series |
| Morningstar | https://mcp.morningstar.com/mcp |
Fund data, performance |
| S&P Capital IQ | https://kfinance.kensho.com/integrations/mcp |
Company research, tearsheets, M&A database |
| FactSet | https://mcp.factset.com/mcp |
Alternative data, ESG, research |
| Moody’s | https://api.moodys.com/genai-ready-data/m1/mcp |
Credit ratings, analytics |
| MT Newswires | https://vast-mcp.blueskyapi.com/mtnewswires |
News feed, alerts |
| Aiera | https://mcp-pub.aiera.com |
Earnings calls, conference calls |
| LSEG | https://api.analytics.lseg.com/lfa/mcp |
Bond RV, swap curves, FX, options vol |
| PitchBook | https://premium.mcp.pitchbook.com/mcp |
M&A, VC, fund data |
| Chronograph | https://ai.chronograph.pe/mcp |
PE portfolio analytics |
| Egnyte | https://mcp-server.egnyte.com/mcp |
Document management, secure store |
(README.md line 119–135)
MCP Access Pattern (Hard-Allowlist)
ไม่มี web search — ใช้ MCP servers เฉพาะที่ whitelist:
# Example: GL Reconciler allowlist (managed-agent-cookbooks/gl-reconciler/agent.yaml)
mcp_servers:
- type: url
name: internal-gl # read-only GL server (firm-specific)
url: ${GL_MCP_URL}
- type: url
name: subledger # read-only subledger server
url: ${SUBLEDGER_MCP_URL}
Agent ไม่สามารถ:
- ❌ Call web APIs นอกจาก MCP
- ❌ Execute bash ที่ไม่ allowlist
- ❌ Write ไปนอก ./out/ directory
- ❌ Make network calls ที่ unauthorized
(managed-agent-cookbooks/gl-reconciler/agent.yaml line 30–37)
Synchronization & Quality: skill-sync
Problem: ถ้า edit DCF skill ใน vertical → ต้องอัพเดต copy ทั้ง 4 agent ที่ bundle มัน แต่คน ลืม ได้ง่าย
Solution: Manifest-driven sync:
# 1. Edit skill ในที่เดียว:
vim plugins/vertical-plugins/financial-analysis/skills/dcf-model/SKILL.md
# 2. Run sync script (lints + propagates):
python3 scripts/sync-agent-skills.py
# 3. Verify diffs:
git diff plugins/agent-plugins/*/skills/dcf-model/
# 4. Before commit, run check.py (verifies all references resolve):
python3 scripts/check.py
# ✓ All skill references resolve
# ✓ No skill drift detected
(CLAUDE.md line 31–32)
ถ้า skill ในไฟล์ agent bundle ไม่ match vertical source → check.py จะ fail push
Vertical-First Motivation
Why not put skills ไปตรงใน agents?
- Reuse: dcf-model skill ใช้โดย Pitch Agent, Model Builder, Market Researcher, PE agents
- Single source of truth: แก้ไขครั้งเดียว, ได้ผลทุก agent
- Composability: สามารถเพิ่ม agent ใหม่โดยการเลือก existing skills แล้ว bundle
- Testing: Validate skill ชิ้นเดียว = ทุก agent ที่รวมมัน
(README.md line 89–99)
ดูเพิ่มเติม
- What is it? — 10 agents + 7 verticals + 2 runtimes
- Quick Start — ติดตั้งทั้ง Cowork หรือ Managed Agents
- Principles — เหตุผลที่อยู่เบื้องหลังการออกแบบ