AmaGris 사용 매뉴얼
AmaGris 는 한 종목을 여러 AI 에이전트가 역할을 나눠 분석하는 도구입니다. 재무·기술·뉴스·심리 분석가가 각자 시장 데이터를 조회하고, 강세론·약세론 리서처가 논거를 세우고, 트레이더가 판단을 내리면 리스크 매니저가 검증합니다. 결과는 근거가 붙은 마크다운 리포트로 나옵니다.
⚠️ 투자 고지 — AmaGris 가 만들어 내는 분석과 의견은 의사결정 지원을 위한 참고 자료이며 투자 자문이나 매매 권유가 아닙니다. LLM 은 사실을 틀리게 말할 수 있고, 데이터 조회가 실패하면 리포트에 오류로 표기됩니다. 모든 투자 판단과 그 결과는 이용자 본인의 책임입니다.
1. 화면 구성
앱을 켜면 상단 메뉴바, 좌측 도킹 패널, 가운데 작업 영역이 보입니다.
| 영역 | 내용 |
|---|---|
| Session List | 지금까지 만든 AI 채팅 세션 목록. 클릭하면 그 세션이 열립니다. |
| Watch List | 관심종목. 그룹별로 종목을 담아 두고 더블클릭으로 바로 분석합니다. |
| 작업 영역(MDI) | AI Chat 세션·코드·텍스트·이미지 탭이 열리는 곳. 분석 리포트도 여기 표시됩니다. |
패널은 드래그해서 다른 위치에 도킹하거나 떼어 낼 수 있고, 배치는 다음 실행 때 복원됩니다.
메뉴바
| 메뉴 | 항목 | 설명 |
|---|---|---|
| File | New Session | 새 AI Chat 세션을 엽니다. |
| Import Stock… | 종목 목록 파일(.ini)을 불러와 일괄 분석합니다. (6장) | |
| Open / Save / Close File | 파일 열기·저장·닫기. | |
| Exit | 종료. | |
| View | Session List / Watch List | 도킹 패널을 다시 엽니다(닫았을 때). |
| Build | Simulate Project | SpiderGen 프로젝트 시뮬레이터 실행(개발용). |
| Option | Settings… | 일반·Lint·인덱싱·로깅 설정. (9장) |
| AI Model… | 사용할 LLM 등록·편집. (2장) | |
| Agent Roles… | 역할(페르소나·도구·모델 사용 방식) 정의. (3장) | |
| Agent Team… | 팀(스테이지·역할·역할별 모델) 구성. (3장) | |
| Help | About | 버전과 배포 코드 표시. |
2. 시작하기 — 모델 등록
분석은 LLM 이 수행하므로 모델을 먼저 등록해야 합니다.
LLM 추가 (Option ▸ AI Model…)
추가 를 누르고 값을 채웁니다.
| 항목 | 설명 |
|---|---|
| 이름 | 목록에 표시될 이름. 역할에 모델을 배정할 때 이 이름으로 고릅니다. |
| 모델 | 모델 ID (예: qwen3-32b-awq, claude-sonnet-4-5). |
| 호스트 / 포트 | LLM 서버 주소. 로컬 vLLM·Ollama 면 그 서버의 IP·포트. |
| Chat 경로 | 보통 /v1/chat/completions(OpenAI 호환) 또는 /api/chat(Ollama). 이 값으로 서버 종류를 자동 판별합니다. |
| max_model_len | 모델의 컨텍스트 한도. 비워 두면 서버가 조회해 자동으로 채웁니다. 자동 조회가 실패하는 서버에서만 직접 입력하세요. |
| API Key | 필요한 서비스만. |
| Vision | 이미지 입력을 지원하는 모델이면 체크. |
| HTTPS / 추가 헤더 | 게이트웨이를 거치는 경우에 사용. |
여기서 추가한 항목은 ai-client-config.json 에 저장되고, 서버가 기본 제공 목록(ai-config.json)과 합쳐서 보여 줍니다. 설치 폴더 밖에 저장되므로 재설치·업데이트를 해도 유지됩니다.
계정 로그인 (Claude · ChatGPT)
API 키 대신 계정으로 연결할 수도 있습니다. 로그인하면 토큰이 암호화되어 저장되고(ai-oauth-tokens.json), 이후에는 자동으로 사용됩니다.
3. 에이전트 팀과 역할
AmaGris 의 분석은 팀 구성표대로 실행됩니다. 구성은 두 창으로 나뉩니다.
팀(Team) → 스테이지(Stage, 실행 순서) → 멤버(Member = 역할 + 모델)
└ 역할(Role) = 페르소나 + 도구 + 추론 여부
- Agent Team — 스테이지 순서와 각 스테이지에 누가(어떤 역할이) 어떤 모델로 들어가는지.
- Agent Roles — 그 역할이 실제로 무엇인지(시스템 프롬프트·사용할 도구·추론 사용 여부).
기본 팀 (4단계)
| 스테이지 | 방식 | 참여 역할 | 하는 일 |
|---|---|---|---|
| 1. 분석 | 동시 | 재무 분석가 · 기술 분석가 · 뉴스 분석가 · 감성 분석가 | 각자 도구로 데이터를 조회해 독립적으로 분석 |
| 2. 토론 | 동시 | 강세론 리서처 · 약세론 리서처 | 1단계 리포트만 보고 각자 매수/매도 논거 구성 |
| 3. 결정 | 순차 | 트레이더 | 앞의 모든 내용을 종합해 판단 |
| 4. 리스크 | 순차 | 리스크 매니저 | 트레이더 판단을 검증하고 신뢰도를 조정 |
동시(parallel) vs 순차(sequential) — 동시 스테이지의 멤버는 이전 스테이지들의 산출물만 받고 서로의 결과는 보지 않습니다. 순차 스테이지의 멤버는 이전 스테이지 전부 + 같은 스테이지의 앞 멤버까지 누적해서 받습니다.
토론 스테이지가 동시인 이유는 강세·약세가 서로의 논거를 보지 않고 각자 독립적으로 구성하게 하기 위해서입니다. 서로를 보면 한쪽이 다른 쪽에 끌려갑니다.
팀 편집 (Option ▸ Agent Team…)
- 팀을 여러 개 만들어 두고 그중 하나를 기본 팀으로 지정할 수 있습니다.
- 스테이지를 추가·삭제하고 순서와 실행 방식(동시/순차)을 바꿉니다.
- 각 멤버에 역할과 모델을 지정합니다. 모델은 모든 멤버에 지정해야 저장됩니다 — 미지정 멤버가 있으면 분석 실행 중 그 자리에서 모델 선택 안내가 출력되고 진행되지 않습니다.
초기화는 기본 템플릿으로 되돌립니다.
💡 역할마다 다른 모델을 쓸 수 있습니다. 단순 수집·요약을 하는 분석가에는 빠르고 저렴한 모델을, 판단을 내리는 트레이더·리스크 매니저에는 추론이 강한 모델을 배정하는 식이 실용적입니다.
역할 편집 (Option ▸ Agent Roles…)
| 항목 | 설명 |
|---|---|
| Key | 팀 구성이 참조하는 식별자(예: technical_analyst). |
| 표시명 | 리포트와 화면에 나오는 이름(예: 기술 분석가). |
| 추론(thinking) | 체크하면 추론 모드로 실행합니다. 판단·검증 역할에 유리하고, 수집·요약 역할에는 느리고 비쌉니다. |
| 도구 | 이 역할이 쓸 수 있는 시장 데이터 도구. 체크한 것만 호출할 수 있습니다. |
| 시스템 프롬프트 | 페르소나. "무엇을 어떤 관점으로 분석하고 마지막 줄에 무슨 결론을 달아라" 를 여기서 정합니다. |
역할 정의는 agent-roles-config.json 에 저장됩니다. 파일이 정상이면 그 파일만이 진실입니다 — 삭제한 역할은 내장 기본값으로 되살아나지 않습니다. 실수로 다 지웠다면 초기화 를 누르세요.
4. 종목 분석 (/analyze)
실행 방법 세 가지
- 슬래시 명령 — 채팅에
/analyze 삼성전자또는/trade 005930 - 자연어 —
삼성전자 분석해줘처럼 "〈종목〉 분석" 형태로 끝나면 자동으로 분석이 시작됩니다. (뒤에 다른 말이 붙으면 — 예:삼성전자 분석 자료 찾아줘— 일반 대화로 처리됩니다) - 관심종목 더블클릭 — 5장 참조
종목명·6자리 종목코드 둘 다 됩니다.
진행 중 표시
분석은 수 분이 걸립니다. 스테이지가 끝날 때마다 결과가 이어서 나옵니다.
🔍 분석가 4인이 데이터 분석 중…
💬 강세론·약세론 토론 중…
📊 트레이더 최종 판단 중…
🛡️ 리스크 관리자 검증 중…
리포트 구성
# 트레이딩 분석 리포트 — 삼성전자
시장: KR · 팀: 기본 분석팀
## 1. 분석
### 재무 분석가
…
### 기술 분석가
…
## 2. 토론
### 강세론 리서처 / 약세론 리서처
## 3. 결정
### 트레이더
## 4. 리스크
### 리스크 매니저
## 최종 결론
(트레이더 판단 + 리스크 매니저의 조정 신뢰도)
최종 결론의 신뢰도는 리스크 매니저가 조정한 값이 우선합니다 — 리스크 매니저가 마지막 관문이라 트레이더의 값을 덮어씁니다.
조회에 실패한 데이터는 지어내지 않고 리포트에 오류로 표기됩니다. 결론을 읽기 전에 각 분석가 섹션에 오류가 있는지 먼저 확인하세요.
5. 관심종목 (Watch List)
좌측 Watch List 패널에서 관리합니다.
그룹
상단 셀렉트박스로 그룹을 고르고, + 로 그룹 추가, - 로 삭제합니다. 그리드에는 선택한 그룹의 종목만 표시됩니다.
종목 추가
종목 추가… 를 누르면 검색창이 열립니다. 검색어를 넣고 Enter → 결과에서 종목을 고르고 → 담을 그룹을 선택 → 추가.
결과 행을 더블클릭하면 바로 추가되고 창은 닫히지 않아 연속으로 담을 수 있습니다.
종목 검색은 키 없이도 동작합니다 — DART 키가 있으면 DART 기업명 색인을, 없으면 네이버 자동완성을 씁니다. 다만 통칭과 공식명이 다른 일부 종목(예: 엔씨소프트 → 공식명
NC)은 공식명으로 검색해야 나올 수 있습니다.
분석 실행
관심종목 그리드의 행을 더블클릭하면 활성 AI Chat 세션에서 그 종목의 /analyze 가 실행됩니다.
관심종목은 watchlist-config.json 에 즉시 저장되며 설치 폴더 밖에 있어 재설치·업데이트에도 유지됩니다.
6. 일괄 분석 (Import Stock)
여러 종목을 한 번에 분석하려면 File ▸ Import Stock… 으로 목록 파일(.ini)을 불러옵니다.
파일 형식
한 줄에 한 종목입니다. INI 관례도 허용합니다.
; 주석은 ; 또는 # 로 시작
[관심목록] ; 섹션 헤더는 무시됩니다
삼성전자
005930
종목3=SK하이닉스 ; key=value 형태면 = 뒤를 종목명으로 씁니다
- 빈 줄 무시
#또는;로 시작하는 줄은 주석[섹션]헤더는 무시key=value형태면=뒤 값을 종목명으로 사용
불러오면 활성 채팅 세션이 없을 때 하나를 새로 열고, 모델 연결이 준비될 때까지 최대 12초 기다린 뒤 순서대로 분석을 시작합니다. 준비가 안 되면 "AI 세션이 준비되지 않았습니다" 안내가 나오니 모델 연결을 확인하고 다시 시도하세요.
종목 하나에 수 분이 걸립니다. 목록이 길면 그만큼 오래 걸리고 LLM 호출 비용도 그만큼 듭니다.
7. 시장 데이터와 API 키
에이전트는 아래 7가지 도구로 데이터를 직접 조회합니다. 역할별로 어떤 도구를 쓸지는 Agent Roles 에서 정합니다.
| 도구 | 내용 | 출처 | 키 필요 |
|---|---|---|---|
get_price |
현재가·등락률 | 한국투자증권(KIS) | ✅ |
get_ohlcv |
기간별 시·고·저·종가와 거래량(캔들) | KIS | ✅ |
get_fundamentals |
PER·PBR·ROE·부채비율 등 재무지표 | KIS | ✅ |
get_technical_indicators |
RSI·MACD·이동평균 등 보조지표 | 캔들에서 계산 | ✅(캔들) |
get_disclosures |
전자공시 | DART | ✅ |
get_news |
최근 종목 뉴스 | 네이버 증권 | ❌ |
get_sentiment |
뉴스 기반 감성 점수(-1 ~ +1) | 뉴스 + LLM 채점 | ❌ |
위 표의 "키 필요"는 시세 소스를 KIS 로 골랐을 때 기준입니다. 네이버증권을 고르면 시세·재무·기술지표도 키 없이 동작하고, 키가 필요한 것은 공시(DART)뿐입니다.
감성 점수는 그 도구를 호출한 역할의 모델이 그대로 채점합니다 — 별도 모델을 지정하지 않습니다.
시세 소스 선택과 키 입력 (Option ▸ Settings… ▸ 시세서버)
Settings 의 「시세서버」 탭에서 시세를 어디서 가져올지 고르고 필요한 키를 입력합니다. 소스를 고르면 아래 설명 상자에 그 소스의 특징이 바로 표시됩니다.
| 시세 소스 | 키 | 특징 |
|---|---|---|
| 한국투자증권 (KIS) | 본인 명의 KIS 계좌 필요 | 당일 현재가·일봉·재무까지 모두 조회. 호출 한도는 앱키 단위(실전 초당 20건) |
| 네이버증권 | 불필요 | 키도 계좌도 없이 바로 사용. 현재가·일봉·PER/PBR/ROE·부채비율까지 조회되고 거의 실시간. 다만 공식 공개 API 가 아니라 예고 없이 바뀔 수 있음 |
| 공공데이터포털 | 무료·계좌 불필요(이메일 가입) | 하루 1회 갱신, 영업일 기준 하루 뒤 반영이라 당일 현재가는 조회 불가. 종가·일봉·거래량·시가총액·52주 고저까지 제공되고, PER/PBR·ROE·부채비율은 원본에 없어 '확인 불가'로 표기됩니다 |
키가 하나도 없다면 네이버증권을 고르세요 — 설치 직후 바로 분석이 돌아갑니다. 안정적으로 오래 쓰실 거면 KIS 를 권합니다(공식 API 라 형식이 바뀌지 않습니다).
공공데이터포털을 고르면 시세는 전 영업일 종가입니다. 리포트에는 기준일(
asOf)이 함께 표시되므로 당일 시세로 오해할 일은 없지만, 장중 판단에는 맞지 않습니다.인증키는 data.go.kr 이 주는 Encoding 키·Decoding 키 어느 쪽을 붙여넣어도 됩니다(앱이 알아서 맞춥니다).
ℹ️ 소스마다 지표 값이 다를 수 있습니다. 예컨대 PER 은 KIS 가 최근 실적 기준, 네이버가 연간 확정 기준이라 같은 종목에서도 값이 갈립니다. 어느 쪽이 틀린 게 아니라 산출 기준이 다른 것이며, 리포트에는 어느 소스에서 온 값인지 함께 표시됩니다.
DART 키는 시세 소스와 무관하게 공시 조회와 종목 검색에 쓰이므로 같은 탭 아래쪽에서 항상 입력할 수 있습니다.
키는 어떻게 보관되나
입력한 키는 암호화되어(AES-256-GCM 봉인) ai-settings.json 에 저장됩니다. 계정 로그인 토큰과 같은 방식이며, 파일을 열어 봐도 평문 키는 보이지 않습니다. 설치 폴더 밖(userData)이라 재설치·업데이트에도 유지됩니다.
환경변수로 지정하기 (선택)
운영 자동화 등으로 화면 입력 대신 환경변수를 쓸 수 있습니다. 환경변수가 설정 화면 값보다 우선합니다.
| 환경변수 | 용도 |
|---|---|
KIS_APP_KEY / KIS_APP_SECRET |
시세·재무 조회 |
KIS_PAPER |
true 면 모의투자 서버 사용 |
DART_API_KEY |
전자공시 조회 + 종목 검색 |
DATAGO_SERVICE_KEY |
공공데이터포털 인증키 |
AMAGRIS_QUOTE_PROVIDER |
시세 소스 강제 (kis · datago · naver) |
키 발급처 — DART: opendart.fss.or.kr (무료, 이메일 가입 후 즉시), KIS: 한국투자증권 KIS Developers (본인 명의 위탁계좌 필요, 비대면 개설 가능), 공공데이터포털: data.go.kr (무료).
키가 없으면 해당 도구는 조회에 실패하고 리포트에 오류로 표기됩니다.
키가 하나도 없어도 쓸 수 있습니다 — 시세 소스를 네이버증권으로 두면 시세·재무·기술지표·뉴스·감성·종목검색까지 전부 동작하고, 빠지는 것은 공시(DART)뿐입니다.
8. 일반 대화와 슬래시 명령
분석 외에 일반 AI 채팅으로도 쓸 수 있습니다. 새 세션을 열고 그냥 물어보면 됩니다. 작업 폴더를 지정하면 그 폴더의 파일을 읽고 검색하고 수정할 수도 있습니다.
슬래시 명령
| 명령 | 동작 |
|---|---|
/analyze <종목> · /trade <종목> |
멀티에이전트 종목 분석 |
/find <파일명 일부> |
파일 이름으로 찾기 — LLM 을 거치지 않고 즉시 실행 |
/grep <검색어> [-n 개수] |
프로젝트 내용 검색(기본 20건, 최대 500건) — 즉시 실행 |
/skill <이름> [요청] |
스킬 지침을 이번 요청에 주입하고 평소대로 대화 진행 |
/<스킬명> [요청] |
등록된 스킬 이름은 /skill 없이 바로 호출됩니다 |
/help |
사용 가능한 명령과 스킬 목록 |
/find·/grep·/help 는 LLM 을 부르지 않으므로 즉시 응답하고 토큰을 쓰지 않습니다.
명령 실행 승인
AI 가 셸 명령을 실행하려 하면 승인 요청이 뜹니다. 무엇을 실행하려는지 확인하고 허용 여부를 고르세요. 위험한 명령은 별도로 차단되며, 실행에는 시간 제한이 걸립니다.
9. 설정 (Option ▸ Settings…)
| 탭 | 내용 |
|---|---|
| General | 모델 전환 시 대화 초기화 여부 등 일반 동작. |
| Lint | 코드 편집 시 문법 검사 옵션. |
| Indexing | 프로젝트 인덱싱(코드 검색·RAG) 설정. 임베딩 provider 를 여기서 고릅니다. |
| Logging | 로그 수집 범위. 문제 재현·원인 파악에 필요할 때만 올리세요. |
| 시세서버 | 시세를 가져올 소스 선택 + KIS·공공데이터포털·DART 키 입력. (7장) |
10. 저장 위치
설정과 데이터는 설치 폴더 밖(%APPDATA%\AmaGris)에 저장되어 재설치·업데이트에도 유지됩니다.
| 파일 | 내용 |
|---|---|
ai-client-config.json |
직접 추가한 LLM 목록 |
ai-oauth-tokens.json |
계정 로그인 토큰(암호화 저장) |
ai-settings.json |
Settings 창의 설정값 |
agent-team-config.json |
팀 구성 |
agent-roles-config.json |
역할 정의 |
watchlist-config.json |
관심종목(그룹 포함) |
trusted-folders.json |
신뢰한 작업 폴더 목록 |
백업하려면 이 폴더를 통째로 복사해 두면 됩니다.
ai-oauth-tokens.json은 암호화되어 있고 복호화 키는 앱 설치본 쪽에 있어, 이 파일만 유출되어도 단독으로는 평문 복원이 되지 않습니다.
11. 자동 업데이트
앱을 켜면 새 버전을 자동으로 확인합니다.
- 새 설치본이 있으면 — "새 버전 x.y.z 가 있습니다. 설치하시겠습니까?" → 동의하면 내려받아 설치하고 재시작합니다.
- 화면·기능만 바뀐 업데이트면 — "업데이트 항목이 있습니다" → 동의하면 내용을 받아 두었다가 다음 실행 때 반영합니다.
나중에 를 고르면 그대로 실행되고, 다음에 켤 때 다시 물어봅니다. 네트워크가 안 되거나 서버가 응답하지 않으면 조용히 넘어가고 앱은 정상적으로 열립니다.
현재 버전은 Help ▸ About 에서 확인할 수 있습니다.
12. 알아 두면 좋은 것
분석이 오래 걸립니다. 역할 8개가 각자 LLM 을 호출하고 그중 일부는 도구까지 부르기 때문입니다. 종목 하나에 수 분이 정상입니다. 빠르게 돌리고 싶다면 팀에서 스테이지나 멤버를 줄이세요.
결론만 읽지 마세요. 분석가 섹션에 데이터 조회 오류가 있으면 그 위에 쌓인 토론·결정·리스크 판단 전체가 부실해집니다.
LLM 은 틀립니다. 도구로 조회한 수치는 실제 데이터지만, 그것을 해석한 문장은 모델이 만들어 낸 것입니다. 숫자 근거가 인용되지 않은 주장은 특히 의심하세요.
모델을 바꿔 보세요. 같은 종목이라도 트레이더·리스크 매니저에 어떤 모델을 배정하느냐에 따라 결론이 달라집니다. 판단 역할에는 추론이 강한 모델을 쓰는 편이 안정적입니다.
요약: 첫 사용 흐름
- 설치하고 실행합니다.
- Option ▸ AI Model… 에서 쓸 모델을 등록합니다(또는 계정 로그인).
- Option ▸ Agent Team… 에서 각 멤버에 모델을 배정합니다. (모든 멤버에 지정해야 합니다)
- Option ▸ Settings… ▸ 시세서버 에서 시세 소스를 고릅니다. 키가 없으면 네이버증권을 고르면 바로 됩니다. (KIS·DART 키가 있으면 여기서 입력)
- File ▸ New Session 으로 세션을 열고
/analyze 삼성전자를 입력합니다. - 자주 보는 종목은 Watch List 에 담아 두고 더블클릭으로 분석합니다.