Skip to content

LLM-Evaluation-s-Always-Fatiguing/leaf-next

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Leaf - AI Agent ่‡ช่ฟ›ๅŒ–็ณป็ปŸ

่ฎฉ AI Agent ้€š่ฟ‡่‡ชๆˆ‘ๅๆ€ๅ‘็Žฐ้—ฎ้ข˜ๅนถๆๅ‡บๆ”น่ฟ›ๆ–นๆกˆ็š„่ฟ›ๅŒ–็ณป็ปŸใ€‚

ๆ ธๅฟƒ็†ๅฟต

  • Agent ไธ“ๆณจไบŽๆ€่€ƒๅ’Œๅˆ†ๆž๏ผŒไธ็›ดๆŽฅไฟฎๆ”นไปฃ็ 
  • ่ฟ›ๅŒ–็”ฑ้—ฎ้ข˜้ฉฑๅŠจ๏ผˆ็”จๆˆทๅ้ฆˆใ€้”™่ฏฏๆ—ฅๅฟ—ใ€ๆ€ง่ƒฝ้—ฎ้ข˜๏ผ‰
  • ๆ”น่ฟ›้€š่ฟ‡ Proposal โ†’ Review โ†’ ไธ“ไธšๅทฅๅ…ทๅฎž็Žฐ ็š„ๆต็จ‹
  • ๆ‰€ๆœ‰่ฟ›ๅŒ–ๅކๅฒ้€š่ฟ‡ GitHub Issues ่ฟฝ่ธช

ๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Orchestrator (็ซฏๅฃ 9000)                  โ”‚
โ”‚                      ๅ่ฐƒๅ™จ - ๆŽงๅˆถ้ข                          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Sandbox Pool     โ”‚  Task Router    โ”‚  Proposal Manager     โ”‚
โ”‚  (ๆฒ™็›’ๆฑ ็ฎก็†)      โ”‚  (ไปปๅŠก่ทฏ็”ฑ)       โ”‚  (ๆๆกˆ็ฎก็†)           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚                   โ”‚                  โ”‚
         โ–ผ                   โ–ผ                  โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Sandbox A      โ”‚ โ”‚  Sandbox B      โ”‚ โ”‚  GitHub Issues  โ”‚
โ”‚  (gen0)         โ”‚ โ”‚  (gen1)         โ”‚ โ”‚  (Proposals)    โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚ โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚  โ”‚ Bootstrap โ”‚  โ”‚ โ”‚  โ”‚ Bootstrap โ”‚  โ”‚
โ”‚  โ”‚ (ๅ›บๅฎš)     โ”‚  โ”‚ โ”‚  โ”‚ (ๅ›บๅฎš)     โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚ โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚        โ”‚        โ”‚ โ”‚        โ”‚        โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”  โ”‚ โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚deepagents โ”‚  โ”‚ โ”‚  โ”‚deepagents โ”‚  โ”‚
โ”‚  โ”‚ (ๅŸบๅ› ็ป„)   โ”‚  โ”‚ โ”‚  โ”‚ (่ฟ›ๅŒ–็‰ˆ)   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚ โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Observatory (ๅ‰็ซฏ)                         โ”‚
โ”‚            React + Vite + Tailwind CSS                       โ”‚
โ”‚  ็Šถๆ€้ขๆฟ โ”‚ ๆฒ™็›’็ฎก็† โ”‚ ไปปๅŠก็›‘ๆŽง โ”‚ ่ฐฑ็ณปๅ›พ โ”‚ ๆๆกˆ็ฎก็†          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

็›ฎๅฝ•็ป“ๆž„

