Aller au contenu

Format de sortie

Chaque appel d’outil renvoie trois choses :

Partie Pour Contenu
content[0].text Le modèle Un résumé Markdown : ce qui a été trouvé ou fait, et la suite à donner.
structuredContent Le client et la carte Les données, valides selon l’outputSchema de l’outil, avec un kind qui dit ce qu’elles sont.
La carte (_meta.ui.resourceUri) L’utilisateur, dans l’app Claude La carte VibeSell, qui affiche structuredContent selon son kind.

isError vaut false pour un résultat et true pour un refus ; un refus ne porte que du texte. Voir Erreurs et refus.

choose_sending_source · résultat
{
"content": [
{
"type": "text",
"text": "**Question for the user:** Choose your sending addresses\n_This decides what gets set up for you. Nothing is set up, reserved or billed by this answer._\n\n- `already_warmed` — Start sooner (…)\n- `own_names` — Send under my brand (…)\n- or an answer in their own words\n\nPut this to the user and wait for THEIR answer — never pick for them. Then call choose_sending_source again with the same arguments and answers: [{\"card\":\"ecdbf5a52b3ecea6\",\"answer\":\"<their answer>\"}]…"
}
],
"structuredContent": {
"kind": "choice",
"tool": "choose_sending_source",
"arguments": {},
"card": "ecdbf5a52b3ecea6",
"question": "Choose your sending addresses",
"reason": "This decides what gets set up for you. Nothing is set up, reserved or billed by this answer.",
"choices": [
{
"id": "already_warmed",
"label": "Start sooner",
"description": "Addresses already prepared, without your brand's name. …"
},
{
"id": "own_names",
"label": "Send under my brand",
"description": "Addresses created for you, ready after about 2 business days of preparation, weekends not counted."
}
],
"allowFreeText": true,
"answers": []
},
"isError": false
}

Le résultat de chaque outil porte un kind. Les clients peuvent s’en servir pour afficher les résultats à leur façon.

kindRenvoyé par
approvalorder_sending_setup, import_leads, launch_campaign, stop_campaign, resume_campaign, upgrade_plan, decide_approval
approvalslist_pending_approvals
campaignget_campaign, stage_campaign
campaign_estimateestimate_campaign_plan
checkoutstart_checkout
choicechoose_sending_source, propose_domains, propose_warmed_domains, propose_email
domain_quotecheck_domains
email_stepchoose_sending_source, propose_domains, propose_warmed_domains, propose_email
first_emailcheck_first_email
lead_countestimate_lead_pool
lead_previewpreview_lead_sample
memoryremember
offersave_offer
plansget_plans_and_billing
playbooksave_playbook
portalopen_billing_portal
replieslist_replies
sending_choicechoose_sending_source, propose_domains, propose_warmed_domains, propose_email
sending_setupget_sending_setup
sequencesave_sequence, approve_sequence
sizingsize_sending_capacity, confirm_sizing
supportcontact_support
targetsave_target, save_target_filters, confirm_target
warmed_shelflist_warmed_domains
warmupstart_warmup
workspaceget_workspace_context

Les outils qui posent une question à l’utilisateur — choose_sending_source, propose_domains, propose_warmed_domains, propose_email — renvoient kind: "choice" avec :

  • card — l’identifiant de cette question ;
  • question, reason et choices (chacun avec un id, un label et parfois une description) ;
  • allowFreeText — si l’utilisateur peut répondre avec ses propres mots ;
  • arguments — les arguments avec lesquels rappeler l’outil ;
  • answers — les réponses données jusqu’ici.

L’assistant pose la question à l’utilisateur, puis rappelle le même outil avec les mêmes arguments et answers égal à la liste reçue plus { "card": "<card id>", "answer": "<choice id or the user's words>" }. Une réponse n’est acceptée que pour la carte exacte à laquelle elle a été donnée : si la question a changé entre-temps, l’outil la repose. Une fois la question réglée, le résultat passe à sending_choice ou email_step.

Les six outils d’approbation renvoient kind: "approval" avec un status — pending, done, not_done ou rejected —, l’action de la carte, son summary, l’impact rédigé par le serveur, l’indicateur irreversible et expiresAt, plus decideHere et appUrl. Voir Cartes d’approbation.

Les résultats renvoient l’utilisateur vers VibeSell quand une chose s’y décide ou s’y fait : appUrl (l’app), les liens de facturation d’open_billing_portal, et la page de paiement Stripe de start_checkout. Seul l’utilisateur les ouvre.