Aller au contenu principal

Exemples

Des cas concrets pour voir ce que Touba rend explicite

Ces exemples montrent la valeur propre de Touba : déplacer l’autorité, les tools, les secrets, la validation, les mémoires, les triggers, les packages et les traces dans un contrat lisible.

Cas

Interaction et validation humaine

Demandez une information ou une approbation au bon moment. Le runtime gère la pause et la reprise ; la trace conserve les événements de l’interaction.

  • interaction visible dans l’AIR
  • pause/reprise gérée par le runtime
  • validation humaine tracée
Voir le tutoriel interaction humaine

Source .tb

module examples.scenario_human_interaction

type ChangeRequest
    summary is Text

skill ValidateChange
    takes request as ChangeRequest
    gives ChangeRequest
    do
        human.approve
            with context as request
            into approval
        give request

strategy RunHumanValidation
    takes request as ChangeRequest
    gives Text
    uses ValidateChange
    do
        show
            with message as "Change review started"

        ask
            with prompt as "Reviewer ticket?"
            into ticket

        ValidateChange
            with request as request
            into validated

        give ticket

Cas

Tool réel, manifest et SDK Touba

Déclarez un outil et ses permissions dans Touba. Le runtime vérifie le contrat avant d’appeler son handler JavaScript ou Python.

  • capabilities et secret handle visibles
  • binding manifest explicite
  • handler appelé après autorisation runtime
Voir le tutoriel tool et SDK

Source .tb

module examples.v1_tool_secrets

type Prompt
    text is Text

type Response
    text is Text

tool CallLLM
    takes prompt as Prompt
    gives Response
    requires network, secret_read
    secrets OPENAI_API_KEY

Cas

Agent, mémoire logique et autorité

Déclarez une mémoire et les droits de lecture ou d’écriture de chaque agent. Le contrat callable_by limite qui peut invoquer l’agent.

  • mémoire déclarée dans le contrat
  • scope lu par le runtime
  • invocation agent bornée par callable_by
Voir le tutoriel mémoire scopée

Source .tb

module examples.scenario_memory_scope

memory ProjectKnowledge

type Query
    text is Text

type KnowledgeResult
    summary is Text

tool ReadProjectKnowledge
    uses memory ProjectKnowledge read
    takes query as Query
    gives KnowledgeResult
    requires memory_read

skill SummarizeKnowledge
    takes query as Query
    gives KnowledgeResult
    uses ReadProjectKnowledge
    memory ProjectKnowledge read
    do
        ReadProjectKnowledge
            with query as query
            into result
        give result

agent Researcher
    uses SummarizeKnowledge
    memory ProjectKnowledge read
    callable_by strategy RunKnowledgeReview

strategy RunKnowledgeReview
    takes query as Query
    uses Researcher
    do
        Researcher

Cas

Mémoire PostgreSQL gouvernée

Reliez une base PostgreSQL aux mémoires du programme. Touba contrôle les droits d’accès et conserve la provenance des opérations.

  • droits read/write séparés
  • refus avant effet externe
  • provenance et intégrité tracées sans contenu mémoire brut
Voir le tutoriel PostgreSQL gouverné

Source .tb

module examples.memory_postgres_rb2

memory CustomerMemory

tool WriteCustomerMemory
    uses memory CustomerMemory write
    takes request as MemoryRequest
    gives MemoryResult
    requires network, secret_read, memory_write
    secrets POSTGRES_MEMORY_TOKEN

tool ReadCustomerMemory
    uses memory CustomerMemory read
    takes request as MemoryRequest
    gives MemoryResult
    requires network, secret_read, memory_read
    secrets POSTGRES_MEMORY_TOKEN

agent MemoryAgent
    uses StoreAndReadCustomerMemory
    memory CustomerMemory read
    memory CustomerMemory write
    callable_by strategy RunPostgresMemory

Cas

Trigger réel borné

Planifiez une stratégie avec un déclencheur explicite, un nombre maximal d’exécutions et un délai limite.

  • déclenchement activé par manifest
  • limites hôte sans élargir l’AIR
  • événements trigger_* inspectables
Voir le tutoriel trigger

Source .tb

module examples.trigger_morning_review

define ReviewTopic as Text = "signaux produit Touba"

strategy RunMorningReview
    takes topic as Text
    gives Text
    do
        show
            with message as topic
        give topic

trigger MorningReview
    on schedule "every 1s"
    runs strategy RunMorningReview
    with topic as ReviewTopic
    limits
        max_runs_per_day as 1
        timeout_ms as 30000

Cas

Usage multi-équipe

Partagez un package métier entre équipes tout en conservant les responsabilités, les autorisations et les vérifications de chaque projet.

  • imports sans autorité automatique
  • reviews et owners vérifiés
  • run plan et lock vérifiables avant exécution
Voir le tutoriel multi-équipe

Source .tb

module examples.customer_review_app

import type CustomerRequest from org.example.customer
import memory CustomerNotes from org.example.customer
import tool FetchCustomerProfile from org.example.customer

skill BuildCustomerReview
    takes request as CustomerRequest
    uses FetchCustomerProfile
    memory CustomerNotes read
    do
        FetchCustomerProfile
            with request as request
            into profile
        give profile

Lecture

Des contrats faciles à relire

La valeur de Touba apparaît quand le programme reste lisible au-delà du code hôte : qui peut appeler quoi, quel tool demande un secret, quelle mémoire est accessible, quelle validation humaine intervient, et quel refus runtime devient observable.

Commencer par le premier programme

Contrat observable

Ce que ces exemples rendent vérifiable

Chaque exemple relie un programme .tb, un AIR, un manifest, des resource bindings si nécessaire, un runtime, des handlers et des traces. La valeur recherchée est cette chaîne explicite entre intention, autorité, effet externe et preuve d’exécution.