leaf-next/
โ”œโ”€โ”€ orchestrator/              # ๅ่ฐƒๅ™จๆœๅŠก (Python, aiohttp)
โ”‚   โ”œโ”€โ”€ server.py             # HTTP API ๆœๅŠก
โ”‚   โ”œโ”€โ”€ sandbox_manager.py    # Docker ๆฒ™็›’ๆฑ ็ฎก็†
โ”‚   โ”œโ”€โ”€ proposal_manager.py   # ๆๆกˆ็”Ÿๅ‘ฝๅ‘จๆœŸ็ฎก็†
โ”‚   โ”œโ”€โ”€ models.py             # ๆ•ฐๆฎๆจกๅž‹ (Sandbox, Task, Proposal)
โ”‚   โ”œโ”€โ”€ repositories/         # Repository ๅฑ‚ (DDD ๆจกๅผ)
โ”‚   โ”‚   โ”œโ”€โ”€ interfaces.py    # ๆŠฝ่ฑกๆŽฅๅฃ
โ”‚   โ”‚   โ”œโ”€โ”€ memory.py        # ๅ†…ๅญ˜ๅฎž็Žฐ
โ”‚   โ”‚   โ””โ”€โ”€ file.py          # ๆ–‡ไปถๆŒไน…ๅŒ–ๅฎž็Žฐ
โ”‚   โ”œโ”€โ”€ Dockerfile
โ”‚   โ””โ”€โ”€ requirements.txt
โ”œโ”€โ”€ evo_bootstrap/             # ๆฒ™็›’ๅผ•ๅฏผๅ™จ๏ผˆๅ›บๅฎš๏ผŒไธ่ฟ›ๅŒ–๏ผ‰
โ”‚   โ”œโ”€โ”€ runner.py             # HTTP ๆœๅŠก + Agent ๆ‰ง่กŒ
โ”‚   โ”œโ”€โ”€ reflector.py          # ๅๆ€ๆ—ฅๅฟ—ไธŽ้—ฎ้ข˜ๆๅ–
โ”‚   โ”œโ”€โ”€ proposer.py           # Proposal ็”Ÿๆˆ + GitHub Issue
โ”‚   โ”œโ”€โ”€ mutator.py            # Git ๅ˜ๅผ‚ๆ“ไฝœ
โ”‚   โ”œโ”€โ”€ entrypoint.sh         # ๅฎนๅ™จๅฏๅŠจ่„šๆœฌ
โ”‚   โ””โ”€โ”€ Dockerfile
โ”œโ”€โ”€ observatory/               # ่ง‚ๆต‹ๅฐๅ‰็ซฏ (React + Vite + Tailwind)
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ api/client.ts    # Orchestrator API ๅฎขๆˆท็ซฏ
โ”‚   โ”‚   โ”œโ”€โ”€ components/      # UI ็ป„ไปถ
โ”‚   โ”‚   โ”œโ”€โ”€ hooks/           # React Hooks
โ”‚   โ”‚   โ””โ”€โ”€ types/           # TypeScript ็ฑปๅž‹ๅฎšไน‰
โ”‚   โ””โ”€โ”€ package.json
โ”œโ”€โ”€ libs/deepagents/           # ๅŸบๅ› ็ป„๏ผˆ่ฟ›ๅŒ–็›ฎๆ ‡๏ผŒ้€š่ฟ‡่„šๆœฌๅˆๅง‹ๅŒ–๏ผ‰
โ”œโ”€โ”€ docs/design/               # ่ฎพ่ฎกๆ–‡ๆกฃไธŽ ADR
โ”œโ”€โ”€ scripts/
โ”‚   โ””โ”€โ”€ init.sh               # ๅŸบๅ› ็ป„ๅˆๅง‹ๅŒ–่„šๆœฌ
โ”œโ”€โ”€ docker-compose.yml                  # ๅ•ๆฒ™็›’้ƒจ็ฝฒ
โ””โ”€โ”€ docker-compose.orchestrator.yml     # ๅฎŒๆ•ด็ณป็ปŸ้ƒจ็ฝฒ

ๅฟซ้€Ÿๅผ€ๅง‹

1. ๅˆๅง‹ๅŒ–้กน็›ฎ

# ๅ…‹้š†ๅŸบๅ› ็ป„๏ผˆdeepagents๏ผ‰
./scripts/init.sh

2. ้…็ฝฎ็Žฏๅขƒๅ˜้‡

cp .env.example .env
# ็ผ–่พ‘ .env ๅกซๅ…ฅ:
# - ANTHROPIC_API_KEY
# - GITHUB_TOKEN
# - GITHUB_REPO (ๅฆ‚ pandazki/deepagents)

3. ๅฏๅŠจ็ณป็ปŸ

# ๆž„ๅปบๅนถๅฏๅŠจ Orchestrator + ๆฒ™็›’
docker compose -f docker-compose.orchestrator.yml up -d

4. ๅฏๅŠจ Observatory ๅ‰็ซฏ

cd observatory
bun install
bun dev

5. ไฝฟ็”จ API

# ๆŸฅ็œ‹็ณป็ปŸ็Šถๆ€
curl http://localhost:9000/status

# ๅˆ›ๅปบๆฒ™็›’
curl -X POST http://localhost:9000/sandboxes \
  -H "Content-Type: application/json" \
  -d '{"genome_branch": "evo-seed"}'

