Install
openclaw skills install @ramsbaby/self-evolving-agentAI ๋น์๊ฐ ์๊ธฐ ๋ก๊ทธ๋ฅผ ๋ถ์ํด์ AGENTS.md ๊ฐ์ ์์ ์ ์ํ๋ ์๋ํ. v5.0: ์๋งจํฑ ์๋ฒ ๋ฉ(Ollama nomic-embed-text, FP ~8%), ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ํฐ(<30์ด ์๋ฆผ), ํ๋ฆฟ ๋ถ์(๋ค์ค ์ธ์คํด์ค). v4.3: ๋ํํ ์น์ธ, ๋ฉํฐํฌ๋งท ๋ฆฌํฌํธ, GitHub Issues. v4.2: Ollama LLM. v4.1: ๋ฉํฐํ๋ซํผ ๋ฐฐ๋ฌ. v4.0: 4๋จ๊ณ ํ์ดํ๋ผ์ธ. ์ ์๋ง ํจ, ์ง์ ์์ ์ ๋ ์์.
openclaw skills install @ramsbaby/self-evolving-agent๋งค์ฃผ ๋ก๊ทธ๋ฅผ ์ฝ๊ณ , ์๋งจํฑ ์๋ฒ ๋ฉ์ผ๋ก ์๋ฏธ๋ก ์ ํจํด์ ์ฐพ๊ณ , ์ค์๊ฐ ๋ชจ๋ํฐ๋ง์ผ๋ก ์ฆ๊ฐ ์๋ฆฌ๊ณ , ํจ๊ณผ๊ฐ ์ธก์ ๋ AGENTS.md ๊ฐ์ ์์ ์ ์ํ๋ ์๋ํ ์์คํ
.
์ ์๋ง ํฉ๋๋ค. AGENTS.md๋ ์ฌ์ฉ์๊ฐ ์น์ธํด์ผ๋ง ์์ ๋ฉ๋๋ค.
์ด ์คํฌ์ "AI ์๊ธฐ์งํ"๋ผ๋ ์ด๋ฆ์ ๋ฌ๊ณ ์์ง๋ง ์ค์ ๋์์ ํฌ๋ช ํฉ๋๋ค:
๊ณผ๋ ๊ด๊ณ ์๋๋๋ค. ์๋ฒฝํ์ง ์์ต๋๋ค. ํ์ง๋ง v4.x๋ณด๋ค ํจ์ฌ ์ ํํฉ๋๋ค.
v5.0์์ ๋ฌ๋ผ์ง ๊ฒ (2026-02-18):
sea patterns โ Ollama nomic-embed-text ๋ก์ปฌ ์๋ฒ ๋ฉ์ผ๋ก ์๋ฏธ๋ก ์ ๋ถ๋ง ๊ฐ์ง, FP ~15% โ ~8%sea monitor โ ์ค์๊ฐ ๋ก๊ทธ ๊ฐ์, ์๊ณ์น ์ด๊ณผ ์ฆ๊ฐ ์๋ฆผ (<30์ด)sea fleet โ ๋ค์ค ์์ด์ ํธ ์ธ์คํด์ค ๊ต์ฐจ ๋ถ์sea trends โ 4์ฃผ๊ฐ ํจํด ์ถ์ธ (Emerging/Resolved/Stable)sea monitor, sea alerts, sea trends, sea patterns, sea fleetv4.3์์ ๋ฌ๋ผ์ง ๊ฒ:
sea watch โ 30์ด ํด๋ง, macOS ๋ฐ์คํฌํ ์๋ฆผ, ํฐ๋ฏธ๋ ๋ํํ approve/rejectโ
โ ๐ ๋ฆฌ์ก์
์ง์ ์๋ ์ถ๊ฐsea export โ markdown/html/json/pdf/all ํ์ ์ง์sea github โ ์ ์๋ณ ์ด์ ์์ฑ, ์น์ธ ์ ์๋ ์ข
๋ฃ, ๋ ์ด๋ธ ๊ด๋ฆฌv4.2์์ ๋ฌ๋ผ์ง ๊ฒ:
config.yaml์์ provider: "ollama" ์ค์ ํ ์ค๋ก ์ ํprovider: "none" ์กฐํฉ์ผ๋ก API ๋น์ฉ $0.00/์ฃผ ์ด์scripts/v4/llm-call.sh โ anthropic/openai/ollama/none ํตํฉv4.1์์ ๋ฌ๋ผ์ง ๊ฒ:
ko / en ๋ถ๋ฆฌ ๊ตฌ์กฐconfig.yaml์ auto_detect: true ์ค์ ์ผ๋ก ์ ์ด ๊ฐ๋ฅv4.0์์ ๋ฌ๋ผ์ง ๊ฒ:
~/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๋ Self-Evolving Agent์ ๋ช
๋ น์ค ์ธํฐํ์ด์ค์
๋๋ค. ์ ์ ๊ด๋ฆฌ, ํ์ดํ๋ผ์ธ ์คํ, AGENTS.md ์ ์ฉ์ ํฐ๋ฏธ๋์์ ์ง์ ์ํํ ์ ์์ต๋๋ค.
# ~/.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 / after diff ์ถ๋ ฅAGENTS.md์ before ํ
์คํธ๋ฅผ after๋ก ๊ต์ฒด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"
}
}
์ ์ ์ด๋ ฅ, ํ์ง ์ถ์ธ, ํจํด ๋น๋, ๊ท์น ํจ๊ณผ๋ฅผ ์๊ฐํํ๋ ๋ก์ปฌ ์น ๋์๋ณด๋.
# ๋น ๋ฅธ ์์ (์คํฌ ๋ฃจํธ์์ ์คํ)
bash dashboard/serve.sh
# โ http://localhost:8420/dashboard/ ์์ ์ด๊ธฐ
# ์ ์ ์ ํ ์ธ๋ฑ์ค ๊ฐฑ์
bash dashboard/build-index.sh
์ฃผ์ ํจ๋:
์์ธ:
dashboard/README.md
collect-logs.sh
โโโ ์ฑํ
๋ก๊ทธ ์ค์บ (์ธ์
๋ณ ์ฒญํฌ ๋ถ๋ฆฌ)
โโโ exec ์ฌ์๋ ์ด๋ฒคํธ ์ถ์ถ (์ฐ์ 3ํ+ ํ์ง)
โโโ ํฌ๋ก ์๋ฌ ๋ก๊ทธ ํ์ฑ
โโโ ์ด์ ์ ์ + ์ ์ฉ ์ด๋ ฅ ๋ก๋
โโโ โ data/collect-YYYYMMDD.json
semantic-analyze.sh
โโโ ํค์๋ ๋งค์นญ (๊ธฐ์กด ๋ฐฉ์ ์ ์ง)
โโโ ๊ตฌ์กฐ์ ํด๋ฆฌ์คํฑ ๋ถ์ (v4.0 ์ ๊ท)
โ โโโ ์ญํ ํํฐ: user vs assistant ๋ฉ์์ง ๋ถ๋ฆฌ
โ โโโ ๋ฌธ๋งฅ ์๋์ฐ: ํค์๋ ์ ํ 3์ค ํ์ธ
โ โโโ ๋ฐ๋ณต ์๊ณ๊ฐ: ๋์ผ ์ธ์
๋ด ์ค๋ณต ์ ๊ฑฐ
โ โโโ ๊ฐ์ ๊ฐํ ์ ํธ: "!!", "??" ๋๋ฐ ์ฌ๋ถ
โโโ AGENTS.md ๊ท์น ์๋ฐ ๊ต์ฐจ ๋ถ์
โโโ ์ธ์
๊ฑด๊ฐ๋ ์งํ
โโโ โ data/analysis-YYYYMMDD.json
benchmark.sh
โโโ ์ด์ ์ ์ฉ ์ ์ ๋ชฉ๋ก ๋ก๋
โโโ ์ ์ ์ ์ฉ ์ ํ ํจํด ๋น๋ ๋น๊ต
โโโ ํจ๊ณผ ๋ถ๋ฅ: Effective / Neutral / Regressed
โโโ ํจ๊ณผ ์๋ ์ ์ ์ฌ๊ฒํ ํ๋๊ทธ
โโโ โ data/benchmarks/benchmark-YYYYMMDD.json
synthesize-proposal.sh
โโโ Stage 1-3 ๊ฒฐ๊ณผ ์ข
ํฉ
โโโ Claude API ํธ์ถ 1ํ (ํฉ์ฑ ์์ด์ ํธ)
โ โโโ ๋ถ์ ๋ฐ์ดํฐ โ ์์ฐ์ด ์ ์
โ โโโ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ โ "์ง๋ ์ฃผ #2 ์ ์ ํจ๊ณผ ์์" ํฌํจ
โ โโโ diff ํ์์ผ๋ก before/after ์์ฑ
โโโ โ Discord #your-channel ๊ฒ์
measure-effects.sh
โโโ ๊ณผ๊ฑฐ ์ ์์ ํ๊ฒ ํจํด ๋น๋ ๋น๊ต
โโโ ์ธ์
ํธ๋์คํฌ๋ฆฝํธ + ํฌ๋ก ๋ก๊ทธ๋ง ์ค์บ (gateway ๋ก๊ทธ ์ ์ธ)
โโโ ํจ๊ณผ ๋ถ๋ฅ: Effective / Neutral / Regressed
โโโ โ /tmp/sea-v4/effects.json
ํค์๋ ๋งค์นญ์ ๋ฌธ๋งฅ ๋ถ์์ ๋ณด๊ฐ:
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%
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์์ ์ปค์คํฐ๋ง์ด์ง ํ์.
๊ฐ์ exec ๋ช
๋ น์ 3ํ ์ด์ ์ฐ์ ์ฌ์๋ํ ์ธ์
ํ์ง
โ ์์ด์ ํธ๊ฐ ๋ฃจํ์ ๊ฐํ ์๋ค๋ ์ ํธ
โ 119ํ ์ฐ์ ์ฌ์๋ ์ค์ ๋ฐ๊ฒฌ (v3.0 ํ
์คํธ, v4.0์์๋ ์ ์ง)
~/.openclaw/logs/cron-catchup.log
~/.openclaw/logs/heartbeat-cron.log
โ ๋์ผ ์๋ฌ 5ํ ์ด์ ๋ฐ๋ณต = ๊ตฌ์กฐ์ ๋ฒ๊ทธ
AGENTS.md ๊ท์น ๋ชฉ๋ก ์ถ์ถ โ ์ค์ transcript์ ๊ต์ฐจ ๋ถ์
โ "๊ท์น์ ์์ง๋ง ์ ์งํจ ๊ฒ" ์๋ณ
โ "๊ท์น ์๋๋ฐ ์์ฃผ ์ค์ํ ๊ฒ" ์๋ณ
์ปดํฉ์
5ํ ์ด์ = ์ธ์
์ด ๋๋ฌด ๊ธธ๊ฑฐ๋ ๋ณต์ก
โ ์๋ธ์์ด์ ํธ ๋ถ๋ฆฌ ๊ถ๊ณ ์ ์ ํธ๋ฆฌ๊ฑฐ
์ด์ ์ฃผ๊ธฐ์ ์ ์ฉ๋ ์ ์๋ค์ ํจ๊ณผ๋ฅผ ์ถ์ :
โ ์ ์ฉ ์ ํจํด ๋น๋ 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 ์ ์ฉํด์ค"
โ ๊ฑฐ๋ถ: "๊ฑฐ๋ถ: [์ด์ ]"
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 | ์์ | ์์ | ํด๋ฆฌ์คํฑ๋ง |
# 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"
LLM ์์ด ์ ์คํฌ๋ฆฝํธ ํด๋ฆฌ์คํฑ ๋ถ์๋ง ์ํํฉ๋๋ค. API ๋น์ฉ $0, ์ธํฐ๋ท ๋ถํ์.
llm:
provider: "none"
ํฉ์ฑ ๋จ๊ณ์์ LLM ๊ฐํ ์ ์ ์น์ ์ด ์๋ต๋ฉ๋๋ค. ๊ธฐ๋ณธ ๋ถ์/์ ์์ ๊ทธ๋๋ก ์ ๊ณต๋ฉ๋๋ค.
# 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
config.yaml์ delivery ์น์
์ผ๋ก ์ ์์ ์ ์ก ํ๋ซํผ์ ์ ํํฉ๋๋ค.
delivery:
platform: "discord" # discord | slack | telegram | webhook
OpenClaw ํฌ๋ก ์ delivery ์ค์ ์ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค. deliver.sh ํธ์ถ ์์.
delivery:
platform: "discord"
discord:
channel_id: "YOUR_CHANNEL_ID"
Slack Incoming Webhook์ ์ฌ์ฉํฉ๋๋ค. Slack Webhook ์์ฑ ๊ฐ์ด๋
delivery:
platform: "slack"
slack:
webhook_url: "https://hooks.slack.com/services/T.../B.../..."
BotFather์์ ๋ฐ๊ธํ ํ ํฐ๊ณผ ์ฑํ ๋ฐฉ ID๊ฐ ํ์ํฉ๋๋ค.
delivery:
platform: "telegram"
telegram:
bot_token: "123456:ABC-DEF..."
chat_id: "-1001234567890" # ์ฑ๋์ -100์ผ๋ก ์์
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/<ํ์ผ>
| ํ๊ณ | 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์์ ์ฌ์ ํ ํด๊ฒฐ ๋ชป ํ ๊ฒ:
scripts/v5/embedding-analyze.sh ์ ์ค โ Ollama nomic-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/sea v2.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 test v5 ํฌํจscripts/v4/interactive-approve.sh ์ ์ค โ sea watch, macOS ์๋ฆผ, ๋ํํ approve/rejectscripts/v4/export-report.sh ์ ์ค โ markdown/html/json/pdf/all ๋ฆฌํฌํธ ๋ด๋ณด๋ด๊ธฐscripts/v4/github-issue.sh ์ ์ค โ GitHub Issues ํตํฉ (์์ฑ/์ข
๋ฃ/๋๊ธฐํ/๋ ์ด๋ธ)bin/sea v1.1.0 โ watch, export, github ์ปค๋งจ๋ ์ถ๊ฐsynthesize-proposal.sh โ Discord ๋ฆฌ์ก์
์ง์ ํธํฐ ์๋ ์ถ๊ฐconfig.yaml โ github, interactive, export ์น์
์ถ๊ฐsea approve โ GitHub ์ด์ ์๋ ์ข
๋ฃ ์ฐ๋ (GH_TOKEN ์์ ๋)llm.provider ์ค์ ํ ์ค๋ก ์ ํscripts/v4/llm-call.sh ์ ์ค โ anthropic/openai/ollama/none ํตํฉ ์ธํฐํ์ด์คprovider: "ollama" ๋๋ provider: "none" โ API ๋น์ฉ $0/์ฃผsynthesize-proposal.sh: LLM ๊ฐํ ์ ์ ์น์
์ถ๊ฐ (none์ด๋ฉด ์๋ต)config.yaml: llm ์น์
์ถ๊ฐ (provider/anthropic/openai/ollama/none)scripts/v4/deliver.sh ์ ์ค โ ํ๋ซํผ๋ณ ๋
๋ฆฝ ํธ๋ค๋ฌ (๊ฐ <30์ค)data/undelivered/ ๋๋ ํ ๋ฆฌ โ ๋ฐฐ๋ฌ ์คํจ ์ ์๋ ์ ์ฅ (์ ์ค ๋ฐฉ์ง)config.yaml: delivery ์น์
์ถ๊ฐconfig-loader.sh: ๋ฐฐ๋ฌ ์ค์ ์๋ ๋
ธ์ถ (SEA_DELIVERY_PLATFORM ๋ฑ)orchestrator.sh: synthesize ์ดํ platform != discord ์ deliver.sh ์๋ ํธ์ถcomplaint_patterns โ ko / en ๋ถ๋ฆฌ ๊ตฌ์กฐauto_detect: true)semantic-analyze.sh: load_config_patterns() + detect_session_language() ํจ์ ์ถ๊ฐcollect-logs.sh: ๋ถ๋ง ํค์๋ ๋ชฉ๋ก ko/en ๋ถ๋ฆฌ, config.yaml ์ฐ์ ๋ก๋complaint_patterns.ko / .en / auto_detect ๊ตฌ์กฐ๋ก ์ฌํธscripts/v4/ ๋๋ ํ ๋ฆฌ ์ ์ค (v3.0 ์คํฌ๋ฆฝํธ๋ ํ์ ํธํ ์ ์ง)data/benchmarks/ ๋๋ ํ ๋ฆฌ ์ ์ค (ํจ๊ณผ ์ธก์ ๊ฒฐ๊ณผ ์ ์ฅ)docs/v4-architecture.md ์ ์ค (์์ธ ์ํคํ
์ฒ ๋ฌธ์)| self-improving-agent | self-evolving-agent | |
|---|---|---|
| ๋ฒ์ | ์ธ์ 1๊ฐ | 7์ผ์น ์ ์ฒด ์ธ์ |
| ํ์ด๋ฐ | ๊ฐ ์ธ์ ์งํ ์ค์๊ฐ | ๋งค์ฃผ ์ผ์์ผ |
| ์ถ๋ ฅ | ์ธ์ ํ์ง ์ ์ + ๊ตํ | AGENTS.md diff ์ ์ |
| ๊ฐ์ | ์ฆ๊ฐ์ ํผ๋๋ฐฑ | ์์คํ ํจํด ๋ฐ๊ฒฌ |
| v4.0 ์ฐ๋ | ํ์ง ์ค์ฝ์ด โ ๋ถ์ ๊ฐ์ค์น | ์ง๊ณ + ๋ฒค์น๋งํฌ |
ํจ๊ป ์ฐ๋ฉด: self-improving์ด ์ธ์ ํ์ง ๋ฐ์ดํฐ๋ฅผ ์์ฑ โ self-evolving์ด ์ง๊ณํด์ ์์คํ ์์ค ๋ฌธ์ ๋ฐ๊ฒฌ + ํจ๊ณผ ์ธก์ .