Comment récupérer une page web en Markdown
Ce guide montre comment faire lire une page web au modèle, ou la faire enregistrer dans un fichier, avec l'outil intégré fetch_content. Il suppose que vous lancez déjà mm avec un fichier de configuration.
Étapes
-
Activez l'outil dans votre fichier de configuration (il est désactivé par défaut) :
fetchContentTool: true -
Lancez
mmet vérifiez que la bannière de démarrage citefetch_contentparmi les outils. -
Demandez la page avec vos mots, dans la langue de votre choix :
récupère le contenu de https://k33g.orgfetch the content of https://k33g.orgLe terminal affiche
🌐 fetch_content: https://k33g.org, puis les premières lignes du Markdown, et le modèle répond à partir de ce contenu.
Enregistrer la page dans un fichier sans l'afficher
Nommez le fichier et précisez de ne pas l'afficher :
récupère le contenu de https://hello.com mais ne l'affiche pas et sauve le dans hello.txt
Le modèle passe output: hello.txt. Le Markdown est écrit dans hello.txt (relatif au répertoire où tourne mm, ou au projet ouvert dans l'éditeur) et l'outil ne renvoie qu'une ligne :
[fetch_content: saved 9 lines of Markdown (421 bytes) from https://hello.com to hello.txt — the content is not shown]
La page n'entre pas dans la conversation : une page longue n'épuise donc pas la fenêtre de contexte.
Orienter l'agent vers une liste de pages
Pour que l'agent lise d'abord certaines pages, listez-les dans le prompt système. Aucun autre réglage n'est nécessaire :
fetchContentTool: true
system: |
You answer questions about mini-me from its documentation.
Before answering, call fetch_content on the page of this list that fits the
question, and answer from it. Do not use any other URL.
- How to add a skill: https://rickub.com/bots-garden/mini-me/blob/main/docs/en/how-to/add-a-skill.md
- How to keep sessions: https://rickub.com/bots-garden/mini-me/blob/main/docs/en/how-to/keep-sessions.md
Donnez à chaque URL quelques mots qui disent quand l'utiliser : c'est sur cette base que le modèle choisit.
Cette liste guide le modèle, mais ne le limite pas. Si on lui demande un autre site, le modèle peut quand même le récupérer, même avec Do not use any other URL. Pour bloquer des URL, utilisez un hook : voir protéger l'agent avec des hooks.
La liste est envoyée à chaque requête. Au-delà de quelques pages, envisagez un skill : voir ajouter un skill.
Variantes
- Une URL tapée à la va-vite.
k33g.orgethttps//k33g.orgfonctionnent : un schéma manquant devienthttps://, les deux-points oubliés sont remis. - Tableaux complexes. Les tableaux à cellules fusionnées sont gardés en HTML brut par défaut. Demandez des tableaux aplatis (« …en tableaux Markdown, aplatis-les ») et le modèle passe
tables: flatten. - Texte barré et listes de tâches. Demandez-les explicitement (« garde le texte barré », « garde les cases à cocher ») et le modèle passe
strikethrough: trueoutaskList: true. - Liens relatifs à un autre site. Si la page est un miroir, demandez de résoudre les liens par rapport à l'original ; le modèle passe
baseUrl. - Avec
yolo: false. Lire une page ne demande aucune permission ; l'enregistrer dans un fichier la demande d'abord, commewrite_file.
En cas d'échec
Le modèle reçoit [fetch_content: error N (…) — raison] et vous explique en général pourquoi :
error 2 (input): le site est injoignable, a renvoyé une erreur HTTP, ou sonrobots.txtinterdit aux robots de lire cette page.mmne contourne pas lerobots.txt.error 1 (conversion): l'URL n'est pas une page HTML (un PDF, du JSON, une image) ou dépasse 5 Mio.error 3 (usage): l'appel lui-même est faux, par exemple une URLftp://.
Si le modèle utilise curl via bash à la place, l'outil n'est probablement pas déclaré : vérifiez fetchContentTool: true et la bannière.
Voir aussi
- Chaque champ, règle et code d'erreur : référence des outils intégrés
- La clé de configuration : référence de la configuration
- Pourquoi l'outil fonctionne ainsi : l'outil
fetch_content
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
|