Agent_V2 #2

Merged
Kevin merged 12 commits from Agent_V2 into master 2026-02-09 19:25:11 +01:00
6 changed files with 252 additions and 8 deletions
Showing only changes of commit 52bf2d5a82 - Show all commits

View File

@@ -4,6 +4,7 @@ from tavily import TavilyClient
from pathlib import Path from pathlib import Path
from typing import List, Dict, Annotated from typing import List, Dict, Annotated
import sys import sys
import os
from langgraph.types import interrupt from langgraph.types import interrupt
from .StateElements.TodoElement import TodoElement from .StateElements.TodoElement import TodoElement
@@ -194,9 +195,72 @@ def search_in_files(query:str, state: Annotated[dict, InjectedState])->str:
return docs_content # Retourne la liste de documents trouvés return docs_content # Retourne la liste de documents trouvés
@tool
def write_week_report(numero_semaine:int, contenu:str)->str:
"""
Écrire un rapport sur une semaine du stage. Sauvegardera ce rapport dans un fichier en mémoire pour un usage futur.
Args:
numero_semaine (int): Semaine du stage. Commence à 1 pour la première semaine
contenu (str): Ce qu'il faut écrire dans ce rapport
Returns:
str: CHemin vers le fichier, ou une erreur en cas de problème
"""
try:
# Récupérer le chemin vers le point d'entrée
base_dir: Path = Path(sys.argv[0]).resolve().parent
reports_dir = base_dir / "rapports_resumes" # Chemin du dossier des rapports
reports_dir.mkdir(parents=True, exist_ok=True) # Créer le dossier
file_name = f"rapport_semaine_{numero_semaine}.txt"
full_path = reports_dir / file_name
with open(full_path, "w", encoding="utf-8") as f: # Écrire le contenu
f.write(contenu)
return str(full_path)
except Exception as e:
return f"Erreur lors de l'écriture: {str(e)}"
@tool
def write_library_tools_details_on_internship(contenu:str)->str:
"""
Enregistrer les détails sur le stage.
Utilise cet outil pour enregistrer tous les outils, logiciels, programmes, entreprises, ect.. utilisés pendant le stage.
Args:
contenu (str): Une liste de tous les éléments intéréssants, avec quelques détails sur chacun.
Returns:
str: CHemin vers le fichier, ou une erreur en cas de problème
"""
try:
# Récupérer le chemin vers le point d'entrée
base_dir: Path = Path(sys.argv[0]).resolve().parent
reports_dir = base_dir / "rapports_resumes" # Chemin du dossier des rapports
reports_dir.mkdir(parents=True, exist_ok=True) # Créer le dossier
file_name = f"rapport_outils.txt"
full_path = reports_dir / file_name
with open(full_path, "w", encoding="utf-8") as f: # Écrire le contenu
f.write(contenu)
return str(full_path)
except Exception as e:
return f"Erreur lors de l'écriture: {str(e)}"
def getTools()->List['Tools']: def getTools()->List['Tools']:
""" """
Récupérer la liste des 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]
def getWeeklyReportTools()->List['Tools']:
"""
Récupérer la liste des tools, POUR LE LLM EN CHARGE DE FAIRE LES RAPPORTS DE CHAQUE SEMAINE
"""
return [write_week_report, write_library_tools_details_on_internship, internet_search]