한 문장으로 이 프로젝트가 뭘 하는지부터.
MiroFish = "현실 사건을 씨앗 삼아 수천 명의 AI 주민이 사는 평행 사회를 짓고, 거기서 일이 어떻게 굴러가는지를 미리 돌려보는 시뮬레이터". 사용자는 딱 두 가지만 하면 된다 — ① 씨앗 자료(데이터 분석 리포트나 흥미로운 소설 이야기)를 올리고 ② 자연어로 "무엇을 예측하고 싶은지"를 적는다. 그러면 MiroFish가 그 사건을 둘러싼 인물·관계를 추출해 디지털 세계를 만들고, 각 AI 주민이 글을 쓰고 반응하며 사회가 진화하게 둔 뒤, 마지막에 상세한 예측 리포트 + 깊이 대화까지 가능한 고해상도 디지털 세계를 돌려준다.
심시티에서는 가상의 시민들이 도시 안에서 알아서 살아간다. MiroFish는 그 시민 자리에 각자 성격·기억·말투를 가진 수천 개의 LLM(거대 언어 모델) 에이전트를 앉히고, 도시 대신 트위터·레딧 같은 소셜 플랫폼을 무대로 깐다.
여기에 "만약 정부가 이런 발표를 하면?", "이 인물이 이렇게 행동하면?" 같은 변수를 도중에 주입할 수 있다. 한 번의 실제 사건을 여러 번 '시뮬레이션 회차'로 돌려, 미래의 여러 갈림길을 미리 구경하는 셈이다.
MiroFish가 보여 준 두 가지 대표 데모가 이 정체성을 잘 드러낸다. 하나는 실제 대학에서 벌어진 여론 사건을 넣고 "앞으로 여론이 어떻게 번질까"를 추론한 것이고, 다른 하나는 『홍루몽(红楼梦)』 앞부분 수십만 자를 넣고 "잃어버린 뒷이야기 결말"을 예측하게 한 것이다. 진지한 사회 예측부터 순수한 창작 추론까지 같은 엔진으로 다룬다는 게 MiroFish의 야심이다.
전통 예측 = 일기예보관 한 명의 머릿속 — 과거 통계와 직관으로 "이렇게 될 것 같다"고 한 사람이 추정한다.
MiroFish = 수천 명이 사는 미니 사회를 통째로 돌려보기 — 사람들이 실제로 어떻게 반응하고 그 반응이 또 다른 반응을 부르는지를 '관찰'한 결과로 미래를 그린다. 예측의 근거가 "한 명의 추정"이 아니라 "집단의 시뮬레이션"이라는 게 결정적 차이다.
TrendShift 일간 16위까지 올라온 이유 — 트렌딩의 배경.
"AI로 미래 예측"을 표방하는 프로젝트는 많지만, 대개 숫자 한 줄(주가·확률)을 뱉는다. MiroFish가 튄 이유는 "숫자 대신 '살아 움직이는 사회'를 통째로 시뮬레이션해서 보여 준다"는 접근의 신선함과, 그걸 일반인도 자연어로 돌릴 수 있게 패키징했다는 점이다. 다섯 가지로 정리한다.
사용자가 하는 일은 자료 업로드 + 자연어로 예측 요구 적기가 전부다. 인물·관계 추출, 성격(페르소나) 생성, 시뮬레이션 파라미터 설정, 기억 주입 같은 복잡한 단계는 전부 생성 에이전트가 자동으로 처리한다. "사회 시뮬레이션"이라는 무거운 개념을 "파일 올리고 한 문장 적기"로 낮춘 게 진입장벽을 확 깎았다.
바닥부터 다 만든 게 아니라, CAMEL-AI 팀의 오픈소스 OASIS를 시뮬레이션 엔진으로 채택했다. OASIS는 트위터·레딧 같은 소셜 플랫폼에서 최대 100만 에이전트까지 굴릴 수 있는 연구용 시뮬레이터다. 검증된 토대 위에 "예측 워크플로"라는 응용을 얹은 영리한 선택이라, 안정성과 확장성을 동시에 가져갔다.
대부분의 LLM 에이전트는 대화가 길어지면 앞을 잊는다. MiroFish는 Zep Cloud의 시간 지식그래프(temporal knowledge graph)를 붙여, 각 에이전트가 "누가 언제 무슨 말을 했고 관계가 어떻게 변했는지"를 시간 순으로 기억하게 했다. 기억이 쌓이며 행동이 달라지니, 사회가 '진화'한다는 말이 빈말이 아니게 된다.
시뮬레이션을 켜 놓고 구경만 하는 게 아니라, 돌아가는 도중에 "이런 일이 터졌다"고 변수를 던져 넣을 수 있다. 시뮬레이션이 별도 프로세스로 돌고 IPC(프로세스 간 통신)로 명령을 주고받는 구조라 가능한 일. 같은 사건을 변수만 바꿔 여러 번 돌리며 "if(만약)"를 실험하는 게 이 도구의 핵심 재미다.
여론·정책·금융 같은 진지한 의사결정 예행연습과, 소설 결말·창작 추론 같은 재미있는 시뮬레이션을 한 엔진으로 다룬다. 게다가 중국 대형 IT 기업 盛大(Shanda)그룹의 전략 지원·인큐베이팅을 받는다고 README가 밝히고 있어, "취미 프로젝트"가 아니라는 신뢰를 더한다.
| 구분 | 전통 예측(설문·통계·전문가) | MiroFish(에이전트 사회 시뮬레이션) |
|---|---|---|
| 예측 근거 | 과거 데이터 패턴 + 사람의 추정 | 수천 개체의 상호작용을 직접 '관찰' |
| "만약" 실험 | 어렵다(시나리오를 손으로 가정) | 변수 주입으로 회차마다 다르게 돌림 |
| 산출물 | 숫자·확률 한 줄 | 리포트 + 대화 가능한 디지털 세계 |
| 한계 | 집단 역학·창발을 못 본다 | 생성형 환각·비용·검증 어려움 |
아무리 정교해도 결국 LLM이 만들어 낸 가상 인물들의 가상 행동이다. 진짜 사람들의 미래 행동을 보장하지 않으며, 에이전트의 편향·환각이 그대로 사회 역학에 섞여 든다. 또 수천 에이전트를 여러 회차 돌리면 LLM 호출 비용이 상당히 크다(README도 "소비가 크니 40회차 미만으로 먼저 시도하라"고 경고). 이 레포의 진짜 가치는 "미래를 맞히는 점쟁이"가 아니라, 다중 에이전트 오케스트레이션·사회 시뮬레이션·에이전트 장기기억·GraphRAG를 한 번에 공부할 수 있는 살아있는 교재라는 데 있다.
pyproject.toml · package.json · docker-compose · 소스 트리에서 뽑아낸 실제 구성.
MiroFish는 ⓐ 백엔드(파이프라인 두뇌) ⓑ AI·시뮬레이션 코어 ⓒ 프론트엔드 ⓓ 인프라 네 층으로 나뉜다. 특히 "Flask가 지휘하고, 무거운 시뮬레이션은 별도 프로세스(OASIS)가 돌리며, Vue 프론트가 5단계 마법사 UI로 안내"하는 3분할 구조가 설계의 큰 특징이다.
| 구성요소 | 무엇 | 역할 |
|---|---|---|
| Flask 3 + flask-cors | 경량 웹 서버 | run.py 진입점, 포트 5001. graph/simulation/report 3개 API 블루프린트를 마운트. |
| OpenAI SDK | LLM 클라이언트 | OpenAI 호환 형식이면 어떤 LLM이든 호출. 기본 추천은 알리바바 百炼의 qwen-plus. |
| pydantic 2 | 데이터 구조 검증 | SimulationParameters·OasisAgentProfile 등 시뮬레이션 설정을 타입으로 못 박는다. |
| PyMuPDF | PDF 파서 | 업로드한 씨앗 자료(PDF 리포트 등)에서 본문 텍스트를 추출. |
| charset-normalizer · chardet | 인코딩 감지 | UTF-8이 아닌 텍스트 파일도 깨지지 않게 인코딩을 추정해 읽는다. |
| python-dotenv | 설정 로더 | .env의 API 키·모델명을 읽어 들인다. |
| 구성요소 | 무엇 | 역할 |
|---|---|---|
| camel-oasis 0.2.5 | 대규모 사회 시뮬레이터 | 트위터·레딧을 모사한 무대에서 수천~백만 에이전트가 글쓰기·좋아요·팔로우·리포스트로 상호작용. |
| camel-ai 0.2.78 | 멀티 에이전트 프레임워크 | OASIS의 기반. 에이전트의 역할·도구·메시지 오케스트레이션을 담당. |
| zep-cloud 3.13 | 시간 지식그래프 메모리 | 각 에이전트의 장기기억. "누가-언제-무엇을-어떻게" 관계를 시간 축으로 저장·검색. |
| GraphRAG (자체 구현) | 그래프 기반 검색증강 | graph_builder.py·ontology_generator.py가 씨앗에서 인물·관계 그래프를 짓고 검색에 활용. |
| LLM_BOOST (선택) | 가속용 보조 모델 | 무거운 단계는 빠른/싼 모델로 분리 호출하는 2-티어 모델 라우팅 옵션. |
| 구성요소 | 무엇 | 역할 |
|---|---|---|
| Vue 3.5 + Vite 7 | UI 프레임워크 · 번들러 | Step1~Step5 컴포넌트가 워크플로 5단계를 그대로 화면으로. |
| D3.js 7 | 그래프 시각화 | GraphPanel.vue가 인물·관계 지식그래프를 노드-엣지 다이어그램으로 그린다. |
| vue-router 4 | 라우팅 | Home·Process·Simulation·Report·Interaction 화면 전환. |
| vue-i18n 11 | 다국어 | locales/en.json·zh.json 기반 중/영 전환. |
| axios | HTTP 클라이언트 | Flask 백엔드 API 호출. |
| 구성요소 | 무엇 | 역할 |
|---|---|---|
| Docker + compose | 단일 이미지 배포 | ghcr.io/666ghj/mirofish 한 이미지로 프론트(3000)·백(5001)을 동시에 띄운다. |
| uv | 파이썬 패키지 매니저 | uv sync로 백엔드 가상환경·의존성을 한 방에. pip보다 빠르다. |
| concurrently | 병렬 실행 | npm run dev 하나로 백엔드+프론트를 동시 구동. |
| GitHub Actions | 이미지 빌드 | docker-image.yml이 컨테이너 이미지를 자동 빌드·푸시. |
| AGPL-3.0 | 라이선스 | 네트워크로 제공해도 소스 공개 의무가 따르는 강한 카피레프트. |
사람은 어제 싸운 친구를 오늘 다르게 대한다 — 기억이 행동을 바꾸기 때문이다. 보통의 LLM 에이전트는 이게 안 된다(맥락 창이 꽉 차면 앞을 잊는다). MiroFish는 Zep의 시간 지식그래프에 "어떤 사건이 언제 있었고 관계가 어떻게 변했는지"를 차곡차곡 적어 두고, 에이전트가 행동하기 전 그 기억을 꺼내 보게 한다. 그래서 100회차쯤 돌면 에이전트들 사이에 관계의 역사가 쌓여, 단순 반복이 아니라 '사회가 진화하는' 그림이 나온다 — 군체지능의 창발을 받쳐 주는 토대다.
씨앗 자료 한 편이 "예측 리포트"가 되기까지 — 5단 파이프라인의 여정.
README가 밝힌 메인 흐름은 图谱构建 → 环境搭建 → 开始模拟 → 报告生成 → 深度互动, 즉 ① 지식그래프 구축 → ② 환경 설정 → ③ 시뮬레이션 실행 → ④ 리포트 생성 → ⑤ 깊이 대화의 5단 파이프라인이다. 프론트의 Step1~Step5 컴포넌트가 이 다섯 단계를 그대로 화면으로 옮겼고, 백엔드의 services/ 모듈들이 각 단계를 맡는다.
전체가 "앞 단계의 산출물이 다음 단계의 입력"인 한 줄기 파이프라인이다. 씨앗 → 그래프 → 페르소나·설정 → 시뮬레이션 → 리포트 → 대화. 프론트 Step1GraphBuild.vue부터 Step5Interaction.vue까지가 각 단계를 시각화하고, 사용자는 단계별로 결과를 확인·수정하며 진행한다. 복잡한 AI 파이프라인을 "마법사(wizard) UI"로 풀어 낸 게 사용성의 핵심.
가장 무거운 ③단계는 run_twitter_simulation.py와 run_reddit_simulation.py를 동시에(병렬) 돌린다. 같은 사건이 트위터식 빠른 전파와 레딧식 토론형 확산에서 어떻게 다르게 번지는지를 한 번에 보는 셈. 그 위 run_parallel_simulation.py(63KB)가 두 플랫폼을 묶어 지휘한다. "한 사건, 여러 무대"로 입체적 그림을 얻는 설계다.
시뮬레이션은 메인 서버 안에서 도는 게 아니라 독립된 자식 프로세스로 분리돼 있다. 둘 사이는 simulation_ipc.py의 IPC(프로세스 간 통신)로 IPCCommand/IPCResponse를 주고받는다. 덕분에 ⓐ 무거운 시뮬레이션이 웹 응답을 막지 않고, ⓑ 돌아가는 도중에 일시정지·변수 주입·재개가 가능하다. "신의 시점에서 변수를 던진다"는 컨셉이 바로 이 IPC 구조에서 나온다.
매 시뮬레이션 라운드가 끝날 때마다 zep_graph_memory_updater.py가 그날 벌어진 행동(AgentActivity)을 Zep의 시간 지식그래프에 반영한다. 다음 라운드에 에이전트는 갱신된 기억을 참고해 행동하므로, "기억 → 행동 → 새 기억"의 되먹임 고리가 생긴다. 단순히 같은 행동을 반복하지 않고 사회가 시간에 따라 변하는 이유다.
흥미로운 점은 설정 자체도 LLM이 생성한다는 것. oasis_profile_generator.py(50KB)는 그래프 속 인물마다 성격·말투·관심사를 가진 페르소나를 자동 생성하고, simulation_config_generator.py(40KB)는 시간·이벤트·플랫폼 파라미터를 자동으로 짠다. 사람이 수천 명의 캐릭터 시트를 손으로 쓸 수 없으니, 생성 에이전트에게 "세계의 주민과 규칙 만들기"를 위임한 것이다.
실제 저장소 트리에서 "어디에 뭐가 있는지" 핵심만 (GitHub Contents API 기준).
핵심 읽는 순서를 추천하면: package.json(어떤 명령이 있나) → backend/run.py·app/__init__.py(서버가 어떻게 뜨나) → app/api/simulation.py(가장 큰 API) → app/services/simulation_runner.py(시뮬레이션이 실제로 어떻게 도나) → app/services/simulation_ipc.py(프로세스를 어떻게 제어하나) → frontend/src/components/Step*.vue(화면이 단계별로 무엇을 호출하나) 순이다. 백엔드 services/가 5단계를, 프론트 Step*.vue가 같은 5단계를 그대로 비추는 대칭 구조가 한눈에 보인다.
이 레포에서 "무엇을 배울 수 있는가" — 기술별 배울 것 + 실습 아이디어.
트위터·레딧의 행동(글쓰기·좋아요·팔로우·리포스트)을 에이전트가 흉내 내고, 정보·여론이 네트워크를 타고 번지는 모습을 관찰하는 법. 대규모 멀티 에이전트의 라운드 기반 실행 구조를 한 저장소에서 본다.
실습: scripts/run_twitter_simulation.py를 작은 에이전트 수(예: 20명)·적은 라운드로 돌려, 한 게시물이 몇 라운드 만에 퍼지는지 로그로 추적해 보자.
대화·사건을 시간 축의 그래프로 저장하고, 행동 전에 관련 기억을 꺼내 쓰는 패턴. zep_tools.py(66KB)·zep_graph_memory_updater.py에 "기억을 쓰고 읽는" 실전 코드가 통째로 들어 있다.
실습: Zep 무료 계정을 만들어 에이전트 한 명에게 사건 3개를 시간 순으로 주입하고, "가장 최근에 무슨 일이 있었지?"를 질의해 시간 기반 검색이 어떻게 동작하는지 확인.
ontology_generator.py가 온톨로지(개념 틀)를 잡고 graph_builder.py가 그래프를 채우는 흐름. 줄글 → 엔티티·관계 추출 → 그래프 → 검색이라는 GraphRAG의 정석 파이프라인을 작은 규모로 체험할 수 있다.
실습: 짧은 뉴스 기사 한 편을 씨앗으로 넣어 생성된 지식그래프를 GraphPanel.vue의 D3 화면에서 확인하고, 어떤 인물이 노드로, 어떤 관계가 엣지로 뽑혔는지 비교.
웹 요청을 막지 않으면서 오래 걸리는 작업을 돌리고, 도중에 일시정지·변수 주입·재개까지 하는 구조. simulation_ipc.py의 CommandType·CommandStatus 설계가 좋은 교본이다.
실습: simulation_ipc.py를 읽고 명령(Command) 종류를 표로 정리한 뒤, "일시정지 → 이벤트 주입 → 재개"가 코드 상 어떤 순서로 오가는지 시퀀스로 그려 보기.
5단계를 Step1~Step5 컴포넌트로 나눠 사용자를 안내하고, GraphPanel.vue에서 D3로 지식그래프를 노드-엣지로 그리는 법. Vue 3 Composition API + vue-router + vue-i18n의 실전 조합을 본다.
실습: npm run frontend로 프론트만 띄워 5단계 화면을 클릭해 보고, 각 Step 컴포넌트가 src/api/의 어떤 함수를 호출하는지 매핑.
OpenAI SDK 형식으로 어떤 LLM이든 갈아 끼우고, 무거운 단계는 빠른/싼 모델(LLM_BOOST)로 분리하는 비용 전략. 수천 에이전트 × 여러 라운드의 호출 비용을 어떻게 다루는지 실감할 수 있다.
실습: .env의 메인 모델을 저가 모델로 바꾸고 40회차 미만으로 짧게 돌려, 회차 수와 LLM 호출량·시간의 관계를 표로 정리.
"내 환경에서 돌아갈까?" — 무거운 건 PC가 아니라 LLM 호출량과 비용이다.
| 항목 | 요구사항 | 비고 |
|---|---|---|
| Node.js | 18+ (npm 포함) | 프론트엔드 실행 환경. |
| Python | 3.11 이상, 3.12 이하 | 백엔드 실행 환경. 버전 범위가 좁으니 주의. |
| uv | 최신 버전 | 파이썬 의존성 설치(uv sync). pip보다 빠르다. |
| LLM API 키 | 필수 | OpenAI 호환이면 무엇이든. 기본 추천 qwen-plus(알리 百炼). |
| Zep Cloud 키 | 필수 | 장기기억용. 매월 무료 한도로 간단 사용 가능. |
| Docker (선택) | Docker 엔진 | docker compose up -d로 한 방 배포. 로컬·NAS·서버. |
로컬에서 무거운 모델을 돌리는 게 아니라 클라우드 LLM API를 부르는 구조라, PC 사양은 크게 중요하지 않다. 대신 수천 에이전트 × 여러 시뮬레이션 라운드 = LLM 호출 폭발이다. README가 직접 "소비가 크니 우선 40회차 미만으로 시도하라"고 못 박을 만큼, 회차를 늘릴수록 비용·시간이 빠르게 커진다. 처음엔 적은 에이전트·짧은 회차로 감을 잡는 게 정석.
Zep 무료 한도 + 저가 LLM + 적은 회차로 먼저 파이프라인 전체(그래프→시뮬→리포트)를 한 바퀴 돌려 보고, 결과가 마음에 들면 그때 에이전트 수·회차·모델 등급을 올리면 된다. 무대(OASIS)와 기억(Zep)이 모듈로 분리돼 있어 규모를 점진적으로 키우기 좋다.
읽기만 하면 안 남는다 — 손으로 해보는 난이도별 과제 5선.
설치 없이 공식 온라인 데모(666ghj.github.io/mirofish-demo)에 접속해 미리 준비된 '핫이슈 여론 추론' 시나리오를 끝까지 돌려 본다. 5단계가 화면에서 어떻게 이어지는지, 결과 리포트가 어떤 형태인지부터 눈에 익힌다.
git clone 후 cp .env.example .env로 LLM 키·Zep 키를 채우고 npm run setup:all → npm run dev. 프론트(3000)·백(5001)이 뜨면 작은 씨앗 + 적은 회차(40회 미만)로 한 바퀴 돌려 본다.
관심 있는 뉴스 기사나 짧은 이야기 한 편을 PDF/텍스트로 올려 ① 지식그래프가 어떻게 그려지는지(D3 화면), ② 어떤 페르소나들이 생성되는지 확인. 같은 씨앗을 다른 예측 질문으로 두 번 돌려 결과를 비교.
같은 사건을 ⓐ 변수 없이, ⓑ 도중에 "이런 발표가 났다" 같은 변수를 주입해 각각 돌린 뒤 결과 분기를 비교한다. simulation_ipc.py가 일시정지·주입·재개를 어떻게 처리하는지 로그로 추적.
scripts/run_parallel_simulation.py(63KB)를 읽고 트위터·레딧 시뮬레이션이 어떻게 병렬로 묶이는지, 매 라운드 끝에 zep_graph_memory_updater가 어떻게 기억을 갱신하는지 흐름도를 그린다. 한 라운드의 에이전트 행동 → 기억 갱신 → 다음 라운드 되먹임 고리를 코드로 확인.
이 레포를 발판으로 "다중 에이전트 사회 시뮬레이션"을 익히는 6주 코스.
| 주차 | 주제 | 학습 내용 |
|---|---|---|
| 1주차 | LLM 에이전트 기초 · CAMEL | 에이전트·역할·도구·메시지 개념. camel-ai로 두 에이전트가 대화하게 만들어 보기. |
| 2주차 | OASIS 사회 시뮬레이션 | 트위터/레딧 환경, 행동 종류, 라운드 실행. 작은 규모로 정보 전파 관찰. |
| 3주차 | 에이전트 메모리 · Zep | 시간 지식그래프, 기억 쓰기/읽기, "기억→행동→새 기억" 루프 설계. |
| 4주차 | GraphRAG · 지식그래프 | 온톨로지 생성, 엔티티·관계 추출, 그래프 기반 검색증강(GraphRAG). |
| 5주차 | Flask API · IPC 아키텍처 | 블루프린트 분리, 장기 작업을 별도 프로세스로, IPC 명령/응답 설계. |
| 6주차 | Vue 3 · D3 · 마법사 UI | Composition API, vue-router·vue-i18n, D3 노드-엣지 그래프, 단계형 UX. |
한 번에 다 보려 하지 말고 "씨앗 하나가 리포트가 되는 경로"만 끝까지 따라가 보라. api/graph.py(그래프) → services/oasis_profile_generator(페르소나) → services/simulation_runner(시뮬) → services/zep_graph_memory_updater(기억) → services/report_agent(리포트). 이 한 줄기를 이해하면, 듀얼 플랫폼·신의 시점 개입·대화 모드는 같은 엔진을 다르게 부르는 변주임이 보인다.
이 프로젝트를 읽다 만나는 용어들 — 짧게 정리.
| 용어 | 뜻 |
|---|---|
| 군체지능(Swarm Intelligence) | 단순한 개체 여럿의 상호작용에서 똑똑한 집단 행동이 '창발'하는 현상. MiroFish의 이름이자 핵심 철학. |
| 다중 에이전트(Multi-Agent) | 여러 AI에게 각각 역할·성격을 주고 서로 대화·경쟁·협력시키는 방식. |
| 창발(Emergence) | 개별 규칙엔 없던 패턴이 전체 상호작용에서 저절로 떠오르는 것. 군체지능의 핵심. |
| OASIS | CAMEL-AI의 오픈소스 사회 시뮬레이터. 트위터·레딧을 본떠 최대 100만 에이전트를 굴린다. MiroFish의 무대. |
| CAMEL-AI | 멀티 에이전트 프레임워크. OASIS의 기반이며 에이전트 오케스트레이션을 담당. |
| Zep / 시간 지식그래프 | 에이전트 장기기억 서비스. "누가-언제-무엇" 관계를 시간 축으로 저장·검색하는 그래프. |
| GraphRAG | 텍스트에서 뽑은 지식그래프를 검색에 활용하는 검색증강 방식(RAG의 그래프 버전). |
| 온톨로지(Ontology) | "개념과 관계의 틀". 인물·사건·관계를 어떤 종류로 나눌지 정의하는 스키마. |
| 페르소나(Persona) | 각 에이전트에게 부여되는 성격·말투·관심사. oasis_profile_generator가 자동 생성. |
| IPC | 프로세스 간 통신. 웹 서버와 시뮬레이션 프로세스가 명령·응답을 주고받는 통로. |
| ReportAgent | 시뮬레이션이 끝난 세계와 도구로 상호작용해 예측 리포트를 쓰는 전용 에이전트. |
| 신의 시점(God View) | 시뮬레이션 도중 외부에서 변수를 주입해 미래 분기를 실험하는 개입 방식. |
| Flask | 파이썬 경량 웹 프레임워크. MiroFish 백엔드 API의 토대. |
| Vue 3 / Vite | 프론트엔드 UI 프레임워크 / 초고속 번들러. 5단계 마법사 화면을 구성. |
| D3.js | 데이터 시각화 라이브러리. 인물·관계 지식그래프를 노드-엣지로 그린다. |
| uv | Rust로 만든 초고속 파이썬 패키지 매니저. uv sync로 의존성 설치. |
| qwen-plus | 알리바바 통의천문(Qwen) 모델. README가 기본 추천한 OpenAI 호환 LLM. |
| AGPL-3.0 | 네트워크로 서비스해도 소스 공개 의무가 따르는 강한 카피레프트 라이선스. |
| 盛大(Shanda) | MiroFish를 전략 지원·인큐베이팅하는 중국 대형 IT 기업. |
더 깊이 파고들 때의 출발점.
| 자료 | 링크 |
|---|---|
| GitHub 저장소 | github.com/666ghj/MiroFish |
| 온라인 데모 | 666ghj.github.io/mirofish-demo |
| DeepWiki 문서 | deepwiki.com/666ghj/MiroFish |
| 시뮬레이션 엔진 — OASIS | github.com/camel-ai/oasis |
| 멀티 에이전트 — CAMEL-AI | github.com/camel-ai/camel |
| 에이전트 메모리 — Zep | app.getzep.com (시간 지식그래프) |
| 추천 LLM — Qwen(百炼) | bailian.console.aliyun.com |
| TrendShift 순위 | trendshift.io/repositories/16144 |
이 문서와 MiroFish가 만들어 내는 모든 "미래 예측"은 LLM이 생성한 가상 사회의 시뮬레이션 결과일 뿐, 실제 사건·인물의 미래 행동을 보장하지 않는다. 정책·금융·여론 같은 민감한 영역의 결과를 의사결정의 유일한 근거로 삼아선 안 된다. 이 레포의 진짜 가치는 결과의 적중이 아니라, 다중 에이전트 시뮬레이션·메모리·GraphRAG·IPC 아키텍처를 한 번에 공부할 수 있다는 데 있다.