TypeSafe AI

L’intégration alpha TypeSafe AI adapte les modèles System One, y compris Jev, à Agent Framework Python. Ces modèles évaluent l’état de l’application par rapport aux questions typées et retournent des probabilités et des scores. Ils ne génèrent pas de réponses de conversation de forme libre ordinaires.

Installer le package

pip install agent-framework-typesafe --pre

Configuration

Définissez la clé API avant de créer le client :

TYPESAFE_API_KEY="<api-key>"
# Optional:
TYPESAFE_DEFAULT_MODEL="jev-latest"
TYPESAFE_BASE_URL="<api-root>"

Les valeurs du constructeur sont prioritaires sur les variables d’environnement. Vous pouvez également injecter un TypeSafe configuré AsyncTypeSafeClient. Les clients injectés restent à la charge de l’appelant ; fermez les clients créés par TypeSafeChatClient à l’aide de close() ou d’un gestionnaire de contexte asynchrone.

Créer un agent de décision typé

Transmettez un mappage TypeSafe Questions via l’option Agent Framework response_format :

import asyncio

from agent_framework import Agent
from agent_framework_typesafe import TypeSafeChatClient
from typesafe_sdk import Choice, Noul


async def main() -> None:
    client = TypeSafeChatClient()
    try:
        agent = Agent(
            client=client,
            name="TicketEvaluator",
            instructions="Evaluate the support request.",
        )
        response = await agent.run(
            "Our checkout has failed for three days and we are losing sales.",
            options={
                "response_format": {
                    "department": Choice(
                        instructions="Which team should handle this request?",
                        criteria={
                            "billing": None,
                            "technical": None,
                            "sales": None,
                        },
                    ),
                    "urgent": Noul(
                        instructions="Does this request need urgent attention?"
                    ),
                },
            },
        )
        print(response.value)
    finally:
        await client.close()


asyncio.run(main())

Pour ce connecteur, response_format correspond à un mappage TypeSafe Questions non vide contenant des questions Noul, Choice ou Score. Vous pouvez accéder à l’intégralité du contenu typé SystemOneResponse via response.value.

Utiliser default_questions sur le client lorsqu’une intégration a un contrat fixe. Par exemple, un client TypeSafe avec des questions par défaut peut agir comme client de quarantaine pour SecureAgentConfig.

Fonctions et outils MCP

TypeSafeChatClient prend en charge la boucle standard d’invocation de fonctions du framework Agent Framework pour les schémas à ensemble fermé. Les formes d’argument prises en charge sont les suivantes :

  • Constantes fixes.
  • Énumérations ou valeurs Python Literal.
  • Valeurs booléennes.
  • Tableaux d’énumérations ou de valeurs Literal sans contraintes supplémentaires sur les tableaux.
  • Versions facultatives de ces formes.

Le client ne prend pas en charge les chaînes de forme libre ou les nombres requis, les objets imbriqués, les tableaux généraux, les arguments nullables requis ou les contraintes de schéma que le connecteur ne peut pas conserver. Si vous spécifiez un argument non pris en charge, le client exclut l’ensemble de l’outil en mode automatique ou rejette l’outil lorsque vous en avez besoin.

Les outils MCP fonctionnent via Agent, qui découvre les fonctions MCP et les développe en outils de fonction avant le routage TypeSafe. Seules les fonctions dont les schémas correspondent au sous-ensemble pris en charge sont routables. Une demande prend en charge au maximum 32 outils routables, 64 propriétés par outil, 64 membres d’énumération par argument et 128 questions internes générées.

Par défaut, le client appelle un seul outil par exécution. Configurez function_invocation_configuration={"max_function_calls": N} pour autoriser les allers-retours d’outils séquentiels.

Fonctionnalités et limites

Capability Support
Classification, notation et routage typés TypeSafe Questions et SystemOneResponse
Intergiciel agent Framework et télémétrie Supported
Outils de fonction locaux Pris en charge pour le sous-ensemble contraint du schéma
Fonctions MCP Pris en charge pour le sous-ensemble contraint de schémas
Diffusion en continu Non pris en charge
Génération de texte de forme libre Non pris en charge
Contenu de message non texte Non pris en charge
Options génératives telles que temperature Rejected

Utiliser TypeSafeChatClient pour les couches de framework standard. Utilisez RawTypeSafeChatClient uniquement lorsque vous souhaitez composer intentionnellement une pile de couches personnalisée ou refuser l’exécution de la fonction, l’intergiciel et la télémétrie.

Étapes suivantes