Appuyez sur / pour rechercher

Toute la documentation
docs Apprendre à l’agent Scribe

S’exécute surWrit CloudDesktop

scribe ▸ décrivez, elle construit

Décrivez la tâche. Scribe pilote.

Scribe est l’IA de Writ. Vous dites ce que vous voulez en langage clair ; elle ouvre un vrai navigateur, trouve la page, y valide un sélecteur, et construit le moniteur, le workflow ou le crawl. Elle travaille par tours, et elle s’arrête avant tout ce qui vous coûte de l’argent ou touche à vos comptes.

Scribe s’arrête et demande. Elle ne passe jamais commande, et ne vous demande jamais un numéro de carte.

validation ▸ elle s’arrête

Elle s’arrête et demande. C’est le principe.

Une mission avance par tours. Quand elle a besoin de vous, elle s’arrête : la session passe en awaiting_input et porte un pending_request qui décrit ce qu’elle attend. Il y a trois formes de pause :

PauseCe que vous voyez
Une questionUn ou plusieurs champs à renseigner — un seuil, un choix, une confirmation, une identité de connexion.
Une revue de lot de moniteursTous les sites découverts, tous présélectionnés et décochables un par un, avec un coût d’installation estimé — montré avant qu’un seul moniteur soit créé.
Une revue de mise en serviceLes URL d’endpoint qu’elle vient de publier, plus la proposition de créer une clé API pour elles.

L’achat automatique a une condition dure, pas une condition molle. Une persona, un moyen de paiement, une confirmation explicite et un seuil doivent tous être recueillis avant qu’elle ne rédige quoi que ce soit. S’il en manque un, elle demande au lieu d’avancer.

Deux façons d’arrêter. interrupt casse le tour en cours et gare la mission — elle est reprenable. cancel y met fin. Et une réponse à un tour déjà dépassé reçoit 409 : relisez la session et répondez au tour courant plutôt qu’à celui que vous regardiez.

capacités ▸ un outil par tour

Ce que vous pouvez lui demander.

Scribe choisit exactement un outil par tour, dans un jeu fixe. Elle ne peut pas inventer d’outil : la liste ci-dessous est donc tout ce qu’une mission peut faire.

Trouver et lire une pageArriver sur la bonne page, puis proposer un sélecteur et le valider sur la page en direct avant de l’utiliser.
Créer un moniteurSurveiller un prix face à un seuil numérique, ou surveiller un contenu au moindre changement de texte. Mode : un sélecteur, ou une comparaison visuelle pixel à pixel d’une zone de capture — c’est ainsi qu’on surveille graphiques, images, canvas/SVG et logos. Rendu : auto, http ou js.
Surveiller plusieurs sites d’un coupDécouvrir des sites candidats, proposer un lot classé pour votre revue, et créer un moniteur par site gardé en un seul tour.
Vous demander une entréetext, value, choice, confirm, secret, persona ou payment_method.
Se connecter en votre nomRattacher une identité de connexion enregistrée et gérer la 2FA, pour atteindre les pages derrière un login.
Construire un workflowRédiger un workflow d’achat automatique, mener une session autonome qui se connecte et en construit un, ou enregistrer un workflow à partir d’étapes que vous énoncez explicitement. Ajouter un appelable nommé.
Le tester et le planifierExécuter le workflow et rendre un PASS ou un FAIL avec des données d’exemple, puis configurer une planification.
Le publierExposer le workflow en REST, en surface compatible OpenAI, ou en MCP — puis s’arrêter pour vous montrer les URL en direct.
Câbler une automatisationRelier un changement détecté à une notification.
Crawler et répondreLancer un crawl de site entier avec progression en direct, replier un crawl terminé en une seule réponse, et armer un crawl récurrent ou réactif.
Utiliser ce que vous avez déjàLister, fouiller et répondre depuis les datasets déjà collectés. C’est le chemin le moins cher, et il passe avant tout crawl.
TerminerClore la mission par un résumé de ce qui a été construit.

Le jeu est fixe à dessein. Une IA qui ne peut choisir que dans une liste connue est une IA dont le pire tour reste un outil décrit sur cette page — « qu’est-ce qu’elle pourrait bien faire ? » a donc une réponse de longueur finie.

lieux ▸ deux, pas un

Scribe cloud et Scribe desktop ne sont pas la même chose.

Il y a deux implémentations, et elles diffèrent par ce qu’elles ont le droit de construire. Lisez la ligne qui correspond à votre lieu d’exécution avant de bâtir une mission dessus.

BaseCe qu’elle peut construire
Writ Cloud/api/ai-conciergeLe jeu complet — y compris la rédaction d’achat automatique et les lots de moniteurs multi-sites.
Writ Desktop/v1/ai-conciergeSurveiller et notifier. Pas de rédaction d’achat automatique, pas de lots multi-sites.
Auto-hébergéIndisponible. Scribe ne fait pas partie du coordinateur auto-hébergé.
AppelCe qu’il fait
POST /api/ai-concierge/startDémarrer une mission. Rend {session_id, status, poll_url} immédiatement ; le travail continue en arrière-plan.
GET /api/ai-concierge/{id}L’état complet de la session. C’est ce que vous interrogez.
POST /api/ai-concierge/{id}/respondRépondre à la pause en cours.
POST /api/ai-concierge/{id}/askPoser une question de suivi sur ce qu’elle a construit.
POST /api/ai-concierge/{id}/personaRattacher ou retirer l’identité de connexion.
POST /api/ai-concierge/{id}/interruptCasser le tour en cours et garer la mission.
POST /api/ai-concierge/{id}/cancelMettre fin à la mission.
GET /api/ai-conciergeVos missions, les plus récentes d’abord.

Sur l’agent desktop

La même forme, en loopback, contre l’agent qui tourne sur votre propre machine — et gratuite, puisque le navigateur est le vôtre :

POST /v1/ai-concierge/startDémarrer une mission.
GET /v1/ai-conciergeLister les missions.
GET /v1/ai-concierge/{id}L’état de session à interroger.
POST /v1/ai-concierge/{id}/respondRépondre à la pause en cours.
POST /v1/ai-concierge/{id}/interrupt · /cancelLa garer, ou y mettre fin.

Disons-le franchement : Scribe ne fait pas partie du coordinateur auto-hébergé. Un déploiement auto-hébergé exécute workflows, moniteurs, automatisations et crawls — il ne livre pas Scribe. Si vous voulez une construction pilotée par mission, c’est Writ Cloud ou Writ Desktop.

session ▸ ce que vous interrogez

La mission tourne en arrière-plan. Vous l’interrogez.

Le démarrage répond aussitôt avec un id de session et une URL d’interrogation — une mission de navigation survit à une requête HTTP, donc un handle est la réponse honnête. Chaque interrogation rend la même projection :

ChampContenu
session_id · goal · platformCe que vous avez demandé, et où ça tourne.
statusplanning, browsing, building, proposing, awaiting_input, armed — plus les états terminaux.
phase · progress_messageOù elle en est, en mots affichables à un utilisateur.
transcriptLa conversation jusqu’ici.
thoughtsL’outil choisi et une courte pensée, par étape.
planCe qu’elle a décidé jusqu’ici. Les références de paiement sont retirées.
pending_requestLa pause qu’elle attend, quand status vaut awaiting_input.
resourcesCe qu’elle a créé — le moniteur, le workflow, les endpoints.
turn_seqLe verrou optimiste que vous renvoyez en répondant.
tokensinput, output et les crédits dépensés jusqu’ici.
error_message · created_at · completed_atPourquoi elle s’est arrêtée, et quand.

Son raisonnement visible est volontairement étroit : l’outil choisi et une courte pensée. Les arguments et les résultats d’outil ne sont jamais diffusés — c’est aussi pourquoi rien de ce que vous avez tapé dans un champ secret ne peut apparaître dans le fil de raisonnement.

Démarrer, interroger, répondre

Une mission de bout en bout, en HTTP pur.

start.sh

# Describe the job. goal is 3-2000 characters; url is an optional seed.
curl -X POST https://api.usewrit.app/api/ai-concierge/start \
  -H "Authorization: Bearer $WRIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "goal": "Watch the price of the 15-inch model and alert me under $1,200",
    "url": "https://example.com/laptops/15"
  }'

respond ▸ répondre à une pause

Répondre au tour qui est devant vous.

Une réponse porte turn_seq et un objet answers indexé par les champs demandés. turn_seq est un verrou optimiste : renvoyez celui que vous avez lu. Si la mission a avancé, vous recevez 409 — rafraîchissez et répondez au tour courant au lieu d’écraser un tour plus récent.

Type d’entréeCe qu’il demande
textTexte libre.
valueUn nombre — un seuil de prix, une quantité.
choiceUn élément parmi ceux proposés.
confirmUn oui ou un non, avant que quelque chose n’arrive.
secretUn identifiant. Scellé dans le coffre à l’arrivée.
personaQuelle identité de connexion enregistrée utiliser.
payment_methodComment un achat serait payé, si vous en construisez un.

Une réponse secret est scellée dans le coffre dès son arrivée. Ce qui atteint ensuite une exécution est un marqueur résolu au moment de l’exécution — la valeur elle-même ne traverse ni le plan, ni la transcription, ni le modèle.

Une réponse peut porter un champ de plus, et Scribe ne le demande jamais. Le paiement se recueille comme un choix — le modèle ne peut pas réclamer de numéro de carte. Mais si vous prenez la voie avancée et en saisissez un, ces champs voyagent dans leur propre objet card_fields plutôt que dans answers, et sont scellés dans le coffre dès leur arrivée. Seuls des marqueurs atteignent le plan, payment_mode passe à vault_card, et les références sont ensuite retirées du plan que vous interrogez — le numéro lui-même ne traverse ni la transcription, ni le modèle. S’il ne peut pas être stocké, la réponse est refusée avec 400 : la pause reste ouverte, et rien n’est conservé.

La même chose, sur votre machine

Loopback, un token local, et le périmètre plus étroit du desktop — surveiller et notifier.

desktop.sh

curl -X POST http://127.0.0.1:8131/v1/ai-concierge/start \
  -H "Authorization: Bearer $WRIT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"goal": "Tell me when this page changes", "url": "https://example.com/status"}'

curl http://127.0.0.1:8131/v1/ai-concierge     -H "Authorization: Bearer $WRIT_TOKEN"
curl http://127.0.0.1:8131/v1/ai-concierge/7   -H "Authorization: Bearer $WRIT_TOKEN"

curl -X POST http://127.0.0.1:8131/v1/ai-concierge/7/respond \
  -H "Authorization: Bearer $WRIT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"turn_seq": 2, "answers": {"confirm": true}}'

curl -X POST http://127.0.0.1:8131/v1/ai-concierge/7/interrupt -H "Authorization: Bearer $WRIT_TOKEN"
curl -X POST http://127.0.0.1:8131/v1/ai-concierge/7/cancel    -H "Authorization: Bearer $WRIT_TOKEN"

limites ▸ franchement

Ce que Scribe ne fera pas.

À lire avant de bâtir dessus. Aucun de ces points n’est un réglage que vous pouvez changer :

  1. Elle ne passe pas la commande — Pour un achat, elle prépare le paiement jusqu’au bouton de paiement et s’arrête là. Le dernier clic est le vôtre.
  2. Elle ne demande jamais de numéro de carte — Le paiement se recueille comme un choix — une carte déjà enregistrée chez le marchand, l’autoremplissage de votre propre navigateur sur votre propre machine, ou une carte virtuelle. Le modèle ne peut pas réclamer de numéro. Si vous prenez la voie avancée et en saisissez un vous-même, il est scellé dans le coffre dès son arrivée et seul un marqueur atteint le plan.
  3. Elle ne peut pas inventer d’outil — Un outil par tour, dans le jeu fixe décrit sur cette page. Il n’y a pas d’action libre.
  4. Elle ne tourne pas en auto-hébergé — Scribe ne fait pas partie du coordinateur auto-hébergé.
  5. Scribe desktop est plus étroite — Pas de rédaction d’achat automatique, et pas de lots de moniteurs multi-sites.
  6. Elle ne diffuse ni ses arguments ni ses résultats — Le raisonnement visible est l’outil choisi et une courte pensée. Rien de plus.

plan ▸ ce que ça coûte

Ce qu’il lui faut, et ce qu’elle dépense.

Scribe demande un plan incluant l’assistance IA. La dépense en tokens est décomptée et affichée dans la session elle-même — le champ tokens porte input, output et les crédits consommés jusqu’ici, pour qu’une longue mission ne soit jamais une surprise à la fin. Une mission sur votre propre machine pilote votre propre navigateur : le temps de navigateur est donc gratuit, les tokens IA restent décomptés.

faq

Questions Scribe, répondues.

Scribe va-t-elle acheter quelque chose sans me demander ?
Non. Elle prépare le paiement jusqu’au bouton de paiement et s’arrête — le dernier clic est le vôtre. Et elle ne rédigera même rien tant qu’elle n’a pas recueilli une persona, un moyen de paiement, une confirmation explicite et un seuil. S’il en manque un des quatre, elle s’arrête et demande.
Scribe voit-elle un jour mon numéro de carte ?
Non. Scribe ne peut pas en demander — le paiement se recueille comme un choix entre une carte déjà enregistrée chez le marchand, l’autoremplissage de votre propre navigateur sur votre propre machine, et une carte virtuelle. Si vous prenez la voie avancée et saisissez une carte vous-même, elle est scellée dans le coffre dès son arrivée, seul un marqueur atteint le plan, et payment_mode passe à vault_card. Le numéro ne traverse ni la transcription, ni le modèle, et les références de paiement sont retirées du plan que la session rend à votre client.
Puis-je faire tourner Scribe sur un déploiement auto-hébergé ?
Non. Scribe ne fait pas partie du coordinateur auto-hébergé. Un déploiement auto-hébergé exécute workflows, moniteurs, automatisations et crawls ; la surface de construction pilotée par mission n’existe que sur Writ Cloud et Writ Desktop.
Qu’est-ce qui change avec Scribe desktop ?
Elle se limite à surveiller et notifier : pas de rédaction d’achat automatique et pas de lots de moniteurs multi-sites. Tout le reste — trouver une page, valider un sélecteur, créer un moniteur, construire et tester un workflow — fonctionne pareil, en loopback, en pilotant le navigateur de votre propre machine.
Mon appel respond a rendu 409. Que s’est-il passé ?
Le tour a avancé entre votre lecture et votre écriture. turn_seq est un verrou optimiste : une réponse portant un ancien numéro est refusée plutôt qu’appliquée à la mauvaise question. Relisez la session, regardez pending_request, et répondez au tour courant.
Quelle part de son raisonnement puis-je voir ?
L’outil choisi et une courte pensée par étape, dans le champ thoughts. Les arguments et résultats d’outil ne sont pas diffusés — un secret tapé dans une pause ne peut donc pas ressortir dans le fil de raisonnement. La dépense en tokens reste visible tout du long, dans le champ tokens.

fin ▸ demandez-lui

Décrivez une tâche et regardez-la s’arrêter.

La façon la plus rapide de comprendre le modèle de validation est de démarrer une mission et de lire le premier pending_request sur lequel elle s’arrête.