@r1z4x/tezgah 1.0.0
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/CHANGELOG.md +738 -0
- package/LICENSE +21 -0
- package/MANIFEST +753 -0
- package/README.de.md +169 -0
- package/README.es.md +168 -0
- package/README.fr.md +166 -0
- package/README.md +161 -0
- package/README.tr.md +163 -0
- package/agents/tezgah-reviewer.md +70 -0
- package/bin/codegen +337 -0
- package/bin/consult +797 -0
- package/bin/tezgah-adhd +50 -0
- package/bin/tezgah-agents +45 -0
- package/bin/tezgah-capture +66 -0
- package/bin/tezgah-context +96 -0
- package/bin/tezgah-decisions +213 -0
- package/bin/tezgah-design +953 -0
- package/bin/tezgah-docs +1199 -0
- package/bin/tezgah-doctor +497 -0
- package/bin/tezgah-dsh +37 -0
- package/bin/tezgah-dsh.cmd +70 -0
- package/bin/tezgah-gate +75 -0
- package/bin/tezgah-import-ai-research +439 -0
- package/bin/tezgah-index +32 -0
- package/bin/tezgah-lessons +148 -0
- package/bin/tezgah-mcp +322 -0
- package/bin/tezgah-migrate +324 -0
- package/bin/tezgah-pony +50 -0
- package/bin/tezgah-research +772 -0
- package/bin/tezgah-rollback +93 -0
- package/bin/tezgah-route +124 -0
- package/bin/tezgah-setup +5798 -0
- package/bin/tezgah-status +383 -0
- package/bin/tezgah-task +607 -0
- package/bin/tezgah-taste +423 -0
- package/bin/tezgah-triage +485 -0
- package/bin/tezgah.js +36 -0
- package/commands/adhd.md +21 -0
- package/commands/ponytail.md +21 -0
- package/docs/README.md +112 -0
- package/docs/architecture.md +226 -0
- package/docs/citations-baseline.json +59 -0
- package/docs/clarity-baseline.json +116 -0
- package/docs/contract.md +416 -0
- package/docs/environment.md +141 -0
- package/docs/evidence.md +831 -0
- package/docs/feature-audit.md +139 -0
- package/docs/gate.md +407 -0
- package/docs/glossary.md +201 -0
- package/docs/hosts.md +400 -0
- package/docs/index.json +471 -0
- package/docs/judge.md +193 -0
- package/docs/layers.md +189 -0
- package/docs/models.md +160 -0
- package/docs/operations.md +666 -0
- package/docs/research.md +809 -0
- package/docs/results/paired-outcome-2026-10.jsonl +254 -0
- package/docs/results/paired-outcome-2026-10.md +204 -0
- package/docs/skills.md +236 -0
- package/docs/status-line.md +315 -0
- package/docs/testing.md +287 -0
- package/docs/vision.md +117 -0
- package/hooks/hooks.json +33 -0
- package/hooks/projects-auto-init.py +98 -0
- package/hooks/projects-posttooluse.py +149 -0
- package/hooks/projects-pretooluse.py +40 -0
- package/hooks/projects-stop.py +60 -0
- package/hooks/tezgah_agents.py +817 -0
- package/hooks/tezgah_apps.py +266 -0
- package/hooks/tezgah_attest.py +255 -0
- package/hooks/tezgah_clarity.py +171 -0
- package/hooks/tezgah_components.py +140 -0
- package/hooks/tezgah_context.py +2953 -0
- package/hooks/tezgah_embed.py +765 -0
- package/hooks/tezgah_gate.py +2736 -0
- package/hooks/tezgah_guard.py +177 -0
- package/hooks/tezgah_index.py +124 -0
- package/hooks/tezgah_integrity.py +5141 -0
- package/hooks/tezgah_judge.py +487 -0
- package/hooks/tezgah_lang.py +230 -0
- package/hooks/tezgah_lessons.py +210 -0
- package/hooks/tezgah_models.py +855 -0
- package/hooks/tezgah_paths.py +1132 -0
- package/hooks/tezgah_policy.py +1039 -0
- package/hooks/tezgah_rank.py +77 -0
- package/hooks/tezgah_replay.py +1109 -0
- package/hooks/tezgah_research.py +5176 -0
- package/hooks/tezgah_shapes.py +305 -0
- package/hooks/tezgah_skill_pick.py +227 -0
- package/hooks/tezgah_snapshot.py +490 -0
- package/hooks/tezgah_stopspec.py +320 -0
- package/hooks/tezgah_task.py +458 -0
- package/hooks/tezgah_taste.py +201 -0
- package/hooks/tezgah_untrusted.py +112 -0
- package/hooks/tezgah_update.py +430 -0
- package/hosts/codex/hook.py +268 -0
- package/hosts/codex/hooks.json +26 -0
- package/hosts/cursor/hook.py +461 -0
- package/hosts/cursor/hooks.json +44 -0
- package/hosts/dsh/hooks.json +21 -0
- package/hosts/dsh/statusline/lib/client.js +138 -0
- package/hosts/dsh/statusline/lib/index.js +104 -0
- package/hosts/dsh/statusline/package.json +28 -0
- package/hosts/omp/hook.py +277 -0
- package/hosts/omp/tezgah-hook.ts.in +701 -0
- package/hosts/opencode/plugins/tezgah.js +2742 -0
- package/hosts/opencode/tui/tezgah-tui.tsx +151 -0
- package/output-styles/tezgah.md +142 -0
- package/package.json +32 -0
- package/packaging/build.sh +342 -0
- package/packaging/install.ps1 +166 -0
- package/packaging/install.sh +56 -0
- package/packaging/upgrade.sh +142 -0
- package/skills/ai-research/0-autoresearch-skill/SKILL.md +411 -0
- package/skills/ai-research/0-autoresearch-skill/references/agent-continuity.md +95 -0
- package/skills/ai-research/0-autoresearch-skill/references/progress-reporting.md +166 -0
- package/skills/ai-research/0-autoresearch-skill/references/skill-routing.md +219 -0
- package/skills/ai-research/0-autoresearch-skill/templates/findings.md +44 -0
- package/skills/ai-research/0-autoresearch-skill/templates/research-log.md +41 -0
- package/skills/ai-research/01-model-architecture/litgpt/SKILL.md +469 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/custom-models.md +569 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/distributed-training.md +452 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/supported-models.md +337 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/training-recipes.md +620 -0
- package/skills/ai-research/01-model-architecture/mamba/SKILL.md +260 -0
- package/skills/ai-research/01-model-architecture/mamba/references/architecture-details.md +207 -0
- package/skills/ai-research/01-model-architecture/mamba/references/benchmarks.md +256 -0
- package/skills/ai-research/01-model-architecture/mamba/references/training-guide.md +389 -0
- package/skills/ai-research/01-model-architecture/nanogpt/SKILL.md +290 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/architecture.md +383 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/data.md +477 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/training.md +565 -0
- package/skills/ai-research/01-model-architecture/rwkv/SKILL.md +260 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/architecture-details.md +345 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/rwkv7.md +387 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/state-management.md +370 -0
- package/skills/ai-research/01-model-architecture/torchtitan/SKILL.md +358 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/checkpoint.md +182 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/custom-models.md +259 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/float8.md +134 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/fsdp.md +127 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/SKILL.md +516 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/algorithms.md +654 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/integration.md +638 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/pipeline.md +724 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/training.md +566 -0
- package/skills/ai-research/02-tokenization/sentencepiece/SKILL.md +235 -0
- package/skills/ai-research/02-tokenization/sentencepiece/references/algorithms.md +201 -0
- package/skills/ai-research/02-tokenization/sentencepiece/references/training.md +305 -0
- package/skills/ai-research/03-fine-tuning/axolotl/SKILL.md +158 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/api.md +5549 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/dataset-formats.md +1030 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/index.md +16 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/other.md +3564 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/SKILL.md +80 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/_images.md +24 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/advanced.md +1056 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/getting_started.md +350 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/index.md +20 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/other.md +32 -0
- package/skills/ai-research/03-fine-tuning/peft/SKILL.md +431 -0
- package/skills/ai-research/03-fine-tuning/peft/references/advanced-usage.md +515 -0
- package/skills/ai-research/03-fine-tuning/peft/references/troubleshooting.md +481 -0
- package/skills/ai-research/03-fine-tuning/unsloth/SKILL.md +80 -0
- package/skills/ai-research/03-fine-tuning/unsloth/references/index.md +8 -0
- package/skills/ai-research/03-fine-tuning/unsloth/references/llms.md +83 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/SKILL.md +436 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/README.md +79 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/api.md +345 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/tutorials.md +301 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/SKILL.md +473 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/README.md +74 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/api.md +384 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/tutorials.md +377 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/SKILL.md +386 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/README.md +71 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/api.md +334 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/tutorials.md +319 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/SKILL.md +346 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/README.md +55 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/api.md +363 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/tutorials.md +340 -0
- package/skills/ai-research/05-data-processing/nemo-curator/SKILL.md +383 -0
- package/skills/ai-research/05-data-processing/nemo-curator/references/deduplication.md +88 -0
- package/skills/ai-research/05-data-processing/nemo-curator/references/filtering.md +103 -0
- package/skills/ai-research/05-data-processing/ray-data/SKILL.md +326 -0
- package/skills/ai-research/05-data-processing/ray-data/references/integration.md +83 -0
- package/skills/ai-research/05-data-processing/ray-data/references/transformations.md +84 -0
- package/skills/ai-research/06-post-training/grpo-rl-training/README.md +98 -0
- package/skills/ai-research/06-post-training/grpo-rl-training/SKILL.md +572 -0
- package/skills/ai-research/06-post-training/miles/SKILL.md +315 -0
- package/skills/ai-research/06-post-training/miles/references/api-reference.md +142 -0
- package/skills/ai-research/06-post-training/miles/references/troubleshooting.md +353 -0
- package/skills/ai-research/06-post-training/openrlhf/SKILL.md +249 -0
- package/skills/ai-research/06-post-training/openrlhf/references/algorithm-comparison.md +405 -0
- package/skills/ai-research/06-post-training/openrlhf/references/custom-rewards.md +531 -0
- package/skills/ai-research/06-post-training/openrlhf/references/hybrid-engine.md +288 -0
- package/skills/ai-research/06-post-training/openrlhf/references/multi-node-training.md +455 -0
- package/skills/ai-research/06-post-training/simpo/SKILL.md +219 -0
- package/skills/ai-research/06-post-training/simpo/references/datasets.md +479 -0
- package/skills/ai-research/06-post-training/simpo/references/hyperparameters.md +453 -0
- package/skills/ai-research/06-post-training/simpo/references/loss-functions.md +351 -0
- package/skills/ai-research/06-post-training/slime/SKILL.md +464 -0
- package/skills/ai-research/06-post-training/slime/references/api-reference.md +393 -0
- package/skills/ai-research/06-post-training/slime/references/troubleshooting.md +387 -0
- package/skills/ai-research/06-post-training/torchforge/SKILL.md +433 -0
- package/skills/ai-research/06-post-training/torchforge/references/api-reference.md +328 -0
- package/skills/ai-research/06-post-training/torchforge/references/troubleshooting.md +410 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/SKILL.md +455 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/dpo-variants.md +228 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/online-rl.md +83 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/reward-modeling.md +123 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/sft-training.md +169 -0
- package/skills/ai-research/06-post-training/verl/SKILL.md +391 -0
- package/skills/ai-research/06-post-training/verl/references/api-reference.md +302 -0
- package/skills/ai-research/06-post-training/verl/references/troubleshooting.md +392 -0
- package/skills/ai-research/07-safety-alignment/constitutional-ai/SKILL.md +290 -0
- package/skills/ai-research/07-safety-alignment/llamaguard/SKILL.md +337 -0
- package/skills/ai-research/07-safety-alignment/nemo-guardrails/SKILL.md +297 -0
- package/skills/ai-research/07-safety-alignment/prompt-guard/SKILL.md +312 -0
- package/skills/ai-research/08-distributed-training/accelerate/SKILL.md +332 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/custom-plugins.md +454 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/megatron-integration.md +490 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/performance.md +526 -0
- package/skills/ai-research/08-distributed-training/deepspeed/SKILL.md +141 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/08.md +18 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/09.md +174 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/2020.md +379 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/2023.md +280 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/assets.md +180 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/index.md +36 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/mii.md +119 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/other.md +1192 -0
- package/skills/ai-research/08-distributed-training/megatron-core/SKILL.md +366 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/benchmarks.md +250 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/parallelism-guide.md +405 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/production-examples.md +474 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/training-recipes.md +548 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/SKILL.md +231 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_async_recipe.md +14 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_overview.md +19 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_recipe.md +18 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_ddp_notes.md +10 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_device_mesh_tutorial.md +22 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_examples_fsdp2.md +15 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp1_api.md +9 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp2_tutorial.md +45 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fully_shard_api.md +49 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_tp_tutorial.md +22 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/ray_train_fsdp2_example.md +13 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/torchtitan_fsdp_notes.md +14 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/SKILL.md +346 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/callbacks.md +437 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/distributed.md +491 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/hyperparameter-tuning.md +557 -0
- package/skills/ai-research/08-distributed-training/ray-train/SKILL.md +406 -0
- package/skills/ai-research/08-distributed-training/ray-train/references/multi-node.md +629 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/SKILL.md +545 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/references/advanced-usage.md +612 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/references/troubleshooting.md +531 -0
- package/skills/ai-research/09-infrastructure/modal/SKILL.md +341 -0
- package/skills/ai-research/09-infrastructure/modal/references/advanced-usage.md +504 -0
- package/skills/ai-research/09-infrastructure/modal/references/troubleshooting.md +495 -0
- package/skills/ai-research/09-infrastructure/skypilot/SKILL.md +509 -0
- package/skills/ai-research/09-infrastructure/skypilot/references/advanced-usage.md +492 -0
- package/skills/ai-research/09-infrastructure/skypilot/references/troubleshooting.md +571 -0
- package/skills/ai-research/10-optimization/awq/SKILL.md +310 -0
- package/skills/ai-research/10-optimization/awq/references/advanced-usage.md +325 -0
- package/skills/ai-research/10-optimization/awq/references/troubleshooting.md +345 -0
- package/skills/ai-research/10-optimization/bitsandbytes/SKILL.md +411 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/memory-optimization.md +522 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/qlora-training.md +522 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/quantization-formats.md +448 -0
- package/skills/ai-research/10-optimization/flash-attention/SKILL.md +367 -0
- package/skills/ai-research/10-optimization/flash-attention/references/benchmarks.md +216 -0
- package/skills/ai-research/10-optimization/flash-attention/references/transformers-integration.md +294 -0
- package/skills/ai-research/10-optimization/gguf/SKILL.md +427 -0
- package/skills/ai-research/10-optimization/gguf/references/advanced-usage.md +505 -0
- package/skills/ai-research/10-optimization/gguf/references/troubleshooting.md +443 -0
- package/skills/ai-research/10-optimization/gptq/SKILL.md +450 -0
- package/skills/ai-research/10-optimization/gptq/references/calibration.md +338 -0
- package/skills/ai-research/10-optimization/gptq/references/integration.md +130 -0
- package/skills/ai-research/10-optimization/gptq/references/troubleshooting.md +96 -0
- package/skills/ai-research/10-optimization/hqq/SKILL.md +445 -0
- package/skills/ai-research/10-optimization/hqq/references/advanced-usage.md +529 -0
- package/skills/ai-research/10-optimization/hqq/references/troubleshooting.md +504 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/SKILL.md +319 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/architecture.md +320 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/biomedical.md +498 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/domain-specific.md +626 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/experiment-loop.md +129 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/optimizers.md +330 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/scaling-and-selection.md +428 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/SKILL.md +405 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/benchmarks.md +394 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/custom-tasks.md +425 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/issues.md +395 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/SKILL.md +490 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/api-evaluation.md +491 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/benchmark-guide.md +489 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/custom-tasks.md +603 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/distributed-eval.md +520 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/SKILL.md +494 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/adapter-system.md +341 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/configuration.md +448 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/custom-benchmarks.md +316 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/execution-backends.md +362 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/SKILL.md +258 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/optimization.md +90 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/quantization.md +214 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/server.md +126 -0
- package/skills/ai-research/12-inference-serving/sglang/SKILL.md +442 -0
- package/skills/ai-research/12-inference-serving/sglang/references/deployment.md +491 -0
- package/skills/ai-research/12-inference-serving/sglang/references/radix-attention.md +414 -0
- package/skills/ai-research/12-inference-serving/sglang/references/structured-generation.md +542 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/SKILL.md +187 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/multi-gpu.md +299 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/optimization.md +243 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/serving.md +471 -0
- package/skills/ai-research/12-inference-serving/vllm/SKILL.md +364 -0
- package/skills/ai-research/12-inference-serving/vllm/references/optimization.md +227 -0
- package/skills/ai-research/12-inference-serving/vllm/references/quantization.md +285 -0
- package/skills/ai-research/12-inference-serving/vllm/references/server-deployment.md +256 -0
- package/skills/ai-research/12-inference-serving/vllm/references/troubleshooting.md +448 -0
- package/skills/ai-research/13-mlops/mlflow/SKILL.md +704 -0
- package/skills/ai-research/13-mlops/mlflow/references/deployment.md +745 -0
- package/skills/ai-research/13-mlops/mlflow/references/model-registry.md +771 -0
- package/skills/ai-research/13-mlops/mlflow/references/tracking.md +681 -0
- package/skills/ai-research/13-mlops/swanlab/SKILL.md +406 -0
- package/skills/ai-research/13-mlops/swanlab/references/integrations.md +305 -0
- package/skills/ai-research/13-mlops/swanlab/references/visualization.md +234 -0
- package/skills/ai-research/13-mlops/tensorboard/SKILL.md +629 -0
- package/skills/ai-research/13-mlops/tensorboard/references/integrations.md +639 -0
- package/skills/ai-research/13-mlops/tensorboard/references/profiling.md +546 -0
- package/skills/ai-research/13-mlops/tensorboard/references/visualization.md +621 -0
- package/skills/ai-research/13-mlops/weights-and-biases/SKILL.md +590 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/artifacts.md +585 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/integrations.md +701 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/sweeps.md +848 -0
- package/skills/ai-research/14-agents/a-evolve/SKILL.md +383 -0
- package/skills/ai-research/14-agents/a-evolve/references/README.md +831 -0
- package/skills/ai-research/14-agents/a-evolve/references/api.md +594 -0
- package/skills/ai-research/14-agents/a-evolve/references/architecture.md +417 -0
- package/skills/ai-research/14-agents/a-evolve/references/design-patterns.md +462 -0
- package/skills/ai-research/14-agents/a-evolve/references/examples.md +352 -0
- package/skills/ai-research/14-agents/a-evolve/references/issues.md +591 -0
- package/skills/ai-research/14-agents/a-evolve/references/releases.md +112 -0
- package/skills/ai-research/14-agents/a-evolve/references/tutorials.md +819 -0
- package/skills/ai-research/14-agents/autogpt/SKILL.md +403 -0
- package/skills/ai-research/14-agents/autogpt/references/advanced-usage.md +536 -0
- package/skills/ai-research/14-agents/autogpt/references/troubleshooting.md +421 -0
- package/skills/ai-research/14-agents/crewai/SKILL.md +498 -0
- package/skills/ai-research/14-agents/crewai/references/flows.md +439 -0
- package/skills/ai-research/14-agents/crewai/references/tools.md +430 -0
- package/skills/ai-research/14-agents/crewai/references/troubleshooting.md +481 -0
- package/skills/ai-research/14-agents/langchain/SKILL.md +480 -0
- package/skills/ai-research/14-agents/langchain/references/agents.md +500 -0
- package/skills/ai-research/14-agents/langchain/references/integration.md +563 -0
- package/skills/ai-research/14-agents/langchain/references/rag.md +601 -0
- package/skills/ai-research/14-agents/llamaindex/SKILL.md +569 -0
- package/skills/ai-research/14-agents/llamaindex/references/agents.md +84 -0
- package/skills/ai-research/14-agents/llamaindex/references/data_connectors.md +109 -0
- package/skills/ai-research/14-agents/llamaindex/references/query_engines.md +407 -0
- package/skills/ai-research/15-rag/chroma/SKILL.md +406 -0
- package/skills/ai-research/15-rag/chroma/references/integration.md +39 -0
- package/skills/ai-research/15-rag/faiss/SKILL.md +221 -0
- package/skills/ai-research/15-rag/faiss/references/index_types.md +281 -0
- package/skills/ai-research/15-rag/pinecone/SKILL.md +358 -0
- package/skills/ai-research/15-rag/pinecone/references/deployment.md +182 -0
- package/skills/ai-research/15-rag/qdrant/SKILL.md +493 -0
- package/skills/ai-research/15-rag/qdrant/references/advanced-usage.md +649 -0
- package/skills/ai-research/15-rag/qdrant/references/troubleshooting.md +632 -0
- package/skills/ai-research/15-rag/sentence-transformers/SKILL.md +255 -0
- package/skills/ai-research/15-rag/sentence-transformers/references/models.md +124 -0
- package/skills/ai-research/16-prompt-engineering/dspy/SKILL.md +590 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/examples.md +664 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/modules.md +476 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/optimizers.md +567 -0
- package/skills/ai-research/16-prompt-engineering/guidance/SKILL.md +572 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/backends.md +555 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/constraints.md +675 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/examples.md +768 -0
- package/skills/ai-research/16-prompt-engineering/instructor/SKILL.md +740 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/examples.md +108 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/providers.md +71 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/validation.md +607 -0
- package/skills/ai-research/16-prompt-engineering/outlines/SKILL.md +652 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/backends.md +616 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/examples.md +774 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/json_generation.md +653 -0
- package/skills/ai-research/17-observability/langsmith/SKILL.md +422 -0
- package/skills/ai-research/17-observability/langsmith/references/advanced-usage.md +549 -0
- package/skills/ai-research/17-observability/langsmith/references/troubleshooting.md +538 -0
- package/skills/ai-research/17-observability/phoenix/SKILL.md +475 -0
- package/skills/ai-research/17-observability/phoenix/references/advanced-usage.md +620 -0
- package/skills/ai-research/17-observability/phoenix/references/troubleshooting.md +539 -0
- package/skills/ai-research/18-multimodal/audiocraft/SKILL.md +564 -0
- package/skills/ai-research/18-multimodal/audiocraft/references/advanced-usage.md +667 -0
- package/skills/ai-research/18-multimodal/audiocraft/references/troubleshooting.md +505 -0
- package/skills/ai-research/18-multimodal/blip-2/SKILL.md +564 -0
- package/skills/ai-research/18-multimodal/blip-2/references/advanced-usage.md +681 -0
- package/skills/ai-research/18-multimodal/blip-2/references/troubleshooting.md +527 -0
- package/skills/ai-research/18-multimodal/clip/SKILL.md +253 -0
- package/skills/ai-research/18-multimodal/clip/references/applications.md +208 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/SKILL.md +402 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/references/libero-commands.md +175 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/references/robocasa-commands.md +147 -0
- package/skills/ai-research/18-multimodal/llava/SKILL.md +304 -0
- package/skills/ai-research/18-multimodal/llava/references/training.md +198 -0
- package/skills/ai-research/18-multimodal/openpi/SKILL.md +480 -0
- package/skills/ai-research/18-multimodal/openpi/references/checkpoints-and-env-map.md +86 -0
- package/skills/ai-research/18-multimodal/openpi/references/config-recipes.md +50 -0
- package/skills/ai-research/18-multimodal/openpi/references/pytorch-gotchas.md +49 -0
- package/skills/ai-research/18-multimodal/openpi/references/remote-client-pattern.md +48 -0
- package/skills/ai-research/18-multimodal/openpi/references/training-debugging.md +46 -0
- package/skills/ai-research/18-multimodal/openvla-oft/SKILL.md +441 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/aloha-workflow.md +141 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/config-troubleshooting.md +97 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/libero-workflow.md +115 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/paper-and-checkpoints.md +84 -0
- package/skills/ai-research/18-multimodal/segment-anything/SKILL.md +500 -0
- package/skills/ai-research/18-multimodal/segment-anything/references/advanced-usage.md +590 -0
- package/skills/ai-research/18-multimodal/segment-anything/references/troubleshooting.md +485 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/SKILL.md +519 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/references/advanced-usage.md +717 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/references/troubleshooting.md +556 -0
- package/skills/ai-research/18-multimodal/whisper/SKILL.md +317 -0
- package/skills/ai-research/18-multimodal/whisper/references/languages.md +190 -0
- package/skills/ai-research/19-emerging-techniques/knowledge-distillation/SKILL.md +458 -0
- package/skills/ai-research/19-emerging-techniques/knowledge-distillation/references/minillm.md +335 -0
- package/skills/ai-research/19-emerging-techniques/long-context/SKILL.md +536 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/extension_methods.md +469 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/fine_tuning.md +612 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/rope.md +403 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/SKILL.md +497 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/coefficient-tuning.md +415 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/evaluation.md +463 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/examples.md +429 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/methods.md +353 -0
- package/skills/ai-research/19-emerging-techniques/model-pruning/SKILL.md +495 -0
- package/skills/ai-research/19-emerging-techniques/model-pruning/references/wanda.md +348 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/SKILL.md +526 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/architectures.md +433 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/inference.md +349 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/training.md +426 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/SKILL.md +467 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/lookahead.md +310 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/medusa.md +351 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/SKILL.md +479 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/data-visualization.md +509 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/diagram-generation.md +395 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/style-guide.md +305 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/SKILL.md +982 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/checklists.md +348 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/citation-workflow.md +563 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/reviewer-guidelines.md +349 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/sources.md +165 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/writing-guide.md +477 -0
- package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/SKILL.md +298 -0
- package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/references/slide-templates.md +505 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/SKILL.md +270 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/checklist.md +279 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/reviewer-guidelines.md +116 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/section-blueprints.md +400 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/systems-conferences.md +261 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/writing-patterns.md +231 -0
- package/skills/ai-research/21-research-ideation/brainstorming-research-ideas/SKILL.md +384 -0
- package/skills/ai-research/21-research-ideation/creative-thinking-for-research/SKILL.md +366 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/SKILL.md +245 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/ara-schema.md +439 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/exploration-tree-spec.md +125 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/validation-checklist.md +149 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/SKILL.md +324 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/event-taxonomy.md +124 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/provenance-tags.md +190 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/session-protocol.md +162 -0
- package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/SKILL.md +322 -0
- package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/references/review-dimensions.md +182 -0
- package/skills/ai-research/SKILL.md +101 -0
- package/skills/ai-research/SOURCE +38 -0
- package/skills/ai-research/index/1-frame.md +18 -0
- package/skills/ai-research/index/2-data.md +21 -0
- package/skills/ai-research/index/3-train.md +48 -0
- package/skills/ai-research/index/4-measure.md +25 -0
- package/skills/ai-research/index/5-run.md +23 -0
- package/skills/ai-research/index/6-write.md +35 -0
- package/skills/ai-research/library.json +3456 -0
- package/skills/analyze-app/EVALS.md +82 -0
- package/skills/analyze-app/SKILL.md +188 -0
- package/skills/design-contract/EVALS.md +80 -0
- package/skills/design-contract/SKILL.md +171 -0
- package/skills/design-library/EVALS.md +85 -0
- package/skills/design-library/INDEX.md +59 -0
- package/skills/design-library/SKILL.md +58 -0
- package/skills/design-library/SOURCE +131 -0
- package/skills/design-library/adaptive-interfaces/skills/colour-independence/SKILL.md +90 -0
- package/skills/design-library/adaptive-interfaces/skills/flexible-typography/SKILL.md +83 -0
- package/skills/design-library/adaptive-interfaces/skills/information-density/SKILL.md +87 -0
- package/skills/design-library/adaptive-interfaces/skills/preference-audit/SKILL.md +70 -0
- package/skills/design-library/adaptive-interfaces/skills/responsive-accessibility/SKILL.md +86 -0
- package/skills/design-library/adaptive-interfaces/skills/responsive-review/SKILL.md +76 -0
- package/skills/design-library/adaptive-interfaces/skills/simplified-views/SKILL.md +97 -0
- package/skills/design-library/adaptive-interfaces/skills/specify/SKILL.md +63 -0
- package/skills/design-library/adaptive-interfaces/skills/user-preference-respect/SKILL.md +100 -0
- package/skills/design-library/cognitive-accessibility/skills/adaptive-personalisation/SKILL.md +61 -0
- package/skills/design-library/cognitive-accessibility/skills/assess-load/SKILL.md +48 -0
- package/skills/design-library/cognitive-accessibility/skills/cognitive-load-assessment/SKILL.md +60 -0
- package/skills/design-library/cognitive-accessibility/skills/contextual-help-design/SKILL.md +61 -0
- package/skills/design-library/cognitive-accessibility/skills/error-prevention-recovery/SKILL.md +71 -0
- package/skills/design-library/cognitive-accessibility/skills/focus-attention-design/SKILL.md +67 -0
- package/skills/design-library/cognitive-accessibility/skills/memory-load-reduction/SKILL.md +60 -0
- package/skills/design-library/cognitive-accessibility/skills/plain-language-design/SKILL.md +78 -0
- package/skills/design-library/cognitive-accessibility/skills/review/SKILL.md +56 -0
- package/skills/design-library/cognitive-accessibility/skills/simplify/SKILL.md +39 -0
- package/skills/design-library/cognitive-accessibility/skills/wayfinding-navigation/SKILL.md +64 -0
- package/skills/design-library/design-research/skills/behavioural-analytics/SKILL.md +33 -0
- package/skills/design-library/design-research/skills/qual-quant-triangulation/SKILL.md +33 -0
- package/skills/design-library/inclusive-interaction/skills/audit/SKILL.md +50 -0
- package/skills/design-library/inclusive-interaction/skills/design-flow/SKILL.md +58 -0
- package/skills/design-library/inclusive-interaction/skills/feedback-and-status/SKILL.md +76 -0
- package/skills/design-library/inclusive-interaction/skills/gesture-alternatives/SKILL.md +70 -0
- package/skills/design-library/inclusive-interaction/skills/keyboard-navigation/SKILL.md +99 -0
- package/skills/design-library/inclusive-interaction/skills/keyboard-review/SKILL.md +54 -0
- package/skills/design-library/inclusive-interaction/skills/motion-sensitivity/SKILL.md +79 -0
- package/skills/design-library/inclusive-interaction/skills/multi-modal-input/SKILL.md +70 -0
- package/skills/design-library/inclusive-interaction/skills/touch-target-design/SKILL.md +71 -0
- package/skills/design-library/inclusive-interaction/skills/voice-interaction/SKILL.md +68 -0
- package/skills/design-library/visual-critique/skills/critique-affordance/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-brand-consistency/SKILL.md +42 -0
- package/skills/design-library/visual-critique/skills/critique-color/SKILL.md +44 -0
- package/skills/design-library/visual-critique/skills/critique-composition/SKILL.md +46 -0
- package/skills/design-library/visual-critique/skills/critique-information-density/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-typography/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-visual-hierarchy/SKILL.md +40 -0
- package/skills/feature-audit/EVALS.md +83 -0
- package/skills/feature-audit/SKILL.md +326 -0
- package/skills/harness/EVALS.md +81 -0
- package/skills/harness/SKILL.md +88 -0
- package/skills/i-have-adhd/EVALS.md +80 -0
- package/skills/i-have-adhd/SKILL.md +183 -0
- package/skills/no-ai-slop/EVALS.md +89 -0
- package/skills/no-ai-slop/SKILL.md +209 -0
- package/skills/no-ai-slop/eval.md +52 -0
- package/skills/plan-add/EVALS.md +79 -0
- package/skills/plan-add/SKILL.md +179 -0
- package/skills/plan-add/render_table.py +72 -0
- package/skills/plan-status/EVALS.md +78 -0
- package/skills/plan-status/SKILL.md +52 -0
- package/skills/plan-sync/EVALS.md +80 -0
- package/skills/plan-sync/SKILL.md +69 -0
- package/skills/pm-frameworks/SKILL.md +33 -0
- package/skills/pm-frameworks/SOURCE +39 -0
- package/skills/pm-frameworks/intended-vs-implemented/SKILL.md +42 -0
- package/skills/pm-frameworks/opportunity-solution-tree/SKILL.md +64 -0
- package/skills/ponytail/EVALS.md +80 -0
- package/skills/ponytail/SKILL.md +124 -0
- package/skills/product-analysis/EVALS.md +103 -0
- package/skills/product-analysis/SKILL.md +361 -0
- package/skills/research/EVALS.md +104 -0
- package/skills/research/SKILL.md +570 -0
- package/skills/rl-env/SKILL.md +53 -0
- package/skills/rl-env/SOURCE +41 -0
- package/skills/rl-env/generate-nemo-gym-env/SKILL.md +169 -0
- package/skills/rl-env/generate-nemo-gym-env/references/architecture.md +114 -0
- package/skills/rl-env/generate-openenv-env/SKILL.md +183 -0
- package/skills/rl-env/generate-openenv-env/references/architecture.md +82 -0
- package/skills/rl-env/generate-ors-env/SKILL.md +209 -0
- package/skills/rl-env/generate-ors-env/references/architecture.md +113 -0
- package/skills/rl-env/generate-verifiers-env/SKILL.md +188 -0
- package/skills/rl-env/generate-verifiers-env/references/architecture.md +119 -0
- package/skills/rl-env/rl-env-from-description/SKILL.md +124 -0
- package/skills/rl-env/rl-env-from-description/references/interview.md +75 -0
- package/skills/rl-env/rl-env-from-description/references/nemo_gym.md +41 -0
- package/skills/rl-env/rl-env-from-description/references/openenv.md +35 -0
- package/skills/rl-env/rl-env-from-description/references/ors.md +50 -0
- package/skills/rl-env/rl-env-from-description/references/verifiers.md +39 -0
- package/skills/tezgah-contract/EVALS.md +78 -0
- package/skills/tezgah-contract/SKILL.md +792 -0
- package/statusline.py +129 -0
- package/workflows/graph-impact.js +153 -0
- package/workflows/graph-map.js +158 -0
- package/workflows/graph-review.js +170 -0
|
@@ -0,0 +1,819 @@
|
|
|
1
|
+
<!-- vendored from orchestra-research/AI-research-SKILLs@773a52944ba4747a18bd4ae9ade53fff041adcbc 14-agents/a-evolve/references/tutorials.md; MIT (c) Orchestra Research -->
|
|
2
|
+
# A-Evolve Tutorials
|
|
3
|
+
|
|
4
|
+
## Tutorial 1: Build and Evolve a Custom Agent from Scratch
|
|
5
|
+
|
|
6
|
+
This tutorial walks through creating a complete agent-benchmark-evolution pipeline for a custom domain: text summarization quality.
|
|
7
|
+
|
|
8
|
+
### Step 1: Create the Workspace
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
mkdir -p summarizer/{prompts/fragments,skills,memory,tools}
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Write the manifest:
|
|
15
|
+
|
|
16
|
+
```yaml
|
|
17
|
+
# summarizer/manifest.yaml
|
|
18
|
+
agent:
|
|
19
|
+
type: reference
|
|
20
|
+
entrypoint: summarizer_agent.SummarizerAgent
|
|
21
|
+
|
|
22
|
+
evolvable_layers:
|
|
23
|
+
- prompts
|
|
24
|
+
- skills
|
|
25
|
+
- memory
|
|
26
|
+
|
|
27
|
+
reload_strategy: hot
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Write the initial system prompt:
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
# summarizer/prompts/system.md
|
|
34
|
+
You are an expert text summarizer. Given a document, produce a concise summary that captures the key points.
|
|
35
|
+
|
|
36
|
+
## Guidelines
|
|
37
|
+
- Keep summaries under 3 sentences for documents under 500 words
|
|
38
|
+
- Preserve numerical data and proper nouns
|
|
39
|
+
- Use active voice
|
|
40
|
+
- Do not add information not present in the source
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Initialize git:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
cd summarizer && git init && git add -A && git commit -m "Initial workspace"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Step 2: Implement the Agent
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
# summarizer_agent.py
|
|
53
|
+
import agent_evolve as ae
|
|
54
|
+
import anthropic
|
|
55
|
+
|
|
56
|
+
class SummarizerAgent(ae.BaseAgent):
|
|
57
|
+
def __init__(self, workspace_dir: str):
|
|
58
|
+
super().__init__(workspace_dir)
|
|
59
|
+
self.client = anthropic.Anthropic()
|
|
60
|
+
|
|
61
|
+
def solve(self, task: ae.Task) -> ae.Trajectory:
|
|
62
|
+
# 1. Build system prompt with evolved content + skills
|
|
63
|
+
skill_text = ""
|
|
64
|
+
for skill_meta in self.skills:
|
|
65
|
+
content = self.get_skill_content(skill_meta.name)
|
|
66
|
+
skill_text += f"\n## Skill: {skill_meta.name}\n{content}\n"
|
|
67
|
+
|
|
68
|
+
system = self.system_prompt
|
|
69
|
+
if skill_text:
|
|
70
|
+
system += f"\n\n# Learned Skills\n{skill_text}"
|
|
71
|
+
|
|
72
|
+
# 2. Include episodic memories if available
|
|
73
|
+
if self.memories:
|
|
74
|
+
memory_text = "\n".join(
|
|
75
|
+
f"- {m.get('content', '')}" for m in self.memories[-5:]
|
|
76
|
+
)
|
|
77
|
+
system += f"\n\n# Lessons Learned\n{memory_text}"
|
|
78
|
+
|
|
79
|
+
# 3. Call the LLM
|
|
80
|
+
response = self.client.messages.create(
|
|
81
|
+
model="claude-sonnet-4-20250514",
|
|
82
|
+
max_tokens=1024,
|
|
83
|
+
system=system,
|
|
84
|
+
messages=[{"role": "user", "content": f"Summarize this:\n\n{task.input}"}],
|
|
85
|
+
)
|
|
86
|
+
output = response.content[0].text
|
|
87
|
+
|
|
88
|
+
# 4. Record trajectory
|
|
89
|
+
return ae.Trajectory(
|
|
90
|
+
task_id=task.id,
|
|
91
|
+
output=output,
|
|
92
|
+
steps=[{
|
|
93
|
+
"tool": "llm",
|
|
94
|
+
"model": "claude-sonnet-4-20250514",
|
|
95
|
+
"input_tokens": response.usage.input_tokens,
|
|
96
|
+
"output_tokens": response.usage.output_tokens,
|
|
97
|
+
}],
|
|
98
|
+
)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Key points:**
|
|
102
|
+
- `self.system_prompt` reads from `prompts/system.md` — this gets evolved
|
|
103
|
+
- `self.skills` lists skills discovered by the evolution engine
|
|
104
|
+
- `self.memories` contains episodic lessons from past failures
|
|
105
|
+
- All state is loaded from the workspace filesystem
|
|
106
|
+
|
|
107
|
+
### Step 3: Implement the Benchmark
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
# summarizer_benchmark.py
|
|
111
|
+
import json
|
|
112
|
+
import agent_evolve as ae
|
|
113
|
+
|
|
114
|
+
class SummarizerBenchmark(ae.BenchmarkAdapter):
|
|
115
|
+
def __init__(self, data_path: str):
|
|
116
|
+
self.data_path = data_path
|
|
117
|
+
|
|
118
|
+
def get_tasks(self, split="train", limit=10):
|
|
119
|
+
with open(f"{self.data_path}/{split}.jsonl") as f:
|
|
120
|
+
items = [json.loads(line) for line in f]
|
|
121
|
+
if limit:
|
|
122
|
+
items = items[:limit]
|
|
123
|
+
return [
|
|
124
|
+
ae.Task(
|
|
125
|
+
id=item["id"],
|
|
126
|
+
input=item["document"],
|
|
127
|
+
metadata={
|
|
128
|
+
"reference_summary": item["summary"],
|
|
129
|
+
"key_facts": item.get("key_facts", []),
|
|
130
|
+
},
|
|
131
|
+
)
|
|
132
|
+
for item in items
|
|
133
|
+
]
|
|
134
|
+
|
|
135
|
+
def evaluate(self, task: ae.Task, trajectory: ae.Trajectory) -> ae.Feedback:
|
|
136
|
+
reference = task.metadata["reference_summary"]
|
|
137
|
+
generated = trajectory.output
|
|
138
|
+
key_facts = task.metadata.get("key_facts", [])
|
|
139
|
+
|
|
140
|
+
# Score components
|
|
141
|
+
brevity_score = self._score_brevity(generated)
|
|
142
|
+
fact_score = self._score_facts(generated, key_facts)
|
|
143
|
+
quality_score = self._score_quality(generated, reference)
|
|
144
|
+
|
|
145
|
+
# Weighted average
|
|
146
|
+
score = 0.3 * brevity_score + 0.4 * fact_score + 0.3 * quality_score
|
|
147
|
+
|
|
148
|
+
detail_parts = [
|
|
149
|
+
f"brevity={brevity_score:.2f}",
|
|
150
|
+
f"facts={fact_score:.2f} ({sum(1 for f in key_facts if f.lower() in generated.lower())}/{len(key_facts)})",
|
|
151
|
+
f"quality={quality_score:.2f}",
|
|
152
|
+
]
|
|
153
|
+
|
|
154
|
+
return ae.Feedback(
|
|
155
|
+
success=score > 0.7,
|
|
156
|
+
score=score,
|
|
157
|
+
detail=", ".join(detail_parts),
|
|
158
|
+
raw={"brevity": brevity_score, "facts": fact_score, "quality": quality_score},
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
def _score_brevity(self, summary: str) -> float:
|
|
162
|
+
words = len(summary.split())
|
|
163
|
+
if words <= 75:
|
|
164
|
+
return 1.0
|
|
165
|
+
elif words <= 150:
|
|
166
|
+
return 0.7
|
|
167
|
+
else:
|
|
168
|
+
return max(0.0, 1.0 - (words - 75) / 200)
|
|
169
|
+
|
|
170
|
+
def _score_facts(self, summary: str, key_facts: list[str]) -> float:
|
|
171
|
+
if not key_facts:
|
|
172
|
+
return 1.0
|
|
173
|
+
found = sum(1 for fact in key_facts if fact.lower() in summary.lower())
|
|
174
|
+
return found / len(key_facts)
|
|
175
|
+
|
|
176
|
+
def _score_quality(self, generated: str, reference: str) -> float:
|
|
177
|
+
# Simple word overlap metric (replace with ROUGE in production)
|
|
178
|
+
gen_words = set(generated.lower().split())
|
|
179
|
+
ref_words = set(reference.lower().split())
|
|
180
|
+
if not ref_words:
|
|
181
|
+
return 0.0
|
|
182
|
+
overlap = len(gen_words & ref_words)
|
|
183
|
+
precision = overlap / (len(gen_words) + 1e-9)
|
|
184
|
+
recall = overlap / len(ref_words)
|
|
185
|
+
return 2 * precision * recall / (precision + recall + 1e-9)
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**Key design decisions:**
|
|
189
|
+
- Multiple scoring components give the evolver rich signal about *what* to improve
|
|
190
|
+
- `feedback.detail` includes component breakdowns — the evolver reads these to decide what to mutate
|
|
191
|
+
- `feedback.raw` stores structured data for post-hoc analysis
|
|
192
|
+
|
|
193
|
+
### Step 4: Prepare the Dataset
|
|
194
|
+
|
|
195
|
+
```python
|
|
196
|
+
# prepare_data.py
|
|
197
|
+
import json
|
|
198
|
+
import os
|
|
199
|
+
|
|
200
|
+
os.makedirs("data", exist_ok=True)
|
|
201
|
+
|
|
202
|
+
train_data = [
|
|
203
|
+
{
|
|
204
|
+
"id": "train-001",
|
|
205
|
+
"document": "The Federal Reserve announced today that it will maintain...",
|
|
206
|
+
"summary": "The Fed held interest rates steady at 5.25-5.50%...",
|
|
207
|
+
"key_facts": ["5.25-5.50%", "Federal Reserve", "inflation target"],
|
|
208
|
+
},
|
|
209
|
+
# ... add 50-100 training examples
|
|
210
|
+
]
|
|
211
|
+
|
|
212
|
+
test_data = [
|
|
213
|
+
# ... add 20-30 held-out test examples
|
|
214
|
+
]
|
|
215
|
+
|
|
216
|
+
with open("data/train.jsonl", "w") as f:
|
|
217
|
+
for item in train_data:
|
|
218
|
+
f.write(json.dumps(item) + "\n")
|
|
219
|
+
|
|
220
|
+
with open("data/test.jsonl", "w") as f:
|
|
221
|
+
for item in test_data:
|
|
222
|
+
f.write(json.dumps(item) + "\n")
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Pro Tips:**
|
|
226
|
+
- Training set should cover diverse document types (news, technical, narrative)
|
|
227
|
+
- Include edge cases: very short documents, documents with tables/lists, multi-topic documents
|
|
228
|
+
- Key facts should be objective and verifiable (numbers, names, dates)
|
|
229
|
+
|
|
230
|
+
### Step 5: Run Evolution
|
|
231
|
+
|
|
232
|
+
```python
|
|
233
|
+
# evolve_summarizer.py
|
|
234
|
+
import agent_evolve as ae
|
|
235
|
+
from summarizer_agent import SummarizerAgent
|
|
236
|
+
from summarizer_benchmark import SummarizerBenchmark
|
|
237
|
+
|
|
238
|
+
config = ae.EvolveConfig(
|
|
239
|
+
batch_size=10, # 10 documents per evolution cycle
|
|
240
|
+
max_cycles=15, # 15 rounds of improvement
|
|
241
|
+
evolve_prompts=True, # Mutate the system prompt
|
|
242
|
+
evolve_skills=True, # Discover summarization skills
|
|
243
|
+
evolve_memory=True, # Learn from failures
|
|
244
|
+
holdout_ratio=0.2, # 20% held out for validation
|
|
245
|
+
evolver_model="us.anthropic.claude-opus-4-6-v1",
|
|
246
|
+
egl_threshold=0.02, # Stop if < 2% improvement
|
|
247
|
+
egl_window=4, # Over 4 consecutive cycles
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
evolver = ae.Evolver(
|
|
251
|
+
agent=SummarizerAgent("./summarizer"),
|
|
252
|
+
benchmark=SummarizerBenchmark("./data"),
|
|
253
|
+
config=config,
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
results = evolver.run()
|
|
257
|
+
|
|
258
|
+
print(f"Evolution complete!")
|
|
259
|
+
print(f" Cycles: {results.cycles_completed}")
|
|
260
|
+
print(f" Final score: {results.final_score:.3f}")
|
|
261
|
+
print(f" Converged: {results.converged}")
|
|
262
|
+
print(f" Score trajectory: {[f'{s:.3f}' for s in results.score_history]}")
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Step 6: Inspect the Evolved Agent
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
# See what changed
|
|
269
|
+
cd summarizer
|
|
270
|
+
git log --oneline --decorate
|
|
271
|
+
|
|
272
|
+
# Compare initial vs final prompt
|
|
273
|
+
git diff evo-1 evo-15 -- prompts/system.md
|
|
274
|
+
|
|
275
|
+
# List discovered skills
|
|
276
|
+
ls skills/
|
|
277
|
+
# Example: skills/handle-numerical-data/SKILL.md
|
|
278
|
+
# skills/multi-topic-structure/SKILL.md
|
|
279
|
+
|
|
280
|
+
# Read a discovered skill
|
|
281
|
+
cat skills/handle-numerical-data/SKILL.md
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Example evolved prompt additions (actual results will vary):
|
|
285
|
+
|
|
286
|
+
```markdown
|
|
287
|
+
## Numerical Data Handling
|
|
288
|
+
When the source contains numbers, percentages, or dates:
|
|
289
|
+
1. Always include the exact figure in your summary
|
|
290
|
+
2. Provide context for the number (what it measures, comparison point)
|
|
291
|
+
3. Round only when the original uses approximate language
|
|
292
|
+
|
|
293
|
+
## Multi-Topic Documents
|
|
294
|
+
For documents covering multiple distinct topics:
|
|
295
|
+
1. Identify the primary topic (most space/emphasis in source)
|
|
296
|
+
2. Lead with the primary topic
|
|
297
|
+
3. Mention secondary topics only if they affect the primary narrative
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Step 7: Iterate and Refine
|
|
301
|
+
|
|
302
|
+
After reviewing the evolved state, you can:
|
|
303
|
+
|
|
304
|
+
1. **Run more cycles** on the same workspace:
|
|
305
|
+
```python
|
|
306
|
+
# The workspace retains its evolved state
|
|
307
|
+
results2 = evolver.run(cycles=10) # 10 more cycles
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
2. **Adjust configuration** based on what you see:
|
|
311
|
+
```python
|
|
312
|
+
# If skills are too narrow, let the evolver merge them
|
|
313
|
+
config.extra["merge_threshold"] = 0.7
|
|
314
|
+
|
|
315
|
+
# If the prompt is growing too long, enable pruning
|
|
316
|
+
config.extra["max_prompt_length"] = 5000
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
3. **Add harder tasks** to the benchmark to push the agent further:
|
|
320
|
+
```python
|
|
321
|
+
# Add adversarial examples
|
|
322
|
+
hard_tasks = [
|
|
323
|
+
{"id": "hard-001", "document": "...", "summary": "...",
|
|
324
|
+
"key_facts": ["subtle fact buried in paragraph 4"]},
|
|
325
|
+
]
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Tutorial 2: Evolve a Built-in Agent on a Standard Benchmark
|
|
331
|
+
|
|
332
|
+
For a faster start, use one of the built-in agent + benchmark combinations.
|
|
333
|
+
|
|
334
|
+
### SWE-bench Evolution
|
|
335
|
+
|
|
336
|
+
```python
|
|
337
|
+
import agent_evolve as ae
|
|
338
|
+
|
|
339
|
+
# 1. Create evolver with built-in seed
|
|
340
|
+
evolver = ae.Evolver(
|
|
341
|
+
agent="swe", # Uses seed_workspaces/swe/
|
|
342
|
+
benchmark="swe-verified", # SWE-bench Verified dataset
|
|
343
|
+
config=ae.EvolveConfig(
|
|
344
|
+
batch_size=10,
|
|
345
|
+
max_cycles=20,
|
|
346
|
+
evolve_skills=True,
|
|
347
|
+
),
|
|
348
|
+
)
|
|
349
|
+
|
|
350
|
+
# 2. Run evolution
|
|
351
|
+
results = evolver.run()
|
|
352
|
+
|
|
353
|
+
# 3. The evolved workspace is at evolver._workspace.path
|
|
354
|
+
print(f"Evolved workspace: {evolver._workspace.path}")
|
|
355
|
+
print(f"Score improvement: {results.score_history[0]:.3f} -> {results.final_score:.3f}")
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
**What happens under the hood:**
|
|
359
|
+
1. The `"swe"` seed workspace is copied to a working directory
|
|
360
|
+
2. `SweAgent` is instantiated with the workspace path
|
|
361
|
+
3. Each cycle: agent solves 10 SWE-bench tasks, benchmark evaluates patches
|
|
362
|
+
4. The SkillForge engine analyzes failures and mutates prompts/skills
|
|
363
|
+
5. Agent reloads evolved state and solves the next batch
|
|
364
|
+
|
|
365
|
+
### Terminal-Bench Evolution
|
|
366
|
+
|
|
367
|
+
```python
|
|
368
|
+
import agent_evolve as ae
|
|
369
|
+
|
|
370
|
+
evolver = ae.Evolver(
|
|
371
|
+
agent="terminal",
|
|
372
|
+
benchmark="terminal2",
|
|
373
|
+
config=ae.EvolveConfig(
|
|
374
|
+
batch_size=5, # Terminal tasks are slower
|
|
375
|
+
max_cycles=15,
|
|
376
|
+
evolve_skills=True,
|
|
377
|
+
evolve_memory=False, # Terminal tasks are time-sensitive
|
|
378
|
+
),
|
|
379
|
+
)
|
|
380
|
+
results = evolver.run()
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### MCP-Atlas Evolution
|
|
384
|
+
|
|
385
|
+
```python
|
|
386
|
+
import agent_evolve as ae
|
|
387
|
+
|
|
388
|
+
evolver = ae.Evolver(
|
|
389
|
+
agent="mcp",
|
|
390
|
+
benchmark="mcp-atlas",
|
|
391
|
+
config=ae.EvolveConfig(
|
|
392
|
+
batch_size=10,
|
|
393
|
+
max_cycles=20,
|
|
394
|
+
),
|
|
395
|
+
)
|
|
396
|
+
results = evolver.run()
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
## Tutorial 3: Using Different Evolution Algorithms
|
|
402
|
+
|
|
403
|
+
A-Evolve ships four evolution algorithms. Choose based on your domain:
|
|
404
|
+
|
|
405
|
+
### Default: A-Evolve/SkillForge
|
|
406
|
+
|
|
407
|
+
Best for general-purpose evolution. Uses an LLM with bash tools to directly edit workspace files.
|
|
408
|
+
|
|
409
|
+
```python
|
|
410
|
+
# This is the default — no need to specify engine
|
|
411
|
+
evolver = ae.Evolver(agent="swe", benchmark="swe-verified")
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### Guided Synthesis
|
|
415
|
+
|
|
416
|
+
Best for domains where skill discovery is the primary goal. Focuses on extracting lessons from failures and curating a minimal skill library.
|
|
417
|
+
|
|
418
|
+
```python
|
|
419
|
+
from agent_evolve.algorithms.guided_synth import GuidedSynthesisEngine
|
|
420
|
+
|
|
421
|
+
evolver = ae.Evolver(
|
|
422
|
+
agent="swe",
|
|
423
|
+
benchmark="swe-verified",
|
|
424
|
+
engine=GuidedSynthesisEngine(config),
|
|
425
|
+
)
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### Adaptive Evolution
|
|
429
|
+
|
|
430
|
+
Best for fine-grained control. Filters observations intelligently and tracks reward signals to adjust intervention density.
|
|
431
|
+
|
|
432
|
+
```python
|
|
433
|
+
from agent_evolve.algorithms.adaptive import AdaptiveEvolutionEngine
|
|
434
|
+
|
|
435
|
+
evolver = ae.Evolver(
|
|
436
|
+
agent="swe",
|
|
437
|
+
benchmark="swe-verified",
|
|
438
|
+
engine=AdaptiveEvolutionEngine(config),
|
|
439
|
+
)
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### Adaptive Skill
|
|
443
|
+
|
|
444
|
+
Best for skill-heavy domains where the primary improvement comes from building a procedure library.
|
|
445
|
+
|
|
446
|
+
```python
|
|
447
|
+
from agent_evolve.algorithms.adaptive_skill import AdaptiveSkillEngine
|
|
448
|
+
|
|
449
|
+
evolver = ae.Evolver(
|
|
450
|
+
agent="swe",
|
|
451
|
+
benchmark="swe-verified",
|
|
452
|
+
engine=AdaptiveSkillEngine(config),
|
|
453
|
+
)
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
## Tutorial 4: Post-Evolution Analysis
|
|
459
|
+
|
|
460
|
+
After an evolution run, understanding what changed is crucial for deciding next steps.
|
|
461
|
+
|
|
462
|
+
### Score Trajectory Analysis
|
|
463
|
+
|
|
464
|
+
```python
|
|
465
|
+
import matplotlib.pyplot as plt
|
|
466
|
+
|
|
467
|
+
results = evolver.run(cycles=15)
|
|
468
|
+
|
|
469
|
+
# Plot score curve
|
|
470
|
+
plt.figure(figsize=(10, 5))
|
|
471
|
+
plt.plot(range(1, len(results.score_history) + 1), results.score_history, marker='o')
|
|
472
|
+
plt.xlabel("Cycle")
|
|
473
|
+
plt.ylabel("Score")
|
|
474
|
+
plt.title("Evolution Score Trajectory")
|
|
475
|
+
plt.grid(True, alpha=0.3)
|
|
476
|
+
plt.savefig("evolution_curve.png")
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
### Workspace Diff Analysis
|
|
480
|
+
|
|
481
|
+
```bash
|
|
482
|
+
cd my-workspace
|
|
483
|
+
|
|
484
|
+
# What changed overall?
|
|
485
|
+
git diff evo-1 evo-15 --stat
|
|
486
|
+
|
|
487
|
+
# Prompt changes
|
|
488
|
+
git diff evo-1 evo-15 -- prompts/system.md
|
|
489
|
+
|
|
490
|
+
# New skills
|
|
491
|
+
git diff evo-1 evo-15 -- skills/
|
|
492
|
+
|
|
493
|
+
# Memory entries
|
|
494
|
+
git diff evo-1 evo-15 -- memory/
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
### Skill Library Review
|
|
498
|
+
|
|
499
|
+
```python
|
|
500
|
+
workspace = evolver._workspace
|
|
501
|
+
|
|
502
|
+
for skill in workspace.list_skills():
|
|
503
|
+
content = workspace.read_skill(skill.name)
|
|
504
|
+
print(f"\n{'='*60}")
|
|
505
|
+
print(f"Skill: {skill.name}")
|
|
506
|
+
print(f"Description: {skill.description}")
|
|
507
|
+
print(f"{'='*60}")
|
|
508
|
+
print(content[:500]) # First 500 chars
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
### Cycle-by-Cycle Breakdown
|
|
512
|
+
|
|
513
|
+
```bash
|
|
514
|
+
# Compare consecutive cycles to see what each evolution step did
|
|
515
|
+
for i in $(seq 1 14); do
|
|
516
|
+
next=$((i + 1))
|
|
517
|
+
echo "=== Cycle $i -> $next ==="
|
|
518
|
+
git diff evo-$i evo-$next --stat
|
|
519
|
+
done
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
### Identifying Key Mutations
|
|
523
|
+
|
|
524
|
+
Look for the cycles where score jumped most:
|
|
525
|
+
|
|
526
|
+
```python
|
|
527
|
+
scores = results.score_history
|
|
528
|
+
for i in range(1, len(scores)):
|
|
529
|
+
delta = scores[i] - scores[i-1]
|
|
530
|
+
if delta > 0.03: # Significant improvement
|
|
531
|
+
print(f"Cycle {i+1}: +{delta:.3f} (check evo-{i} -> evo-{i+1})")
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
Then inspect those specific diffs to understand which mutations were most impactful.
|
|
535
|
+
|
|
536
|
+
---
|
|
537
|
+
|
|
538
|
+
## Tutorial 5: Configuring Evolution for Different Domains
|
|
539
|
+
|
|
540
|
+
Different domains require different evolution configurations. This tutorial covers how to tune the key parameters.
|
|
541
|
+
|
|
542
|
+
### Fast-Feedback Domains (Classification, Summarization)
|
|
543
|
+
|
|
544
|
+
When tasks are cheap to evaluate and take seconds per solve:
|
|
545
|
+
|
|
546
|
+
```python
|
|
547
|
+
config = ae.EvolveConfig(
|
|
548
|
+
batch_size=20, # More tasks per cycle = richer signal
|
|
549
|
+
max_cycles=30, # More cycles since they're cheap
|
|
550
|
+
evolve_prompts=True,
|
|
551
|
+
evolve_skills=True,
|
|
552
|
+
evolve_memory=True, # Memory helps for pattern recognition
|
|
553
|
+
egl_threshold=0.01, # Fine-grained convergence
|
|
554
|
+
egl_window=5, # Long patience window
|
|
555
|
+
)
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
**Why these settings:**
|
|
559
|
+
- Large batches give the evolver more observations to find patterns
|
|
560
|
+
- Memory is valuable because the agent sees many similar tasks
|
|
561
|
+
- Tight convergence threshold avoids stopping too early
|
|
562
|
+
|
|
563
|
+
### Slow-Feedback Domains (Code Generation, Multi-Step Reasoning)
|
|
564
|
+
|
|
565
|
+
When tasks take minutes per solve and evaluation is expensive:
|
|
566
|
+
|
|
567
|
+
```python
|
|
568
|
+
config = ae.EvolveConfig(
|
|
569
|
+
batch_size=5, # Fewer tasks to keep cycle time manageable
|
|
570
|
+
max_cycles=15, # Fewer cycles, each more impactful
|
|
571
|
+
evolve_prompts=True,
|
|
572
|
+
evolve_skills=True,
|
|
573
|
+
evolve_memory=False, # Skip memory for time-sensitive tasks
|
|
574
|
+
egl_threshold=0.05, # Larger threshold — significant improvements only
|
|
575
|
+
egl_window=3, # Shorter patience
|
|
576
|
+
evolver_max_tokens=32768, # More tokens for complex analysis
|
|
577
|
+
)
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
**Why these settings:**
|
|
581
|
+
- Small batches keep wall-clock time reasonable
|
|
582
|
+
- Memory disabled because tasks are diverse enough that past lessons rarely transfer
|
|
583
|
+
- Generous convergence threshold — each improvement is expensive to achieve
|
|
584
|
+
|
|
585
|
+
### Skill-Discovery Focused Domains
|
|
586
|
+
|
|
587
|
+
When the agent's core reasoning is good but it needs domain-specific procedures:
|
|
588
|
+
|
|
589
|
+
```python
|
|
590
|
+
config = ae.EvolveConfig(
|
|
591
|
+
batch_size=10,
|
|
592
|
+
max_cycles=25,
|
|
593
|
+
evolve_prompts=False, # Keep prompt stable
|
|
594
|
+
evolve_skills=True, # Focus entirely on skills
|
|
595
|
+
evolve_memory=True, # Memory informs skill creation
|
|
596
|
+
evolve_tools=False,
|
|
597
|
+
)
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
Use the `AdaptiveSkillEngine` for this:
|
|
601
|
+
|
|
602
|
+
```python
|
|
603
|
+
from agent_evolve.algorithms.adaptive_skill import AdaptiveSkillEngine
|
|
604
|
+
|
|
605
|
+
evolver = ae.Evolver(
|
|
606
|
+
agent="./my-agent",
|
|
607
|
+
benchmark=my_benchmark,
|
|
608
|
+
config=config,
|
|
609
|
+
engine=AdaptiveSkillEngine(config),
|
|
610
|
+
)
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
### Trajectory-Only Evolution (Blind Mode)
|
|
614
|
+
|
|
615
|
+
When you want to test if the evolver can improve the agent without seeing scores:
|
|
616
|
+
|
|
617
|
+
```python
|
|
618
|
+
config = ae.EvolveConfig(
|
|
619
|
+
trajectory_only=True, # Hide scores from evolver
|
|
620
|
+
batch_size=10,
|
|
621
|
+
max_cycles=20,
|
|
622
|
+
)
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
**Why use this:**
|
|
626
|
+
- Tests whether the evolver can infer quality from behavior alone
|
|
627
|
+
- Prevents the evolver from "gaming" the metric
|
|
628
|
+
- More realistic — mirrors how humans improve agents (by reading outputs, not scores)
|
|
629
|
+
|
|
630
|
+
---
|
|
631
|
+
|
|
632
|
+
## Tutorial 6: Multi-Stage Evolution
|
|
633
|
+
|
|
634
|
+
For complex agents, run multiple evolution stages with different configurations.
|
|
635
|
+
|
|
636
|
+
### Stage 1: Prompt Optimization
|
|
637
|
+
|
|
638
|
+
First, optimize the core system prompt without skills:
|
|
639
|
+
|
|
640
|
+
```python
|
|
641
|
+
import agent_evolve as ae
|
|
642
|
+
|
|
643
|
+
# Stage 1: Prompt-only evolution
|
|
644
|
+
config_prompt = ae.EvolveConfig(
|
|
645
|
+
batch_size=10,
|
|
646
|
+
max_cycles=10,
|
|
647
|
+
evolve_prompts=True,
|
|
648
|
+
evolve_skills=False, # No skills yet
|
|
649
|
+
evolve_memory=False,
|
|
650
|
+
)
|
|
651
|
+
|
|
652
|
+
evolver = ae.Evolver(
|
|
653
|
+
agent="./my-agent",
|
|
654
|
+
benchmark=my_benchmark,
|
|
655
|
+
config=config_prompt,
|
|
656
|
+
)
|
|
657
|
+
results_prompt = evolver.run()
|
|
658
|
+
print(f"After prompt optimization: {results_prompt.final_score:.3f}")
|
|
659
|
+
```
|
|
660
|
+
|
|
661
|
+
### Stage 2: Skill Discovery
|
|
662
|
+
|
|
663
|
+
Now evolve skills on top of the optimized prompt:
|
|
664
|
+
|
|
665
|
+
```python
|
|
666
|
+
# Stage 2: Skill evolution (workspace retains optimized prompt)
|
|
667
|
+
config_skills = ae.EvolveConfig(
|
|
668
|
+
batch_size=10,
|
|
669
|
+
max_cycles=15,
|
|
670
|
+
evolve_prompts=False, # Lock the prompt
|
|
671
|
+
evolve_skills=True, # Focus on skills
|
|
672
|
+
evolve_memory=True,
|
|
673
|
+
)
|
|
674
|
+
|
|
675
|
+
# Re-create evolver pointing to the same evolved workspace
|
|
676
|
+
evolver_skills = ae.Evolver(
|
|
677
|
+
agent=evolver._workspace.path, # Use the evolved workspace
|
|
678
|
+
benchmark=my_benchmark,
|
|
679
|
+
config=config_skills,
|
|
680
|
+
)
|
|
681
|
+
results_skills = evolver_skills.run()
|
|
682
|
+
print(f"After skill discovery: {results_skills.final_score:.3f}")
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
### Stage 3: Joint Refinement
|
|
686
|
+
|
|
687
|
+
Finally, fine-tune everything together:
|
|
688
|
+
|
|
689
|
+
```python
|
|
690
|
+
# Stage 3: Joint refinement
|
|
691
|
+
config_joint = ae.EvolveConfig(
|
|
692
|
+
batch_size=15, # Larger batches for fine-tuning
|
|
693
|
+
max_cycles=10,
|
|
694
|
+
evolve_prompts=True,
|
|
695
|
+
evolve_skills=True,
|
|
696
|
+
evolve_memory=True,
|
|
697
|
+
egl_threshold=0.01, # Very tight convergence
|
|
698
|
+
egl_window=5,
|
|
699
|
+
)
|
|
700
|
+
|
|
701
|
+
evolver_joint = ae.Evolver(
|
|
702
|
+
agent=evolver_skills._workspace.path,
|
|
703
|
+
benchmark=my_benchmark,
|
|
704
|
+
config=config_joint,
|
|
705
|
+
)
|
|
706
|
+
results_final = evolver_joint.run()
|
|
707
|
+
print(f"Final score: {results_final.final_score:.3f}")
|
|
708
|
+
print(f"Total improvement: {results_prompt.score_history[0]:.3f} -> {results_final.final_score:.3f}")
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
**Why multi-stage:**
|
|
712
|
+
- Prompt optimization first establishes a strong baseline
|
|
713
|
+
- Skills built on a good prompt are more targeted
|
|
714
|
+
- Joint refinement catches interactions between prompt and skills
|
|
715
|
+
- Total cycles may be fewer than single-stage evolution to the same quality
|
|
716
|
+
|
|
717
|
+
---
|
|
718
|
+
|
|
719
|
+
## Tutorial 7: Workspace Organization Best Practices
|
|
720
|
+
|
|
721
|
+
### Prompt Fragments
|
|
722
|
+
|
|
723
|
+
Instead of one monolithic system prompt, use fragments for modular evolution:
|
|
724
|
+
|
|
725
|
+
```
|
|
726
|
+
my-agent/prompts/
|
|
727
|
+
├── system.md # Core identity and approach
|
|
728
|
+
└── fragments/
|
|
729
|
+
├── reasoning.md # Step-by-step reasoning instructions
|
|
730
|
+
├── output_format.md # Output formatting rules
|
|
731
|
+
└── domain_rules.md # Domain-specific constraints
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
Your agent can compose these:
|
|
735
|
+
|
|
736
|
+
```python
|
|
737
|
+
class MyAgent(ae.BaseAgent):
|
|
738
|
+
def _build_system_prompt(self):
|
|
739
|
+
base = self.system_prompt # From prompts/system.md
|
|
740
|
+
workspace = AgentWorkspace(self._workspace_dir)
|
|
741
|
+
fragments = workspace.list_fragments()
|
|
742
|
+
for frag_name in fragments:
|
|
743
|
+
content = workspace.read_fragment(frag_name)
|
|
744
|
+
base += f"\n\n{content}"
|
|
745
|
+
return base
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
### Skill Organization
|
|
749
|
+
|
|
750
|
+
Skills should be broad procedures, not narrow fixes:
|
|
751
|
+
|
|
752
|
+
```
|
|
753
|
+
skills/
|
|
754
|
+
├── verify-solution/ # Good: broad procedure
|
|
755
|
+
│ └── SKILL.md
|
|
756
|
+
├── handle-edge-cases/ # Good: reusable pattern
|
|
757
|
+
│ └── SKILL.md
|
|
758
|
+
└── debug-and-fix/ # Good: general workflow
|
|
759
|
+
└── SKILL.md
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
**Avoid:**
|
|
763
|
+
```
|
|
764
|
+
skills/
|
|
765
|
+
├── fix-django-test-runner/ # Too narrow
|
|
766
|
+
├── handle-empty-list-input/ # Too narrow
|
|
767
|
+
├── use-pytest-fixtures/ # Too narrow
|
|
768
|
+
└── ...30 more narrow skills # Library bloat
|
|
769
|
+
```
|
|
770
|
+
|
|
771
|
+
The default SkillForge engine merges overlapping skills automatically. If using a custom engine, implement merging:
|
|
772
|
+
|
|
773
|
+
```python
|
|
774
|
+
def _should_merge(self, existing_skill: str, new_skill: str) -> bool:
|
|
775
|
+
"""Check if two skills cover overlapping procedures."""
|
|
776
|
+
# Compare skill descriptions and content for overlap
|
|
777
|
+
overlap = compute_similarity(existing_skill, new_skill)
|
|
778
|
+
return overlap > 0.6
|
|
779
|
+
|
|
780
|
+
def _merge_skills(self, workspace, existing_name: str, new_content: str):
|
|
781
|
+
"""Merge a new skill into an existing one."""
|
|
782
|
+
existing = workspace.read_skill(existing_name)
|
|
783
|
+
merged = llm_merge(existing, new_content) # Use LLM to combine
|
|
784
|
+
workspace.write_skill(existing_name, merged)
|
|
785
|
+
```
|
|
786
|
+
|
|
787
|
+
### Memory Categories
|
|
788
|
+
|
|
789
|
+
Use categories to organize episodic memory:
|
|
790
|
+
|
|
791
|
+
```python
|
|
792
|
+
# During solve
|
|
793
|
+
self.remember("Test runner requires --no-header flag", category="tool_quirks")
|
|
794
|
+
self.remember("Django uses reverse URL resolution", category="domain_knowledge")
|
|
795
|
+
self.remember("Off-by-one in loop caused test failure", category="common_errors")
|
|
796
|
+
|
|
797
|
+
# During prompt composition
|
|
798
|
+
tool_memories = workspace.read_memories(category="tool_quirks", limit=10)
|
|
799
|
+
error_memories = workspace.read_memories(category="common_errors", limit=20)
|
|
800
|
+
```
|
|
801
|
+
|
|
802
|
+
### Git Tagging Strategy
|
|
803
|
+
|
|
804
|
+
The evolution loop creates `pre-evo-N` and `evo-N` tags. You can add custom tags:
|
|
805
|
+
|
|
806
|
+
```bash
|
|
807
|
+
# Tag a particularly good checkpoint
|
|
808
|
+
git tag "best-v1" evo-7
|
|
809
|
+
|
|
810
|
+
# Tag before a major config change
|
|
811
|
+
git tag "pre-stage2" evo-10
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+
This makes it easy to compare across stages:
|
|
815
|
+
|
|
816
|
+
```bash
|
|
817
|
+
git diff best-v1 evo-15 -- prompts/system.md
|
|
818
|
+
git diff pre-stage2 evo-20 -- skills/
|
|
819
|
+
```
|