Explore the build library
consultance.ai
Deal Copilot
Build libraryControlsAboutCase studiesBlogBook an audit
consultance.ai

Systems

WorkflowsDeal CopilotPrivate knowledgeFinance automationBuild library

Company

About usCase studiesBlogContact

Start a conversation

Free AI auditfounder@consultance.ai

Teams

Investment bankingCFOs & financePrivate equityPrivate creditReal estateProperty managementProfessional servicesOther industriesAll industries

Legal

Privacy policyTerms of service

Our approach

Audit the workflow.Build in your environment.Hand over a system you own.
Build something useful © 2026 consultance.ai
Build library/The 14 Agent Hedge Fund

Finance and data

The 14 Agent Hedge Fund

For retail quants and finance founders: a 14 seat research org chart after TradingAgents, run by hand in Claude or built in Claude Code, with an evidence gate and a human sign off before any decision.

Technical setup4 steps8 prompts
Open the setup guide Discuss an implementation
Finance and data

Start with the guided setup

Follow the setup below in your own workspace. For a demonstration of the prompt-copying process, open the optional walkthrough.

Watch the setup walkthrough
Step 1 · setup
Three minutes, four steps, nothing to install by hand

Claude sets it up for you. You just paste.

Never used Claude? It is free and takes 30 seconds to open. Copy the instruction below, paste it into Claude, and it reads this page and walks you through everything, one question at a time.

  1. Tell Claude how to talk to you

    One tap. It changes how much Claude explains, and how slowly it goes. You can change it any time.

  2. Copy your setup instruction

    A short instruction plus a link to this page lands on your clipboard. First copy asks for your email once. That unlocks every button across the whole library.

  3. Open Claude in a new tab

    Free account, no card, 30 seconds. This tab stays open so you can come back.

    Open claude.ai
  4. Paste, send, and answer one question

    Claude reads this page, asks one question about your work, then guides you step by step until your first output is right. If anything looks wrong, tell Claude what you see, and it fixes it with you.

▸Prefer the full prompt instead of the link? (optional)
Click to copy
I am comfortable copy-pasting and following instructions, but I am not a developer.
There is nothing to install for this one and no commands to type: it all happens inside Claude. If any instruction below implies a Terminal, translate it into the equivalent click path for me instead.
- Plain English. Define jargon the first time it appears.
- One step at a time, then wait for me to confirm before the next one.
- Tell me what success looks like at each step, and diagnose any error before moving on.

Follow the instructions below with those rules applied.

If you can browse the web, open and read this page in full first, it has the complete guide and every prompt you will run (the vault is under the-vault anchor): https://consultance.ai/library/hedge-fund-14-agents#the-vault . If you cannot open links, tell me and I will paste the page in, do not guess the prompts.

I want to run the 14 agent hedge fund research org chart on one stock. Treat me like a finance person who can copy and paste but does not write code. Define every technical word the first time you use it. Select Claude Opus 5.5 before we start.

## What this is
A 14 seat research org chart modelled on the open source TradingAgents framework. There are two routes. Path 1 builds and runs the original framework in Claude Code with my own Anthropic API key. It bills per token, separate from any Claude subscription, and the project states no price per run. Path 2 runs all 14 seats by hand in a Claude chat with no key. The repo has 12 coded agents, and Head of Research and Risk Manager are run as merge steps. Nothing is hosted by anyone else and nothing goes to the author. This is research on a paper account, not financial advice, and a named person signs any decision.

## First message
Ask only: "Do you want path 1, the original TradingAgents framework with your own Anthropic API key, or path 2, all 14 seats by hand in this chat with no key?" Wait for my answer.

## Path 2, in this chat
1. Have me paste prompt 01 from the page, then prompt 02, and match the answer key before anything else. If a figure does not match, stop and find out why.
2. Ask me for one ticker and one past analysis date. Have me paste what I have: a price sheet, the latest statements, a dated news pack, a social feed. A missing one is marked OPEN and the other seats still run.
3. Run prompts 05, 06, 07 and 08 in order, one at a time, showing me each result before the next.
4. The evidence gate in prompt 08 comes before the Portfolio Manager. No named signer means no trade.

## Path 1, in Claude Code
Do this only after I confirm Claude Code works on this computer. Have me run python3 --version first: it must print 3.11 or higher. If it prints 3.9 or 3.10, or the command is missing, install a newer Python first (uv can supply 3.13) and do not continue until it passes. Give me ONE command per message, say what it does, what success looks like, and wait for what I saw. Walk me through prompt 03 on the page. Never ask me to paste my API key into this chat: I export it in my own terminal. If I paste one anyway, tell me to revoke it and make a new one. Use only the commands in prompt 03, which come from the TradingAgents README. If a step is not in prompt 03 or the repo README, say you do not know rather than guess. If Python 3.11 or later, git or uv is missing, install that first and do not work around it.

