██████╗ ███████╗ █████╗ ██████╗████████╗
██╔══██╗██╔════╝ ██╔══██╗██╔════╝╚══██╔══╝
██████╔╝█████╗ ███████║██║ ██║
██╔══██╗██╔══╝ ██╔══██║██║ ██║
██║ ██║███████╗ ██║ ██║╚██████╗ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝
Harness ReAct from scratch — TypeScript + Bun + Groq
Un harness ReAct (Reason + Act) écrit à la main, sans aucune librairie agent.
Le LLM décide lui-même quels outils appeler à chaque tour, jusqu'à compléter sa mission.
| Outil | Description |
|---|---|
fetch_url(url) |
Récupère le contenu textuel d'une URL (max 5000 chars) |
run_js(code) |
Exécute un snippet JS via Bun.spawn() et retourne le stdout |
save_note(content) |
Ajoute du contenu dans notes/rapport.md |
react-llm/
├── index.ts # Boucle ReAct principale (max 15 tours)
├── src/
│ ├── modules/
│ │ └── LLM.ts # Wrapper Groq avec gestion tool_calls + rate limit
│ ├── tools/
│ │ ├── fetchUrl.ts # fetch_url
│ │ ├── runJs.ts # run_js (Bun.spawn)
│ │ └── saveNote.ts # save_note
│ └── constant/
│ └── tools.constants.ts # Définitions des tools + mission de test
├── notes/
│ └── rapport.md # Généré par l'agent
├── skills/
│ └── marseillais # Exemple de Skill
│ └── SKILLS.md # Fichier contenant les skills attendues
├── .env.example
└── package.json
| Outil | Version |
|---|---|
| Bun | >= 1.0 |
| Clé API Groq | — |
git clone https://github.com/VialsShiny/LLM-ReAct.git
cd LLM-ReAct
bun install
cp .env.example .env
# → Remplir GROQ_API_URL et GROQ_API_KEY dans .env
bun run startFait avec 🤙 par @VialsShiny