소스 정보
- 저장소
- JohnNuwan/EVA_CORE
- 최근 소스 활동
- 2026년 7월 18일 08:30
- 감지된 SKILL.md 언어
- 프랑스어
- 스타
- 0
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/JohnNuwan/EVA_CORE --skill agentic-research-and-arxiv명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| name | agentic-research-and-arxiv |
| description | Veille scientifique et extraction d'insights sur arXiv. |
| version | 2.0.0 |
| author | EVA Agent |
| license | Privée EVA St-Étienne |
| platforms | ["linux","macos","windows"] |
| tags | ["arxiv","recherche","veille-scientifique","extraction-connaissances","agentic-skills"] |
| keywords | ["arXiv API","crawling académique","synthèse de littérature","skill-generation"] |
La recherche agentique désigne la capacité d'un agent IA à conduire de manière autonome une revue de littérature scientifique, à en extraire les concepts clés, et à les transformer en compétences réutilisables (skills). Cette compétence formalise un pipeline complet allant de la formulation de requêtes ciblées sur des dépôts comme arXiv jusqu'à la génération de nouvelles capacités agentiques.
L'objectif est double :
SKILL.md opérationnels, intégrés au catalogue de l'agent.| Scénario | Pertinence |
|---|---|
| Vous devez suivre l'état de l'art sur un domaine en évolution rapide (ex. systèmes multi-agents, RLHF, agents LLM) | Élevée |
| Vous souhaitez générer automatiquement des fiches de compétences à partir de papiers de recherche | Élevée |
| Vous explorez un nouveau champ de recherche et avez besoin d'une synthèse structurée | Moyenne |
| Vous cherchez un article spécifique dont vous connaissez déjà l'identifiant | Faible (préférer une requête directe) |
[Requête] → [API arXiv] → [Filtrage & Extraction] → [Synthèse] → [Génération SKILL.md]
↑ |
└────────────── Boucle d'itération (affinement des mots-clés) ──────────┘
| Catégorie | Sous-catégories recommandées | Domaine |
|---|---|---|
cs.AI | Intelligence Artificielle | Généraliste |
cs.MA | Multi-Agent Systems | Systèmes multi-agents |
cs.LG | Machine Learning | Apprentissage automatique |
cs.CL | Computation and Language | NLP, LLM |
cs.RO | Robotics | Robotique |
stat.ML | Machine Learning (statistique) | Méthodes bayésiennes |
math.OC | Optimization and Control | Optimisation |
Pour les recherches ciblées, combinez une catégorie avec des mots-clés :
# Exemple de sélection de catégories cibles
CATEGORIES_CIBLES = {
"systemes_multi_agents": ["cs.MA", "cs.AI"],
"planification_taches": ["cs.AI", "cs.RO"],
"apprentissage_renforcement": ["cs.LG", "stat.ML"],
"industrie_4.0": ["cs.AI", "cs.SY", "eess.SY"],
}
L'API arXiv expose une interface REST simple. La construction de la requête respecte le format :
https://export.arxiv.org/api/query?search_query=QUERY&start=0&max_results=N&sortBy=relevance&sortOrder=descending
| Opérateur | Rôle | Exemple |
|---|---|---|
AND | Intersection stricte | all:multi-agent AND all:reinforcement+learning |
OR | Union large | all:transformer OR all:attention+mechanism |
ANDNOT | Exclusion | all:robot ANDNOT all:hardware |
curlcurl -s "https://export.arxiv.org/api/query?search_query=\
(all:\"multi-agent+systems\"+AND+all:\"task+planning\")+\
AND+cat:cs.AI&start=0&max_results=15&sortBy=submittedDate&sortOrder=descending" \
| grep -oP '<id>https?://arxiv\.org/abs/\K[^<]+'
Note : L'API arXiv limite chaque requête à
max_results=300maximum. Pour les recherches volumineuses, utilisez le paramètrestartpour paginer (start=0,start=100, ...).
Semantic Scholar fournit des métriques de citation et des recommandations :
import requests, json
def chercher_semantic_scholar(requete: str, limite: int = 10) -> list[dict]:
"""Recherche des articles via l'API Semantic Scholar.
Args:
requete: Termes de recherche.
limite: Nombre maximum de résultats.
Returns:
Liste de dictionnaires avec titre, résumé, année, nombre de citations.
"""
url = "https://api.semanticscholar.org/graph/v1/paper/search"
params = {"query": requete, "limit": limite, "fields": "title,abstract,year,citationCount"}
reponse = requests.get(url, params=params)
reponse.raise_for_status()
return reponse.json().get("data", [])
Les réponses de l'API arXiv sont au format Atom XML. Voici un parseur robuste :
import xml.etree.ElementTree as ET
NAMESPACES = {
"atom": "http://www.w3.org/2005/Atom",
"arxiv": "http://arxiv.org/schemas/atom",
}
def extraire_articles(xml_brut: str) -> list[dict]:
"""Extrait les métadonnées des articles depuis une réponse XML arXiv.
Args:
xml_brut: Réponse XML brute de l'API arXiv.
Returns:
Liste d'articles avec titre, résumé, lien PDF, auteurs, catégories.
"""
root = ET.fromstring(xml_brut)
articles = []
for entry in root.findall("atom:entry", NAMESPACES):
article = {
"id": entry.find("atom:id", NAMESPACES).text.strip(),
"titre": entry.find("atom:title", NAMESPACES).text.strip().replace("\n", " "),
"resume": entry.find("atom:summary", NAMESPACES).text.strip().replace("\n", " "),
"pdf": entry.find("atom:link[@title='pdf']", NAMESPACES).attrib["href"],
"auteurs": [a.find("atom:name", NAMESPACES).text for a in entry.findall("atom:author", NAMESPACES)],
"categories": [c.attrib["term"] for c in entry.findall("atom:category", NAMESPACES)],
}
articles.append(article)
return articles
Une fois les articles récupérés, appliquez une grille de notation pour hiérarchiser leur pertinence :
| Critère | Pondération | Description |
|---|---|---|
| Alignement sémantique | 40 % | Correspondance entre le résumé et le domaine cible |
| Nouveauté | 25 % | Date de soumission (< 6 mois = score max) |
| Impact | 20 % | Nombre de citations (via Semantic Scholar) |
| Applicabilité agentique | 15 % | Potentiel de transformation en compétence réutilisable |
def generer_skill_depuis_article(article: dict) -> str:
"""Génère un squelette de fichier SKILL.md à partir d'un article.
Args:
article: Dictionnaire contenant les métadonnées de l'article.
Returns:
Contenu markdown du fichier SKILL.md.
"""
nom_skill = article["titre"].lower().replace(" ", "-")[:50]
return f"""---
name: {nom_skill}
description: "Compétence générée depuis l'article : {article['titre']}"
version: 1.0.0
author: Généré automatiquement
license: Privée EVA St-Étienne
plateformes: [linux, macos, windows]
source: {article['id']}
---
# {article['titre']}
## Résumé de l'article
{article['resume'][:500]}
## Insights clés pour l'agent
<!-- Insights extraits automatiquement — à réviser manuellement -->
## Implémentation suggérée
<!-- À compléter avec des extraits de code ou des patrons d'appel outil -->
## Références
- PDF : {article['pdf']}
- Catégories : {', '.join(article['categories'])}
"""
Problème : Une requête comme
all:"exact phrase with many words that never appears"renvoie zéro résultat, tandis queall:agentrenvoie des milliers d'articles non pertinents.
Solution : Utilisez la méthode de la pyramide. Commencez large (all:reinforcement+learning), puis ajoutez des filtres un par un (AND all:multi-agent, AND cat:cs.MA).
Problème : L'API arXiv bloque les requêtes excessives (plus d'une requête toutes les 3 secondes).
Solution : Implémentez un délai entre les requêtes :
import time
def requete_avec_backoff(url: str, tentatives: int = 3) -> str:
"""Effectue une requête HTTP avec backoff exponentiel."""
for i in range(tentatives):
try:
reponse = requests.get(url, timeout=30)
reponse.raise_for_status()
return reponse.text
except requests.RequestException:
if i == tentatives - 1:
raise
time.sleep(2 ** i)
return ""
Problème : Par défaut, arXiv trie par pertinence, pas par date. Les articles les plus récents peuvent être noyés.
Solution : Spécifiez toujours sortBy=submittedDate&sortOrder=descending pour la veille chronologique.
Problème : Le résumé (abstract) ne contient pas toujours les détails d'implémentation nécessaires pour créer une compétence.
Solution : Après filtrage sur résumé, téléchargez le PDF (web_extract ou browser) pour une analyse approfondie des sections "Method" et "Experiments".
AND / OR) ?cat:cs.MA) pour réduire le bruit ?Combinez cette compétence avec le planificateur cron d'EVA pour une exécution périodique :
# Configuration cron pour veille hebdomadaire
veille_arxiv:
schedule: "0 9 * * 1" # Tous les lundis à 9h
skill: agentic-research-and-arxiv
params:
categories: ["cs.MA", "cs.AI"]
mots_cles: ["multi-agent", "task planning", "coordination"]
max_results: 20
generer_skills: true
research-multi-agent-complex-tasks : pour approfondir les aspects planification de tâches.rag-retrieval-augmented-generation : pour intégrer les articles récupérés dans un pipeline RAG.semantic-scholar-queries : pour enrichir les données de citation.references/arxiv_search_patterns.md : Catalogue de requêtes pré-construites par domaine.references/research-first-approach.md : Règle comportementale : toujours chercher sur le web avant d'improviser quand les compétences sont absentes.scripts/arxiv_bulk_search.py : Script pour la recherche par lots avec pagination automatique.scripts/generate_skill_from_papers.py : Générateur de squelettes SKILL.md.Documentation maintenue par EVA Agent — Dernière mise à jour : 2025