## Rules for walking me through this
- Do NOT tell me a step is "not possible". If a command fails, read the error with me and fix the cause.
- Never invent a command, a price or a data point. The chat has no live feed.
- A run printed with no data for an analyst is not a pass.
- The evidence gate and the named human have the last word. The default is no trade.

Built and shared by Muhammad at consultance.ai. It runs on my own accounts, never his.

Related: [[quant-desk]] · [[allocator-morning-note]]
Step 2 · run it on your data

Step 1 set it up. These 8 prompts do the work.

the vault

The 8 prompts

Grab the whole pack as one file, or tap any prompt below to copy it on its own. Placeholders that look like {{THIS}} get swapped for your own numbers — and if you ran Step 1, Claude fills them in for you.

One .md file · all 8 prompts, numbered, in order · nothing left out.
Click to copy
SURFACE. Path 1 (build track, prompt 03) runs in Claude Code in a terminal. Path 2 (prompts 05 to 08)
runs in any Claude chat. If I am in a chat and ask for path 1, STOP and say it is a Claude Code job and
that path 2 is the chat route. A chat cannot run the installer or fetch live data. Say so plainly.

MODEL. Select Claude Opus 5.5 for every seat. These are judgment seats. Claude Sonnet 5 is for reading
a large pile of raw filings only, never for a seat, the gate or the sizing.

ROUTE. Ask me ONE question and wait: "Path 1, run the original TradingAgents framework (needs an
Anthropic API key, paid per token, separate from any Claude subscription), or path 2, run all 14 seats
by hand in this chat (no key)?" Then follow only that path, one step at a time.

PATH 1. Prompt 03. Needs git, uv and ANTHROPIC_API_KEY. The repo needs Python 3.11 or later; uv venv fetches its own
Python 3.13, so a stock older system Python is not a blocker. The README commands (the README's
plain `pip install .` becomes `uv pip install .`, as its own note says for uv):
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
uv venv --python 3.13
source .venv/bin/activate
uv pip install .
The repo supports many providers, including Anthropic, so use Anthropic here. Both model tiers go to Claude Opus 5.5:
export TRADINGAGENTS_LLM_PROVIDER=anthropic TRADINGAGENTS_QUICK_THINK_LLM=claude-opus-5-5 TRADINGAGENTS_DEEP_THINK_LLM=claude-opus-5-5
The key is exported in my own terminal, never pasted in chat. The repo states no price per run.

PATH 2. Prompts 05, 06, 07, 08 in order, after prompt 02. I supply the data for one ticker and one
analysis date. You have no live feed. Never fill a gap from memory.

THE 14 SEATS. Prompt 04 is the org chart and says which prompt runs each seat.

LABELS. REPORTED (figure plus the document it came from), CALCULATED (show the arithmetic), ASSUMED
(who set it), MARKETING (a claim in a headline or post: it makes a question, never a number), NOT IN
SOURCE. A figure with no label is not used.

FLAG TAGS. CHANGES THE DECISION, WORTH A QUESTION (only if the answer could move the call), EXPLAINED
BY CONTEXT (one line, "Checked, normal", then closed for good). Only the first reaches the decision.

LOOKS WRONG, IS NORMAL. Test every flag against this before raising it.
1. No P/E for a company that loses money: there are no earnings to divide by.
2. A very high P/E on a fast grower: a question about growth, not an error.
3. Price under its 50 day average after a gap: a fact about the past, not a signal.
4. Bullish chatter while price falls: a divergence to ask about, proof of neither side.
5. The four analysts disagree: that is why there is a debate. Keep the split visible.
6. One source for a claim: weak sourcing, a question, wrong only if contradicted.
7. A moving average rule that lags a turn: how the rule works, not a defect.

BEFORE ANY SEAT. Ask me, one at a time: the ticker; the analysis date; what I already think and what
worries me; whether I hold it; the named person who signs. My view comes first. The seats test it, they
do not replace it. A missing answer gets a plain default labelled ASSUMED.

STANCE. A neutral colleague who has done this before. Never looking for reasons to reject, never trying
to confirm my view.

STOP RULES.
1. A file path pasted into a chat: STOP, it is a Claude Code job, offer path 2.
2. Path 1 without an Anthropic API key: STOP and offer path 2. If I paste a key into chat, tell me to
   revoke it and make a new one.
