{/* Trang này được tạo tự động từ SKILL.md của kỹ năng bởi website/scripts/generate-skill-docs.py. Chỉnh sửa nguồn SKILL.md, không phải trang này. */}
Nhà tiến hóa Darwin
Phát triển lời nhắc/regex/SQL/mã bằng vòng lặp tiến hóa của Imbue.
Siêu dữ liệu kỹ năng
| Nguồn | Tùy chọn — cài đặt với |
| `Hermes skills install official/research/darwinian-evolver | |
| ` | |
| Đường dẫn |
optional-skills/research/darwinian-evolver ` | | Phiên bản |
0.1.0 ` | | Tác giả | Bihruze (Asahi0x), Đặc vụ Hermes | | Giấy phép | MIT | | Nền tảng | Linux, macOS | | Thẻ |
evolution
, `optimization
, `prompt-engineering
,
research |
| Kỹ năng liên quan | XPROTECTX13XPROTECTX, XPROTECTX14XPROTECTX |
Tham khảo: đầy đủ SKILL.md
Sau đây là định nghĩa kỹ năng đầy đủ mà Hermes tải khi kỹ năng này được kích hoạt. Đây là những gì tác nhân coi là hướng dẫn khi kỹ năng được kích hoạt.
Nhà tiến hóa Darwin
Chạy darwinian_evolver của Imbue — một Vòng lặp tìm kiếm cải tiến dựa trên LLM — để tối ưu hóa dấu nhắc , biểu thức chính quy, truy vấn SQL, hoặc đoạn mã nhỏ đối với chức năng tập thể dục.
Trạng thái: bao bọc mỏng xung quanh công cụ ngược dòng. Kỹ năng cài đặt nó, đi bộ
tác nhân thông qua việc viết định nghĩa
Problem (sinh vật + bộ đánh giá + bộ biến đổi),
và điều khiển vòng lặp thông qua CLI ngược dòng hoặc trình điều khiển Python tùy chỉnh nhỏ.
Giấy phép: công cụ thượng nguồn là AGPL-3.0. Kỹ năng CHỈ từng gọi nó thông qua CLI ngược dòng hoặc lệnh gọi `subprocess
/
uv run (chỉ tổng hợp). KHÔNG
nhập các lớp ngược dòng vào chính Hermes.
Khi nào nên sử dụng
- Người dùng nói "tối ưu hóa lời nhắc này", "phát triển biểu thức chính quy cho X", "tự động cải thiện điều này code/SQL", "tìm kiếm hướng dẫn tốt hơn".
- Bạn có một người ghi điểm (khớp chính xác, tỷ lệ vượt qua biểu thức chính quy, bài kiểm tra đơn vị, người đánh giá LLM, thời gian chạy số liệu) VÀ một ứng cử viên bắt đầu (sinh vật). Nếu bạn không có người ghi bàn, hãy dừng lại và xác định cái đầu tiên - đó là phần khó.
- Chi phí vừa phải: một lần chạy thông thường là 50–500 cuộc gọi LLM. Trên GPT-4o-mini chỉ tốn một xu; trên Claude Sonnet nó có thể là một vài đô la.
không sử dụng điều này khi:
- Mục tiêu tối ưu hóa có thể phân biệt được (sử dụng độ dốc giảm dần/DSPy).
- Bạn chỉ cần thử 2–3 biến thể — chỉ cần viết chúng bằng tay.
- Tín hiệu thể lực hoàn toàn mang tính chủ quan, không có tiêu chí đo lường được.
Điều kiện tiên quyết
- Python ≥3.11
`git
,
uv (hoặc
`pip
)
- Một trong các: `OpenRouter_API_KEY
,
Anthropic_API_KEY hoặc
OpenAI_API_KEY ``Kỹ năng này cung cấp trình điều khiển parrot_OpenRouter.py
nhỏ sử dụng OpenRouter_API_KEY
thông qua OpenAI SDK, vì vậy mọi mô hình trên OpenRouter đều hoạt động. Bản thân CLI ngược dòng mã cứng Anthropic và cần `Anthropic_API_KEY
.
Cài đặt (Một lần)
Chạy qua công cụ `terminal
:
mkdir -p ~/.Hermes/cache/darwinian-evolver && cd ~/.Hermes/cache/darwinian-evolver
[ -d darwinian_evolver ] || git clone --depth 1 https://GitHub.com/imbue-ai/darwinian_evolver.git
cd darwinian_evolver && uv sync
`
``Xác minh:
`bash
cd ~/.Hermes/cache/darwinian-evolver/darwinian_evolver \
&& uv run darwinian_evolver --help | head -5
`
## Bắt đầu nhanh — Ví dụ về Parrot tích hợp
Kiểm tra khói nhỏ (yêu cầu
`Anthropic_API_KEY
):
`bash
cd ~/.Hermes/cache/darwinian-evolver/darwinian_evolver
uv run darwinian_evolver parrot \
--num_iterations 2 \
--num_parents_per_iteration 2 \
--mutator_concurrency 2 --evaluator_concurrency 2 \
--output_dir /tmp/parrot_demo
`
``Đầu ra:
-
/tmp/parrot_demo/snapshots/iteration_N.pkl
` — quần thể muối chua trên mỗi lần lặp
-
/tmp/parrot_demo/<JSONl
- nhật ký JSON mỗi lần lặp (đường dẫn được in ở cuối)
Mở
~/.Hermes/cache/darwinian-evolver/darwinian_evolver/darwinian_evolver/lineage_visualizer.html
trong trình duyệt và tải nhật ký JSON để xem cây tiến hóa.
## Bắt đầu nhanh - Trình điều khiển OpenRouter (Không có khóa nhân loại)
Kỹ năng vận chuyển
`scripts/parrot_OpenRouter.py
- cùng một vấn đề về con vẹt, nhưng
Cuộc gọi LLM đi qua OpenRouter để mọi nhà cung cấp đều hoạt động.
``` bash
# From wherever the skill is installed:
SKILL_DIR=~/.Hermes/skills/research/darwinian-evolver
DE_DIR=~/.Hermes/cache/darwinian-evolver/darwinian_evolver`cd "$DE_DIR" && \
EVOLVER_MODEL='OpenAI/GPT-4o-mini' \
uv run --with OpenAI Python "$SKILL_DIR/scripts/parrot_OpenRouter.py" \
--num_iterations 3 --num_parents_per_iteration 2 \
--output_dir /tmp/parrot_or
`
``Kiểm tra kết quả với
`scripts/show_snapshot.py
:
``` bash
uv run --with OpenAI Python "$SKILL_DIR/scripts/show_snapshot.py" \
/tmp/parrot_or/snapshots/iteration_3.pkl
`
``Đầu ra dự kiến: 7 mẫu lời nhắc cải tiến được xếp hạng theo điểm, với mẫu tốt nhất
hạ cánh khoảng 0,6–0,8 (hạt giống
`Say \{{ phrase }}
` đạt 0,000).
## Xác định một vấn đề tùy chỉnh
Kỹ năng vận chuyển
`templates/custom_problem_template.py
- sao chép, chỉnh sửa, chạy.
Ba điều bạn phải xác định:
1. **
`Organism
`
** — một lớp con Pydantic
`BaseModel
` chứa hiện vật
đã phát triển (
`prompt_template: str
,
`regex_pattern: str
,
`sql_query: str
,``code_block: str
, v.v.). Thêm phương thức
`run(*args)
` để thực hiện nó.
2. **
`Evaluator
** —
.evaluate(organism) -> EvaluationResult(score=..., trainable_failure_cases=[...], holdout_failure_cases=[...], is_viable=True)
.
- **
`score
** nằm trong
[0, 1]
. Cao hơn là tốt hơn.
- **
`trainable_failure_cases
** — những gì người biến đổi nhìn thấy. Bao gồm đủ
bối cảnh (đầu vào, dự kiến, thực tế) để LLM chẩn đoán.
- **
`holdout_failure_cases
** — tránh xa tầm nhìn của người biến đổi. Sử dụng những thứ này
để phát hiện việc trang bị quá mức.
- **
`is_viable=True
** trừ khi sinh vật bị phá vỡ hoàn toàn (tăng lên,
trả về Không, v.v.). Một sinh vật khả thi có điểm 0 là ổn - nó chỉ cần đạt được
giảm trọng số trong lựa chọn cha mẹ.3. **
`Mutator
** —
.mutate(organism, failure_cases, learning_log_entries) -> list[Organism]
.
Thông thường: xây dựng lời nhắc LLM bao gồm tổ chức hiện tại + một
trường hợp thất bại + yêu cầu đề xuất cách khắc phục; phân tích phản hồi của LLM; trở về``Organism
` mới. Trả về
[]
` khi phân tích cú pháp không thành công - vòng lặp xử lý nó.
Sau đó viết tập lệnh trình điều khiển kết nối
`Problem(initial_organism, evaluator, [mutators])
vào
`EvolveProblemLoop
` và lặp lại
`loop.run(num_iterations=N)
-
vận chuyển
`scripts/parrot_OpenRouter.py
` là tài liệu tham khảo.
## Siêu tham số thực sự quan trọng
| cờ | mặc định | khi nào cần thay đổi |
|---|---|---|
|
--num_iterations
` | 5 | tăng lên 10–20 khi bạn tin tưởng người đánh giá |
|
--num_parents_per_iteration
` | 4 | giảm xuống 2 để khám phá giá rẻ |
|
--mutator_concurrency
` | 10 | giảm xuống 2–4 để tránh giới hạn tỷ lệ |
|
--evaluator_concurrency
` | 10 | như nhau; người đánh giá cũng đạt được LLM |
|
--batch_size
` | 1 | tăng lên 3–5 khi trình biến đổi của bạn xử lý được nhiều lỗi |
|
--verify_mutations
` | tắt | bật khi trình biến đổi lãng phí (>10× tiết kiệm chi phí cho những lần chạy sau trên mỗi Imbue) |
|
--midpoint_score
` |
`p75
` | để yên trừ điểm cụm |
|
--sharpness
` | 10 | để yên |
## Cạm bẫy
1. **
`Initial organism must be viable
** — đặt
`is_viable=True
` trong``EvaluationResult
` ngay cả trên hạt giống 0 điểm. Vòng lặp từ chối không khả thi
sinh vật vì chúng ngụ ý rằng vòng lặp không có gì để tiến hóa từ đó.
2. **Bộ lọc nội dung của nhà cung cấp sẽ loại bỏ các lượt chạy.** Các mô hình OpenRouter được Azure hỗ trợ
từ chối các cụm từ như "bỏ qua hướng dẫn trước" bằng HTTP 400. Gói lại
lệnh gọi LLM trong
`try/except
` và trả về
`f"<LLM_ERROR: \{e}"
` —
người tiến hóa sẽ chỉ cho sinh vật đó 0 và đi tiếp.
3. **
`loop.run()
` là một trình tạo** — gọi nó là không chạy được gì cho đến khi
bạn lặp đi lặp lại. Sử dụng
`for snap in loop.run(num_iterations=N):
.
4. **Ảnh chụp nhanh là các phần mềm được lồng vào nhau.**
`iteration_N.pkl
` chứa một lệnh với``population_snapshot
` (nhiều byte được chọn hơn). Để giải nén bạn phải có
Lớp
`Organism
` có thể nhập được theo cùng một đường dẫn chấm mà nó đã được chọn.
5. **Mặc định đồng thời rất linh hoạt.** 10/10 sẽ đạt giới hạn tốc độ trên
hầu hết các nhà cung cấp. Bắt đầu với 2/2.
6. **CLI được mã hóa cứng thành Anthropic.**
`uv run darwinian_evolver <problem
tiếp cận
`Anthropic_API_KEY
` và sử dụng Claude Sonnet. Để sử dụng bất kỳ khác
nhà cung cấp, hãy viết trình điều khiển như
`parrot_OpenRouter.py
.
7. **AGPL.** Không bao giờ
`from darwinian_evolver import ...
` bên trong lõi Hermes.
Các tập lệnh trình điều khiển tùy chỉnh trong
~/.Hermes/skills/...
` là dành cho người dùng và ổn.
8. **Không có gói PyPI.**
`pip install darwinian-evolver
` sẽ kéo sai
thứ. Luôn cài đặt từ repo GitHub.
## Xác minh
Sau khi cài đặt + chạy vẹt, mã thoát 0 từ đây là đủ:
``` bash
DE_DIR=~/.Hermes/cache/darwinian-evolver/darwinian_evolver
ls "$DE_DIR/darwinian_evolver/lineage_visualizer.html" >/dev/null && \
cd "$DE_DIR" && uv run darwinian_evolver --help >/dev/null && \
echo "darwinian-evolver: OK"
`
## Tài liệu tham khảo
- [Imbue research post](https://imbue.com/research/2026-02-27-darwinian-evolver/)
- [ARC-AGI-2 results](https://imbue.com/research/2026-02-27-arc-agi-2-evolution/)
- [imbue-ai/darwinian_evolver](https://GitHub.com/imbue-ai/darwinian_evolver) (AGPL-3.0)
- [Darwin Gödel Machines](https://arxiv.org/abs/2505.22954)
- [PromptBreeder](https://arxiv.org/abs/2309.16797)