Self-Evolving Agent ๐ง (v5.0.0)
๋งค์ฃผ ๋ก๊ทธ๋ฅผ ์ฝ๊ณ , ์๋งจํฑ ์๋ฒ ๋ฉ์ผ๋ก ์๋ฏธ๋ก ์ ํจํด์ ์ฐพ๊ณ , ์ค์๊ฐ ๋ชจ๋ํฐ๋ง์ผ๋ก ์ฆ๊ฐ ์๋ฆฌ๊ณ , ํจ๊ณผ๊ฐ ์ธก์ ๋ AGENTS.md ๊ฐ์ ์์ ์ ์ํ๋ ์๋ํ ์์คํ
.
์ ์๋ง ํฉ๋๋ค. AGENTS.md๋ ์ฌ์ฉ์๊ฐ ์น์ธํด์ผ๋ง ์์ ๋ฉ๋๋ค.
์์งํ ์ค๋ช
์ด ์คํฌ์ "AI ์๊ธฐ์งํ"๋ผ๋ ์ด๋ฆ์ ๋ฌ๊ณ ์์ง๋ง ์ค์ ๋์์ ํฌ๋ช ํฉ๋๋ค:
- ์ค์๊ฐ: ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ํฐ๊ฐ ๋ก๊ทธ๋ฅผ ๊ฐ์, ์๊ณ์น ์ด๊ณผ ์ ์ฆ๊ฐ ์๋ฆผ
- ๋งค์ฃผ ์ผ์์ผ 22์: 6๋จ๊ณ ํ์ดํ๋ผ์ธ ์์
- ์์ง ์์ด์ ํธ: ๋ก๊ทธ ์ค์บ + ์ค์๊ฐ ์๋ฆผ ํตํฉ
- ์๋ฒ ๋ฉ ๋ถ์ ์์ด์ ํธ: Ollama ์๋งจํฑ ์๋ฒ ๋ฉ์ผ๋ก ์๋ฏธ๋ก ์ ํจํด ๊ฐ์ง
- ํธ๋ ๋ ์์ด์ ํธ: 4์ฃผ๊ฐ ํจํด ์ถ์ธ ๋น๊ต (Emerging/Resolved)
- ํ๋ฆฟ ์์ด์ ํธ: ๋ค์ค ์์ด์ ํธ ์ธ์คํด์ค ๊ต์ฐจ ๋ถ์
- ๋ฒค์น๋งํฌ ์์ด์ ํธ: ์ด์ ์ ์ ํจ๊ณผ ์ธก์ (๊ฐ์ ๋๋? ์ ํ๋๋?)
- ํฉ์ฑ ์์ด์ ํธ: ์ ์ฒด ๋ฐ์ดํฐ ์ข ํฉ โ ์ ์ ์ด์ ์์ฑ
- Discord๋ก ์ ์ก โ ์ฌ์ฉ์ ์น์ธ ํ์
๊ณผ๋ ๊ด๊ณ ์๋๋๋ค. ์๋ฒฝํ์ง ์์ต๋๋ค. ํ์ง๋ง v4.x๋ณด๋ค ํจ์ฌ ์ ํํฉ๋๋ค.
v5.0์์ ๋ฌ๋ผ์ง ๊ฒ (2026-02-18):
- ์๋งจํฑ ์๋ฒ ๋ฉ (Pillar 1):
sea patternsโ Ollamanomic-embed-text๋ก์ปฌ ์๋ฒ ๋ฉ์ผ๋ก ์๋ฏธ๋ก ์ ๋ถ๋ง ๊ฐ์ง, FP ~15% โ ~8% - ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ํฐ (Pillar 2):
sea monitorโ ์ค์๊ฐ ๋ก๊ทธ ๊ฐ์, ์๊ณ์น ์ด๊ณผ ์ฆ๊ฐ ์๋ฆผ (<30์ด) - ํ๋ฆฟ ๋ถ์ (Pillar 3):
sea fleetโ ๋ค์ค ์์ด์ ํธ ์ธ์คํด์ค ๊ต์ฐจ ๋ถ์ - ํธ๋ ๋ ๋ถ์:
sea trendsโ 4์ฃผ๊ฐ ํจํด ์ถ์ธ (Emerging/Resolved/Stable) - ํด๋ฐฑ ๋ด์ฑ: Ollama ์คํ๋ผ์ธ ์ v4 ํด๋ฆฌ์คํฑ ์๋ ํด๋ฐฑ (์์คํ ์ค๋จ ์์)
- ์ ๊ท CLI:
sea monitor,sea alerts,sea trends,sea patterns,sea fleet
v4.3์์ ๋ฌ๋ผ์ง ๊ฒ:
- ๋ํํ ์น์ธ:
sea watchโ 30์ด ํด๋ง, macOS ๋ฐ์คํฌํ ์๋ฆผ, ํฐ๋ฏธ๋ ๋ํํ approve/reject - Discord ๋ฆฌ์ก์
์ง์: ์ ์ ์ ๋ฌ ์
โ โ ๐๋ฆฌ์ก์ ์ง์ ์๋ ์ถ๊ฐ - ๋ฉํฐํฌ๋งท ๋ฆฌํฌํธ:
sea exportโ markdown/html/json/pdf/all ํ์ ์ง์ - GitHub Issues:
sea githubโ ์ ์๋ณ ์ด์ ์์ฑ, ์น์ธ ์ ์๋ ์ข ๋ฃ, ๋ ์ด๋ธ ๊ด๋ฆฌ
v4.2์์ ๋ฌ๋ผ์ง ๊ฒ:
- Ollama/๋ก์ปฌ LLM ์์ ์ง์:
config.yaml์์provider: "ollama"์ค์ ํ ์ค๋ก ์ ํ - Zero-Cost ๋ชจ๋: Ollama +
provider: "none"์กฐํฉ์ผ๋ก API ๋น์ฉ $0.00/์ฃผ ์ด์ - ๋ฒ์ฉ LLM ์ธํฐํ์ด์ค:
scripts/v4/llm-call.shโ anthropic/openai/ollama/none ํตํฉ - ํฉ์ฑ ๋จ๊ณ LLM ๊ฐํ: synthesize-proposal.sh๊ฐ llm-call.sh๋ฅผ ํตํด AI ์ ์ ์์ฑ
v4.1์์ ๋ฌ๋ผ์ง ๊ฒ:
- ์์ด + ํ๊ตญ์ด ๋ถ๋ง ํจํด ๋์ ์ง์: config.yaml์์
ko/en๋ถ๋ฆฌ ๊ตฌ์กฐ - ์๋ ์ธ์ด ๊ฐ์ง: ์ธ์ ์ฒซ 10๊ฐ user ๋ฉ์์ง ์ค >50%์ ํ๊ธ์ด๋ฉด ko, ์๋๋ฉด en ํจํด ์ ์ฉ
config.yaml์auto_detect: true์ค์ ์ผ๋ก ์ ์ด ๊ฐ๋ฅ
v4.0์์ ๋ฌ๋ผ์ง ๊ฒ:
- ๋ฉํฐ์์ด์ ํธ ํ์ดํ๋ผ์ธ: ๋จ์ผ Claude ํธ์ถ โ 4๊ฐ ์ ๋ฌธ ์์ด์ ํธ ํ๋ ฅ
- ๊ตฌ์กฐ์ ํด๋ฆฌ์คํฑ ๋ถ์: ์์ ํค์๋ ๋งค์นญ โ ๋ฌธ๋งฅยท์์นยท์ญํ ๊ณ ๋ คํ ํจํด ๋ถ์
- ํจ๊ณผ ์ธก์ ๋ฃจํ: ์ ์ ์ ์ฉ ํ ์ค์ ๋ก ๋์๋๋์ง ๋ค์ ์ฃผ๊ธฐ์ ์ธก์
- False positive ๊ฐ์: ~40% โ ์ถ์ ~15%
ํ์ผ ๊ตฌ์กฐ
~/openclaw/skills/self-evolving-agent/
โโโ SKILL.md โ ์ด ํ์ผ
โโโ README.md โ ์์ด, ClawHub ๋ฐฐํฌ์ฉ
โโโ _meta.json โ ClawHub ๋ฉํ๋ฐ์ดํฐ
โโโ config.yaml โ ์ค์ ํ์ผ
โโโ scripts/
โ โโโ analyze-behavior.sh โ v3.0 ๋ถ์ (ํ์ ํธํ ์ ์ง)
โ โโโ generate-proposal.sh โ v3.0 ์ ์ ์์ฑ
โ โโโ register-cron.sh โ ํฌ๋ก ๋ฑ๋ก/์
๋ฐ์ดํธ
โ โโโ lib/
โ โ โโโ config-loader.sh โ config.yaml ํ์
โ โโโ v4/ โ v4.0 ํ์ดํ๋ผ์ธ (ํ์ ํธํ ์ ์ง)
โ โ โโโ orchestrator.sh โ v4 ์ค์ผ์คํธ๋ ์ดํฐ (์ง์ ์คํ ๊ฐ๋ฅ)
โ โ โโโ collect-logs.sh โ Stage 1: ๋ก๊ทธ ์์ง + ๊ตฌ์กฐํ
โ โ โโโ semantic-analyze.sh โ Stage 2: ๊ตฌ์กฐ์ ํจํด ๋ถ์
โ โ โโโ benchmark.sh โ Stage 3: ํจ๊ณผ ์ธก์ + ์ด์ ์ ์ ์ถ์
โ โ โโโ synthesize-proposal.sh โ Stage 4: ํฉ์ฑ ์์ด์ ํธ โ ์ต์ข
์ ์
โ โ โโโ llm-call.sh โ ๋ฒ์ฉ LLM ์ธํฐํ์ด์ค
โ โ โโโ measure-effects.sh โ ์ ์ ํจ๊ณผ ์ธก์ ๋ฃจํ
โ โ โโโ deliver.sh โ ๋ฉํฐํ๋ซํผ ๋ฐฐ๋ฌ๊ธฐ (Slack/Telegram/Webhook)
โ โ โโโ interactive-approve.sh โ ๋ํํ ์น์ธ + sea watch
โ โ โโโ export-report.sh โ ๋ฉํฐํฌ๋งท ๋ฆฌํฌํธ ๋ด๋ณด๋ด๊ธฐ
โ โ โโโ github-issue.sh โ GitHub Issues ํตํฉ
โ โโโ v5/ โ v5.0 ์ ๊ท ํ์ดํ๋ผ์ธ โญ
โ โโโ orchestrator.sh โ v5 ์ค์ผ์คํธ๋ ์ดํฐ (v4 ํด๋ฐฑ ๋ด์ฅ)
โ โโโ embedding-analyze.sh โ ์๋งจํฑ ์๋ฒ ๋ฉ ๋ถ์ โญ (Pillar 1)
โ โโโ stream-monitor.sh โ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ํฐ โญ (Pillar 2)
โ โโโ fleet-analyzer.sh โ ํ๋ฆฟ ๋ค์ค ์ธ์คํด์ค ๋ถ์ โญ (Pillar 3)
โ โโโ trend-analyzer.sh โ ์ฃผ๊ฐ ํธ๋ ๋ ๋ถ์ โญ
โโโ dashboard/ โ ๋ก์ปฌ ์น ๋์๋ณด๋
โ โโโ index.html โ ๋จ์ผ ํ์ผ ๋์๋ณด๋ (์์กด์ฑ ์์)
โ โโโ load-data.js โ ๋ฐ์ดํฐ ๋ก๋ ๋ชจ๋
โ โโโ build-index.sh โ ๋ฐ์ดํฐ ์ธ๋ฑ์ค ๋น๋
โ โโโ serve.sh โ ๋ก์ปฌ HTTP ์๋ฒ ์คํ
โ โโโ README.md โ ๋์๋ณด๋ ์ฌ์ฉ ๊ฐ์ด๋
โโโ templates/
โ โโโ proposal-template.md โ ๊ฐ์ ์ ์ถ๋ ฅ ํ์
โโโ docs/
โ โโโ architecture.md โ v3.0 ์ํคํ
์ฒ (๋ ๊ฑฐ์)
โ โโโ v4-architecture.md โ v4.0 ์ํคํ
์ฒ ์์ธ
โ โโโ v5-architecture.md โ v5.0 ์ํคํ
์ฒ ์์ธ โญ
โ โโโ migration-v4-to-v5.md โ v4 โ v5 ๋ง์ด๊ทธ๋ ์ด์
๊ฐ์ด๋ โญ
โ โโโ roadmap.md โ ๋ก๋๋งต
โ โโโ devils-advocate.md โ ์
๋ง์ ๋ณํธ์ธ ๋นํ ๋ถ์
โ โโโ test-results.md โ QA ํ
์คํธ ๊ฒฐ๊ณผ
โ โโโ quality-review.md โ ํ์ง ๊ฒํ
โโโ bin/ โ CLI ๋๊ตฌ
โ โโโ sea โ ๋ฉ์ธ CLI v2.0 (proposals/run/status/... + v5 ๋ช
๋ น)
โ โโโ sea-completion.bash โ Bash ํญ ์๋์์ฑ
โโโ tests/
โ โโโ fixtures/ โ ํ
์คํธ ํฝ์ค์ฒ
โ โโโ test-cli.sh โ CLI ํ
์คํธ
โ โโโ test-pipeline.sh โ v4 ํ์ดํ๋ผ์ธ ํ
์คํธ
โ โโโ test-v5.sh โ v5 ์ปดํฌ๋ํธ ํ
์คํธ โญ
โโโ data/ โ ๋ฐํ์ ์๋ ์์ฑ
โโโ proposals/ โ ์์ฑ๋ ์ ์ JSON
โโโ benchmarks/ โ ํจ๊ณผ ์ธก์ ๊ฒฐ๊ณผ
โโโ stream-alerts/ โ ์ค์๊ฐ ์๋ฆผ ํ โญ
โโโ fleet/ โ ํ๋ฆฟ ๋ถ์ ๊ฒฐ๊ณผ โญ
โโโ trends/ โ ํธ๋ ๋ ๋ถ์ ๊ฒฐ๊ณผ โญ
โโโ undelivered/ โ ๋ฐฐ๋ฌ ์คํจ ์ ํด๋ฐฑ ์ ์ฅ
โโโ rejected-proposals.json โ ๊ฑฐ๋ถ ๊ธฐ๋ก
๐ ๏ธ sea CLI (v2.0.0)
sea๋ Self-Evolving Agent์ ๋ช
๋ น์ค ์ธํฐํ์ด์ค์
๋๋ค. ์ ์ ๊ด๋ฆฌ, ํ์ดํ๋ผ์ธ ์คํ, AGENTS.md ์ ์ฉ์ ํฐ๋ฏธ๋์์ ์ง์ ์ํํ ์ ์์ต๋๋ค.
PATH ์ค์
# ~/.zshrc ๋๋ ~/.bashrc์ ์ถ๊ฐ
export PATH="$HOME/openclaw/skills/self-evolving-agent/bin:$PATH"
# ํญ ์๋์์ฑ ํ์ฑํ (bash ์ ์ฉ)
source ~/openclaw/skills/self-evolving-agent/bin/sea-completion.bash
์ฃผ์ ๋ช ๋ น์ด
# โโ ๊ธฐ์กด ๋ช
๋ น์ด (v4์์ ์ ์ง) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
sea run # ์ ์ฒด ํ์ดํ๋ผ์ธ ์คํ (v5 ์ค์ผ์คํธ๋ ์ดํฐ)
sea run --v4 # v4 ํ์ดํ๋ผ์ธ ๊ฐ์ ์คํ
sea run --stage 2 # Stage 2(๋ถ์)๋ง ์คํ
sea status # ๋ง์ง๋ง ์คํ ์์ฝ (ํ ์ค)
sea proposals # ๋๊ธฐ ์ค์ธ ์ ์ ๋ชฉ๋ก
sea proposals --all # ๋ชจ๋ ์ ์ (์ ์ฒด ์ํ)
sea approve <id> # ์ ์ ์น์ธ: diff โ AGENTS.md ํจ์น โ git commit
sea approve --all # ๋๊ธฐ ์ค์ธ ๋ชจ๋ ์ ์ ์น์ธ
sea reject <id> "์ด์ " # ์ด์ ์ ํจ๊ป ๊ฑฐ๋ถ
sea watch # 30์ด ํด๋ง, ์ ์ ์ ์๋ฆผ + ๋ํํ ์น์ธ
sea export --format html # HTML ๋ฆฌํฌํธ ๋ด๋ณด๋ด๊ธฐ
sea export --format all --output-dir ./reports/ # ๋ชจ๋ ํ์ ๋ด๋ณด๋ด๊ธฐ
sea github create --all # ๋ชจ๋ pending ์ ์ GitHub ์ด์ ์์ฑ
sea github sync # proposals/ โ GitHub ์ด์ ๋๊ธฐํ
sea github list # self-evolving ์ด์ ๋ชฉ๋ก
sea history # ์ ์ฒด ์ ์ ์ด๋ ฅ (์ ์ฉ/๊ฑฐ๋ถ/๋๊ธฐ)
sea health # AGENTS.md ๊ฑด๊ฐ๋ ์ ์ + ํต๊ณ
sea config # ํ์ฌ ์ค์ ํ์
sea config set analysis.days 14 # ์ค์ ๊ฐ ์
๋ฐ์ดํธ
sea version # ๋ฒ์ ํ์ธ
sea help # ๋์๋ง
# โโ v5.0 ์ ๊ท ๋ช
๋ น์ด โญ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
sea monitor # ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ํฐ ์์ (Ctrl+C๋ก ์ข
๋ฃ)
sea monitor --poll # ํด๋ง ๋ชจ๋ (30์ด ๊ฐ๊ฒฉ, ๋น๋ํํ ํ๊ฒฝ)
sea alerts # ์คํธ๋ฆผ ์๋ฆผ ๋ชฉ๋ก (์ฃผ๊ฐ ์ง๊ณ)
sea alerts --clear # ์๋ฆผ ์ด๊ธฐํ (์ฒ๋ฆฌ ์๋ฃ ํ)
sea trends # ์ฃผ๊ฐ ํธ๋ ๋ ๋ถ์ (Emerging/Resolved/Stable)
sea trends --json # JSON ์ถ๋ ฅ (CI/์๋ํ์ฉ)
sea patterns # ์๋งจํฑ ํจํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ธ
sea patterns add "<text>" --label frustration # ์ต์ปค ํจํด ์ถ๊ฐ
sea fleet # ํ๋ฆฟ ๋ถ์ (์ ์ฒด ์์ด์ ํธ ์ธ์คํด์ค)
sea fleet --agents opus,sonnet # ํน์ ์์ด์ ํธ๋ง ๋ถ์
# ๋ชจ๋ ๋ช
๋ น์ --json ํ๋๊ทธ ์ถ๊ฐ ๊ฐ๋ฅ
sea status --json
sea history --json
sea fleet --json
sea approve ๋์ ๋ฐฉ์
data/proposals/<id>.json์์ ์ ์ ์ฝ๊ธฐbefore/afterdiff ์ถ๋ ฅAGENTS.md์beforeํ ์คํธ๋ฅผafter๋ก ๊ต์ฒด- ์ ์ JSON์
status๋ฅผ"applied"๋ก ์ ๋ฐ์ดํธ git commit -m "agents: apply proposal <id>"
์ค์น
# 1. Clone
git clone https://github.com/Ramsbaby/self-evolving-agent ~/openclaw/skills/self-evolving-agent
# 2. ์ค์ ๋ง๋ฒ์ฌ ์คํ (๋ํํ)
bash ~/openclaw/skills/self-evolving-agent/scripts/setup-wizard.sh
๋น๋ํํ ์ค์น (CI/์๋ํ์ฉ):
bash ~/openclaw/skills/self-evolving-agent/scripts/setup-wizard.sh \
--platform discord \
--channel YOUR_CHANNEL_ID \
--lang auto \
--days 7 \
--yes
์ค์ ๊ฒ์ฆ๋ง ์คํ:
bash ~/openclaw/skills/self-evolving-agent/scripts/validate-config.sh --fix
ํฌ๋ก ์๋ ๋ฑ๋ก/์ ๋ฐ์ดํธ:
bash ~/openclaw/skills/self-evolving-agent/scripts/register-cron.sh
ํฌ๋ก JSON ์์ (~/.openclaw/cron/jobs.json์ ์ถ๊ฐ):
{
"name": "๐ง Self-Evolving Agent v4.0 ์ฃผ๊ฐ ํ์ดํ๋ผ์ธ",
"enabled": true,
"schedule": {
"kind": "cron",
"expr": "0 22 * * 0",
"tz": "Asia/Seoul"
},
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"model": "anthropic/claude-sonnet-4-5",
"message": "bash ~/openclaw/skills/self-evolving-agent/scripts/v4/orchestrator.sh ์คํ. ๊ฒฐ๊ณผ ํ
์คํธ๋ง ์ถ๋ ฅ."
},
"delivery": {
"mode": "announce",
"channel": "discord",
"to": "channel:YOUR_CHANNEL_ID"
}
}
๐ ๋ก์ปฌ ๋์๋ณด๋ (v4.1 ์ ๊ท) โญ
์ ์ ์ด๋ ฅ, ํ์ง ์ถ์ธ, ํจํด ๋น๋, ๊ท์น ํจ๊ณผ๋ฅผ ์๊ฐํํ๋ ๋ก์ปฌ ์น ๋์๋ณด๋.
# ๋น ๋ฅธ ์์ (์คํฌ ๋ฃจํธ์์ ์คํ)
bash dashboard/serve.sh
# โ http://localhost:8420/dashboard/ ์์ ์ด๊ธฐ
# ์ ์ ์ ํ ์ธ๋ฑ์ค ๊ฐฑ์
bash dashboard/build-index.sh
์ฃผ์ ํจ๋:
- ๐ Quality Trend โ ์๊ฐ๋ณ ํ์ง ์ ์ ๋ผ์ธ ์ฐจํธ
- ๐ฅ AGENTS.md Health โ ๊ตฌ์กฐ ์ ์ ๋ง + ํ์คํ ๋ฆฌ ์คํํฌ๋ผ์ธ
- ๐ Pattern Frequency โ ๋ถ๋ง ํจํด ์คํ ๋ฐ ์ฐจํธ
- ๐ Proposal History โ ์ ์ฒด ์ ์ ์ด๋ ฅ ํ ์ด๋ธ
- โก Active Rules Effectiveness โ ๊ท์น ํจ๊ณผ ์ธก์ (๋ น์/์ ์)
์์ธ:
dashboard/README.md
4๋จ๊ณ ํ์ดํ๋ผ์ธ ์ํคํ ์ฒ (v4.0)
Stage 1: ์์ง (collect)
collect-logs.sh
โโโ ์ฑํ
๋ก๊ทธ ์ค์บ (์ธ์
๋ณ ์ฒญํฌ ๋ถ๋ฆฌ)
โโโ exec ์ฌ์๋ ์ด๋ฒคํธ ์ถ์ถ (์ฐ์ 3ํ+ ํ์ง)
โโโ ํฌ๋ก ์๋ฌ ๋ก๊ทธ ํ์ฑ
โโโ ์ด์ ์ ์ + ์ ์ฉ ์ด๋ ฅ ๋ก๋
โโโ โ data/collect-YYYYMMDD.json
Stage 2: ๋ถ์ (analyze)
semantic-analyze.sh
โโโ ํค์๋ ๋งค์นญ (๊ธฐ์กด ๋ฐฉ์ ์ ์ง)
โโโ ๊ตฌ์กฐ์ ํด๋ฆฌ์คํฑ ๋ถ์ (v4.0 ์ ๊ท)
โ โโโ ์ญํ ํํฐ: user vs assistant ๋ฉ์์ง ๋ถ๋ฆฌ
โ โโโ ๋ฌธ๋งฅ ์๋์ฐ: ํค์๋ ์ ํ 3์ค ํ์ธ
โ โโโ ๋ฐ๋ณต ์๊ณ๊ฐ: ๋์ผ ์ธ์
๋ด ์ค๋ณต ์ ๊ฑฐ
โ โโโ ๊ฐ์ ๊ฐํ ์ ํธ: "!!", "??" ๋๋ฐ ์ฌ๋ถ
โโโ AGENTS.md ๊ท์น ์๋ฐ ๊ต์ฐจ ๋ถ์
โโโ ์ธ์
๊ฑด๊ฐ๋ ์งํ
โโโ โ data/analysis-YYYYMMDD.json
Stage 3: ๋ฒค์น๋งํฌ (benchmark)
benchmark.sh
โโโ ์ด์ ์ ์ฉ ์ ์ ๋ชฉ๋ก ๋ก๋
โโโ ์ ์ ์ ์ฉ ์ ํ ํจํด ๋น๋ ๋น๊ต
โโโ ํจ๊ณผ ๋ถ๋ฅ: Effective / Neutral / Regressed
โโโ ํจ๊ณผ ์๋ ์ ์ ์ฌ๊ฒํ ํ๋๊ทธ
โโโ โ data/benchmarks/benchmark-YYYYMMDD.json
Stage 4: ํฉ์ฑ (synthesize)
synthesize-proposal.sh
โโโ Stage 1-3 ๊ฒฐ๊ณผ ์ข
ํฉ
โโโ Claude API ํธ์ถ 1ํ (ํฉ์ฑ ์์ด์ ํธ)
โ โโโ ๋ถ์ ๋ฐ์ดํฐ โ ์์ฐ์ด ์ ์
โ โโโ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ โ "์ง๋ ์ฃผ #2 ์ ์ ํจ๊ณผ ์์" ํฌํจ
โ โโโ diff ํ์์ผ๋ก before/after ์์ฑ
โโโ โ Discord #your-channel ๊ฒ์
Stage 5: ํจ๊ณผ ์ธก์ (measure-effects)
measure-effects.sh
โโโ ๊ณผ๊ฑฐ ์ ์์ ํ๊ฒ ํจํด ๋น๋ ๋น๊ต
โโโ ์ธ์
ํธ๋์คํฌ๋ฆฝํธ + ํฌ๋ก ๋ก๊ทธ๋ง ์ค์บ (gateway ๋ก๊ทธ ์ ์ธ)
โโโ ํจ๊ณผ ๋ถ๋ฅ: Effective / Neutral / Regressed
โโโ โ /tmp/sea-v4/effects.json
๋ถ์ ํญ๋ชฉ (v4.0)
1. ๊ตฌ์กฐ์ ํด๋ฆฌ์คํฑ ๋ถ์ (v4.0 ์ ๊ท) โญ
ํค์๋ ๋งค์นญ์ ๋ฌธ๋งฅ ๋ถ์์ ๋ณด๊ฐ:
heuristic_analysis:
role_filter: true # user ๋ฉ์์ง๋ง ๋ถ์ (assistant ์ ์ธ)
context_window: 3 # ํค์๋ ์ ํ 3์ค ํ์ธ
dedup_per_session: true # ๋์ผ ์ธ์
๋ด ์ค๋ณต ํจํด 1ํ ๊ณ์ฐ
emotion_boost_signals: # ๊ฐ์ ๊ฐํ ์ ํธ (๊ฐ์ค์น +1.5x)
- "!!"
- "??"
- "์"
- "๋"
์ด ๊ฒฐ๊ณผ false positive: ~40% โ ์ถ์ ~15%
2. ์ฌ์ฉ์ ๋ถ๋ง ํจํด (ํค์๋ ๋งค์นญ + ์๋ ์ธ์ด ๊ฐ์ง, v4.1) โญ
v4.1๋ถํฐ ํ๊ตญ์ด/์์ด ํจํด์ด ๋ถ๋ฆฌ๋๊ณ , ์ธ์ ์ธ์ด๋ฅผ ์๋ ๊ฐ์งํด ์ ์ฉํฉ๋๋ค.
complaint_patterns:
ko: # ํ๊ตญ์ด ์ธ์
์ ์ ์ฉ
- "ํ์ธ์ค"
- "๋ค์"
- "์๊น"
- "๋ฐ๋ณต"
- "๊ธฐ์ต"
- "๋งํ์์"
- "๊ณ์"
- "๋ฌผ์ด๋ณด์ง ๋ง๊ณ "
- "์ ๋ถ ๋ค ํด์ค"
- "์ ๋"
en: # ์์ด ์ธ์
์ ์ ์ฉ
- "you forgot"
- "again?"
- "same mistake"
- "stop doing that"
- "how many times"
- "wrong again"
- "I told you"
- "still broken"
- "not what I asked"
auto_detect: true # ์ธ์
์ธ์ด ์๋ ๊ฐ์ง (ko/en ์๋ ์ ํ)
์๋ ์ธ์ด ๊ฐ์ง ๋ก์ง: ์ธ์
์ ์ฒซ 10๊ฐ user ๋ฉ์์ง ์ค >50%์ [๊ฐ-ํฃ]์ด ํฌํจ๋๋ฉด ko, ์๋๋ฉด en ํจํด ์ ์ฉ.
โ ๏ธ ์ฌ์ ํ ํ๊ณ: ๋จ์ด ๋ชฉ๋ก์ ์๋ ํจํด์ ๋ฏธํ์ง. config.yaml์์ ์ปค์คํฐ๋ง์ด์ง ํ์.
3. exec ์ฐ์ ์ฌ์๋ ๊ฐ์ง
๊ฐ์ exec ๋ช
๋ น์ 3ํ ์ด์ ์ฐ์ ์ฌ์๋ํ ์ธ์
ํ์ง
โ ์์ด์ ํธ๊ฐ ๋ฃจํ์ ๊ฐํ ์๋ค๋ ์ ํธ
โ 119ํ ์ฐ์ ์ฌ์๋ ์ค์ ๋ฐ๊ฒฌ (v3.0 ํ
์คํธ, v4.0์์๋ ์ ์ง)
4. ํฌ๋ก ์๋ฌ ๋ฐ๋ณต ํ์ง
~/.openclaw/logs/cron-catchup.log
~/.openclaw/logs/heartbeat-cron.log
โ ๋์ผ ์๋ฌ 5ํ ์ด์ ๋ฐ๋ณต = ๊ตฌ์กฐ์ ๋ฒ๊ทธ
5. AGENTS.md ๊ท์น ์๋ฐ
AGENTS.md ๊ท์น ๋ชฉ๋ก ์ถ์ถ โ ์ค์ transcript์ ๊ต์ฐจ ๋ถ์
โ "๊ท์น์ ์์ง๋ง ์ ์งํจ ๊ฒ" ์๋ณ
โ "๊ท์น ์๋๋ฐ ์์ฃผ ์ค์ํ ๊ฒ" ์๋ณ
6. ์ธ์ ๊ฑด๊ฐ๋
์ปดํฉ์
5ํ ์ด์ = ์ธ์
์ด ๋๋ฌด ๊ธธ๊ฑฐ๋ ๋ณต์ก
โ ์๋ธ์์ด์ ํธ ๋ถ๋ฆฌ ๊ถ๊ณ ์ ์ ํธ๋ฆฌ๊ฑฐ
7. ํจ๊ณผ ์ธก์ ๋ฃจํ (v4.0 ์ ๊ท) โญ
์ด์ ์ฃผ๊ธฐ์ ์ ์ฉ๋ ์ ์๋ค์ ํจ๊ณผ๋ฅผ ์ถ์ :
โ ์ ์ฉ ์ ํจํด ๋น๋ vs ์ ์ฉ ํ ํจํด ๋น๋ ๋น๊ต
โ Effective: ๋น๋ 30%+ ๊ฐ์
โ Neutral: ยฑ30% ์ด๋ด
โ Regressed: ๋น๋ ์ฆ๊ฐ (์ฌ๊ฒํ ํ์)
์ ์ ํ์
Discord #your-channel์ ์ด๋ฐ ํ์์ผ๋ก ๊ฒ์:
## ๐ง Self-Evolving Agent v4.0 ์ฃผ๊ฐ ๋ถ์
๐
๋ถ์ ๊ธฐ๊ฐ: 2026-02-10 ~ 2026-02-17
๐ ๋ถ์๋ ์ธ์
: 30๊ฐ (์ ์ฒด 964๊ฐ ์ค ์ํ)
โก exec ์ฌ์๋ ์ด๋ฒคํธ: 405๊ฑด (์ต๋ 119ํ ์ฐ์)
๐ด ํ์ฑ ํฌ๋ก ์๋ฌ: 3๊ฐ
๐ ์ง๋ ์ฃผ ์ ์ ํจ๊ณผ: #2 Effective (ํจํด -43%), #3 Neutral
๐ ์ ์: 3๊ฐ
---
### ์ ์ #1: exec ์ฐ์ ์ฌ์๋ ์ ํ (HIGH)
**๊ทผ๊ฑฐ:** 7์ผ๊ฐ 405๊ฑด ์ฌ์๋ ์ด๋ฒคํธ, ์ต๋ 119ํ ์ฐ์ ์ฌ์๋
**์ญํ ํํฐ:** user ๋ฉ์์ง ๊ธฐ์ค (assistant ์ ์ธ)
**Before:** ์ฐ์ ์ฌ์๋ ์ ๊ท์น ์์ (๋ฌดํ ๋ฃจํ ๊ฐ๋ฅ)
**After:**
๊ฐ์ exec 3ํ ์คํจ ์:
1. ์๋ฌ ์ฆ์ ์ฌ์ฉ์ ๋ณด๊ณ
2. 2๋ฒ์งธ ์๋๋ ๋ฐฉ๋ฒ ๋ณ๊ฒฝ
3. 3๋ฒ์งธ ์คํจ = ์ค๋จ + ์๋ ํ์ธ ์์ฒญ
---
โ
์ ์ฉ: "์ ์ #1 ์ ์ฉํด์ค"
โ ๊ฑฐ๋ถ: "๊ฑฐ๋ถ: [์ด์ ]"
๐ LLM ์ ๊ณต์ ์ค์ (v4.2 ์ ๊ท)
config.yaml์ llm ์น์
์ผ๋ก ํฉ์ฑ ๋จ๊ณ์ LLM์ ์ ํํฉ๋๋ค.
llm:
provider: "ollama" # anthropic | openai | ollama | none
| ์ ๊ณต์ | ๋น์ฉ | API ํค | ์ธํฐ๋ท | ํ์ง | |--------|------|--------|--------|------| | anthropic | ~$0.05/์ฃผ | ANTHROPIC_API_KEY | ํ์ | โญโญโญโญโญ | | openai | ~$0.05/์ฃผ | OPENAI_API_KEY | ํ์ | โญโญโญโญโญ | | ollama ๐ | $0.00 | ์์ | ์์ | โญโญโญโญ | | none | $0.00 | ์์ | ์์ | ํด๋ฆฌ์คํฑ๋ง |
๐ก Ollama ์ค์ (์์ ๋ฌด๋ฃ!)
# 1. Ollama ์ค์น
brew install ollama
# 2. ๋ชจ๋ธ ๋ค์ด๋ก๋ (1ํ๋ง)
ollama pull llama3.1:8b # ์ถ์ฒ: ๊ท ํ ์กํ ์ฑ๋ฅ
# ๋๋
ollama pull mistral:7b # ๋ ๋น ๋ฆ
ollama pull gemma3:9b # Google ๋ชจ๋ธ
# 3. ์๋ฒ ์คํ (๋ฐฑ๊ทธ๋ผ์ด๋)
ollama serve &
# 4. config.yaml ์ค์
# llm:
# provider: "ollama"
# ollama:
# model: "llama3.1:8b"
# url: "http://localhost:11434"
๐ก none ๋ชจ๋ (์์ ํด๋ฆฌ์คํฑ)
LLM ์์ด ์ ์คํฌ๋ฆฝํธ ํด๋ฆฌ์คํฑ ๋ถ์๋ง ์ํํฉ๋๋ค. API ๋น์ฉ $0, ์ธํฐ๋ท ๋ถํ์.
llm:
provider: "none"
ํฉ์ฑ ๋จ๊ณ์์ LLM ๊ฐํ ์ ์ ์น์ ์ด ์๋ต๋ฉ๋๋ค. ๊ธฐ๋ณธ ๋ถ์/์ ์์ ๊ทธ๋๋ก ์ ๊ณต๋ฉ๋๋ค.
llm-call.sh ์ง์ ์ฌ์ฉ
# Ollama๋ก ํ๋กฌํํธ ์ ์ก
echo "๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์์ฝํด์ค" | bash scripts/v4/llm-call.sh --provider ollama
# Anthropic์ผ๋ก ์ ์ก
echo "๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์์ฝํด์ค" | bash scripts/v4/llm-call.sh --provider anthropic --model claude-haiku-4-5
# ์ ๊ณต์ ์์ (๋น JSON ๋ฐํ)
echo "ํ
์คํธ" | bash scripts/v4/llm-call.sh --provider none
# config.yaml ์๋ ์ฝ๊ธฐ (ํ๋๊ทธ ์๋ต ๊ฐ๋ฅ)
echo "๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์์ฝํด์ค" | bash scripts/v4/llm-call.sh
์ปค์คํฐ๋ง์ด์ง
# config.yaml
analysis:
days: 14 # ๋ถ์ ๊ธฐ๊ฐ (๊ธฐ๋ณธ 7์ผ)
max_sessions: 50 # ์ต๋ ์ธ์
์
complaint_patterns: # v4.1: ์ธ์ด๋ณ ๋ถ๋ฆฌ ๊ตฌ์กฐ
ko: # ํ๊ตญ์ด ํจํด ์ปค์คํฐ๋ง์ด์ง
- "๋ฌผ์ด๋ณด์ง ๋ง๊ณ "
- "์ ๋ถ ๋ค ํด์ค"
- "๋๋ณด๊ณ ํ๋ผ๊ณ "
en: # ์์ด ํจํด ์ปค์คํฐ๋ง์ด์ง
- "you're useless"
- "that's wrong again"
- "stop asking me"
auto_detect: true # ์ธ์
์ธ์ด ์๋ ๊ฐ์ง
exec_retry_threshold: 3 # ๋ช ํ ์ฌ์๋๋ถํฐ ํ์งํ ์ง
log_error_repeat_threshold: 5 # ๋์ผ ์๋ฌ ๋ช ํ๋ถํฐ ์ฌ๊ฐ์ผ๋ก ๋ณผ์ง
# v4.0 ์ ๊ท
heuristic:
role_filter: true # user ๋ฉ์์ง๋ง ๋ถ์
context_window: 3 # ์ ํ ๋ช ์ค ํ์ธ
dedup_per_session: true # ์ธ์
๋ด ์ค๋ณต ์ ๊ฑฐ
emotion_boost: true # ๊ฐ์ ๊ฐํ ์ ํธ ๊ฐ์ค์น
benchmark:
enabled: true # ํจ๊ณผ ์ธก์ ํ์ฑํ
effective_threshold: 0.30 # 30% ๊ฐ์ = Effective ํ์
cron:
schedule: "0 22 * * 0" # ์ผ์์ผ 22์ (๊ธฐ๋ณธ)
discord_channel: "" # Required: set your Discord channel ID
๋ฐฐ๋ฌ ์ค์ (Multi-Platform Delivery)
config.yaml์ delivery ์น์
์ผ๋ก ์ ์์ ์ ์ก ํ๋ซํผ์ ์ ํํฉ๋๋ค.
delivery:
platform: "discord" # discord | slack | telegram | webhook
Discord (๊ธฐ๋ณธ)
OpenClaw ํฌ๋ก ์ delivery ์ค์ ์ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค. deliver.sh ํธ์ถ ์์.
delivery:
platform: "discord"
discord:
channel_id: "YOUR_CHANNEL_ID"
Slack
Slack Incoming Webhook์ ์ฌ์ฉํฉ๋๋ค. Slack Webhook ์์ฑ ๊ฐ์ด๋
delivery:
platform: "slack"
slack:
webhook_url: "https://hooks.slack.com/services/T.../B.../..."
Telegram
BotFather์์ ๋ฐ๊ธํ ํ ํฐ๊ณผ ์ฑํ ๋ฐฉ ID๊ฐ ํ์ํฉ๋๋ค.
delivery:
platform: "telegram"
telegram:
bot_token: "123456:ABC-DEF..."
chat_id: "-1001234567890" # ์ฑ๋์ -100์ผ๋ก ์์
Generic Webhook
JSON POST๋ก ์์ ์๋ํฌ์ธํธ์ ์ ์กํฉ๋๋ค.
delivery:
platform: "webhook"
webhook:
url: "https://your-server.example.com/sea-proposals"
method: "POST"
Payload ํ์:
{
"source": "self-evolving-agent",
"version": "4.0",
"timestamp": "2026-02-18T00:00:00Z",
"proposal": "## ๐ง SEA v4.0 ...(๋งํฌ๋ค์ด)..."
}
๋ฐฐ๋ฌ ์คํจ ์ ํด๋ฐฑ
์ ์ก์ ์คํจํ๋ฉด data/undelivered/YYYYMMDD-HHMMSS-<platform>.md์ ์ ์ฅ๋ฉ๋๋ค.
์๋ ์ฌ์ ์ก: PLATFORM=slack bash scripts/v4/deliver.sh data/undelivered/<ํ์ผ>
์์ ๊ท์น (๋ณด์ ๊ฐ์กฐ)
- โ ์ ์๋ง ํฉ๋๋ค โ AGENTS.md๋ฅผ ์ง์ ์์ ํ๋ ์ฝ๋ ๊ฒฝ๋ก ์์
- โ diff ํ์ โ before/after๋ก ๋ช ํํ ๋ณ๊ฒฝ์ฌํญ ์ ์
- โ ๊ทผ๊ฑฐ ํ์ โ ์ธก์ ๋ ๋ฐ์ดํฐ(์ค์ ์นด์ดํธ)๊ฐ ์์ผ๋ฉด ์ ์ ์์
- โ ์น์ธ ํ ์ ์ฉ โ ์ฌ์ฉ์ ๋ช ์์ ์น์ธ ์์๋ง AGENTS.md ๋ฐ์ + git commit
- โ ๊ฑฐ๋ถ ๊ธฐ๋ก โ ๊ฑฐ๋ถ ์ด์ ๋ฅผ ๋ค์ ๋ถ์ ์ฌ์ดํด์ ๋ฐ์
- โ ๋ก์ปฌ ์ฐ์ โ ๋ถ์์ ๋ก์ปฌ์์, API ํธ์ถ์ ํฉ์ฑ ์์ด์ ํธ 1ํ๋ฟ
- โ ์ฝ๋ ํฌ๋ช ์ฑ โ ์ ์ฒด ๋ถ์ ์คํฌ๋ฆฝํธ ~400์ค, 15๋ถ์ด๋ฉด ๋ค ์ฝ์
- โ ํจ๊ณผ ์ธก์ โ ์ ์ฉ๋ ์ ์์ ํจ๊ณผ๋ฅผ ๋ค์ ์ฃผ๊ธฐ์ ๋ฆฌํฌํธ
ํ๊ณ (์์งํ๊ฒ)
| ํ๊ณ | v3.0 | v4.0 ๊ฐ์ | v5.0 ๊ฐ์ | |------|------|-----------|-----------| | ํค์๋ ๋งค์นญ (์๋ฏธ๋ก ์๋) | FP ~40% | ํด๋ฆฌ์คํฑ์ผ๋ก ~15% | ์๋ฒ ๋ฉ์ผ๋ก ~8% โ | | assistant ๋ฐํ ํํฐ ๋ถ์์ | "๋ค์", "๊ณ์" ๊ณผ๋ค ๊ณ์ฐ | role_filter๋ก ๊ฐ์ | ๋์ผ (์ ์ง) | | ํค์๋ ๋ชฉ๋ก์ ์์ผ๋ฉด ๋ฏธํ์ง | ์์จ์คํ ์๊ตฌ ํจํด ๋์นจ | ์ฌ์ ํ ๋์ผ | ์๋ฒ ๋ฉ ์ ์ฌ๋๋ก ๋ชฉ๋ก ์ธ ํจํด ๊ฐ์ง โ | | ๊ฐ์ ํจ๊ณผ ๋ฏธ์ธก์ | ๋์๋๋์ง ๋ชจ๋ฆ | ๋ฒค์น๋งํฌ ๋ฃจํ๋ก ํด๊ฒฐ โ | ๋์ผ (์ ์ง) | | ์์ด ์ธ์ ํจํด ๋ฏธ์ง์ | ์์ด ๊ฐ์ง ๋ถ๊ฐ | ko/en + auto_detect โ | ๋์ผ (์ ์ง) | | ๋ฐ์ดํฐ ๋ถ์กฑ ์ ์ ์ ํ์ง ํ๋ฝ | generic ์ ์ | ์ฌ์ ํ ๋์ผ | ์ฌ์ ํ ๋์ผ | | Cold start | ์ฒ์ 2-4์ฃผ ๋ฐ์ดํฐ ์์ | ์ฌ์ ํ ๋์ผ | ์ฌ์ ํ ๋์ผ | | ์ฃผ 1ํ ๋ฐฐ์น๋ง ๊ฐ๋ฅ | ์ฃผ๊ฐ ์ฌ๊ฐ์ง๋ ์์ | ์ฌ์ ํ ๋์ผ | ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ํฐ๋ก ํด๊ฒฐ โ | | ๋จ์ผ ์ธ์คํด์ค๋ง ๋ถ์ | ๋ค์ค ์์ด์ ํธ ๋ถ์ ๋ถ๊ฐ | ์ฌ์ ํ ๋์ผ | ํ๋ฆฟ ๋ถ์์ผ๋ก ํด๊ฒฐ โ |
v5.0์์ ์ฌ์ ํ ํด๊ฒฐ ๋ชป ํ ๊ฒ:
- ํผ์ฉ ์ธ์ (ํ์ ํผํฉ) ์ ๋ฐ ์ฒ๋ฆฌ โ ์๋ฒ ๋ฉ์ด ์ํํ์ง๋ง ์์ ํด๊ฒฐ์ ์๋
- ํจ๊ณผ ์ธก์ ์ ๋น๋ ๊ธฐ๋ฐ ์๊ด๊ด๊ณ โ ์ธ๊ณผ๊ด๊ณ ๋ถ์ ์๋ (v5.2 ๊ณํ)
- ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ํฐ๋ ๋ณ๋ ํ๋ก์ธ์ค ํ์ โ ํฌ๋ก ์ธ ์์ ๊ฐ๋ ํ์
- ํ๋ฆฟ ๋ถ์์ 4์ฃผ+ ์ด๋ ฅ์ด ์์ด์ผ ์๋ฏธ ์๋ ํธ๋ ๋ ๋์ถ ๊ฐ๋ฅ
v5.0 ๋ณ๊ฒฝ์ฌํญ (2026-02-18)
- โ
scripts/v5/embedding-analyze.sh์ ์ค โ Ollamanomic-embed-text์๋งจํฑ ์๋ฒ ๋ฉ ๋ถ์ (Pillar 1) - โ
scripts/v5/stream-monitor.sh์ ์ค โ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ํฐ + ์๊ณ์น ์๋ฆผ (Pillar 2) - โ
scripts/v5/fleet-analyzer.sh์ ์ค โ ๋ค์ค ์์ด์ ํธ ์ธ์คํด์ค ๊ต์ฐจ ๋ถ์ (Pillar 3) - โ
scripts/v5/trend-analyzer.sh์ ์ค โ 4์ฃผ๊ฐ ํจํด ์ถ์ธ ๋น๊ต (Emerging/Resolved) - โ
scripts/v5/orchestrator.sh์ ์ค โ v5 6๋จ๊ณ ์ค์ผ์คํธ๋ ์ดํฐ (v4 ํด๋ฐฑ ๋ด์ฅ) - โ
bin/seav2.0.0 โmonitor,alerts,trends,patterns,fleet์ปค๋งจ๋ ์ถ๊ฐ - โ
config.yamlโembedding,streaming,fleet,trends์น์ ์ถ๊ฐ - โ
tests/test-v5.sh์ ์ค โ v5 ์ปดํฌ๋ํธ ๋ ๋ฆฝ ํ ์คํธ (Ollama ๋ถํ์) - โ
docs/v5-architecture.md์ ์ค โ ์ ์ฒด ์ํคํ ์ฒ ๋ฌธ์ (ASCII ๋ค์ด์ด๊ทธ๋จ) - โ
docs/migration-v4-to-v5.md์ ์ค โ v4 โ v5 ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ์ด๋ - โ
Makefileโmake test-v5,make testv5 ํฌํจ
v4.3 ๋ณ๊ฒฝ์ฌํญ (2026-02-18)
- โ
scripts/v4/interactive-approve.sh์ ์ค โ sea watch, macOS ์๋ฆผ, ๋ํํ approve/reject - โ
scripts/v4/export-report.sh์ ์ค โ markdown/html/json/pdf/all ๋ฆฌํฌํธ ๋ด๋ณด๋ด๊ธฐ - โ
scripts/v4/github-issue.sh์ ์ค โ GitHub Issues ํตํฉ (์์ฑ/์ข ๋ฃ/๋๊ธฐํ/๋ ์ด๋ธ) - โ
bin/seav1.1.0 โwatch,export,github์ปค๋งจ๋ ์ถ๊ฐ - โ
synthesize-proposal.shโ Discord ๋ฆฌ์ก์ ์ง์ ํธํฐ ์๋ ์ถ๊ฐ - โ
config.yamlโgithub,interactive,export์น์ ์ถ๊ฐ - โ
sea approveโ GitHub ์ด์ ์๋ ์ข ๋ฃ ์ฐ๋ (GH_TOKEN ์์ ๋)
v4.2 ๋ณ๊ฒฝ์ฌํญ (2026-02-18)
- โ
Ollama/๋ก์ปฌ LLM ์์ ์ง์: config.yaml
llm.provider์ค์ ํ ์ค๋ก ์ ํ - โ
scripts/v4/llm-call.sh์ ์ค โ anthropic/openai/ollama/none ํตํฉ ์ธํฐํ์ด์ค - โ
Zero-Cost ๋ชจ๋:
provider: "ollama"๋๋provider: "none"โ API ๋น์ฉ $0/์ฃผ - โ
synthesize-proposal.sh: LLM ๊ฐํ ์ ์ ์น์ ์ถ๊ฐ (none์ด๋ฉด ์๋ต) - โ
config.yaml:llm์น์ ์ถ๊ฐ (provider/anthropic/openai/ollama/none)
v4.1 ๋ณ๊ฒฝ์ฌํญ (2026-02-18)
- โ ๋ฉํฐํ๋ซํผ ๋ฐฐ๋ฌ ์ง์: Slack / Telegram / Generic Webhook
- โ
scripts/v4/deliver.sh์ ์ค โ ํ๋ซํผ๋ณ ๋ ๋ฆฝ ํธ๋ค๋ฌ (๊ฐ <30์ค) - โ
data/undelivered/๋๋ ํ ๋ฆฌ โ ๋ฐฐ๋ฌ ์คํจ ์ ์๋ ์ ์ฅ (์ ์ค ๋ฐฉ์ง) - โ
config.yaml:delivery์น์ ์ถ๊ฐ - โ
config-loader.sh: ๋ฐฐ๋ฌ ์ค์ ์๋ ๋ ธ์ถ (SEA_DELIVERY_PLATFORM๋ฑ) - โ
orchestrator.sh: synthesize ์ดํ platform != discord ์ deliver.sh ์๋ ํธ์ถ
v4.1 ๋ณ๊ฒฝ์ฌํญ
- โ
์์ด + ํ๊ตญ์ด ๋ถ๋ง ํจํด ๋์ ์ง์: config.yaml
complaint_patternsโko/en๋ถ๋ฆฌ ๊ตฌ์กฐ - โ
์๋ ์ธ์ด ๊ฐ์ง: ์ธ์
์ฒซ 10๊ฐ user ๋ฉ์์ง ๊ธฐ๋ฐ ์ธ์ด ์๋ ํ๋ณ (
auto_detect: true) - โ
semantic-analyze.sh:load_config_patterns()+detect_session_language()ํจ์ ์ถ๊ฐ - โ
collect-logs.sh: ๋ถ๋ง ํค์๋ ๋ชฉ๋ก ko/en ๋ถ๋ฆฌ, config.yaml ์ฐ์ ๋ก๋ - โ
config.yaml:
complaint_patterns.ko/.en/auto_detect๊ตฌ์กฐ๋ก ์ฌํธ
v4.0 ๋ณ๊ฒฝ์ฌํญ
- โ 4๋จ๊ณ ๋ฉํฐ์์ด์ ํธ ํ์ดํ๋ผ์ธ ๋์ (collect โ analyze โ benchmark โ synthesize)
- โ ๊ตฌ์กฐ์ ํด๋ฆฌ์คํฑ ๋ถ์: role_filter + context_window + dedup_per_session
- โ ํจ๊ณผ ์ธก์ ๋ฃจํ: ์ด์ ์ ์ ํจ๊ณผ๋ฅผ ๋ค์ ์ฃผ๊ธฐ์ ์๋ ์ธก์
- โ False positive ๊ฐ์: ~40% โ ์ถ์ ~15%
- โ ์ฑ๋ฅ ๋ชฉํ: ์ด ์คํ ์๊ฐ <3๋ถ, ๋น์ฉ <$0.05/ํ (Sonnet ๊ธฐ์ค)
- โ
scripts/v4/๋๋ ํ ๋ฆฌ ์ ์ค (v3.0 ์คํฌ๋ฆฝํธ๋ ํ์ ํธํ ์ ์ง) - โ
data/benchmarks/๋๋ ํ ๋ฆฌ ์ ์ค (ํจ๊ณผ ์ธก์ ๊ฒฐ๊ณผ ์ ์ฅ) - โ
docs/v4-architecture.md์ ์ค (์์ธ ์ํคํ ์ฒ ๋ฌธ์)
v3.0 ๋ณ๊ฒฝ์ฌํญ (์ฐธ๊ณ )
- โ exec ์ฐ์ ์ฌ์๋ ํ์ง ์ถ๊ฐ (119ํ ์ฐ์ ์ฌ๋ก ์ค์ ๋ฐ๊ฒฌ)
- โ ๋์ผ ์๋ฌ ๋ฐ๋ณต ๋ถ์ ์ถ๊ฐ (18ํ heartbeat ๋ฒ๊ทธ ๋ฐ๊ฒฌ)
- โ ์ธ์ ๊ฑด๊ฐ๋ ์งํ ์ถ๊ฐ (์ปดํฉ์ ์นด์ดํธ)
- โ README ์์ ์ฌ์์ฑ (์์งํ ํ๊ณ ๋ช ์)
self-improving-agent์ ์ฐจ์ด
| | self-improving-agent | self-evolving-agent | |--|--|--| | ๋ฒ์ | ์ธ์ 1๊ฐ | 7์ผ์น ์ ์ฒด ์ธ์ | | ํ์ด๋ฐ | ๊ฐ ์ธ์ ์งํ ์ค์๊ฐ | ๋งค์ฃผ ์ผ์์ผ | | ์ถ๋ ฅ | ์ธ์ ํ์ง ์ ์ + ๊ตํ | AGENTS.md diff ์ ์ | | ๊ฐ์ | ์ฆ๊ฐ์ ํผ๋๋ฐฑ | ์์คํ ํจํด ๋ฐ๊ฒฌ | | v4.0 ์ฐ๋ | ํ์ง ์ค์ฝ์ด โ ๋ถ์ ๊ฐ์ค์น | ์ง๊ณ + ๋ฒค์น๋งํฌ |
ํจ๊ป ์ฐ๋ฉด: self-improving์ด ์ธ์ ํ์ง ๋ฐ์ดํฐ๋ฅผ ์์ฑ โ self-evolving์ด ์ง๊ณํด์ ์์คํ ์์ค ๋ฌธ์ ๋ฐ๊ฒฌ + ํจ๊ณผ ์ธก์ .
ๆซ็ ่็ณปๅจ็บฟๅฎขๆ