From d575fdb5117743ae9a079f6401af2962442deeec Mon Sep 17 00:00:00 2001 From: LJ5O <75009579+LJ5O@users.noreply.github.com> Date: Tue, 10 Feb 2026 16:51:12 +0100 Subject: [PATCH] Skill.md tool --- AgentReact/skills.md | 48 +++++++++++++++++++++++++++++++++++++++ AgentReact/utils/tools.py | 39 ++++++++++++++++++++++++++++++- roadmap.md | 2 +- 3 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 AgentReact/skills.md diff --git a/AgentReact/skills.md b/AgentReact/skills.md new file mode 100644 index 0000000..aa66d16 --- /dev/null +++ b/AgentReact/skills.md @@ -0,0 +1,48 @@ +# Fichier des skills et compétences +Ce fichier vise à t'expliquer comment réaliser certaines étapes de la génération du rapport de stage. + +--- +## Creation_plan + +Voici un plan que tu peux utiliser pour générer un rapport de stage: +``` +# Rapport de stage au sein de l'entreprise [NOM] + +## Sommaire + +- Introduction +- L'entreprise [NOM] +- État de l'art +- Le stage + - Semaine 1 + - Semaine 2 + - ... + - Semaine n +- Conclusions et résultats +- Sources + +## Introduction + Ecris une courte intro, de deux ou trois paragraphes. + +## L'entreprise [NOM] + Décris l'entreprise, ce qu'elle fait, ses clients, son secteur, ... + Fais deux ou trois paragraphes. + +## État de l'art + Regarde quels outils, techniques, supports ont été utilisés, décris-les et explique. Décris aussi les dernières avancées dans le domaine du rapport de stage et les outils utilisés pour le mener à bien, avec un paragraphe par outil, technique ou support. + +## Le stage + Décris globalement le stage et introduis le en un paragraphe + + +### Semaine 1 + Fais deux ou trois paragraphes par semaine pour expliquer ce qui a été fait, ce qui devra suivre, comment ça a été fait, ect... + +### Semaine n + +## Conclusion et résultats + Reprends ici les découvertes faites pendant le stage, fais ressortir les résultats et les enseignements du stage, en deux à quatre paragraphes + +## Sources + Liste ici les sources que tu as utilisé pour rédiger l'ensemble du document +``` \ No newline at end of file diff --git a/AgentReact/utils/tools.py b/AgentReact/utils/tools.py index 354e4ec..a1bc51e 100644 --- a/AgentReact/utils/tools.py +++ b/AgentReact/utils/tools.py @@ -145,6 +145,43 @@ def read_file(file_path: str) -> str: except Exception as e: return f"Erreur lors de la lecture : {str(e)}" +@tool +def get_skill(skill_name:str=None)->str: + """ + Obtenir un skill, la description de comment faire quelque chose. + + Args: + skill_name (str, optional): Nom du skill recherché. Si ce n'est pas donné, listera les skills disponibles. + + Returns: + str: Sans nom de skill, la liste de ceux disponibles. Si un nom de skill est donné, l'ensemble de ce skill. + """ + try: + base_dir:str = Path(sys.argv[0]).resolve().parent.as_posix() # Récupérer le chemin vers le point d'entrée du programme + full_path:str = base_dir + "/skills.md" # Puis générer le chemin vers le fichier + + with open(full_path, "r", encoding="utf-8") as f: + content = f.read() + + if skill_name is None: + # Liste des skills + names = [] + for part in content.split("---")[1:]: # Pas besoin de la première partie + names.append(part.splitlines()[1].split(' ')[1]) # Récupérer le nom du skill à la seconde ligne + return str(names) + + else: + # Récupérer un skill + for part in content.split("---")[1:]: + if skill_name.lower() in part.lower(): # Dégueulasse pour l'opti mais c'est rapide à implémenter + # Si c'est ce skill qui est recherché + return f"{content.split("---")[0]}\n\n{part}" + + return "Ce skill n'existe pas ! Regarde la liste des skills en rappelant cet outil sans arguments !" + + except Exception as e: + return f"Erreur lors de la lecture : {str(e)}" + @tool def ask_human(request:str)->str: """ @@ -257,7 +294,7 @@ def getTools()->List['Tools']: """ Récupérer la liste des tools """ - return [internet_search, write_file, editTodo, read_file, ask_human, search_in_files, addTodo, removeTodo] + return [internet_search, write_file, editTodo, read_file, ask_human, search_in_files, addTodo, removeTodo, get_skill] def getWeeklyReportTools()->List['Tools']: """ diff --git a/roadmap.md b/roadmap.md index ea41980..ea7b878 100644 --- a/roadmap.md +++ b/roadmap.md @@ -22,7 +22,7 @@ ## Amélioration de l'agent - [ ] Cross-encoding sur la sortie du **RAG** - [ ] Sauvegarde de l'état de l'agent -- [ ] Lecture d'un `skills.md` +- [X] Lecture d'un `skills.md` - [ ] Système de redémarrage après un arrêt - [ ] Détection de *prompt injection* - [ ] Génération d'un PDF en sortie du système