TypeSafe AI

A integração alfa de IA do TypeSafe adapta os modelos do System One, incluindo o Jev, ao Agent Framework Python. Esses modelos avaliam o estado do aplicativo com base em perguntas tipadas e retornam probabilidades e escores. Eles não geram respostas comuns de chat em formato livre.

Instalar o pacote

pip install agent-framework-typesafe --pre

Configuration

Defina a chave de API antes de criar o cliente:

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

Os valores do construtor têm precedência sobre variáveis de ambiente. Você também pode injetar um TypeSafe configurado AsyncTypeSafeClient. Os clientes injetados permanecem sob a propriedade do chamador; feche os clientes criados por TypeSafeChatClient com close() ou um gerenciador de contexto assíncrono.

Criar um agente de decisão tipado

Passe um mapeamento TypeSafe Questions através da opção response_format do Agent Framework:

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())

Para esse conector, response_format é um mapeamento TypeSafe Questions não vazio que contém perguntas Noul, Choice ou Score. Você pode acessar o conteúdo SystemOneResponse tipado completo por meio de response.value.

Use default_questions no cliente quando uma integração tiver um contrato fixo. Por exemplo, um cliente TypeSafe com perguntas padrão pode atuar como o cliente de quarentena para SecureAgentConfig.

Ferramentas de função e de MCP

TypeSafeChatClient dá suporte ao loop de invocação de função do Agent Framework padrão para esquemas de conjunto fechado. As formas de argumento com suporte incluem:

  • Constantes fixas.
  • Enums ou valores Python Literal.
  • Valores boolianos.
  • Arrays de enum ou valores Literal sem restrições adicionais de array.
  • Versões opcionais dessas formas.

O cliente não dá suporte a cadeias de caracteres ou números de forma livre necessários, objetos aninhados, matrizes gerais, argumentos anuláveis necessários ou restrições de esquema que o conector não pode preservar. Se você especificar um argumento sem suporte, o cliente excluirá toda a ferramenta no modo automático ou rejeitará a ferramenta quando você precisar dela.

As ferramentas MCP funcionam por meio de Agent, que descobre funções MCP e as expande em ferramentas de função antes do roteamento TypeSafe. Somente as funções cujos esquemas se ajustam ao subconjunto com suporte são roteáveis. Uma solicitação dá suporte a no máximo 32 ferramentas roteáveis, 64 propriedades por ferramenta, 64 membros por argumento e 128 perguntas internas geradas.

O cliente usa como padrão uma chamada de ferramenta por execução. Configure function_invocation_configuration={"max_function_calls": N} para permitir viagens de ida e volta sequenciais da ferramenta.

Recursos e limites

Capability Suporte
Classificação por tipo, pontuação e roteamento TypeSafe Questions e SystemOneResponse
Middleware e telemetria do Agent Framework Supported
Ferramentas de função local Compatível com o subconjunto restrito do esquema
Funções MCP Suportado para o subconjunto limitado do esquema
Streaming Sem suporte
Geração de texto de forma livre Sem suporte
Conteúdo de mensagens que não são de texto Sem suporte
Opções generativas, como temperature Rejected

Use TypeSafeChatClient para as camadas de estrutura padrão. Use RawTypeSafeChatClient somente quando quiser compor intencionalmente uma pilha de camadas personalizada ou não usar a execução de funções, middleware e telemetria.

Próximas Etapas