AI Multi-Agent System
Event Analysis Team
ํ
๋ ๊ทธ๋จ ํ ์ค ๋ช
๋ น์ผ๋ก 7๊ฐ ์ ๋ฌธ AI ์์ด์ ํธ๊ฐ
ํ์
ํ์ฌ ์ฌ๊ฑด์ ๋ค๊ฐ๋๋ก ๋ถ์ํ๊ณ ,
ํ๋ฆฌ๋ฏธ์ HTML ๋ณด๊ณ ์๋ฅผ ์๋ ์์ฑํ๋ ์์คํ
v2.3.0 ยท Claude Opus + Sonnet
Architecture
์์คํ
๊ตฌ์ฑ
Telegram
์ฌ์ฉ์๊ฐ ๋ถ์ ์ฃผ์ ๋ฅผ ์
๋ ฅ
Oracle Cloud VM
Ubuntu 22.04 ยท Python ๋ด ์์ ๊ฐ๋
Strategic Planner (Opus)
25+ ๋ถ์ ๊ธฐ๋ฒ์์ ์ต์ ์ ๋ต ๊ฒฐ์ ยท ํ
๋ง ์ ํ
7 Expert Agents
๊ฐ ์์ด์ ํธ๊ฐ ์ ๋ต ์ง์์ ๋ฐ๋ผ ๋ง์ถค ๋ถ์
HTML Report + Cloudflare
๋์ ํ
๋ง ๋ณด๊ณ ์ ์์ฑ ยท ์ฆ์ ๊ณต์ ๊ฐ๋ฅ
Expert Agents
7๋ช
์ ์ ๋ฌธ ๋ถ์๊ฐ
1
์ํฉ ๋ถ์๊ด
ํฉํธ ์์ง ยท ์น ๊ฒ์ ยท ํ์๋ผ์ธ
Sonnet
2
์ดํด๊ด๊ณ์ ๋ถ์๊ด
ํต์ฌ ํ์์ ยท ์ ๋ต ยท ๊ด๊ณ ๊ตฌ๋
Sonnet
3
๊ตฌ์กฐ ๋ถ์๊ด
๊ตฌ์กฐ์ ์์ธ ยท ํ์ ์ญํ
Opus
4
์ฐ์๋ฐ์ ๋ถ์๊ด
์ธ๊ณผ ์ฌ์ฌ ยท ํ๊ธํจ๊ณผ ์ถ์
Sonnet
5
์๋๋ฆฌ์ค ์ค๊ณ๊ด
ํฅํ ์ ๊ฐ ๊ฒฝ๋ก ยท ๊ฐ์ ์ ํธ
Opus
6
์๊ฐํ ๋ถ์๊ด
SVG ๊ด๊ณ๋ ยท ์ง๋ ยท ์ฐจํธ
Opus
7
๋ณด๊ณ ์ ํฉ์ฑ๊ด
๋ด๋ฌํฐ๋ธ ๊ตฌ์ฑ ยท HTML ๋ ๋๋ง
Sonnet
Analysis Sequence
๋ถ์ ์ํ์ค
1
๋ถ์ ์์ฒญ
ํ
๋ ๊ทธ๋จ์ ์ฃผ์ ๋ฅผ ์์ฐ์ด๋ก ์
๋ ฅ. "์งง๊ฒ" ํค์๋๋ก ๋น ๋ฅธ๋ถ์ ๋ชจ๋ ๊ฐ๋ฅ
2
์ํฉ ํ์
์ํฉ ๋ถ์๊ด์ด ์น ๊ฒ์์ผ๋ก ์ต์ ํฉํธยทํ์๋ผ์ธยทํต์ฌ ์์น ์์ง
3
์ ๋ต ๊ธฐํ
Opus๊ฐ 25+ ๋ถ์ ๊ธฐ๋ฒ ์ค ์ต์ ๊ธฐ๋ฒ ์ ํ, ๊ฐ ์์ด์ ํธ์ ๋ง์ถค ์ง์, ๋ณด๊ณ ์ ํ
๋ง ๊ฒฐ์ , ๋ถํ์ํ ์์ด์ ํธ ์คํต
4
์ ๋ฌธ ๋ถ์
๊ฐ ์์ด์ ํธ๊ฐ ์ ๋ต ์ง์์ ๋ฐ๋ผ ๊ณ ์ ๊ด์ ์ผ๋ก ๋ถ์. ์ด์ ์์ด์ ํธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ ์ ์ง์ ์ฌํ
5
์๊ฐํ
SVG ๊ด๊ณ๋, ์ง๋, Canvas ์ฐจํธ ๋ฑ โ ์ฃผ์ ์ ํ์ํ ์๊ฐ ์์๋ง ์ ํ์ ์์ฑ
6
๋ณด๊ณ ์ ์์ฑ
๋์ ๋ด๋ฌํฐ๋ธ ๊ตฌ์กฐ๋ก HTML ๋ณด๊ณ ์ ๋ ๋๋ง, Cloudflare์ ์ฆ์ ๋ฐฐํฌ, ๊ณต์ ๋งํฌ ์ ๋ฌ
Case Study
๊ฐ์ ์์คํ
, ์์ ํ ๋ค๋ฅธ ๋ถ์
์ ๋ต ๊ธฐํ ์์ด์ ํธ๊ฐ ์ฃผ์ ๋ฅผ ํ์
ํ๊ณ , ๊ฐ ์์ด์ ํธ์๊ฒ ๋ง์ถค ๋ถ์ ์ง์๋ฅผ ๋ด๋ฆผ.
๋์ผํ 7๊ฐ ์์ด์ ํธ๊ฐ ์ฃผ์ ์ ๋ฐ๋ผ ์์ ํ ๋ค๋ฅธ ๊ด์ ์ผ๋ก ๋ถ์ํจ.
Case A
์ด๋ ์ ์์ ํ๊ตญ ๊ฒฝ์ ์ํฅ
์ด๋ ์ ์์ ์ฅ๊ธฐํ์ ๋ฐ๋ผ ํ๊ตญ ๊ฒฝ์ ๋ ์ด๋ค ์ํฅ์ ๋ฐ๊ฒ ๋๋์ง, ์ฑ๊ถ๊ธ๋ฆฌ, ๋ถ๋์ฐ, ํ์จ, ์ฃผ๊ฐ๋ ์ด๋ป๊ฒ ์์ง์ด๊ฒ ๋ ์ง ์ผ์ด์ค ์คํฐ๋ ํด
โ ์ดํด๊ด๊ณ์ ๋ถ์๊ด
"์๋์ง ์์ถ๊ตญ(์ด๋ยท์ฌ์ฐ๋ยท๋ฌ์์)๊ณผ ์์
๊ตญ(ํ๊ตญยท์ผ๋ณธยท๋๋ง) ์ค์ฌ์ผ๋ก ๋ถ์. DIME ํ๋ ์์ํฌ ์ ์ฉ"
โ ๊ตฌ์กฐ ๋ถ์๊ด
"ํธ๋ฅด๋ฌด์ฆ ํดํ ๊ณต๊ธ๋ง ๋ณ๋ชฉ + ๋์ฒด ๊ฒฝ๋ก ๊ด์ . Transmission Channel ๊ธฐ๋ฒ์ผ๋ก ์ ๊ฐโ๋ฌผ๊ฐโ๊ธ๋ฆฌโํ์จ ์ ์ด ๊ฒฝ๋ก ์ถ์ "
โ ์ฐ์๋ฐ์ ๋ถ์๊ด
"์๋์ง ๊ฐ๊ฒฉ โ ํ๊ตญ CPI โ ํ์ ๊ธฐ์ค๊ธ๋ฆฌ โ ๋ถ๋์ฐ/์ฑ๊ถ/์ํ ์ฐ์ ์ถฉ๊ฒฉ ๊ฒฝ๋ก. Input-Output ๋ถ์ ๋ณํ"
โ ์๋๋ฆฌ์ค ์ค๊ณ๊ด
"ํธ๋ฅด๋ฌด์ฆ ๋ด์ ๊ธฐ๊ฐ๋ณ(30์ผ/90์ผ/180์ผ) ์๋๋ฆฌ์ค. Stress Test ๊ธฐ๋ฒ ์ ์ฉ"
geopolitical
์์ด์ ํธ 7/7 ๊ฐ๋
DIME + Stress Test
Case B
Oracle์ ์ํฐํ๋ผ์ด์ฆ AI ์ ๋ต๊ณผ ํด๋ผ์ฐ๋ ๋ฒค๋ ์ข
์์ฑ
Oracle Exadata X11M ์ถ์์ AI ํตํฉ ์ ๋ต์ด ์ํฐํ๋ผ์ด์ฆ ์์ฅ์ ๋ฏธ์น๋ ์ํฅ์ ๋ถ์ํด
โ ์ดํด๊ด๊ณ์ ๋ถ์๊ด
"๊ธฐ์ ๋ฒค๋(Oracle/AWS/MS/Google) ๊ฐ ์์ฅ์ ์ ์จ๊ณผ ํ๋ซํผ ์ข
์ ์ ๋ต ๋น๊ต. Network Analysis ์ ์ฉ"
โ ๊ตฌ์กฐ ๋ถ์๊ด
"์ ํ๋น์ฉ(switching cost)๊ณผ ๊ธฐ์ ์ ์ง์
์ฅ๋ฒฝ ๊ด์ . ๊ฒ์์ด๋ก ์๋ ๋
์ ๊ตฌ์กฐ์ ํ๋ซํผ ๊ฒฝ์ ํ์ผ๋ก ๋ถ์"
โ ์ฐ์๋ฐ์ ๋ถ์๊ด
"๊ฐ๊ฒฉ ์ธ์ โ ๊ณ ๊ฐ ์ข
์ ์ฌํ โ ๋์ ๊ฒํ โ ์ ํ ์คํจ ์ฌ์ดํด ์ถ์ "
โ ์๋๋ฆฌ์ค ์ค๊ณ๊ด
"์คํ์์ค ๋์ ์ฑ์ฅ ์๋๋ณ ์๋๋ฆฌ์ค. Cone of Plausibility ๊ธฐ๋ฒ"
tech
์์ด์ ํธ 7/7 ๊ฐ๋
Network + Cone of Plausibility
Case C
์ด๋ฒ ์ฃผ๋ง ์ธ์ข
์ ์ผ๊ธฐ์๋ณด
์ด๋ฒ ์ฃผ๋ง ์ธ์ข
์ผ๊ธฐ์๋ณด๋ฅผ ์งง๊ฒ ๋ถ์ํด๋ด
โก ๋น ๋ฅธ๋ถ์ ๋ชจ๋ ๋ฐ๋
"์งง๊ฒ" ํค์๋ ๊ฐ์ง โ ์ ๋ต๊ธฐํ ์คํต, ํต์ฌ ์์ด์ ํธ๋ง ๊ฐ๋. ์ ์ฒด Sonnet ๋ชจ๋.
burgundy
์์ด์ ํธ 3/7 ๊ฐ๋
playersยทdynamicsยทchain ์คํต
Pipeline Detail
๋ด๋ถ ํ์ดํ๋ผ์ธ ์์ธ
ํ ๊ฑด์ ๋ถ์ ์์ฒญ์ด ์์คํ
๋ด๋ถ์์ ์ฒ๋ฆฌ๋๋ ๊ณผ์ .
๊ฐ ์์ด์ ํธ๋ ๋
๋ฆฝ๋ Claude CLI subprocess๋ก ์คํ๋จ.
0s
Telegram Webhook ์์
์ฌ์ฉ์ ๋ฉ์์ง ํ์ฑ โ ๋ถ์ ํ ๋ฑ๋ก
telegram_bot.py โ orchestrator.run_analysis()
~2s
์ํฉ ๋ถ์๊ด Sonnet
WebSearch + WebFetch๋ก ์ต์ ํฉํธ ์์ง
claude -p "{system_prompt}\n{context}"
--allowedTools "WebFetch,WebSearch"
โ ContextAnalysis (JSON)
~90s
์ ๋ต ๊ธฐํ Opus
25+ ๋ถ์ ๊ธฐ๋ฒ ๋ ํผ๋ฐ์ค์์ ์ต์ ์ ํ
Input: event_name + category + summary
Output: {
"players": "DIME ํ๋ ์์ํฌ ์ ์ฉ...",
"dynamics": "Transmission Channel...",
"theme": "geopolitical",
"skip": []
}
~150s
์์ด์ ํธ ์์ฐจ ์คํ
๊ฐ ์์ด์ ํธ๊ฐ ์ ๋ต ์ง์๋ฅผ system prompt์ ์ฃผ์
๋ฐ์ ์คํ
=== ์ ๋ต ์ง์ (์ต์ฐ์ ์ค์) ===
"{directive}"
์ ์ง์์ ๋ฐ๋ผ ๋ถ์ ๊ด์ ๊ณผ ๊ธฐ๋ฒ์ ์กฐ์ ํ ๊ฒ.
===
players โ dynamics โ chain โ scenarios
(๊ฐ๊ฐ ๋
๋ฆฝ subprocess, ์ด์ ๊ฒฐ๊ณผ ์
๋ ฅ)
~600s
์๊ฐํ ๋ถ์๊ด Opus
์ ๋ต ์ง์์ ๋ฐ๋ผ ํ์ํ ์๊ฐํ๋ง ์ ํ ์์ฑ
SVG ๊ด๊ณ๋: ํ์ ์์๋ง
Leaflet ์ง๋: ์ง๋ฆฌ์ ์์ ์์ ๋๋ง
Canvas ์ฐจํธ: ์์น ๋ฐ์ดํฐ ์์ ๋๋ง
โ VisualAnalysis (JSON + SVG)
~750s
๋ณด๊ณ ์ ํฉ์ฑ๊ด Sonnet
๋ด๋ฌํฐ๋ธ ๊ตฌ์กฐ ๊ฒฐ์ + HTML ๋ ๋๋ง + Cloudflare ๋ฐฐํฌ
asyncio.gather(
executive_summary(), # ๊ฑฐ๋ฒ๋์ค + ํต์ฌ์์ฝ
narrative_plan() # ์น์
์์ยท์ ๋ชฉ ๊ฒฐ์
)
โ Jinja2 template + data-theme="{theme}"
โ wrangler pages deploy --branch main
โ https://analysis-reports.pages.dev/{file}
~800s
๊ฒฐ๊ณผ ์ ๋ฌ
ํ
๋ ๊ทธ๋จ์ผ๋ก ํ
์คํธ ์์ฝ + ๋ณด๊ณ ์ ๋งํฌ ์ ์ก
๐ ๋ณด๊ณ ์ ๋งํฌ: https://...pages.dev/...
๐ ์ ์ฒด ๋ณด๊ณ ์ ๋ชฉ๋ก: https://...pages.dev/
โ
๋ถ์ ์๋ฃ (์์์๊ฐ: 800์ด)
Dynamic Themes
์ฃผ์ ๋ณ ์๋ ํ
๋ง
Geopolitical
์๋ณด ยท ๊ตฐ์ฌ ยท ์ ์
Financial
๊ธ์ต ยท ๊ฒฝ์ ยท ์์ฅ
Nature
ํ๊ฒฝ ยท ์๋์ง
Liquid Glass
ํ๋ฆฌ๋ฏธ์ ยท ํ์
Key Features
ํต์ฌ ๊ธฐ๋ฅ
๐งญ
์ ๋ต ๊ธฐํ ์์ด์ ํธ
ACH, DIME, Stress Test ๋ฑ 25+ ๋ถ์ ๊ธฐ๋ฒ์์ ์ฃผ์ ์ ์ต์ ์ธ ๋ฐฉ๋ฒ๋ก ์๋ ์ ํ
๐ญ
๋์ ๋ด๋ฌํฐ๋ธ
๊ณ ์ ๋ ๋ณด๊ณ ์ ํ ์์ด, ์ฌ๊ฑด ์ฑ๊ฒฉ์ ๋ง๊ฒ ์น์
์์์ ์ ๋ชฉ์ ๋งค๋ฒ ์๋ก ๊ตฌ์ฑ
โก
๋น ๋ฅธ๋ถ์ ๋ชจ๋
"์งง๊ฒ", "๊ฐ๋ตํ" ํค์๋๋ก ํต์ฌ ์์ด์ ํธ๋ง ๊ฐ๋, 3๋ฐฐ ๋น ๋ฅธ ๋ถ์
๐จ
6๊ฐ์ง ๋์ ํ
๋ง
์ ๋ต ๊ธฐํ์ด ์ฃผ์ ๋ฅผ ํ์
ํ๊ณ ์ต์ ํ
๋ง ์๋ ์ ์ฉ โ Liquid Glass๊น์ง
๐
์ฆ์ ๊ณต์
Cloudflare Pages ์๋ ๋ฐฐํฌ, ๋งํฌ ํ๋๋ก ๋๊ตฌ์๊ฒ๋ ๊ณต์