# ๆไบคไปปๅŠก
curl -X POST http://localhost:9000/tasks \
  -H "Content-Type: application/json" \
  -d '{"task": "ๅˆ†ๆžไปฃ็ ไธญ็š„ๆ€ง่ƒฝ็“ถ้ขˆ"}'

# ่งฆๅ‘ๅๆ€
curl -X POST http://localhost:9000/sandboxes/{id}/reflect

# ไปŽ GitHub ๅŒๆญฅๆๆกˆ
curl -X POST http://localhost:9000/proposals/sync

API ็ซฏ็‚น

Orchestrator (็ซฏๅฃ 9000)

็ซฏ็‚น ๆ–นๆณ• ่ฏดๆ˜Ž
/ GET ๆœๅŠกไฟกๆฏไธŽๆ‰€ๆœ‰็ซฏ็‚นๅˆ—่กจ
/status GET ็ณป็ปŸ็Šถๆ€๏ผˆ่ฟ่กŒๆ—ถ้—ดใ€ๆฒ™็›’/ไปปๅŠก็ปŸ่ฎก๏ผ‰
ๆฒ™็›’็ฎก็†
/sandboxes POST ๅˆ›ๅปบๆฒ™็›’
/sandboxes GET ๅˆ—ๅ‡บๆ‰€ๆœ‰ๆฒ™็›’
/sandboxes/{id} GET ่Žทๅ–ๆฒ™็›’่ฏฆๆƒ…
/sandboxes/{id} DELETE ็ปˆๆญขๆฒ™็›’
/sandboxes/{id}/reflect POST ่งฆๅ‘ๆฒ™็›’ๅๆ€
/sandboxes/{id}/logs GET ่Žทๅ–ๆฒ™็›’ๅฎนๅ™จๆ—ฅๅฟ—
ไปปๅŠก็ฎก็†
/tasks POST ๅˆ›ๅปบไปปๅŠก๏ผˆ่‡ชๅŠจๅˆ†้…ๆฒ™็›’ๆ‰ง่กŒ๏ผ‰
/tasks GET ๅˆ—ๅ‡บไปปๅŠก๏ผˆๆ”ฏๆŒ ?status= ่ฟ‡ๆปค๏ผ‰
/tasks/{id} GET ่Žทๅ–ไปปๅŠก่ฏฆๆƒ…
ๆๆกˆ็ฎก็†
/proposals GET ๅˆ—ๅ‡บๆ‰€ๆœ‰ๆๆกˆ๏ผˆๆ”ฏๆŒ ?status= ่ฟ‡ๆปค๏ผ‰
/proposals/{id} GET ่Žทๅ–ๆๆกˆ่ฏฆๆƒ…
/proposals/sync POST ไปŽ GitHub Issues ๅŒๆญฅๆๆกˆ
/proposals/{id}/approve POST ๆ‰นๅ‡†ๆๆกˆ
/proposals/{id}/reject POST ๆ‹’็ปๆๆกˆ๏ผˆbody: {"reason": "..."})
/proposals/aggregate GET ่šๅˆ็›ธไผผๆๆกˆ
็›‘ๆŽง
/metrics GET ๅฝ“ๅ‰็ณป็ปŸๆŒ‡ๆ ‡๏ผˆCPU/ๅ†…ๅญ˜/็ฃ็›˜/ไปปๅŠก็ปŸ่ฎก๏ผ‰
/metrics/history GET ๆŒ‡ๆ ‡ๅކๅฒ่ฎฐๅฝ•
/events GET ไบ‹ไปถๆ—ฅๅฟ—๏ผˆๆ”ฏๆŒ ?type= ?source= ่ฟ‡ๆปค๏ผ‰
/lineage GET ่ฟ›ๅŒ–่ฐฑ็ณปๅ›พ๏ผˆ่Š‚็‚น+่พน๏ผ‰

ๆฒ™็›’ Agent (็ซฏๅฃ 8080+)

็ซฏ็‚น ๆ–นๆณ• ่ฏดๆ˜Ž
/health GET ๅฅๅบทๆฃ€ๆŸฅ + ๆ‰ง่กŒ็ปŸ่ฎก
/task POST ๆ‰ง่กŒไปปๅŠก๏ผˆ่‡ชๅŠจ่ฎฐๅฝ•ๆ—ฅๅฟ—๏ผ‰
/feedback POST ๆไบค็”จๆˆทๅ้ฆˆ
/reflect POST ่งฆๅ‘ๅๆ€ๅˆ†ๆž
/propose POST ็›ดๆŽฅๆไบค่ฟ›ๅŒ– Proposal
/proposals GET ๆŸฅ็œ‹ๆœฌๅœฐ Proposals
/logs GET ๆŸฅ็œ‹ๆ‰ง่กŒๆ—ฅๅฟ—
/genome GET ๆŸฅ็œ‹ๅŸบๅ› ็ป„ๆ–‡ไปถไฟกๆฏ
/mutate POST ๆไบคๅ˜ๅผ‚๏ผˆไป…้™ Orchestrator ่ฐƒ็”จ๏ผ‰

