Agent_V3 #3

Merged
Kevin merged 12 commits from Agent_V3 into master 2026-02-12 15:24:11 +01:00
3 changed files with 87 additions and 2 deletions
Showing only changes of commit d575fdb511 - Show all commits

48
AgentReact/skills.md Normal file
View File

@@ -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
```

View File

@@ -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']:
"""

View File

@@ -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