3. git or uv missing: STOP and install that first. Do not work around it.
   PRIVACY. Materials go only to my own Claude account and my own API account, never to the author.
   Use a Team or Enterprise plan, or turn model training off, before any confidential material.
4. A missing input blocks only the seat that needs it. Mark it OPEN and run every other seat.

HANDOFF BLOCK. End every seat with: what was read, the output, the checks with tags, open items, next
seat, and "Decision owner: <named person>. Not financial advice."
Click to copy
Run prompt 05 on the sample below before you use a real ticker. Paste prompt 01 first. The company is
invented. The analysis date is 2026-09-30.

SAMPLE (invented data, document names in brackets)
[Price sheet] ACME closed 48.20 on 2026-09-30. 50 day average 51.40. 200 day average 44.10. 20 day high 53.10, 20 day low 46.80.
[Annual and quarterly statements] Revenue 120.0M this year, 100.0M last year. Gross margin 62.0%. Net
income minus 8.0M (a loss).
[News pack] Headline A, dated 2026-09-24: ACME raises full year guidance. Headline B, dated 2026-10-08:
ACME CFO resigns.
[Social feed] Not supplied.

ANSWER KEY (the working is shown; every figure comes from the sample)
Market Analyst: price is (48.20 - 51.40) / 51.40 = minus 6.2% against the 50 day average, and
(48.20 - 44.10) / 44.10 = plus 9.3% against the 200 day average. Price sits (48.20 - 46.80) = 1.40 above the 20 day low and 4.90 under the 20 day high. Stance NEUTRAL. Not a signal on its own.
Fundamentals Analyst: revenue growth (120.0 - 100.0) / 100.0 = 20.0%, CALCULATED. No P/E: the company
loses money. Tag EXPLAINED BY CONTEXT, "Checked, normal". Gross margin 62.0% REPORTED. STANCE: NEUTRAL, growth against a loss.
News Analyst: Headline A is in. Headline B is dated 2026-10-08, AFTER the analysis date. It must be
EXCLUDED as lookahead and named as excluded. This is the trap: a report that mentions the CFO leaving
has used the future. Tag CHANGES THE DECISION if it was used. STANCE: BULLISH on Headline A alone, its size unverified.
Sentiment Analyst: OPEN. No social feed was supplied. No sentiment figure, no stance. Everything else
still runs.
Head of Research: Market and Fundamentals NEUTRAL, News BULLISH on one headline whose size is not in
the sample, Sentiment OPEN. The split stays visible and is not settled. The fact that matters most is
the guidance raise on a company that loses 8.0M on 120.0M of revenue.

If any figure does not match, say which one and STOP. Do not load real data until the sample matches.
<trap>Using Headline B because it is the most recent news. The analysis date sets what existed.</trap>
Stop: if the social feed is missing, say so and stop that seat only. Do not infer sentiment from the headlines.
Click to copy
SURFACE. Claude Code, started in an empty folder you made for this. If this is a chat app, STOP
and say it is a Claude Code job; point me to prompt 05 (the by hand path). Model: /model, Claude Opus 5.5.
You WRITE files and RUN commands in this session. You do not describe them and you do not ask me to
type what you can run. Show me the real output of every command. Nothing here places a trade.

COST WARNING, say it before step 1. This calls the Anthropic API with my ANTHROPIC_API_KEY and
bills per token on my account. It does not use my Claude Code subscription. The repo states no
price per run, so neither do I. I read the cost in the Anthropic Console after the first run.

STEP 1. Preflight. Run: uv --version, git --version, python3 --version (3.11 or later is
required). Check my key WITHOUT printing it: echo "${ANTHROPIC_API_KEY:+key is set}". If it prints
nothing, STOP: tell me to export ANTHROPIC_API_KEY in my own terminal and restart Claude Code.
Never ask me to paste the key here. Warn me once: a key exported in the shell that starts Claude
Code may be used by Claude Code itself instead of my subscription (unverified), so check /status
after this run.