ๆ•ฐๆฎๆจกๅž‹

Sandbox

ๆฒ™็›’ๅฎžไพ‹๏ผŒๅฏนๅบ”ไธ€ไธช Docker ๅฎนๅ™จไธญ่ฟ่กŒ็š„ Agentใ€‚

ๅญ—ๆฎต ็ฑปๅž‹ ่ฏดๆ˜Ž
id string ๆฒ™็›’ ID๏ผˆsandbox_xxxx๏ผ‰
container_id string Docker ๅฎนๅ™จ ID
genome_branch string ๅŸบๅ› ็ป„ๅˆ†ๆ”ฏ
organism_id string ๆœ‰ๆœบไฝ“ ID
generation int ไปฃๆ•ฐ
status enum creating/running/idle/busy/stopped/error
port int ๆ˜ ๅฐ„็ซฏๅฃ

Task

ไปปๅŠก๏ผŒๆไบค็ป™ๆฒ™็›’ๆ‰ง่กŒใ€‚

ๅญ—ๆฎต ็ฑปๅž‹ ่ฏดๆ˜Ž
id string ไปปๅŠก ID๏ผˆtask_xxxx๏ผ‰
content string ไปปๅŠกๅ†…ๅฎน
sandbox_id string ๆ‰ง่กŒๆฒ™็›’ ID
status enum pending/running/completed/failed/cancelled
result string ๆ‰ง่กŒ็ป“ๆžœ
error string ้”™่ฏฏไฟกๆฏ

Proposal

่ฟ›ๅŒ–ๆๆกˆ๏ผŒๆบ่‡ช Agent ๅๆ€ๆˆ– GitHub Issueใ€‚

ๅญ—ๆฎต ็ฑปๅž‹ ่ฏดๆ˜Ž
id string ๆๆกˆ ID๏ผˆproposal_xxxx๏ผ‰
title string ๆ ‡้ข˜
problem_description string ้—ฎ้ข˜ๆ่ฟฐ
solution_approach string ่งฃๅ†ณๆ–นๆกˆ
target_files list ็›ฎๆ ‡ๆ–‡ไปถๅŠๅ˜ๆ›ด่ฏดๆ˜Ž
risk_level enum low/medium/high/critical
status enum pending/approved/rejected/implementing/completed/failed
github_issue_number int ๅ…ณ่”็š„ GitHub Issue ็ผ–ๅท

่ฟ›ๅŒ–ๆต็จ‹

ๆ‰ง่กŒไปปๅŠก โ†’ ่ฎฐๅฝ•ๆ—ฅๅฟ— โ†’ [่งฆๅ‘ๅๆ€] โ†’ ๅˆ†ๆž้—ฎ้ข˜ โ†’ ็”Ÿๆˆ Proposal โ†’ GitHub Issue
                                                              โ†“
                                              [ไบบ็ฑป/AI ๅฎกๆ ธ] โ†’ ๆ‰นๅ‡†
                                                              โ†“
                                              [Claude Code] โ†’ ๅฎž็Žฐไปฃ็ 
                                                              โ†“
                                              ๆ–ฐๅˆ†ๆ”ฏ โ†’ ๆ–ฐไธ€ไปฃ Agent

ๆŠ€ๆœฏๆ ˆ

  • Orchestrator: Python 3.11, aiohttp, docker-py, psutil
  • Bootstrap: Python 3.11, aiohttp, pyyaml, deepagents + langchain
  • Observatory: React 19, Vite 7, Tailwind CSS 4, TypeScript, Lucide Icons
  • ๅŸบ็ก€่ฎพๆ–ฝ: Docker, GitHub CLI (gh)

่ฎพ่ฎกๆ–‡ๆกฃ

่ฏฆ็ป†่ฎพ่ฎก่ฏทๅ‚่€ƒ docs/design/ ็›ฎๅฝ•ไธญ็š„ ADR ๆ–‡ๆกฃใ€‚

็›ธๅ…ณไป“ๅบ“

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors