이 글은 투자 추천이 아니다.
특정 종목을 사거나 팔자는 글도 아니다.
오늘 볼 것은 AI가 투자 리서치 보고서를 만들 때 어디까지 자동화해도 되고, 어디부터 사람이 검증해야 하는가다.
좋은 예시가 하나 있다.
kipeum86/stock-analysis-agent.
GitHub 설명은 꽤 선명하다.
미국과 한국 주식 리서치를 수 분 안에 제공하는 Claude Code 기반 stock research agent다.
README의 핵심 문장은 더 중요하다.
SEC와 DART filings를 먼저 보고, 모든 metric에 source tag를 붙이고, 각 cell에 confidence grade를 둔다.
검증할 수 없는 숫자는 채우지 않는다.
이 원칙이 마음에 들었다.
투자 리서치 자동화에서 제일 위험한 건 AI가 틀리는 것이 아니다.
틀렸는데 그럴듯하게 보이는 것이다.
숫자, 밸류에이션, 위험, 시나리오, 목표가, 확률.
이런 단어들은 표에 들어가면 갑자기 권위가 생긴다.
근데 출처가 없으면 그건 분석이 아니라 장식이다.
그래서 stock-analysis-agent를 단순한 오픈소스 소개가 아니라 금융 리서치 에이전트 운영 기준으로 읽어보자.
핵심은 하나다.
투자 리서치 자동화의 목표는 그럴듯한 보고서가 아니라 검증 가능한 빈칸이다.
말이 좀 이상하지?
근데 진짜다.
검증 안 되는 숫자는 예쁘게 채우는 것보다 빈칸으로 남기는 게 낫다.
결론 먼저
Claude Code나 다른 에이전트로 주식 리서치 자동화를 만들 때 내 기준은 이렇다.
| 항목 | 자동화 가능 | 사람 검토 필요 |
|---|---|---|
| SEC/DART 문서 수집 | 가능 | source URL과 기간 확인 |
| 재무제표 숫자 추출 | 가능 | 단위, 기간, 계정명 검증 |
| peer comparison 표 생성 | 가능 | peer 선정 이유 검토 |
| DCF 계산 | 가능 | 가정, 할인율, terminal value 검토 |
| variant view 초안 | 가능 | 회사별 근거와 반대 근거 검토 |
| risk chain 작성 | 가능 | event to P&L to price 연결 검토 |
| 투자 의견 최종 판단 | 보조만 | 사람이 책임져야 한다 |
| 주문/매매 실행 | 제외 | 자동화 금지 영역으로 둔다 |
한 줄로 정리하면 이렇다.
AI 리서치 에이전트는 숫자를 대신 만들어주는 도구가 아니라 숫자의 출처와 빈칸을 관리하는 도구여야 한다.
이 기준을 통과하면 리서치 자동화는 꽤 쓸 만하다.
통과하지 못하면 그냥 빠르게 예쁜 오답을 만드는 장치가 된다.
예쁜 오답은 무섭다.
못생긴 오답보다 발견이 늦다.
왜 금융 리서치 agent는 어려운가
일반적인 블로그 요약 agent와 금융 리서치 agent는 난이도가 다르다.
블로그 요약에서 문장 하나가 조금 뭉개지면 수정하면 된다.
하지만 투자 리서치에서 매출 성장률, 영업이익률, FCF yield, EV/EBITDA, PER, DCF target, scenario probability가 틀리면 결정이 흔들린다.
숫자는 문장보다 더 위험하다.
숫자는 짧고, 표에 잘 들어가고, 반박하기 전까지는 꽤 진실처럼 보인다.
LLM은 숫자 작업에서 특히 조심해야 한다.
기억으로 답할 수 있고, 계산을 건너뛸 수 있고, 출처가 말하지 않은 것을 말한 것처럼 붙일 수 있다.
그래서 금융 리서치 agent의 첫 번째 원칙은 모델을 믿는 것이 아니다.
source를 먼저 정하는 것이다.
미국 주식이면 SEC EDGAR와 company filings.
한국 주식이면 DART 공시와 사업보고서.
가격과 실시간 market data는 별도 provider.
뉴스와 블로그는 보조 context.
이 순서가 무너지면 리서치가 아니라 검색 요약이 된다.
검색 요약으로 투자 판단을 하면 마음이 편한 건 잠깐이고 복기는 길어진다.
stock-analysis-agent가 잡은 좋은 원칙
stock-analysis-agent README의 좋은 점은 원칙이 꽤 단단하다는 것이다.
첫째, 잘못된 숫자보다 빈칸을 택한다.
둘째, 숫자마다 source tag를 붙인다.
셋째, generic analysis를 피하고 company-specific evidence를 요구한다.
넷째, API key가 있으면 enhanced data를 쓰고, 없으면 web 기반 standard mode로 가는 식으로 data availability를 나눈다.
다섯째, risk는 손 흔드는 말이 아니라 event to P&L impact to stock price chain으로 써야 한다.
이건 투자 글을 쓰는 사람에게도 좋은 기준이다.
“AI 수혜주라서 좋다”는 말은 쉽다.
하지만 어느 제품이, 어느 매출 계정에, 어느 기간에, 어떤 margin 영향을 줄지 못 쓰면 그건 투자 리서치가 아니라 분위기다.
분위기도 시장을 움직일 때가 있다.
하지만 자동화 시스템은 분위기를 근거로 착각하면 안 된다.
source tag는 장식이 아니다
README는 모든 numerical claim에 source tag를 붙이는 쪽이다.
예를 들면 이런 식이다.
[Filing]
[Portal]
[Calc]
이 태그는 보기 좋으라고 붙이는 것이 아니다.
검증 경로를 만들기 위해 붙인다.
| tag | 의미 | 검토 질문 |
|---|---|---|
| Filing | SEC, DART 등 공시 원문 | 기간과 단위가 맞나 |
| Portal | Naver, FnGuide, market data portal | 지연/정정/출처 한계를 아나 |
| API | Financial Datasets 같은 structured provider | provider가 원문을 어떻게 파싱했나 |
| Calc | agent 또는 script 계산값 | 수식과 입력값이 남아 있나 |
| Estimate | consensus 또는 추정치 | 누구 추정치이고 날짜가 언제인가 |
| Manual | 사람이 보정한 값 | 누가 언제 왜 고쳤나 |
source tag가 없으면 나중에 틀렸을 때 고칠 수 없다.
숫자가 어디서 왔는지 모르기 때문이다.
AI 리서치 자동화에서 가장 나쁜 숫자는 틀린 숫자가 아니다.
출처 없는 숫자다.
틀린 숫자는 고치면 된다.
출처 없는 숫자는 먼저 수사부터 해야 한다.
이건 업무가 아니라 추적극이다.
재미는 있는데 바쁠 때는 좀 곤란하다.
SEC와 DART를 먼저 보는 이유
미국 주식의 핵심 원천은 SEC EDGAR filings다.
SEC는 EDGAR API와 filing access를 제공한다.
한국 주식은 DART가 중심이다.
OpenDART는 DART에 공시된 원문과 주요 사업보고서 항목, 주요 재무 계정, 지분공시, 주요사항보고서, 증권신고서 등을 API로 접근할 수 있게 한다.
이런 공식 공시가 중요한 이유는 간단하다.
투자 리서치에서 숫자의 최종 권위는 보통 요약 사이트가 아니라 공시다.
물론 공시도 읽기 어렵고, XBRL tag도 복잡하고, 회사마다 계정명이 다를 수 있다.
그래서 structured provider가 필요할 때도 있다.
Financial Datasets 같은 provider는 SEC filing data를 machine-readable API로 제공한다고 설명한다.
이런 provider는 유용하다.
하지만 provider를 쓰더라도 원문 공시와 연결되는 경로를 남겨야 한다.
agent가 “API가 말했으니까 맞다”로 끝내면 검증 책임이 흐려진다.
좋은 구조는 이렇다.
API로 빠르게 가져온다.
source tag를 붙인다.
중요 숫자는 filing 원문 또는 filing reference로 되짚을 수 있게 한다.
계산값은 수식을 남긴다.
검증 안 되는 값은 빈칸으로 둔다.
4가지 모드는 좋은 제품 사고다
stock-analysis-agent는 output mode를 나눈다.
Mode A는 quick briefing.
Mode B는 peer comparison.
Mode C는 deep dive dashboard.
Mode D는 investment memo.
이 나눔이 좋은 이유는 리서치 깊이를 처음부터 고정하지 않기 때문이다.
항상 3,000자 보고서부터 만들 필요는 없다.
처음에는 quick briefing으로 볼 수 있다.
비교가 필요하면 peer comparison으로 간다.
깊게 봐야 할 때만 dashboard나 memo로 간다.
이건 AI 비용과 사람 검토 시간을 모두 아낀다.
| 상황 | 맞는 모드 | 이유 |
|---|---|---|
| 종목을 처음 본다 | Quick briefing | 빠른 go/no-go |
| 후보 3개를 비교한다 | Peer comparison | 같은 지표로 비교 |
| 한 종목을 깊게 본다 | Deep dive dashboard | 재무, 리스크, valuation 통합 |
| 기록으로 남긴다 | Investment memo | 장문 thesis와 appendix |
이 구조는 블로그 자동화나 코드 리뷰에도 그대로 적용된다.
처음부터 full report를 만들지 말고 triage, comparison, deep dive, memo를 나눈다.
에이전트 workflow에서 모드 분리는 단순 UX가 아니다.
비용과 검증 수준을 나누는 운영 장치다.
confidence grade가 있어야 하는 이유
README는 confidence grade를 언급한다.
이건 정말 중요하다.
모든 값이 같은 확실성을 갖지 않는다.
SEC 10-K에서 직접 가져온 revenue와 뉴스 기사에서 추론한 TAM은 같은 칸에 놓이면 안 된다.
공시의 숫자, 포털의 숫자, API provider의 숫자, agent가 계산한 숫자, 뉴스에서 추정한 숫자, 사람이 가정한 숫자는 확신 수준이 다르다.
따라서 리서치 agent는 값만 내면 안 된다.
값과 함께 confidence grade를 내야 한다.
| grade | 예시 | 표시 방식 |
|---|---|---|
| A | SEC/DART filing 원문에서 직접 확인 | 숫자 표시 |
| B | 신뢰 provider API와 filing reference 일치 | 숫자 표시 |
| C | portal 또는 secondary source 기반 | 숫자 표시 + 주의 |
| D | 검증 불가, 출처 불명, 추정 과다 | — |
여기서 핵심은 D를 숫자로 채우지 않는 것이다.
자동화는 빈칸을 싫어한다.
사람도 빈칸을 싫어한다.
하지만 투자 리서치에서는 빈칸이 정직한 경우가 많다.
빈칸은 다시 확인하라는 표시다.
엉터리 숫자는 확인했다는 착각을 만든다.
Claude Code가 잘할 수 있는 부분
이런 리서치 agent에서 Claude Code가 잘할 수 있는 부분은 분명하다.
repo를 읽는다.
scripts를 실행한다.
API 결과와 output artifact를 비교한다.
표를 만든다.
source tag 누락을 찾는다.
memo 초안을 작성한다.
peer comparison을 같은 구조로 정렬한다.
검증 체크리스트를 돌린다.
특히 Claude Code가 좋은 지점은 파일 기반 workflow다.
input data, intermediate tables, charts, HTML dashboard, DOCX memo, review notes, validation logs를 모두 파일로 남길 수 있다.
이건 prompt-only chatbot보다 훨씬 운영하기 좋다.
투자 리서치에서 결과보다 중요한 건 결과가 나온 경로다.
Claude Code는 그 경로를 repo 안에 남기기 좋다.
물론 조건이 있다.
scripts가 재현 가능해야 한다.
환경변수와 API key가 분리되어야 한다.
출처 없는 숫자는 실패로 처리해야 한다.
output을 사람이 검토해야 한다.
주문 실행은 연결하지 않아야 한다.
이 조건을 지키면 리서치 보조로는 꽤 쓸 수 있다.
맡기면 안 되는 부분
반대로 맡기면 안 되는 부분도 분명하다.
투자 판단의 최종 책임.
매수/매도 타이밍.
포트폴리오 비중.
레버리지 결정.
주문 자동화.
손절/익절 자동 실행.
agent가 만든 memo를 그대로 publish하거나 그대로 trade로 연결하는 것.
이건 분리해야 한다.
리서치 자동화와 매매 자동화는 다르다.
리서치 자동화는 정보 수집과 구조화와 초안 작성이다.
매매 자동화는 돈이 실제로 움직이는 일이다.
둘 사이에는 사람의 판단, 리스크 한도, 감사 로그, 승인 절차가 있어야 한다.
이 선이 없으면 에이전트는 analyst가 아니라 trader가 된다.
개인 자동화에서 그 선을 흐리면 사고가 꽤 조용히 온다.
조용히 오는 사고는 제일 피곤하다.
실무 체크리스트
stock-analysis-agent 같은 구조를 직접 만들거나 fork하기 전에 아래를 먼저 확인하자.
-
SEC/DART 원문 링크가 output에 남는가.
-
모든 숫자에 source tag가 있는가.
-
source tag 없는 숫자는 build 실패로 처리되는가.
-
계산값은 수식과 입력값이 저장되는가.
-
단위가 USD, KRW, million, billion 단위로 명확한가.
-
fiscal year와 calendar year가 섞이지 않는가.
-
TTM, quarterly, annual 값이 구분되는가.
-
peer list가 왜 선택됐는지 남는가.
-
DCF 가정이 output 앞쪽에 노출되는가.
-
consensus와 회사 공시를 같은 grade로 보지 않는가.
-
뉴스 기반 risk는 source와 날짜가 남는가.
-
confidence grade D는
—로 렌더링되는가. -
prompt가 숫자를 채우라고 강요하지 않는가.
-
API key가 repo에 들어가지 않는가.
-
실패한 API call을 secondary source로 몰래 대체하지 않는가.
-
output마다 generated_at과 data_as_of가 있는가.
-
사람이 검토한 memo와 agent 초안이 구분되는가.
-
투자 의견과 리서치 초안이 분리되어 있는가.
-
주문 실행 API가 연결되어 있지 않은가.
-
disclaimer와 scope가 output에 명확한가.
이 중 1번부터 5번까지가 없다면 아직 투자 리서치 agent라고 부르기 어렵다.
그건 빠른 요약기다.
빠른 요약기도 쓸모는 있다.
하지만 이름표를 잘 붙여야 한다.
리서치인 척하면 안 된다.
개인 투자 자동화와 연결할 때
이런 도구는 배당노마드나 개인 투자 루틴에도 욕심이 난다.
예를 들어 SCHD, JEPI, JEPQ, 미국 배당주, 한국 배당주, 연금 ETF를 분석하게 할 수 있다.
하지만 개인 투자 루틴에 붙일 때는 더 보수적으로 가야 한다.
첫 단계는 자동 매매가 아니다.
watchlist delta다.
지난 분석 이후 무슨 공시가 바뀌었는가.
배당 정책이 바뀌었는가.
실적 발표가 있었는가.
가이던스가 바뀌었는가.
valuation 가정이 바뀌었는가.
이런 변화만 알려주는 형태가 좋다.
두 번째 단계는 monthly review memo다.
세 번째 단계는 peer comparison이다.
마지막까지도 order execution은 붙이지 않는 편이 좋다.
사람이 버튼을 눌러야 한다.
버튼 앞에서 한 번 더 생각해야 한다.
AI가 빠르게 만든 확신은 가끔 너무 매끈해서 위험하다.
FAQ
stock-analysis-agent는 투자 추천 도구인가?
아니다.
이 글에서는 투자 추천 도구가 아니라 금융 리서치 자동화 구조로 본다.
output은 의사결정 참고 자료일 뿐이고, 최종 투자 판단은 사람이 해야 한다.
SEC와 DART만 쓰면 숫자 hallucination이 사라지나?
완전히 사라지지는 않는다.
공식 공시를 써도 단위, 기간, 계정명, restatement, 연결/별도 구분에서 오류가 날 수 있다.
그래서 source tag와 confidence grade가 같이 필요하다.
검증할 수 없는 숫자를 빈칸으로 두면 보고서가 불완전하지 않나?
맞다.
하지만 금융 리서치에서는 불완전한 정직함이 완성된 오답보다 낫다.
빈칸은 후속 검증 대상이고, 오답은 잘못된 확신이 된다.
Claude Code가 DCF까지 자동으로 해도 되나?
계산 자체는 가능하다.
하지만 DCF는 가정이 핵심이다.
할인율, 성장률, margin, terminal value, scenario probability는 사람이 검토해야 한다.
agent는 계산표와 민감도 분석을 돕는 쪽이 맞다.
이 구조를 바로 매매 자동화로 연결해도 되나?
권하지 않는다.
리서치 자동화와 주문 자동화는 분리해야 한다.
agent가 만든 report는 사람이 검토하고, 매매 결정은 별도 리스크 관리 규칙으로 다뤄야 한다.
TECHTAEK 독자에게 이 repo의 핵심 교훈은 뭔가?
금융 도메인이라서가 아니라 agent workflow 설계가 좋기 때문이다.
source tag, confidence grade, blank beats wrong, mode 분리, primary source 우선순위는 코드 리뷰, 블로그 발행, 리서치 자동화에도 그대로 적용할 수 있다.
관련 글
- 개인 투자 자동화 안전장치 2026 – dry-run·로그·승인 게이트 6단계 설계
- 비공식 증권 CLI 운영 기준 2026 – JSON 출력은 써도 주문 자동화는 멈춰야 하는 이유
- Agents SDK 차세대 진화 2026 – sandbox·harness·memory·filesystem 운영 경계표
참고 자료
- kipeum86/stock-analysis-agent GitHub repo
- SEC EDGAR API overview
- OpenDART Introduction to Open API
- Financial Datasets API documentation
- Threads 원문
마무리
투자 리서치 자동화에서 제일 중요한 것은 보고서가 빨리 나오는 것이 아니다.
숫자가 어디서 왔는지 나중에 추적할 수 있는 것이다.
stock-analysis-agent가 좋은 출발점으로 보이는 이유도 바로 그 지점이다.
SEC와 DART를 먼저 보고, 숫자에 source tag를 붙이고, confidence grade를 두고, 검증 안 되면 빈칸으로 둔다.
이 네 가지가 있으면 AI 리서치 agent는 도구가 된다.
이 네 가지가 없으면 AI 리서치 agent는 그럴듯한 문서를 빠르게 찍는 장식 기계가 된다.
투자에서 장식은 위험하다.
투자 리서치 자동화의 좋은 목표는 사람을 없애는 것이 아니다.
사람이 봐야 할 근거를 더 빠르고 더 깔끔하게 모아주는 것이다.
그 경계만 지키면 Claude Code 기반 금융 리서치 agent는 꽤 재미있는 생산성 도구가 될 수 있다.
경계를 잊는 순간 그 재미는 비용 청구서가 된다.