Dokumentation

Schnellstart

Lieber direkt loslegen? Hier ist alles, was du brauchst, um sofort zu starten.

Ausprobieren: der Playground

  1. Öffne den Playground und melde dich an.
  2. Füge einen beliebigen Text als Zustand ein.

Beispielzustand

Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP.
  1. Füge eine Frage hinzu. Probiere eine Noul-Frage: "Does this message express urgency?"
{
  "urgency": {
    "type": "noul",
    "instructions": "Does this message express urgency?"
  }
}
  1. Füge weitere Fragen hinzu. Mische Noul, Choice und Score in einem Aufruf und sieh dir alle Ergebnisse auf einmal an.

Aufrufen: die API

  1. Hol dir deinen API-Schlüssel aus dem Dashboard
  2. Sende eine POST-Anfrage an den API-Endpunkt
  3. Lies die API-Referenz für alle Details.
POST https://api.typesafe.ai/v1/systemone
Authorization: Bearer <API_KEY>
Content-Type: application/json

Beispiel-cURL-Befehl

curl -X POST https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d @- <<'EOF'
  {
    "state": "Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP.",
    "model": "jev-latest",
    "questions": {
      "urgency": {
        "type": "noul",
        "instructions": "Does this message express urgency?"
      }
    }
  }
EOF

Anfrage-Body

{
  "state": "Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP.",
  "model": "jev-latest",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "Which team should handle this",
      "criteria": {
        "billing": "Payment or subscription issues",
        "technical": "Bugs or integration problems",
        "sales": "Pricing or account questions"
      }
    },
    "frustration": {
      "type": "score",
      "instructions": "How frustrated the customer appears",
      "criteria": [
        "Calm, just stating facts",
        "Frustrated but civil",
        "Very angry, strong language"
      ]
    },
    "is_urgent": {
      "type": "noul",
      "instructions": "The message conveys urgency or time-sensitivity"
    }
  }
}

Antwort-Body

{
  "model": "jev-1.13.0",
  "answers": {
    "department": {
      "type": "choice",
      "choice": "technical",
      "confidence": 0.78,
      "probabilities": {
        "technical": 0.85,
        "sales": 0.0,
        "billing": 0.15
      }
    },
    "frustration": {
      "type": "score",
      "score": 1.0,
      "confidence": 1.0,
      "legend": {
        "0": "Calm, just stating facts",
        "1": "Frustrated but civil",
        "2": "Very angry, strong language"
      },
      "probabilities": {
        "0": 0.0,
        "1": 1.0,
        "2": 0.0
      }
    },
    "is_urgent": {
      "type": "noul",
      "noul": 1.0
    }
  },
  "usage": {
    "input_tokens": 392,
    "output_tokens": 65
  }
}

Siehe die API-Referenz für alle Details.

Programmieren: das Python-SDK

  1. Installiere das SDK (erfordert Python >= 3.10).

Mit pip

pip install typesafe-sdk

Mit uv

uv add typesafe-sdk
  1. Verwende das SDK. Der Client liest TYPESAFE_API_KEY aus der Umgebung und ruft standardmäßig jev-latest auf.
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient

client = TypeSafeClient()

ticket = "Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP."

response = client.system_one(
    state=ticket,
    questions={
        "department": Choice(
            instructions="Which team should handle this",
            criteria={
                "billing": "Payment or subscription issues",
                "technical": "Bugs or integration problems",
                "sales": "Pricing or account questions",
            },
        ),
        "frustration": Score(
            instructions="How frustrated the customer appears",
            criteria=[
                "Calm, just stating facts",
                "Frustrated but civil",
                "Very angry, strong language",
            ],
        ),
        "is_urgent": Noul(
            instructions="The message conveys urgency or time-sensitivity",
        ),
    },
)

print(response.answers["department"].choice)  # "technical"
print(response.answers["frustration"].score)  # 1.0
print(response.answers["is_urgent"].noul)     # 1.0

Siehe Client-SDKs für Installationsoptionen und ausführliche Nutzung.

Vibecoden: der Agent-Skill

  1. Installiere den TypeSafe-Skill mit dem Claude Code-Plugin oder npx skills add typesafe-ai/skills --skill typesafe-ai. Du kannst auch SKILL.md auf GitHub lesen.

Führe diese beiden Befehle in deinem Terminal aus:

claude plugin marketplace add typesafe-ai/skills
claude plugin install typesafe@typesafe-ai
npx skills add typesafe-ai/skills --skill typesafe-ai

Wähle deinen Agenten, wenn du dazu aufgefordert wirst. Die Installation ist standardmäßig projektlokal; füge -g hinzu, um global zu installieren.

Füge diesen Prompt in deinen Coding-Agenten ein:

Install the TypeSafe skill. If you're in Claude Code, run `claude plugin marketplace add typesafe-ai/skills`, then `claude plugin install typesafe@typesafe-ai`. If you're in another agent, run `npx skills add typesafe-ai/skills --skill typesafe-ai` and select your agent. Use one installation method. You can read the skill directly at https://github.com/typesafe-ai/skills/blob/main/skills/typesafe-ai/SKILL.md (raw: https://raw.githubusercontent.com/typesafe-ai/skills/main/skills/typesafe-ai/SKILL.md). Then use the TypeSafe skill when working on this project.
  1. Sag deinem Coding-Agenten, den TypeSafe-Skill beim Bauen zu verwenden!

Prompt für den Coding-Agenten

Let's build a simple CLI that uses the TypeSafe API to evaluate a set of supplied documents on multiple dimensions. Use the TypeSafe skill to understand how to use the TypeSafe API and how to structure the system. Ask me questions about what kinds of documents I want to evaluate and on what dimensions.

Siehe die Seite Agent-Skill für weitere Details.