|
277 | 277 | - Il nous faut aussi créer un dataset pour l’évaluation offline. |
278 | 278 | - Un autre aspect important du deep search est aussi la **synthèse des informations** récupérées. Il doit notamment identifier les entités au travers des documents, y compris quand il y a une ambiguïté, et identifier et gérer les contradictions entre les documents. |
279 | 279 | - Le problème principal du deep search est sa lenteur, même si on peut en partie la mitiger en parallélisant certaines actions. |
| 280 | + |
| 281 | +## 10 - Composable Agentic Workflows |
| 282 | + |
| 283 | +- On construit un slice vertical applicatif multi-agent sans utiliser de frameworks. La feature est la création de contenu éducatif. |
| 284 | +- Il y a une version agent autonome en CLI, et une version copilote en web UI. La version agent est équivalente à la version copilote où l’utilisateur accepterait chaque étape et ne ferait aucun changement. |
| 285 | +- Ce que fait l’app : |
| 286 | + - La version web UI demande un sujet. |
| 287 | + - Une fois que le user le renseigne, elle va matcher un writer, par exemple HISTORIAN, que le user peut modifier. |
| 288 | + - Tous les feedbacks user sont loggués : c’est important pour l’amélioration de **collecter des feedback user avec une bonne UX**. |
| 289 | + - Ensuite on a un texte et des mots clés générés, ce sont des _artifacts_ au sens d’Anthropic. |
| 290 | + - Ces _artifacts_ peuvent être directement édités par le user avant qu’il valide, et tous ces changements du user sont là aussi loggués. |
| 291 | + - La lib mem0 est utilisée pour stocker les retours du user long terme dans une DB vectorielle, après extraction des infos par un LLM. Par la suite une comparaison vectorielle permet de savoir s’il faut charger un des éléments en mémoire ou non du fait de la similarité sémantique. |
| 292 | +- Il y a 5 aspects principaux dans l'**architecture système** de cette app : |
| 293 | + - **Agent patterns** : |
| 294 | + - Les agents apprennent des informations que l’utilisateur donne pour devenir autonomes pour faire la tâche en question. Il faut donc que les informations que le user récupère passent systématiquement par l’app. |
| 295 | + - Chaque étape est implémentée par un ou plusieurs agents. |
| 296 | + - Les agents ont les caractéristiques suivantes : |
| 297 | + - Suivent un plan : _Pattern 13 - Chain of Thought_ |
| 298 | + - Retrouvent de la donnée : |
| 299 | + - _Pattern 6 - Basic RAG_ |
| 300 | + - _Pattern 9 - Index-Aware Retrieval_ |
| 301 | + - Appellent des tools : |
| 302 | + - _Pattern 21 - Tool Calling_ |
| 303 | + - Ils peuvent reprendre après une erreur : |
| 304 | + - _Pattern 18 - Reflection_ |
| 305 | + - _Pattern 31 - Self-Check_ |
| 306 | + - Ils peuvent arbitrer entre risque et créativité : |
| 307 | + - _Pattern 29 - Template Generation_ |
| 308 | + - _Pattern 30 - Assembled Reformat_ |
| 309 | + - Chaque agent est implémenté avec le framework (ou l’absence de framework) qui permet le mieux d’implémenter les patterns dont il a besoin. Exemples : |
| 310 | + - LlamaIndex pour ceux qui ont besoin d’un RAG. |
| 311 | + - |
0 commit comments