Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/JohnNuwan/EVA_CORE --skill arbor-optimization명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Concevoir et maintenir un watchdog auto-correcteur pour services HTTP — checks de santé, auto-restart, état persistant, rapports et pièges bash.
Serveur de messagerie sécurisé auto-hébergé (Signal-like) avec Flask + WebSocket + AES-256-GCM + pont EVA
ADAM-SENTINEL — Veilleur technologique 24h/24h. Scanne 10 domaines, cree des rapports, met a jour les skills, alerte sur les CVE et breaking changes.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | arbor-optimization |
| description | Optimisation autonome par arbre d'hypothèses. |
| version | 1.0.0 |
| author | EVA Agent (inspired by RUC-NLPIR Arbor) |
| license | MIT |
| platforms | ["linux","macos","windows"] |
| metadata | {"EVA":{"tags":["autonomous-research","hypothesis-tree","optimization","delegation"],"related_skills":["subagent-driven-development","plan","systematic-debugging"]}} |
Le workflow Arbor (Hypothesis-Tree Refinement - HTR) permet de mener à bien des tâches de recherche et d'optimisation complexes à long horizon. Contrairement aux approches linéaires traditionnelles de résolution de problèmes, Arbor traite l'exploration comme un arbre d'hypothèses persistant. Les idées d'optimisation sont explorées de façon non linéaire, validées de manière rigoureuse, puis intégrées ou élaguées selon les résultats obtenus.
Cette compétence structure le processus de décision en deux rôles distincts :
delegate_task) : Des sous-agents exécutent les expérimentations de façon isolée (par exemple, dans un git worktree) et mesurent l'impact réel des modifications sur les métriques clés.L'état complet de la recherche est consigné dans un fichier structuré arbor_tree.json à la racine de l'espace d'exploration.
{
"objective": "Minimiser la consommation mémoire du parseur JSON sans dégrader le débit.",
"metrics_definition": {
"primary": "peak_memory_mb",
"secondary": "throughput_ops_sec",
"validation": "test_suite_passed"
},
"baseline": {
"peak_memory_mb": 256.0,
"throughput_ops_sec": 12000.0,
"test_suite_passed": true
},
"best_candidate": "node_02",
"nodes": {
"root": {
"id": "root",
"hypothesis": "Implémentation initiale utilisant le parseur standard de la bibliothèque."
Le coordinateur doit suivre les étapes suivantes pour exécuter le workflow Arbor :
Avant toute modification, l'agent doit exécuter la suite de tests et les benchmarks existants sur l'implémentation actuelle afin de consigner la base de référence dans arbor_tree.json.
Outils requis : terminal, write_to_file.
En analysant les nœuds existants (en particulier la branche du meilleur candidat actuel), le coordinateur formule de nouvelles hypothèses. Il existe trois types de générations d'hypothèses :
Pour évaluer une hypothèse, le coordinateur doit déléguer le travail à un sous-agent. L'exécuteur doit travailler dans un espace de travail isolé (par exemple, un git worktree) pour éviter tout conflit de fichiers en cas d'échec ou d'exécutions parallèles.
delegate_task(
goal="Évaluer l'hypothèse node_03 : Ajouter un cache d'objets réutilisables au parseur du node_02.",
context="""
OBJECTIF : Réduire encore la mémoire du node_02.
INSTRUCTIONS DE DÉPART :
1. Appliquer le patch du parent : patches/node_02.patch
2. Implémenter l'hypothèse : ajouter un pool d'objets réutilisables pour éviter l'allocation fréquente de dictionnaires.
3. Lancer les tests unitaires pour valider le comportement : pytest tests/test_sort.py
4. Si les tests passent, lancer le script de benchmark : python benchmark.py
LIVRABLES ATTENDUS :
- Fichier patch des modifications : patches/node_03.patch
- Métriques obtenues (mémoire de crête et débit)
- Enseignements (insights) sur le comportement observé
""",
toolsets=["terminal", "file"]
)
L'exécuteur renvoie les résultats au coordinateur. Pour être acceptée comme une amélioration, l'implémentation doit passer par deux verrous :
Le coordinateur met à jour arbor_tree.json :
best_candidate.pruned (élagué). Les insights d'échec (ex. "le cache d'objets génère des collisions de thread" ou "le ramasse-miettes passe trop de temps sur les petits objets") sont remontés au parent.Pour égaler la rigueur du framework Arbor original, plusieurs mécanismes avancés doivent être implémentés au niveau du coordinateur.
Plutôt que de choisir systématiquement le meilleur nœud de validation, le coordinateur utilise une formule de compromis exploration/exploitation pour sélectionner le nœud parent à étendre.
La priorité d'extension d'un nœud $i$ est calculée par : $$Score(i) = Performance(i) + C \times \sqrt{\frac{\ln(N_{total})}{N_i + 1}} - \beta \times Depth(i)$$
0.5).Lors de l'utilisation du LLM pour formuler de nouvelles hypothèses, le coordinateur injecte systématiquement les insights d'échecs de la fratrie (les nœuds ayant le même parent et ayant échoué).
Exemple de modèle de prompt de mutation (Coordinateur) :
Vous devez générer la prochaine hypothèse d'optimisation pour le nœud [node_02].
Code actuel du nœud parent : [voir patches/node_02.patch]
Métrique du nœud parent : 110.0 MB.
Hypothèses déjà explorées à partir de ce parent et ayant échoué (Ne les répétez pas et évitez les techniques similaires) :
- Nœud [node_03] (Échec) : Ajout d'un pool d'objets. Insight d'échec : WinError 32 / PermissionError sur le cache d'accès concurrent.
- Nœud [node_04] (Échec) : Réduction de la taille des chunks à 4KB. Insight d'échec : Augmentation de 40% des requêtes système I/O, temps dégradé à 1.9s.
Proposez une nouvelle hypothèse qui contourne ces limitations logiques.
Pour économiser le budget de jetons d'API et le temps de calcul, appliquez les heuristiques d'élagage suivantes sur l'arbre de recherche :
stale (périmé) et retiré de la file d'attente de sélection.Pour garantir la robustesse des optimisations, appliquez des règles strictes lors de la validation des nœuds :
graph TD
A[Modification du Code] --> B{Tests unitaires & d'intégration}
B -- Échec --> C[Nœud rejeté / Pruned]
B -- Réussite --> D{Hold-out Validation Dataset}
D -- Régression/Overfit --> C
D -- Amélioration globale --> E[Nœud validé / Harvested]
tests/validation_harness/) qui n'est exécuté que lors de l'étape finale d'évaluation du nœud.L'objectif est d'optimiser le temps de réponse d'un service d'API qui effectue des jointures SQL complexes. Le temps initial de l'API est de 850ms.
(user_id, status) dans la table SQL.best_candidate devient node_01.pruned avec l'insight : "La mise en cache brute casse l'exigence de cohérence immédiate des données utilisateur."node_01 (avec l'index SQL), ajouter une réécriture de requête (Query Rewrite) pour remplacer une sous-requête corrélée par un JOIN.node_01. Le benchmark donne 95ms. Tous les tests passent.best_candidate devient node_03.L'exploration s'arrête. Le coordinateur applique définitivement le patch patches/node_03.patch sur la branche principale du dépôt.
Lorsqu'un sous-agent travaille sur une hypothèse, il doit :
git worktree add -b arbor-node-03 .worktrees/node_03 origin/main
git diff origin/main > ../../patches/node_03.patch
git worktree remove .worktrees/node_03
Note : En cas d'erreur de privilèges système sur Windows pour la création de liens ou de dossiers de travail, l'exécuteur peut basculer sur une copie de répertoire temporaire standard isolée.