@yeomyeonggeori/startup-agent 0.7.15 → 0.7.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.clawhubignore +10 -0
- package/CHANGELOG.md +140 -0
- package/KAKAO_SETUP.md +92 -0
- package/SKILL.md +245 -0
- package/bin/raon-os.js +14 -0
- package/package.json +4 -5
- package/references/gov-programs.md +128 -0
- package/references/tips-criteria.md +72 -0
- package/references/yc-rfs.md +1000 -0
- package/scripts/agentic_rag.py +852 -0
- package/scripts/crawlers/__init__.py +0 -0
- package/scripts/crawlers/financial_crawler.py +208 -0
- package/scripts/crawlers/semas_crawler.py +260 -0
- package/scripts/eval_pipeline.py +349 -0
- package/scripts/evaluate.py +1059 -0
- package/scripts/financial_map.py +252 -0
- package/scripts/gamification.py +332 -0
- package/scripts/idea.py +363 -0
- package/scripts/kakao_webhook.py +271 -0
- package/scripts/parse_unified_pdf.py +199 -0
- package/scripts/rag_pipeline.py +593 -0
- package/scripts/raon.sh +394 -0
- package/scripts/raon_llm.py +419 -0
- package/scripts/server.py +1055 -0
- package/scripts/structured_extractor.py +290 -0
- package/scripts/supabase_client.py +139 -0
- package/scripts/test_agentic_rag.py +429 -0
- package/scripts/test_eval_pipeline.py +109 -0
- package/scripts/test_evaluate.py +221 -0
- package/scripts/test_gamification.py +218 -0
- package/scripts/test_idea.py +196 -0
- package/scripts/test_kakao.py +373 -0
- package/scripts/test_morpheme.py +59 -0
- package/scripts/test_rerank.py +73 -0
- package/scripts/test_server.py +259 -0
- package/scripts/test_valuation.py +173 -0
- package/scripts/track_classifier.py +185 -0
- package/scripts/valuation.py +438 -0
- package/widget/EMBED.md +68 -0
- package/widget/raon-chat.html +991 -0
- package/widget/raon-chat.js +159 -0
- package/widget/raon-chat.min.js +1 -0
package/.clawhubignore
ADDED
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## v0.7.6 (2026-02-18)
|
|
4
|
+
### New Features — 소상공인 Track B + 금융맵 + 카카오톡 연동
|
|
5
|
+
|
|
6
|
+
- **`scripts/track_classifier.py`**: 트랙 자동 감지 모듈
|
|
7
|
+
- `TrackClassifier.classify()`: 키워드 매칭 우선 → LLM 분류 폴백
|
|
8
|
+
- Track A (기술창업/벤처), Track B (소상공인/로컬), Track AB (혼합)
|
|
9
|
+
- `TRACK_B_KEYWORDS` / `TRACK_A_KEYWORDS` / `TRACK_AB_KEYWORDS` 키워드 사전
|
|
10
|
+
- `get_track_prompt()`: 트랙별 평가 시스템 프롬프트 반환
|
|
11
|
+
- `TRACK_B_SYSTEM_PROMPT`: 소상공인 전용 (5항목, 쉬운 언어, 기술성 기준 제외)
|
|
12
|
+
|
|
13
|
+
- **`scripts/financial_map.py`**: 융자/보증/크라우드펀딩 정보 제공
|
|
14
|
+
- `FINANCIAL_PRODUCTS`: 6종 금융 상품 (KODIT, KIBO, 소진공, Wadiz, TIPS 등)
|
|
15
|
+
- `FinancialMap.match()`: 트랙 + 키워드 + need_loan 기반 상품 매칭
|
|
16
|
+
- `FinancialMap.format_recommendation()`: LLM 맞춤형 추천 텍스트 생성
|
|
17
|
+
- `FinancialMap.get_summary()`: 트랙별 금융 지원 요약
|
|
18
|
+
|
|
19
|
+
- **`scripts/crawlers/semas_crawler.py`**: 소진공 지원사업 크롤러
|
|
20
|
+
- robots.txt 확인 후 1.5초 딜레이 적용
|
|
21
|
+
- 공고 목록 → 상세 페이지 파싱 → eval_data/semas_programs.jsonl APPEND
|
|
22
|
+
|
|
23
|
+
- **`scripts/crawlers/financial_crawler.py`**: KODIT/KIBO URL 유효성 체크 크롤러
|
|
24
|
+
- FINANCIAL_PRODUCTS 전체 URL HEAD 요청으로 상태 확인
|
|
25
|
+
- 금리 변동 감지 + eval_data/financial_products_updated.json 저장
|
|
26
|
+
|
|
27
|
+
- **`scripts/kakao_webhook.py`**: 카카오 i 오픈빌더 웹훅 서버 (핵심!)
|
|
28
|
+
- `KakaoWebhook.process()`: utterance → 트랙 감지 → RAG/LLM → 카카오 응답
|
|
29
|
+
- `KakaoWebhook.format_response()`: 900자 분할, 최대 5개 outputs
|
|
30
|
+
- `KakaoWebhook.verify_signature()`: HMAC-SHA1 서명 검증
|
|
31
|
+
- `KakaoWebhook.get_quick_buttons()`: 트랙별 빠른 응답 버튼
|
|
32
|
+
- user_id 기반 세션 관리 (최대 20턴)
|
|
33
|
+
|
|
34
|
+
- **`scripts/server.py`**: `/kakao` POST 엔드포인트 추가
|
|
35
|
+
- `RaonHandler._handle_kakao()`: 카카오 웹훅 처리
|
|
36
|
+
- AgenticRAG 연동 (store 있을 때), LLM 폴백
|
|
37
|
+
- 에러 발생 시에도 카카오 200 응답 보장
|
|
38
|
+
|
|
39
|
+
- **`scripts/evaluate.py`**: Track B 분기 추가
|
|
40
|
+
- `evaluate()`: 트랙 자동 감지 → Track B/A 분기
|
|
41
|
+
- `evaluate_track_b()`: 소상공인 전용 5항목 평가
|
|
42
|
+
- `evaluate_track_a()`: 기존 TIPS 기준 평가 (하위 호환)
|
|
43
|
+
- `TRACK_B_EVAL_PROMPT`: 쉬운 언어, 기술성 기준 제외
|
|
44
|
+
|
|
45
|
+
- **`KAKAO_SETUP.md`**: 카카오 i 오픈빌더 연동 3단계 가이드
|
|
46
|
+
|
|
47
|
+
### Tests
|
|
48
|
+
- `test_kakao.py`: 39개 테스트 (37 passed, 2 LLM-required skipped)
|
|
49
|
+
- TrackClassifier: 10개 (키워드/LLM 분류, 치킨→B, AI SaaS→A, 푸드테크→AB)
|
|
50
|
+
- FinancialMap: 8개 (트랙별 필터링, 추천 포맷)
|
|
51
|
+
- KakaoWebhook.format_response: 6개 (1000자 분할, 버튼, outputs 제한)
|
|
52
|
+
- KakaoWebhook.verify_signature: 4개 (HMAC 검증)
|
|
53
|
+
- KakaoWebhook.process: 7개 (웹훅 처리, 세션, 버튼)
|
|
54
|
+
- evaluate.py: 3개 (Track B 프롬프트, 함수 존재 확인)
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## v0.7.5 (2026-02-18)
|
|
59
|
+
### New Features — Agentic RAG (Phase 1+2)
|
|
60
|
+
- **`agentic_rag.py`**: Agentic RAG 오케스트레이션 레이어
|
|
61
|
+
- `QueryRouter`: LLM 기반 질문 유형 분류 (factual/search/realtime/multistep), heuristic 폴백
|
|
62
|
+
- `HyDE`: Hypothetical Document Embeddings — 가상 문서로 실제 문서 검색 (미스매치 해결)
|
|
63
|
+
- `Multi-Query RAG Fusion`: 3가지 변형 쿼리 + Reciprocal Rank Fusion (RRF)
|
|
64
|
+
- `Speculative RAG`: 초안 답변 → 검증 쿼리 → 실제 문서 검색
|
|
65
|
+
- `Recursive RAG (ReFRAG)`: CRAG Critic 미달 시 쿼리 리파인 후 재검색 (최대 3회)
|
|
66
|
+
- `CRAG Critic`: LLM 기반 검색 결과 품질 평가 (relevant/sufficient/confident)
|
|
67
|
+
- `Tools`: search_gov_programs (structured filter), check_eligibility, fetch_realtime (urllib)
|
|
68
|
+
- `AgenticRAG.run()`: 전략별 검색 → CRAG 평가 → 재시도 → 최종 답변
|
|
69
|
+
- **`structured_extractor.py`**: 정부공고 JSON 스키마 추출기
|
|
70
|
+
- `GOV_PROGRAM_SCHEMA`: program_name, operator, eligibility, excluded, budget_won, deadline, ...
|
|
71
|
+
- `extract_program_schema()`: LLM 추출 + 규칙 기반 폴백
|
|
72
|
+
- `filter_programs()`: 하드 필터 (deadline, excluded) + 소프트 랭킹 (industry, keywords)
|
|
73
|
+
- **`server.py`**: `/v1/chat` 엔드포인트에 AgenticRAG 연동
|
|
74
|
+
- AgenticRAG import 실패 시 기존 Ollama 폴백 (try/except)
|
|
75
|
+
- 응답에 `strategy` 필드 추가 (factual/search/realtime/multistep)
|
|
76
|
+
|
|
77
|
+
### Tests
|
|
78
|
+
- `test_agentic_rag.py`: 20개 테스트 (20 passed)
|
|
79
|
+
- 전체: 143 passed (기존 3개 test_rerank.py 실패는 pre-existing)
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## v0.7.0 (2026-02-18)
|
|
84
|
+
### New Features
|
|
85
|
+
- **Data Collection Pipeline**: Multi-source crawler system
|
|
86
|
+
- JointTIPS crawler — 3,972 TIPS-selected startups (2015~2024)
|
|
87
|
+
- TheVC crawler — VC/accelerator profiles (Nuxt HTML parsing)
|
|
88
|
+
- NextUnicorn crawler — Support programs via open API
|
|
89
|
+
- DDG-based InnoForest data collection
|
|
90
|
+
- `scripts/data_to_content.py` — Auto-generates SNS content from collected data
|
|
91
|
+
- **RAG Expansion**: 532 chunks across 7 data sources (7.2MB vector store)
|
|
92
|
+
- New sources: thevc_investors, nextunicorn_programs, tips_companies_jointips
|
|
93
|
+
|
|
94
|
+
### Bug Fixes
|
|
95
|
+
- **Python 3.9 compatibility**: `from __future__ import annotations` in rag_pipeline.py
|
|
96
|
+
- **Gemini API endpoint**: Fixed 404 by using `gemini-2.5-flash-lite` model name
|
|
97
|
+
|
|
98
|
+
### Improvements
|
|
99
|
+
- **Cron timeouts**: All SNS upload crons bumped 300s→600s (prevents false timeouts)
|
|
100
|
+
- **Content pipeline**: `data-to-content-daily` cron at 08:00 KST
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## v0.6.2 (2026-02-18)
|
|
105
|
+
### New Features
|
|
106
|
+
- Full-page web app (`raon-chat.html`) — dark mode, glassmorphism, 6 modes
|
|
107
|
+
- YC RFS idea recommendation — 62 ideas, CLI + API
|
|
108
|
+
- API key authentication (BYOK free + Managed paid)
|
|
109
|
+
- `data_to_content.py` initial version
|
|
110
|
+
|
|
111
|
+
### Bug Fixes
|
|
112
|
+
- `history.jsonl` not written by `/v1/evaluate` API endpoint — fixed
|
|
113
|
+
- FakeHandler missing `client_address`/`headers` in tests — fixed
|
|
114
|
+
- Score mismatch: `fix_score_text()` clamps sub-items, recalculates totals
|
|
115
|
+
|
|
116
|
+
### Tests
|
|
117
|
+
- 126 tests passing
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## v0.6.1 (2026-02-17)
|
|
122
|
+
### New Features
|
|
123
|
+
- Gamification system (XP, levels, badges)
|
|
124
|
+
- DM auto-reply integration (Ollama + Gemini fallback)
|
|
125
|
+
- Ollama timeout 120s→300s
|
|
126
|
+
|
|
127
|
+
### Bug Fixes
|
|
128
|
+
- Cron state path fix (`~/.openclaw/cron/jobs.json`)
|
|
129
|
+
- XP sync: first sync grants XP for past successful runs
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## v0.6.0 (2026-02-16)
|
|
134
|
+
### New Features
|
|
135
|
+
- RAG pipeline v2: bge-m3 + BM25 hybrid search (Top-1 accuracy 0%→100%)
|
|
136
|
+
- Reranker module (LLM-based Top-10→Top-3)
|
|
137
|
+
- Eval ground truth: 50 entries, F1 + confusion matrix
|
|
138
|
+
- Multi-turn conversational evaluation
|
|
139
|
+
- Valuation module (Scorecard/Berkus/Revenue Multiple)
|
|
140
|
+
- Morpheme analysis (kiwipiepy + bigram fallback)
|
package/KAKAO_SETUP.md
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# 카카오 i 오픈빌더 연동 가이드
|
|
2
|
+
|
|
3
|
+
## 필요 환경변수
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
KAKAO_CALLBACK_SECRET=your-secret # 선택사항 (보안 강화용)
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## 설정 순서
|
|
10
|
+
|
|
11
|
+
1. **https://i.kakao.com** 에서 카카오 비즈니스 계정으로 봇 생성
|
|
12
|
+
2. 좌측 메뉴 "시나리오" → **"폴백 블록"** 선택
|
|
13
|
+
3. 블록 상세에서 "스킬" 탭 → **"스킬 서버 URL"** 에 입력:
|
|
14
|
+
```
|
|
15
|
+
http://your-server:8400/kakao
|
|
16
|
+
```
|
|
17
|
+
4. (선택) 채널 연결: 카카오채널 관리자센터 → 봇 연결
|
|
18
|
+
|
|
19
|
+
## 로컬 테스트 (ngrok 사용)
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# 1. Raon OS 서버 실행
|
|
23
|
+
python3 scripts/server.py --port 8400
|
|
24
|
+
|
|
25
|
+
# 2. ngrok으로 외부 노출
|
|
26
|
+
ngrok http 8400
|
|
27
|
+
|
|
28
|
+
# 3. ngrok이 출력한 URL/kakao 를 오픈빌더 스킬 서버 URL에 입력
|
|
29
|
+
# 예: https://abc123.ngrok.io/kakao
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## 환경변수 설정
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
echo "KAKAO_CALLBACK_SECRET=옵션값" >> ~/.openclaw/.env
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 웹훅 테스트 (curl)
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
curl -X POST http://localhost:8400/kakao \
|
|
42
|
+
-H "Content-Type: application/json" \
|
|
43
|
+
-d '{
|
|
44
|
+
"userRequest": {
|
|
45
|
+
"utterance": "치킨집 창업하고 싶어요",
|
|
46
|
+
"user": {"id": "test_user_001"}
|
|
47
|
+
},
|
|
48
|
+
"bot": {"id": "test_bot"},
|
|
49
|
+
"intent": {"name": "폴백 블록"}
|
|
50
|
+
}'
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 응답 형식 (카카오 오픈빌더 v2)
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"version": "2.0",
|
|
58
|
+
"template": {
|
|
59
|
+
"outputs": [
|
|
60
|
+
{"simpleText": {"text": "라온의 응답 텍스트"}}
|
|
61
|
+
],
|
|
62
|
+
"quickReplies": [
|
|
63
|
+
{"label": "융자/보증 알아보기", "action": "message", "messageText": "융자/보증 알아보기"},
|
|
64
|
+
{"label": "지원사업 찾기", "action": "message", "messageText": "지원사업 찾기"},
|
|
65
|
+
{"label": "처음부터", "action": "message", "messageText": "처음부터"}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## 트랙 자동 감지
|
|
72
|
+
|
|
73
|
+
| 키워드 예시 | 감지 트랙 | 평가 기준 |
|
|
74
|
+
|------------|-----------|-----------|
|
|
75
|
+
| 치킨집, 카페, 음식점, 소상공인 | Track B | 입지/경험/차별화/자금/지역 (100점) |
|
|
76
|
+
| AI, SaaS, TIPS, 바이오, 반도체 | Track A | 기술성/시장성/사업성/팀역량 (100점) |
|
|
77
|
+
| 푸드테크, 뷰티테크, O2O | Track AB | Track B 기준 우선 적용 |
|
|
78
|
+
|
|
79
|
+
## 금융 상품 연동
|
|
80
|
+
|
|
81
|
+
사용자가 "대출", "보증", "융자", "자금" 등을 질문하면 자동으로 금융맵 매칭:
|
|
82
|
+
|
|
83
|
+
- **Track B**: 소상공인 정책자금(소진공), 청년창업 특례보증(KODIT), Wadiz 크라우드펀딩
|
|
84
|
+
- **Track A**: TIPS(중기부), 기술보증(KIBO), 청년창업 특례보증(KODIT)
|
|
85
|
+
- **Track AB**: 위 모두 포함
|
|
86
|
+
|
|
87
|
+
## 운영 주의사항
|
|
88
|
+
|
|
89
|
+
1. **카카오는 반드시 200 응답** — 에러도 정상 응답(simpleText)으로 반환
|
|
90
|
+
2. **텍스트 1000자 제한** — 자동으로 900자씩 분할 (최대 5개 outputs)
|
|
91
|
+
3. **빠른 응답 버튼 최대 5개** — 트랙별로 자동 설정
|
|
92
|
+
4. **세션 관리** — user.id 기반으로 대화 히스토리 유지 (최대 20턴)
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: raon-os
|
|
3
|
+
version: 0.7.10
|
|
4
|
+
description: "AI-powered startup companion for Korean founders. Evaluate business plans, match government funding programs (TIPS/DeepTech/Global TIPS), connect with 3,972+ TIPS-selected startups, get investor recommendations, and integrate with Kakao i OpenBuilder. Features Agentic RAG (HyDE, Multi-Query, CRAG), structured extraction, and Track B financial matching."
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
env:
|
|
8
|
+
- name: GEMINI_API_KEY
|
|
9
|
+
description: "Google Gemini API key (recommended for embeddings + LLM)"
|
|
10
|
+
required: false
|
|
11
|
+
- name: OPENROUTER_API_KEY
|
|
12
|
+
description: "OpenRouter API key (multi-model access)"
|
|
13
|
+
required: false
|
|
14
|
+
- name: ANTHROPIC_API_KEY
|
|
15
|
+
description: "Anthropic Claude API key"
|
|
16
|
+
required: false
|
|
17
|
+
- name: OPENAI_API_KEY
|
|
18
|
+
description: "OpenAI API key"
|
|
19
|
+
required: false
|
|
20
|
+
- name: KAKAO_CALLBACK_SECRET
|
|
21
|
+
description: "Kakao i OpenBuilder webhook HMAC secret (optional)"
|
|
22
|
+
required: false
|
|
23
|
+
- name: RAON_API_URL
|
|
24
|
+
description: "Managed API endpoint (optional, for SaaS mode)"
|
|
25
|
+
required: false
|
|
26
|
+
- name: RAON_API_KEY
|
|
27
|
+
description: "Managed API key (optional, for SaaS mode)"
|
|
28
|
+
required: false
|
|
29
|
+
requires:
|
|
30
|
+
bins: ["python3", "node"]
|
|
31
|
+
notes: "At least one LLM API key (GEMINI, OPENROUTER, ANTHROPIC, or OPENAI) is recommended. Falls back to local Ollama if no keys are set. API keys are stored in ~/.openclaw/.env (user-managed, chmod 600 recommended). The skill includes a local HTTP server (port 8400) and crawlers for public government data collection."
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
# Raon OS — Startup Companion (v0.7.10)
|
|
35
|
+
|
|
36
|
+
## 설치 요구사항
|
|
37
|
+
|
|
38
|
+
- **Python 3.9+** (macOS 기본 내장, 별도 설치 불필요)
|
|
39
|
+
- **Node.js 18+** (`npx @yeomyeonggeori/raon-os` 실행용)
|
|
40
|
+
- **LLM API 키** (아래 중 하나, 우선순위 순):
|
|
41
|
+
|
|
42
|
+
| 환경변수 | 설명 | 비고 |
|
|
43
|
+
|----------|------|------|
|
|
44
|
+
| `OPENROUTER_API_KEY` | **1순위** — OpenClaw 지원 모든 모델 | 추천 |
|
|
45
|
+
| `GEMINI_API_KEY` | **2순위** — Google Gemini + 임베딩 | |
|
|
46
|
+
| `ANTHROPIC_API_KEY` | **3순위** — Claude | |
|
|
47
|
+
| `OPENAI_API_KEY` | **4순위** — GPT + 임베딩 | |
|
|
48
|
+
| Ollama 로컬 | 자동 감지 (키 없을 때) | 선택 — `raon.sh install-model` |
|
|
49
|
+
|
|
50
|
+
- **벡터 검색**: `GEMINI_API_KEY` 또는 `OPENAI_API_KEY` 있으면 자동 활성화. 없으면 BM25 키워드 검색으로 동작.
|
|
51
|
+
|
|
52
|
+
## 빠른 시작
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# 1. OpenClaw 설치
|
|
56
|
+
npm install -g openclaw
|
|
57
|
+
|
|
58
|
+
# 2. 스킬 설치
|
|
59
|
+
openclaw skill install @yeomyeonggeori/raon-os
|
|
60
|
+
|
|
61
|
+
# 3. API 키 설정 (권장: OpenRouter)
|
|
62
|
+
echo "OPENROUTER_API_KEY=sk-or-..." >> ~/.openclaw/.env
|
|
63
|
+
chmod 600 ~/.openclaw/.env # 보안: 소유자만 읽기/쓰기
|
|
64
|
+
|
|
65
|
+
# 4. 모델 override (선택) — 기본은 프로바이더별 최적 모델 자동 선택
|
|
66
|
+
echo "RAON_MODEL=anthropic/claude-opus-4-5" >> ~/.openclaw/.env
|
|
67
|
+
|
|
68
|
+
# 5. 연결 테스트
|
|
69
|
+
python3 scripts/raon_llm.py --detect
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## LLM 설정 (`raon_llm.py`)
|
|
73
|
+
|
|
74
|
+
모든 API 키는 `~/.openclaw/.env` 에 저장 (환경변수 우선):
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# ~/.openclaw/.env 예시
|
|
78
|
+
OPENROUTER_API_KEY=sk-or-v1-xxxx # 1순위 (추천)
|
|
79
|
+
GEMINI_API_KEY=AIzaSy-xxxx # 2순위 + 임베딩
|
|
80
|
+
ANTHROPIC_API_KEY=sk-ant-xxxx # 3순위
|
|
81
|
+
OPENAI_API_KEY=sk-xxxx # 4순위 + 임베딩
|
|
82
|
+
RAON_MODEL=google/gemini-2.5-flash # 모델 강제 지정 (선택)
|
|
83
|
+
RAON_LLM_PROVIDER=openrouter # 프로바이더 강제 지정 (선택)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
스타트업 파운더를 위한 AI 동료. 아이디어를 사업으로 만드는 전 과정을 지원한다.
|
|
87
|
+
|
|
88
|
+
## 기능
|
|
89
|
+
|
|
90
|
+
### 1. biz-plan — 사업계획서 평가
|
|
91
|
+
사업계획서(PDF/텍스트)를 분석하여 점수 + 개선안을 제공한다.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# PDF 평가
|
|
95
|
+
{baseDir}/scripts/raon.sh biz-plan evaluate --file /path/to/plan.pdf
|
|
96
|
+
|
|
97
|
+
# 텍스트 평가
|
|
98
|
+
{baseDir}/scripts/raon.sh biz-plan evaluate --text "사업 아이디어 설명..."
|
|
99
|
+
|
|
100
|
+
# JSON 형식 출력
|
|
101
|
+
{baseDir}/scripts/raon.sh biz-plan evaluate --file /path/to/plan.pdf --json
|
|
102
|
+
|
|
103
|
+
# 결과를 파일로 저장
|
|
104
|
+
{baseDir}/scripts/raon.sh biz-plan evaluate --file /path/to/plan.pdf --output result.md
|
|
105
|
+
|
|
106
|
+
# 두 사업계획서 비교 분석
|
|
107
|
+
{baseDir}/scripts/raon.sh biz-plan evaluate --file plan_a.pdf --file plan_b.pdf
|
|
108
|
+
|
|
109
|
+
# 개선안 생성
|
|
110
|
+
{baseDir}/scripts/raon.sh biz-plan improve --file /path/to/plan.pdf
|
|
111
|
+
|
|
112
|
+
# 평가 히스토리 조회
|
|
113
|
+
{baseDir}/scripts/raon.sh history
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**평가 항목:**
|
|
117
|
+
- 문제 정의 및 솔루션 적합성
|
|
118
|
+
- 시장 규모 및 경쟁 분석
|
|
119
|
+
- 비즈니스 모델 타당성
|
|
120
|
+
- 팀 역량
|
|
121
|
+
- 재무 계획
|
|
122
|
+
- 기술 차별성
|
|
123
|
+
|
|
124
|
+
**출력:** 100점 만점 종합 점수 + 항목별 점수 + 구체적 개선 제안
|
|
125
|
+
|
|
126
|
+
### 2. gov-funding — 정부 지원사업 매칭
|
|
127
|
+
스타트업 프로필 기반으로 적합한 정부 지원사업을 추천한다.
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# 매칭 (사업계획서 기반)
|
|
131
|
+
{baseDir}/scripts/raon.sh gov-funding match --file /path/to/plan.pdf
|
|
132
|
+
|
|
133
|
+
# 매칭 (키워드 기반)
|
|
134
|
+
{baseDir}/scripts/raon.sh gov-funding match --industry "AI/SaaS" --stage "early" --region "서울"
|
|
135
|
+
|
|
136
|
+
# 지원사업 상세 정보
|
|
137
|
+
{baseDir}/scripts/raon.sh gov-funding info --program "TIPS"
|
|
138
|
+
|
|
139
|
+
# 지원서 초안 생성
|
|
140
|
+
{baseDir}/scripts/raon.sh gov-funding draft --program "TIPS" --file /path/to/plan.pdf
|
|
141
|
+
|
|
142
|
+
# 지원 준비 체크리스트
|
|
143
|
+
{baseDir}/scripts/raon.sh gov-funding checklist --program "TIPS" --file /path/to/plan.pdf
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**지원 프로그램:** TIPS, K-Startup 그랜드챌린지, 창업성장기술개발, 예비창업패키지, 초기창업패키지 등
|
|
147
|
+
|
|
148
|
+
### 3. investor-match — 투자자 매칭 (추후 연동)
|
|
149
|
+
스타트업 단계/산업에 맞는 투자자를 추천한다.
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# 투자자 추천
|
|
153
|
+
{baseDir}/scripts/raon.sh investor-match --stage "pre-a" --industry "AI" --amount "1M"
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## PDF 처리 (중요)
|
|
157
|
+
|
|
158
|
+
사용자가 PDF를 직접 보내면 바이너리가 프롬프트에 들어가 토큰 한도를 초과한다.
|
|
159
|
+
**반드시 텍스트 추출 후 평가해야 한다.**
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# 방법 1: evaluate.py가 내부에서 PDF 텍스트 추출
|
|
163
|
+
{baseDir}/scripts/raon.sh biz-plan evaluate --file /path/to/plan.pdf
|
|
164
|
+
|
|
165
|
+
# 방법 2: 전처리 스크립트
|
|
166
|
+
scripts/pdf-evaluate.sh /path/to/plan.pdf
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**OpenClaw에서 PDF 파일이 첨부된 경우:**
|
|
170
|
+
1. PDF가 media/inbound/에 저장됨
|
|
171
|
+
2. PDF를 프롬프트에 인라인하지 말 것 (토큰 폭발)
|
|
172
|
+
3. exec 도구로 evaluate.py --file <경로>를 실행하여 평가
|
|
173
|
+
4. 결과를 사용자에게 전달
|
|
174
|
+
|
|
175
|
+
## 사용 흐름
|
|
176
|
+
|
|
177
|
+
일반적인 파운더 여정:
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
1. "내 사업계획서 평가해줘" → biz-plan evaluate
|
|
181
|
+
2. "어떻게 고치면 돼?" → biz-plan improve
|
|
182
|
+
3. "이걸로 지원할 수 있는 정부사업 있어?" → gov-funding match
|
|
183
|
+
4. "TIPS 지원서 초안 만들어줘" → gov-funding draft
|
|
184
|
+
5. "투자자도 연결해줘" → investor-match
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Investor Match
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
raon.sh investor-match profile --file <pdf>
|
|
191
|
+
# or
|
|
192
|
+
curl -X POST http://localhost:8400/v1/investor ...
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
투자자 관점에서 사업계획서를 분석하고 매력도 프로필을 생성한다.
|
|
196
|
+
- Deal Summary (1분 요약)
|
|
197
|
+
- 타겟 투자자 유형 (Seed/Pre-A, Sector)
|
|
198
|
+
- Investment Highlights & Red Flags
|
|
199
|
+
- 피칭 팁
|
|
200
|
+
|
|
201
|
+
## HTTP API 서버
|
|
202
|
+
|
|
203
|
+
로컬 REST API 서버를 띄워 웹챗이나 외부 서비스에서 연동할 수 있다:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
raon.sh serve # 기본 포트 8400
|
|
207
|
+
raon.sh serve 9000 # 커스텀 포트
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
엔드포인트:
|
|
211
|
+
- `GET /health` — 헬스체크
|
|
212
|
+
- `GET /v1/modes` — 지원 모드 목록
|
|
213
|
+
- `POST /v1/evaluate` — 사업계획서 평가
|
|
214
|
+
- `POST /v1/improve` — 사업계획서 개선
|
|
215
|
+
- `POST /v1/match` — 정부 지원사업 매칭
|
|
216
|
+
- `POST /v1/draft` — 지원서 초안 (program 필수)
|
|
217
|
+
- `POST /v1/checklist` — 지원 준비 점검 (program 필수)
|
|
218
|
+
- `POST /v1/investor` — 투자자 프로필 분석
|
|
219
|
+
|
|
220
|
+
요청 예시:
|
|
221
|
+
```bash
|
|
222
|
+
curl -X POST http://localhost:8400/v1/evaluate \
|
|
223
|
+
-H "Content-Type: application/json" \
|
|
224
|
+
-d '{"text": "사업계획서 내용..."}'
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
CORS 지원됨 (웹 프론트엔드 연동 가능).
|
|
228
|
+
|
|
229
|
+
## API 연동
|
|
230
|
+
|
|
231
|
+
현재 버전은 로컬 분석 (LLM 기반 RAG)으로 동작한다.
|
|
232
|
+
K-Startup AI API 연동 시 환경변수 설정:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
export RAON_API_URL="https://api.k-startup.ai"
|
|
236
|
+
export RAON_API_KEY="your-api-key"
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
API가 설정되지 않으면 로컬 LLM + RAG 파이프라인으로 폴백한다.
|
|
240
|
+
|
|
241
|
+
## 평가 기준 참고
|
|
242
|
+
|
|
243
|
+
정부 지원사업별 심사 기준은 references/ 디렉토리 참조:
|
|
244
|
+
- `references/tips-criteria.md` — TIPS 심사 기준
|
|
245
|
+
- `references/gov-programs.md` — 주요 정부 지원사업 목록 및 자격 요건
|
package/bin/raon-os.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* raon-os — bin entry point
|
|
4
|
+
* Delegates to scripts/raon.sh (bash implementation)
|
|
5
|
+
*/
|
|
6
|
+
const { spawnSync } = require("child_process");
|
|
7
|
+
const path = require("path");
|
|
8
|
+
|
|
9
|
+
const sh = path.join(__dirname, "..", "scripts", "raon.sh");
|
|
10
|
+
const result = spawnSync(sh, process.argv.slice(2), {
|
|
11
|
+
stdio: "inherit",
|
|
12
|
+
shell: false,
|
|
13
|
+
});
|
|
14
|
+
process.exit(result.status ?? 1);
|
package/package.json
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yeomyeonggeori/startup-agent",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.16",
|
|
4
4
|
"description": "AI-powered startup companion. Evaluate business plans, match government funding, connect with investors — Zero to One.",
|
|
5
|
-
"keywords": ["startup",
|
|
6
|
-
"homepage": "https://k-startup.ai",
|
|
7
|
-
"repository": {"type": "git", "url": "git+https://github.com/yeomyeonggeori/raon-os.git"},
|
|
5
|
+
"keywords": ["startup","ai-agent","business-plan","government-funding","openclaw","openclaw-skill","tips","k-startup"],
|
|
8
6
|
"author": "Yeomyeonggeori Inc. <iam@dawn.kim>",
|
|
9
7
|
"license": "MIT",
|
|
10
|
-
"
|
|
8
|
+
"main": "server.py",
|
|
9
|
+
"publishConfig": {"access": "public", "registry": "https://registry.npmjs.org/"}
|
|
11
10
|
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# 주요 정부 지원사업 (2026)
|
|
2
|
+
|
|
3
|
+
_최종 업데이트: 2026.02.17 (2026 통합공고 제2025-648호 기반)_
|
|
4
|
+
|
|
5
|
+
## Tier 1: 대형 (1억+)
|
|
6
|
+
|
|
7
|
+
### TIPS (민간투자주도형 기술창업)
|
|
8
|
+
- 규모: 최대 8억원 (2026년 기준, R&D + 사업화)
|
|
9
|
+
- 기간: 2년
|
|
10
|
+
- 대상: 창업 7년 이내, 기술 기반
|
|
11
|
+
- 특징: TIPS 운영사(AC/VC) 추천 필수, 합격률 ~20%
|
|
12
|
+
- 심사 기준: references/tips-criteria.md 참조
|
|
13
|
+
- 2026 공고: 제2026-40호 (01.26), **상시 접수**
|
|
14
|
+
|
|
15
|
+
### Global TIPS
|
|
16
|
+
- 규모: 최대 50억원
|
|
17
|
+
- 조건: TIPS 선정 기업 + 해외투자 유치 실적
|
|
18
|
+
- 특징: 해외 VC 투자 매칭 방식
|
|
19
|
+
- 2026: **상시 접수** (TIPS 선정 기업만)
|
|
20
|
+
|
|
21
|
+
### K-Startup 그랜드챌린지
|
|
22
|
+
- 규모: 45억원 (참가지원금)
|
|
23
|
+
- 대상: **외국 국적** 예비창업자 및 7년 이내 창업기업 (한국 진출 외국인 대상)
|
|
24
|
+
- 특징: 액셀러레이팅 + 비자 발급 지원
|
|
25
|
+
- 2026 공고: 제2026-26호 — 주관기관 모집 (01.19~02.10 마감). **참여기업 공고 '26.4월 예상**
|
|
26
|
+
|
|
27
|
+
### 창업성장기술개발 (디딤돌/TIPS)
|
|
28
|
+
- 규모: 총 7,864억원 (TIPS 포함)
|
|
29
|
+
- 대상: 업력 7년 이하 창업기업 (신산업 분야 10년 이하)
|
|
30
|
+
- 특징: 기술 중심 R&D, TIPS는 운영사(AC/VC) 추천 필수
|
|
31
|
+
- 2026 공고: 디딤돌 '26.1월/3월, TIPS '26.1월
|
|
32
|
+
|
|
33
|
+
### 기술사업화 패키지 (신규)
|
|
34
|
+
- 2026 공고: 제2026-96호 (02.12), 접수 02.24~03.13
|
|
35
|
+
- 담당: 기술개발과
|
|
36
|
+
- 특징: R&D 성과의 사업화 연계 지원
|
|
37
|
+
|
|
38
|
+
## Tier 2: 중형 (5천만~1억)
|
|
39
|
+
|
|
40
|
+
### 초기창업패키지
|
|
41
|
+
- 규모: 총 559억원 (개별 최대 1억원)
|
|
42
|
+
- 대상: 업력 3년 이내 초기창업기업
|
|
43
|
+
- 특징: 사업화 자금 + 멘토링
|
|
44
|
+
- 2026 공고: 제2026-38호 (01.23), 접수 ~02.13 **마감**. 선정 발표 4~5월 예상
|
|
45
|
+
- 조회수 18,981 (가장 인기)
|
|
46
|
+
|
|
47
|
+
### 창업도약패키지
|
|
48
|
+
- 규모: 총 728억원 (개별 최대 3억원)
|
|
49
|
+
- 대상: 창업 3년 초과 7년 이내
|
|
50
|
+
- 특징: 성장 단계 지원
|
|
51
|
+
- 2026 공고: 제2026-39호 (01.23), 접수 ~02.13 **마감**. 선정 발표 5~6월 예상
|
|
52
|
+
|
|
53
|
+
### 재도전성공패키지
|
|
54
|
+
- 규모: 총 150억원
|
|
55
|
+
- 대상: 예비 또는 재창업 업력 7년 이내 재창업기업 대표
|
|
56
|
+
- 특징: 폐업 후 재도전 지원
|
|
57
|
+
- 2026 공고: 제2026-87호 (02.10), 접수 02.11~**03.04** ⏰ 접수 중
|
|
58
|
+
|
|
59
|
+
## Tier 3: 초기/교육
|
|
60
|
+
|
|
61
|
+
### 예비창업패키지
|
|
62
|
+
- 규모: 총 491억원 (개별 최대 1억원)
|
|
63
|
+
- 대상: 예비 창업자 (공고일 기준 사업자등록 및 법인설립 전)
|
|
64
|
+
- 특징: 교육 + 사업화 자금
|
|
65
|
+
- 2026: 공고 미확인 (2~3월 공고 예상, 수시 확인 필요)
|
|
66
|
+
|
|
67
|
+
### 창업성공패키지 (청년창업사관학교)
|
|
68
|
+
- 규모: 총 1,025억원
|
|
69
|
+
- 대상: 만 39세 이하 청년창업자
|
|
70
|
+
- 특징: 입주 공간 + 자금 + 교육
|
|
71
|
+
- 2026 공고: 제2026-60호 — 기본과정 (01.30), 접수 ~02.13 **마감**
|
|
72
|
+
- 제2026-61호 — 딥테크 심화 (01.30), 접수 ~02.13 **마감**
|
|
73
|
+
- 제2026-62호 — 글로벌 심화 (01.30), 접수 ~02.13 **마감**
|
|
74
|
+
|
|
75
|
+
## 특수 프로그램 (2026 신규/주목)
|
|
76
|
+
|
|
77
|
+
### 지역 주도형 AI 대전환
|
|
78
|
+
- 2026 공고: 제2026-72호 (02.04), 접수 ~**03.10** ⏰ 접수 중
|
|
79
|
+
- 담당: 중소기업인공지능확산추진단
|
|
80
|
+
- 특징: AI 도입 중소기업 대상, 여명거리와 연관 가능성
|
|
81
|
+
|
|
82
|
+
### 지역 첨단제조 스타트업 스케일업
|
|
83
|
+
- 2026 공고: 제2026-66호 (02.02), 접수 ~02.25 ⏰ 접수 중 (마감 임박)
|
|
84
|
+
|
|
85
|
+
### 지역혁신선도기업 육성 (R&D)
|
|
86
|
+
- 2026 공고: 제2026-57호 (01.30), 접수 02.11~**03.03** ⏰ 접수 중
|
|
87
|
+
|
|
88
|
+
## 선택 가이드
|
|
89
|
+
|
|
90
|
+
| 단계 | 추천 프로그램 | 2026 상태 |
|
|
91
|
+
|------|-------------|-----------|
|
|
92
|
+
| 아이디어만 있음 | 예비창업패키지 | 공고 대기 |
|
|
93
|
+
| 법인 설립 직후 | 초기창업패키지, 청년창업사관학교 | ❌ 1차 마감 |
|
|
94
|
+
| MVP/PoC 있음 | TIPS, 창업성장기술개발, 기술사업화 패키지 | ✅ TIPS 상시, 기술사업화 02.24~03.13 |
|
|
95
|
+
| 매출 발생 | TIPS, 창업도약패키지 | ❌ 도약 1차 마감, ✅ TIPS 상시 |
|
|
96
|
+
| 해외 진출 | K-Startup 그랜드챌린지, Global TIPS | ✅ Global TIPS 상시, 그랜드챌린지 3~5월 |
|
|
97
|
+
| 재도전 | 재도전성공패키지 | ✅ ~03.04 접수 중 |
|
|
98
|
+
| AI 도입 | 지역 주도형 AI 대전환 | ✅ ~03.10 접수 중 |
|
|
99
|
+
|
|
100
|
+
## 2026년 확인된 일정
|
|
101
|
+
|
|
102
|
+
| 프로그램 | 공고번호 | 공고일 | 접수 기간 | 상태 |
|
|
103
|
+
|----------|----------|--------|-----------|------|
|
|
104
|
+
| TIPS | 제2026-40호 | 01.26 | 상시 (운영사 추천) | ✅ 상시 접수 |
|
|
105
|
+
| Global TIPS | - | 상시 | 상시 | ✅ 상시 접수 |
|
|
106
|
+
| 초기창업패키지 (일반) | 제2026-38호 | 01.23 | ~02.13 | ❌ 마감 |
|
|
107
|
+
| 창업도약패키지 (일반) | 제2026-39호 | 01.23 | ~02.13 | ❌ 마감 |
|
|
108
|
+
| 청년창업사관학교 기본 | 제2026-60호 | 01.30 | ~02.13 | ❌ 마감 |
|
|
109
|
+
| 청년창업사관학교 딥테크 | 제2026-61호 | 01.30 | ~02.13 | ❌ 마감 |
|
|
110
|
+
| 청년창업사관학교 글로벌 | 제2026-62호 | 01.30 | ~02.13 | ❌ 마감 |
|
|
111
|
+
| 재도전성공패키지 | 제2026-87호 | 02.10 | 02.11~03.04 | ⏰ 접수 중 |
|
|
112
|
+
| 기술사업화 패키지 1차 | 제2026-96호 | 02.12 | 02.24~03.13 | ⏰ 곧 시작 |
|
|
113
|
+
| 지역 주도형 AI 대전환 | 제2026-72호 | 02.04 | ~03.10 | ⏰ 접수 중 |
|
|
114
|
+
| 지역혁신선도기업 R&D | 제2026-57호 | 01.30 | 02.11~03.03 | ⏰ 접수 중 |
|
|
115
|
+
| K-Startup 그랜드챌린지 | 제2026-26호 | 01.19 | 주관기관 ~02.10 마감 | 참여기업 3~5월 예상 |
|
|
116
|
+
| 예비창업패키지 | - | - | - | 🔍 공고 대기 |
|
|
117
|
+
| 창업성장기술개발 | - | - | - | 🔍 공고 대기 |
|
|
118
|
+
|
|
119
|
+
> 📅 데이터 출처: [중기부 사업공고](https://www.mss.go.kr/site/smba/ex/bbs/List.do?cbIdx=310) (2026.02.15 기준)
|
|
120
|
+
> ⚠️ 2차 모집, 추가 공고가 수시 게시됩니다. [K-Startup](https://www.k-startup.go.kr) 수시 확인 필수.
|
|
121
|
+
|
|
122
|
+
## 공통 준비 사항
|
|
123
|
+
- 사업계획서 (PDF, 보통 20~30페이지)
|
|
124
|
+
- 팀 소개 및 대표자 이력
|
|
125
|
+
- 기술 설명서 또는 특허/IP
|
|
126
|
+
- 재무제표 (법인인 경우)
|
|
127
|
+
- 시장 분석 자료
|
|
128
|
+
- 고객 검증 자료 (PoC, LOI, 매출 증빙)
|