STEP 2. Ask me for ONE ticker (a US ticker such as NVDA is the simplest) and ONE analysis date in
the past, format YYYY-MM-DD (this pack's own rule: pick one at least 10 trading days back so the outcome has settled). Wait for both.

STEP 3. Clone and install. Run these exactly, from the folder we are in:
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
uv venv --python 3.13
source .venv/bin/activate
uv pip install .
Run the cd, the activation and the checks below in ONE shell call (a venv does not persist between
separate calls), or call .venv/bin/tradingagents directly. Then run: tradingagents --help
Pass: the help text lists --ticker, --date, --analysts and --save. Also run: git log -1 --format=%h
and python -c "import tradingagents; print(tradingagents.__version__)" and write both to RUN-LOG.md.

STEP 4. Write run_one.sh one folder up (outside the clone) with exactly this content, filling in
my ticker and date. It must not contain the API key:
source "$(dirname "$0")/TradingAgents/.venv/bin/activate"
export SEC_EDGAR_USER_AGENT="<my name and email, ask me>"
export TRADINGAGENTS_LLM_PROVIDER=anthropic TRADINGAGENTS_QUICK_THINK_LLM=claude-opus-5-5 TRADINGAGENTS_DEEP_THINK_LLM=claude-opus-5-5
export TRADINGAGENTS_OUTPUT_LANGUAGE=English TRADINGAGENTS_MAX_DEBATE_ROUNDS=1 TRADINGAGENTS_MAX_RISK_ROUNDS=1
tradingagents --ticker <TICKER> --date <DATE> --analysts market,news,fundamentals --save --no-show
This is the first, cheaper run: three analysts, one debate round, one risk round. The repo's own
README example uses the same flags. Run it with bash, show me the output, and note the time taken.

STEP 5. Pass condition. The run PASSES only if ALL of these are true, and you check each one with a
command, not from memory:
a. The command exited 0 and printed a "Report saved to:" line (with --no-show the decision is not
   printed; it is in the saved files).
b. A new complete_report.md exists for my ticker and date. The "Report saved to:" line gives the
   path; saved reports sit under ~/.tradingagents/logs/reports/<TICKER>_<timestamp>/ (check that
   path with ls -t) and the folder holds 1_analysts, 2_research, 3_trading, 4_risk and
   5_portfolio. Run ls -R on it.
c. 5_portfolio/decision.md names exactly one rating from Buy, Overweight, Hold, Underweight, Sell.
d. The ticker and the analysis date in the report header are the ones I asked for.
e. No analyst report is thin: each of the analysts you ran has a real section. grep the whole report folder AND the message_tool.log in the run folder
   (~/.tradingagents/logs/<TICKER>/<date>/message_tool.log) for NO_DATA_AVAILABLE and DATA_UNAVAILABLE. NO_DATA_AVAILABLE means
   an analyst had no price data. DATA_UNAVAILABLE on price, news or fundamentals means a vendor
   could not serve it. Either one is NOT a pass, even if a decision printed: name the analyst and
   go to the failure modes. DATA_UNAVAILABLE on an optional category (macro, prediction markets)
   is noted in RUN-LOG.md and is not a fail.
Print a table with one row per check: PASS or FAIL and the evidence line.

STEP 6. Second run, only after step 5 passes: the same command with
--analysts market,sentiment,news,fundamentals so all four analysts run. The Sentiment Analyst reads
StockTwits and Reddit, so treat it as the least stable input. Compare the two decisions and say
plainly if they differ. Two runs of the same input can differ: the README says LLM sampling is not
deterministic.

FAILURE MODES. Match the symptom, name the cause, apply the fix, re-run step 5.
1. Symptom: an analyst report says data is unavailable, or says the ticker may be invalid or
   delisted, or the run stops with YFRateLimitError / "Too Many Requests". Cause: Yahoo Finance is
   rate limiting this network (reported on data center and some non US networks, repo issues 1386
   and 1425). Fix: wait and retry, run from a home network without a VPN, run fewer analysts. The
   free Alpha Vantage tier (25 requests a day, ALPHA_VANTAGE_API_KEY) does not survive a full run.
   Never fill the gap by writing numbers yourself.
2. Symptom: an analyst report is thin or says it wrote from what it had gathered. Cause: a model kept
   calling tools; since the fix for repo issue 1420 (in 0.5.2 and later, so in this clone) the
   analyst is cut off after TRADINGAGENTS_MAX_TOOL_ROUNDS rounds (default 20) and writes its report
   from what it has, and the run goes on. Fix: read that analyst's report before trusting the
   decision, lower the setting or run fewer analysts, and re-run with --checkpoint so a crashed run
   resumes from the last good step.
3. Symptom: the API rejects a request as too large. Cause: the news payload is too big for the
   model context; seen when Alpha Vantage news is switched on (repo issue 1625, open; reported on a local llama.cpp model, not confirmed on Claude). Fix: keep
   the default news source (yfinance) and do not switch news_data to alpha_vantage.
4. Symptom: an authentication error, a model not found error, or HTTP 400 "This model does not
   support the effort parameter". Cause: the key is not set in the shell that ran the command, or
   a model name was typed by hand. Fix: re-check the key as in step 1, use only claude-opus-5-5
   (or claude-sonnet-5) as the model names, and unset TRADINGAGENTS_ANTHROPIC_EFFORT.

BUILD TRAPS. Tell me all four before I run on any other date.
1. Lookahead. The analysis date must be in the past, but a past date is not a clean test. The
   README says news and social sources "still reflect now" for a past date. Statements from outside
   SEC EDGAR and insider trades are withheld for a past date, so those analysts may report less. A
   good-looking decision on a past date proves nothing about the future.
2. Truncated data. If a data call is rate limited, the report is built on less than it appears.
   Check 5e every time.
3. Cost. One run is one full pipeline. tradingagents backtest NVDA,AAPL --start 2026-06-01 --end
   2026-08-01 --every 7 is 2 tickers by 9 dates, 18 full runs. Do not run a backtest without
   telling me the number of runs first and getting my yes.
4. Memory. Every completed run appends to ~/.tradingagents/memory/trading_memory.md, and later runs
   read it. A test run changes what the next run sees. Set TRADINGAGENTS_MEMORY_LOG_PATH to a
   scratch file for experiments.

OUTPUT. Write RUN-LOG.md in the project folder: version, command, date asked, time taken, the
step 5 table, the rating, the cost I read from the Console (leave blank, I fill it), and any failure
mode hit. Then print: what was read, what ran, what passed, open items, next step (prompts 05 to 08 to run the seats by hand on the same ticker, or stop). The Portfolio Manager rating is an input to my decision. It is
not an order. A named human signs, and this is not financial advice.
<trap>A printed decision is not a passed run. An analyst with no data still lets the pipeline finish, so check 5e every time before you trust the rating.</trap>
Stop: if checks 5a to 5e do not all pass, do not run step 6, do not change the ticker, and do not run a backtest. Report the failing check and its failure mode, fix that one cause, and re-run step 5.
Click to copy
READ THIS FIRST. The chart has 14 seats. The TradingAgents repo has 12 coded agents. Head of Research
and Risk Manager are manager seats in the chart that the code does not have as separate agents. This
pack runs both as merge steps (prompts 05 and 07). The repo's README calls the market analyst the
Technical Analyst. The Research Manager and the Portfolio Manager are coded agents.

LEAD
Portfolio Manager. Approves or rejects the final trade. A human signs off. Prompt 08.

ANALYST TEAM. Manager: Head of Research.
Market Analyst. Prompt 05 unit 1. Repo report 1_analysts/market.md
Fundamentals Analyst. Prompt 05 unit 2. Repo report 1_analysts/fundamentals.md
News Analyst. Prompt 05 unit 3. Repo report 1_analysts/news.md
Sentiment Analyst. Prompt 05 unit 4. Repo report 1_analysts/sentiment.md
Head of Research. Prompt 05 unit 5. Merges the four reports. No repo file.

DEBATE AND TRADING TEAM. Manager: Research Manager (judges the bull and bear debate).
Bull Researcher. Prompt 06 unit 1. Repo report 2_research/bull.md
Bear Researcher. Prompt 06 unit 2. Repo report 2_research/bear.md
Research Manager. Prompt 06 unit 3. Repo report 2_research/manager.md (the investment plan)
Trader. Prompt 06 unit 4. Repo report 3_trading/trader.md

RISK TEAM. Manager: Risk Manager.
Aggressive Risk Analyst. Prompt 07 unit 1. Repo report 4_risk/aggressive.md
Conservative Risk Analyst. Prompt 07 unit 2. Repo report 4_risk/conservative.md
Neutral Risk Analyst. Prompt 07 unit 3. Repo report 4_risk/neutral.md
Risk Manager. Prompt 07 unit 4. Merges the three. No repo file.

HAND OFF, IN ORDER
1. The four analysts work from the same data for one ticker and one date.
2. Head of Research merges their reports without settling the splits.
3. Bull and Bear argue from that brief.
4. Research Manager judges the debate and writes the investment plan with one rating: Buy,
   Overweight, Hold, Underweight or Sell.
5. Trader turns the plan into one concrete trade proposal.
6. The three Risk Analysts debate that proposal.
7. Risk Manager merges them into one sizing line and a worst case.
8. Portfolio Manager approves or rejects, after the evidence gate in prompt 08.
9. A named human signs. The default if nobody signs is no trade.

PATH 1 runs the 12 coded agents with prompt 03. Path 2 runs all 14 with prompts 05 to 08.
<trap>Counting 14 coded agents, or treating a merge step as a vote. A manager seat summarises, it does not add evidence.</trap>
Stop: if I ask for a seat that is not on this chart, name the chart and stop. Do not invent a seat or a prompt number.
Click to copy
Follow the shared rules in prompt 01. Use only the documents I paste for the ticker and date. Four
analysts, then the manager. Each report is 4 to 6 plain sentences, then one line:
STANCE: BULLISH | BEARISH | NEUTRAL, <one short reason>   (or OPEN)

<unit name="market-analyst">
What it does: reads trend, momentum and one concrete level.
Needs: a price sheet with closes and the 50 and 200 day averages.
Method: 1. State the close, each average and the percent gap, with the arithmetic. 2. Say whether
trend is up, down or sideways. 3. Name one recent high or low and where price sits against it.
<trap>Calling a gap against a moving average a signal. It describes the past.</trap>
Stop: no price sheet, say so and stop this seat. Never quote a price from memory.
Output: the report, the stance line, the handoff block.
</unit>

<unit name="fundamentals-analyst">
What it does: valuation, growth, margins.
Needs: the latest annual and quarterly statements, with the share price.
Method: 1. Revenue growth as CALCULATED. 2. Margin as REPORTED. 3. Valuation multiples only where
earnings exist; otherwise write "no P/E, loss making" and tag EXPLAINED BY CONTEXT.
<trap>Inventing a multiple for a company that loses money, or mixing a trailing figure with a forecast.</trap>
Stop: statements missing, say so and stop this seat.
Output: the report, the stance line, the handoff block.
</unit>

<unit name="news-analyst">
What it does: the two or three developments that matter, as of the analysis date.
Needs: a news pack with a date on every item.
Method: 1. List each item with its date. 2. EXCLUDE any item dated after the analysis date and name it
as excluded. 3. Judge the mood and flag the one item that could move the stock.
<trap>Using the newest headline. A past dated run must not see the future.</trap>
Stop: an undated item is NOT IN SOURCE for the date. Do not use it.
Output: the report, the stance line, the handoff block.
</unit>

<unit name="sentiment-analyst">
What it does: reads the mood of posts and chatter, apart from headlines.
Needs: a social feed (posts with dates), which I paste.
Method: 1. Count bullish, bearish and neutral posts, CALCULATED. 2. Drop posts not about the company.
3. Say how thin the sample is.
<trap>Reading a handful of loud posts as the market's mood, or reading headlines as chatter.</trap>
Stop: no feed supplied, mark OPEN, give no stance and no figure, and let every other seat run.
Output: the report, the stance line or OPEN, the handoff block.
</unit>

<unit name="head-of-research">
What it does: merges the four reports into one brief of at most 250 words.
Needs: the four reports, or OPEN for any missing one.
Method: 1. What the seats agree on. 2. Where they split, kept visible. 3. The one fact that matters
most. 4. Which reports are missing.
<trap>Resolving a split by picking a side. The debate does that, in prompt 06.</trap>
Stop: fewer than two analyst reports, say so and stop. Do not build a brief from one seat.
Output: the brief, the handoff block. Next: prompt 06.
</unit>
Click to copy
Follow the shared rules in prompt 01. Input is the Head of Research brief from prompt 05.

<unit name="bull-researcher">
What it does: the strongest honest case to buy, 5 to 8 sentences.
Needs: the brief.
Method: 1. Lead with the single best reason. 2. Use only what the analysts reported. 3. Name the
biggest risk to your own case in one sentence.
<trap>Building the case on a fact no analyst reported.</trap>
Stop: no brief, say so and stop.
Output: the case and BULL CASE STRENGTH: STRONG | MODERATE | WEAK. Next: bear-researcher.
</unit>

<unit name="bear-researcher">
What it does: the strongest honest case to avoid, 5 to 8 sentences, written to answer the bull.
Needs: the brief and the bull case.
Method: 1. Lead with the single best reason. 2. Use only reported facts. 3. Name the biggest hole in
your own case.
<trap>Manufacturing doom. A weak bear case stated honestly is useful.</trap>
Stop: no bull case, run the bear alone and say the debate did not happen.
Output: the case and BEAR CASE STRENGTH: STRONG | MODERATE | WEAK. Next: research-manager.
</unit>

<unit name="research-manager">
What it does: judges the debate and writes the investment plan.
Needs: the brief, the bull case, the bear case.
Method: 1. Take each side's three strongest claims and mark each REPORTED (name the analyst) or
INFERENCE. 2. Weigh them. 3. Write the plan: one rating from Buy, Overweight, Hold, Underweight,
Sell; the evidence that decided it; what would change it.
<trap>Choosing Hold because the sides conflict, or crowning the last speaker. Judge the evidence.</trap>
Stop: either case missing, say so and stop. Do not write a plan from one side.
Output: the plan and its rating. Next: trader.
</unit>

<unit name="trader">
What it does: turns the plan into ONE concrete proposal.
Needs: the investment plan and the close on the analysis date.
Method: 1. State action, a paper size of 1 to 5 shares, an entry reference taken from the REPORTED
close, and the condition that would invalidate it. 2. Say why it follows from the plan.
<trap>An entry price taken from memory or from a date after the analysis date.</trap>
Stop: no REPORTED close, say so and stop. Do not state a price.
Output: the proposal and the handoff block. Next: prompt 07.
</unit>
Click to copy
Follow the shared rules in prompt 01. Input is the Trader's proposal from prompt 06. Run the three
analysts in this order, each answering the others once. Each names the size, a worst case in plain
words, and tags every concern.

<unit name="aggressive-risk-analyst">
What it does: argues how much upside the proposal can safely capture.
Needs: the proposal and the investment plan.
Method: 1. Name what a more aggressive size would gain. 2. Name what it would cost if wrong.
<trap>Arguing size from conviction. Size follows what you can lose, not what you expect to win.</trap>
Stop: no proposal, say so and stop.
Output: the argument and a size. Next: conservative-risk-analyst.
</unit>

<unit name="conservative-risk-analyst">
What it does: argues what capital the proposal can lose and what makes it smaller.
Needs: the proposal and the aggressive argument.
Method: 1. State the worst case in plain words. 2. Name one condition under which to skip it.
<trap>Treating every risk as disqualifying. Name the risk that actually changes the size.</trap>
Stop: no proposal, say so and stop.
Output: the argument and a size. Next: neutral-risk-analyst.
</unit>

<unit name="neutral-risk-analyst">
What it does: weighs both and says where each overreaches.
Needs: the two arguments.
Method: 1. One sentence on where the aggressive case overreaches. 2. One on the conservative case.
3. A size between them, with the reason.
<trap>Splitting the difference by default. Say which argument carried the evidence.</trap>
Stop: either argument missing, mark OPEN and say the debate is incomplete.
Output: the weighing and a size. Next: risk-manager.
</unit>

<unit name="risk-manager">
What it does: merges the three into one sizing line and one worst case.
Needs: the three analyst outputs.
Method: 1. One size of 1 to 5 paper shares. 2. One worst case. 3. State what an index fund held over
the same window would have done, ONLY if I supplied that figure; otherwise write OPEN.
<trap>Quoting an index return from memory.</trap>
Stop: fewer than all three analysts, say the merge is partial and stop short of a size.
Output: the line and the handoff block. Next: prompt 08.
</unit>
Click to copy
Follow the shared rules in prompt 01. The gate runs BEFORE the decision. Nothing here places a trade.

EVIDENCE GATE. Answer each with PASS, FAIL or OPEN and the evidence line:
1. Every figure in the plan traces to a REPORTED or CALCULATED label. No unlabelled number.
2. No source dated after the analysis date was used.
3. All four analyst reports exist, or the missing ones are named OPEN. An OPEN here keeps NO TRADE.
4. The proposal states what would invalidate it.
5. Index comparison: I supplied the return of a broad index fund over the same window, or this is OPEN.
6. Path 1 only (N/A on path 2): the run passed all five checks in prompt 03 step 5.
If any of 1, 2 or 4 FAILS: BLOCKED. Any OPEN on 3, 5 or an applicable 6 keeps the decision at NO TRADE
until I supply it. A TradingAgents backtest (tradingagents backtest ...) is an extra check, runs one full
pipeline per ticker and date, and needs my yes on the run count first. One run is not evidence.

PORTFOLIO MANAGER. After the gate, decide APPROVE or REJECT. Start from the evidence, not from the last
speaker. Write: the decision, the one sentence that decided it, the CHANGES THE DECISION flags, and what
happens by default if I do nothing: NO TRADE. An APPROVE with any gate item FAIL or OPEN is APPROVE
PENDING and is not final.

HUMAN SIGN OFF. The named signer reads the gate and signs. You place nothing. A hard block stops the
VERDICT, not the analysis: keep running every other check and say what is still open.
<trap>Approving because the sides now agree. Agreement among agents is not evidence.</trap>
Stop: if the signer is not named, say so and stop. The decision stays NO TRADE.
Output: gate table, decision, flags with tags, open items, "Decision owner: <name>. Not financial advice.
Paper account only."
Built on open source
TradingAgents (open source multi agent trading framework)

The code is public and free. The setup instruction above installs and wires it for you. You never need to open this link.

From a working build to an operating system.

For retail quants and finance founders: a 14 seat research org chart after TradingAgents, run by hand in Claude or built in Claude Code, with an evidence gate and a human sign off before any decision.

Path A · free

Run the build independently

The setup rail and every prompt above are free and stay free. The cost is your time, and the risk of wiring it wrong on live data.

Back to the prompts
Path B · done with you

Connect it to your operation

We would wire your own version: your data feeds, your risk limits, a record of every run and decision, and a sign off chain. Done with you, then handed over so you own it.

Book a build call
data safety

Before you use live numbers

  • • Run last quarter's numbers first. Live data is not a test bed.
  • • Nothing here uploads to us. It runs in your own Claude account, on your own machine.
  • • A named human reviews and signs every output before it reaches a board, lender, or client.
  • • Wiring the open-source piece to real systems? Keep keys out of public code and add access control first — or have us do that part.
the fine print

Credit the original author

The org chart and prompts are modelled on the open source TradingAgents framework (github.com/TauricResearch/TradingAgents, Apache-2.0, Tauric Research), a separate project: no affiliation or endorsement is implied. The prompts are authored by consultance.ai. Your material goes only to your own Claude account and your own API account; we never see it. On Free, Pro or Max plans, check your model training setting first. This is an educational research aid on paper, not financial, investment or trading advice.

Bring this workflow into your operation.

Book a build callBack to the library

Want this wired into your stack instead of running it yourself? That is our AI deal desk and finance automation service.

Newsletter

New builds, as they ship

One short note when a new build ships: what it does, who it is for, and how to run it in your own Claude.

Free. One email a week at most. Unsubscribe in one click.

More like this

Related builds

All builds
Finance and data
Finance and data

Month End Close AI Agent Team

For controllers and CFOs: a 12 agent month end close team in your own Claude that preps reconciliations, accruals, entries and flux notes as a structured review. You approve every ledger post.

Setup guide
Finance and data
Finance and data

Ramp Claude Connector Setup Guide

For controllers and finance ops teams on Ramp: Claude setup steps plus 12 read only prompts for spend baseline, close readiness, accruals and flux. Replaces the manual Ramp export to Excel.

Setup guide
Finance and data
Finance and data

Claude and NetSuite Setup Guide

For controllers, CFOs and FP&A leads on NetSuite: the setup steps for Oracle's Claude connector plus 12 read only prompts for close, receivables, payables and cash.

Setup guide
Get the free kitBook a call

Share with your workflow owner.

Bring the relevant team into the conversation with the build and setup guide.

Forward by email
in one line

What is The 14 Agent Hedge Fund?

The 14 Agent Hedge Fund is a finance and data build in the consultance.ai AI Build Library. For retail quants and finance founders: a 14 seat research org chart after TradingAgents, run by hand in Claude or built in Claude Code, with an evidence gate and a human sign off before any decision. It fits Retail quants, finance founders and fund-curious operators who want to see how a multi analyst research org hands work from analysts to debate to risk to a final decision, and run it on one stock of their own. Setup difficulty is Technical, with 4 plain-English steps.

What does The 14 Agent Hedge Fund do?

For retail quants and finance founders: a 14 seat research org chart after TradingAgents, run by hand in Claude or built in Claude Code, with an evidence gate and a human sign off before any decision.

Who is The 14 Agent Hedge Fund for?

It fits Retail quants, finance founders and fund-curious operators who want to see how a multi analyst research org hands work from analysts to debate to risk to a final decision, and run it on one stock of their own.

How hard is The 14 Agent Hedge Fund to set up?

Technical to set up — one guided setup instruction covering 4 plain-English steps, plus 8 ready-to-run prompts on the resource page.

How would consultance.ai build this out?

We would wire your own version: your data feeds, your risk limits, a record of every run and decision, and a sign off chain. Done with you, then handed over so you own it.

What are the licensing terms?

The org chart and prompts are modelled on the open source TradingAgents framework (github.com/TauricResearch/TradingAgents, Apache-2.0, Tauric Research), a separate project: no affiliation or endorsement is implied. The prompts are authored by consultance.ai. Your material goes only to your own Claude account and your own API account; we never see it. On Free, Pro or Max plans, check your model training setting first. This is an educational research aid on paper, not financial, investment or trading advice.

Connect this build to your workflow.

Discuss how The 14 Agent Hedge Fund fits your systems, controls, and team. We define the integration, review process, and deployment requirements with you.

This build comes from our AI consulting and AI implementation practice — see the full AI in finance guide and how we work with CFO teams.

Book an audit