Chapter 1: Introduction: Fast Decisions, Not Generated Text
Learning Objectives
Explain what TypeSafe AI and the Jev model are, and how a System One model differs from a generative LLM
Describe the three primitives (Choice, Score, and Noul) and the typed answer each one returns
Identify network-operations tasks that fit fast, bounded judgments versus tasks that genuinely need text generation
Trace how a NOC triage flow would use typed answers instead of parsing LLM prose
Pre-Quiz: What TypeSafe AI Is
A NOC engineer sends a syslog line to TypeSafe's API and asks three separate questions about it in one request. Which statement accurately describes how Jev handles this?
Jev routes each question to a different endpoint depending on the primitive type
All three questions are evaluated in parallel against the same state through a single POST /v1/systemone endpoint
Jev processes the questions sequentially, using each answer as context for the next
Jev requires a separate API key for each primitive type used in a request
Why does TypeSafe's approach of returning typed answers eliminate the fragility of parsing LLM prose in code?
Because Jev only ever returns single-word answers, making regex parsing trivial
Because the answer conforms directly to a JSON schema your code already expects, with no prose layer to recover a value from
Because Jev formats its text responses using markdown code fences that are easy to strip
Because TypeSafe retries failed generations automatically until valid JSON is produced
A NOC wants to know how risky a proposed Junos configuration change is, on a scale from routine to high-risk, allowing for values that fall between defined levels. Which primitive fits, and what does it primarily return?
Noul; a single probability between 0 and 1
Choice; a selected label plus a probability distribution across options
Score; a numeric position on the scale plus the legend of level definitions
Score; a yes/no probability indicating whether the change is risky
What TypeSafe AI Is
Key Points
TypeSafe provides AI primitives — modular, typed building blocks — instead of a general-purpose text generator.
Jev is TypeSafe's flagship model and its first System One model: it evaluates typed questions against a state and returns structured results directly.
Every primitive is served from a single POST /v1/systemone endpoint, typically responding in around 100 milliseconds.
Typed answers conform to the schema your code already expects, so there is no prose to parse and no value to recover.
Three primitives — Choice, Score, and Noul — cover most NOC judgment shapes and can be asked about the same state in one parallel request.
Most network engineers have written a script that regexes a syslog line and chains if statements to decide whether an event is worth a 3 a.m. page. That works until the judgment needed isn't "does this string match" but "is this customer-impacting." That is judgment, not pattern matching — the part a script has never handled well.
TypeSafe AI targets exactly that gap. Instead of treating models as text generators whose output a human reads, it exposes AI primitives: modular, composable building blocks meant for software integration. A primitive is one narrowly scoped question with a declared answer shape — you ask it to decide, and it hands back a value your code can use without translation.
Jev is TypeSafe's flagship model and first System One model. It evaluates typed questions against a state and returns structured results directly. Three terms carry the architecture:
State — the evidence being judged (a syslog line, a ticket body, device JSON).
Question — the judgment wanted, expressed as a typed primitive with instructions and criteria.
Typed answer — what comes back: a label, a score, or a probability, plus a distribution over the possibilities.
Every evaluation goes through one API endpoint, POST /v1/systemone — no separate endpoint per question type. Most queries complete in roughly 100 milliseconds, fast enough to sit inline in a syslog ingestion path rather than a batch job.
Figure 1.1: System One Request and Response Shape
sequenceDiagram
participant Code as Your Code
participant Endpoint as POST /v1/systemone
participant Jev as Jev Model
Code->>Endpoint: state plus questions dictionary
Endpoint->>Jev: evaluate all questions in parallel
Jev-->>Endpoint: typed answers with probabilities
Endpoint-->>Code: response.answers keyed by question name
Visual animation — coming soon
The friction TypeSafe removes: generative LLMs are excellent at human-readable text, but that strength becomes a liability when you need machine-readable output. The typical workaround coerces a text generator into structure, then parses the result back — adding complexity and failure points at every step. System One models skip that round trip and return typed, structured answers directly: a choice, a score, or a probability distribution — "text generation, no parsing."
A second property matters as much as the typing itself: answers come back as probability distributions, not just point values. When Jev routes a ticket to "routing," it also reports how much probability mass landed on "wireless" and "security" — the raw material for escalation rules built later in the book.
TypeSafe offers exactly three question types, each returning a different answer shape:
Primitive
The question it answers
Good for
What comes back
Choice
Which one of these known options?
Ticket routing, document classification, language detection
score (may fall between levels), legend, probabilities, confidence
Noul
Yes or no?
Clean binary judgments where the probability itself is the signal
noul only — a value between 0 and 1, no separate confidence
Choice selects from a known set with no inherent order — routing versus wireless versus security don't sit on a scale. Score positions a judgment on a spectrum and can return a value between defined levels, mapping naturally onto things engineers already scale: syslog severities, QoS classes, change-risk tiers. Noul returns the probability itself as the signal, with no separate confidence figure — a Noul of 0.97 for "hardware failure" is answer and certainty in one number, while 0.51 says the model can't separate the cases. All three can be combined in a single request evaluated in parallel against the same state.
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient
client = TypeSafeClient()
syslog_line = "Mar 14 02:17:44 core-rtr-01 %BGP-5-ADJCHANGE: neighbor 192.0.2.14 Down"
response = client.system_one(
state=syslog_line,
questions={
"customer_impacting": Noul(instructions="Loss of customer-facing connectivity"),
"owning_team": Choice(
instructions="Which NOC team should own this event",
criteria={"routing": "BGP/OSPF/IS-IS issues", "wireless": "AP/WLC/RF issues",
"security": "Firewall/ACL issues"},
),
"severity": Score(
instructions="Operational severity of this event",
criteria=["Informational", "Degraded", "Outage, page on-call now"],
),
},
)
print(response.answers["customer_impacting"].noul) # 0.94
print(response.answers["owning_team"].choice) # "routing"
print(response.answers["severity"].score) # 2.1
TypeSafe AI supplies typed AI primitives rather than a text generator, and Jev is its first System One model, evaluating typed questions against a state through a single POST /v1/systemone endpoint. The three primitives — Choice, Score, and Noul — return a selected label, a position on a scale, and a yes-probability respectively, and all three can be asked about the same state in one parallel request.
Post-Quiz: What TypeSafe AI Is
A NOC engineer sends a syslog line to TypeSafe's API and asks three separate questions about it in one request. Which statement accurately describes how Jev handles this?
Jev routes each question to a different endpoint depending on the primitive type
All three questions are evaluated in parallel against the same state through a single POST /v1/systemone endpoint
Jev processes the questions sequentially, using each answer as context for the next
Jev requires a separate API key for each primitive type used in a request
Why does TypeSafe's approach of returning typed answers eliminate the fragility of parsing LLM prose in code?
Because Jev only ever returns single-word answers, making regex parsing trivial
Because the answer conforms directly to a JSON schema your code already expects, with no prose layer to recover a value from
Because Jev formats its text responses using markdown code fences that are easy to strip
Because TypeSafe retries failed generations automatically until valid JSON is produced
A NOC wants to know how risky a proposed Junos configuration change is, on a scale from routine to high-risk, allowing for values that fall between defined levels. Which primitive fits, and what does it primarily return?
Noul; a single probability between 0 and 1
Choice; a selected label plus a probability distribution across options
Score; a numeric position on the scale plus the legend of level definitions
Score; a yes/no probability indicating whether the change is risky
Pre-Quiz: System One Versus Generative LLMs
A senior NOC engineer glances at a syslog line and immediately says "that's wireless, not routing" without consciously working through a decision tree. Which cognitive mode does this best illustrate, and why is Jev modeled on it?
System 2 — deliberate reasoning, because Jev is designed to explain its reasoning step by step
System 1 — fast, intuitive pattern recognition, because Jev is built for rapid, constrained judgments rather than open-ended reasoning
System 2 — deliberate reasoning, because classification tasks always require slow, careful analysis
System 1 — fast, intuitive pattern recognition, because Jev is best suited to drafting long-form incident reports
A team builds a pipeline that prompts a generative LLM for JSON and calls json.loads() on the response. In production, the pipeline throws exceptions roughly 10% of the time. What does the chapter identify as the underlying cause of this kind of failure?
Generative LLMs cannot produce numeric values, only text
The API rate-limits requests once a certain volume is reached
Parsing manually made implicit assumptions about validity, schema compliance, types, and formatting that a text generator does not reliably guarantee
JSON is not an appropriate format for representing severity scores or confidence values
A Choice answer for ticket routing returns confidence: 0.82. What does it mean for that confidence value to be "calibrated," and why does this matter operationally?
It means the model always chooses the option with the highest raw score, which matters because it removes randomness
It means that, across many cases reported at 0.82, roughly 82% turn out to be correct, which lets code set explicit thresholds for automatic action versus human review
It means the confidence value has been rounded to two decimal places for readability in ServiceNow fields
It means the model has cross-checked its answer against a second, independent model before responding
System One Versus Generative LLMs
Key Points
"System One" comes from Kahneman's fast, intuitive System 1 mode, as opposed to deliberate System 2 reasoning.
Manually parsing LLM-generated JSON rests on six silently-failing assumptions: validity, schema compliance, type correctness, value constraints, consistent formatting, and no extraneous content.
Unconstrained prompting yields valid output only about 80–95% of the time; typed answers avoid that failure mode entirely because there is no prose layer to constrain.
Calibrated probabilities mean a reported confidence of 0.80 is correct about 80% of the time, enabling threshold-based routing instead of guessing from hedging language.
Structural guarantees are not accuracy guarantees — typed answers can still be confidently wrong, so confidence gating and human review still matter.
The name comes from cognitive science. In Kahneman's framework, System 1 is fast, automatic, and intuitive; System 2 is slower and deliberate. TypeSafe adopts the distinction directly and builds Jev to emphasize speed and focus. When a senior engineer glances at a syslog line and says "that's wireless, not routing," they're recognizing a pattern in under a second — System 1. Designing a new OSPF area layout, tracing failure modes — that's System 2. Confusing the two is the root of most disappointing AI deployments: System One models are purpose-built for rapid, constrained judgments suitable for software automation, not open-ended reasoning.
Task
Fits System One
Needs a generative LLM
Route an incoming syslog event to the right NOC queue
Yes — a bounded Choice
Rate the risk of a proposed Junos configuration change
Yes — a Score against a rubric
Decide whether a Splunk alert duplicates an open incident
Yes — a Noul
Draft the customer-facing outage notification email
Yes
Summarize a 40-message incident bridge into a timeline
Yes
Skip TypeSafe and prompt a generative model for JSON instead, and you implicitly rely on six assumptions that fail silently at some rate: validity (no code fences or preamble), schema compliance (no drifting or invented fields), type correctness (no "high" instead of 0.85), value constraints (values stay in range), consistent formatting (stable capitalization and field order), and no extraneous content (no explanatory text around the payload). Unconstrained prompt engineering delivers roughly 80–95% valid output with no guarantee for the rest — a pipeline processing 50,000 events a day at 95% success still throws 2,500 exceptions daily.
The industry's fix is constrained decoding: it compiles a schema into a finite state machine and masks invalid next tokens during generation, so the output is guaranteed valid — "mathematical guarantees instead of statistical ones." Major providers now ship structured-output modes built on this. TypeSafe goes further: because Jev emits typed answers as its native output, there is no prose layer to constrain in the first place.
Generative LLM with prose parsing
System One with typed answers
Response
A text blob that usually contains JSON
answers keyed by your question names
Code you write
Strip fences, parse, validate, coerce, retry
response.answers["owning_team"].choice
Confidence signal
Implicit or absent — guessed from hedging words
Explicit confidence and probabilities fields
Asking three questions
Three serial calls, or answers contaminate each other
One call, evaluated in parallel
Typical latency
Seconds, plus retries
~100 ms
Parallelization is architectural, not a performance tweak: one primitive's result never becomes hidden context that changes another primitive's result. In a generative agent loop, asking "which team owns this?" before "how severe is it?" can change the severity answer. With System One, judgments are independent — the same property that makes a stateless load balancer easier to reason about than a stateful one.
Figure 1.2: Generative LLM Prose Parsing Loop
flowchart TD
A[Write prompt asking for JSON] --> B[Call generative LLM]
B --> C[Receive text blob]
C --> D[Strip code fences]
D --> E[Parse JSON]
E --> F{Parse succeeded}
F -- No --> G[Retry or raise exception]
G --> B
F -- Yes --> H[Validate keys and types]
H --> I[Use value in code]
Figure 1.3: One Parallel Typed Call
flowchart TD
A[Build questions dictionary] --> B[Call system one with state and questions]
B --> C[All questions evaluated in parallel]
C --> D[Typed answers returned]
D --> E[Use value in code]
Visual animation — coming soon
One honest caveat: structured outputs guarantee shape, not truth. The model can still misjudge or produce a plausible but wrong answer. Typed answers eliminate parsing failures; they do not eliminate the need for confidence thresholds and human review.
The third differentiator: System One answers come back with calibrated probabilities. A calibrated probability is one where the number means what it says — across many cases reported at 0.80, roughly 80% should be correct. That enables threshold-based routing: escalate uncertain cases to humans based on calibrated confidence rather than guessing from ambiguous text, the same shape as a routing protocol's administrative distance or a QoS scavenger class. A generative model instead hedges with "fairly confident" — you cannot threshold on an adverb.
answer = response.answers["owning_team"]
if answer.confidence >= 0.85:
assign_to_queue(answer.choice)
else:
assign_to_queue("noc_triage_review")
The System One name comes from Kahneman's fast, intuitive mode of thinking, and Jev is built for that mode rather than for deliberation or composition. Parsing prose fails at rates that are unacceptable in a production pipeline, while typed answers with calibrated probabilities let you route on explicit thresholds — but structural guarantees are not accuracy guarantees, and the model can still be confidently wrong.
Post-Quiz: System One Versus Generative LLMs
A senior NOC engineer glances at a syslog line and immediately says "that's wireless, not routing" without consciously working through a decision tree. Which cognitive mode does this best illustrate, and why is Jev modeled on it?
System 2 — deliberate reasoning, because Jev is designed to explain its reasoning step by step
System 1 — fast, intuitive pattern recognition, because Jev is built for rapid, constrained judgments rather than open-ended reasoning
System 2 — deliberate reasoning, because classification tasks always require slow, careful analysis
System 1 — fast, intuitive pattern recognition, because Jev is best suited to drafting long-form incident reports
A team builds a pipeline that prompts a generative LLM for JSON and calls json.loads() on the response. In production, the pipeline throws exceptions roughly 10% of the time. What does the chapter identify as the underlying cause of this kind of failure?
Generative LLMs cannot produce numeric values, only text
The API rate-limits requests once a certain volume is reached
Parsing manually made implicit assumptions about validity, schema compliance, types, and formatting that a text generator does not reliably guarantee
JSON is not an appropriate format for representing severity scores or confidence values
A Choice answer for ticket routing returns confidence: 0.82. What does it mean for that confidence value to be "calibrated," and why does this matter operationally?
It means the model always chooses the option with the highest raw score, which matters because it removes randomness
It means that, across many cases reported at 0.82, roughly 82% turn out to be correct, which lets code set explicit thresholds for automatic action versus human review
It means the confidence value has been rounded to two decimal places for readability in ServiceNow fields
It means the model has cross-checked its answer against a second, independent model before responding
Pre-Quiz: Why This Matters for Network Operations
The chapter compares a System One call to a longest-prefix-match forwarding lookup, and a generative LLM to hiring a consultant to write a design document. What is the point of this analogy?
Forwarding-table lookups are more accurate than consultant essays, so System One models are always the better choice
Both artifacts are legitimate, but each belongs in a different place: bounded typed judgments belong inline in fast pipelines, while generative text belongs where a human reads it
Consultant essays and forwarding-table lookups both take the same amount of time to produce, so either can go in a data plane
The analogy shows that AI should replace human network engineers in both roles
Cisco NX-OS, Arista EOS, Juniper Junos, and Aruba AOS-CX all report interface-down events using different message formats. According to the chapter, why is a Noul asking "is this event customer-impacting?" a better fit than a per-vendor regex library?
Because Nouls execute faster than regular expressions on any input string
Because the underlying judgment is the same across vendors even though the string patterns differ, so one well-written instruction can replace regexes that must be rewritten per vendor and per release
Because regex libraries cannot be version-controlled alongside application code
Because Noul automatically translates vendor-specific syslog formats into a single normalized schema before evaluation
Per the chapter's architectural principle, which of the following correctly divides responsibility between code and Jev in the NOC triage service?
Jev decides which ticket to open and pages the on-call engineer directly, while code only logs the outcome
Code keeps control flow, deterministic rules, and side effects (like paging or updating a ticket), while Jev supplies narrow typed judgments as values that code acts on
Jev and code share equal responsibility for side effects, with Jev handling ServiceNow updates and code handling Salesforce updates
Code only supplies the state; Jev decides both the judgment and the resulting action autonomously
Why This Matters for Network Operations
Key Points
A System One call is the forwarding-table lookup of AI judgment: bounded, typed, ~100ms, safe inline in a pipeline.
A generative LLM is the consultant's essay: valuable but slow, and belongs where a human reads it, not in the data plane.
Bounded judgment calls hide throughout NOC runbooks wherever a step says "determine whether," "assess the," or "assign to the appropriate."
Syslog triage, ticket routing, change review, alert deduplication, and customer-impact classification are all typed-primitive shaped problems.
Code keeps control flow, deterministic rules, and side effects; the model supplies narrow, typed judgments as values — never actions.
Consider two ways of answering "where should this packet go?" The first is a forwarding-table lookup: a longest-prefix match returns a typed next hop in microseconds, with no prose parsed along the way. The second is hiring a consultant to write a design document on optimal traffic engineering — valuable, nuanced, and taking three weeks. You'd never put that in the data plane. A System One call is the forwarding-table lookup of AI judgment; a generative LLM is the consultant's essay, belonging in the control plane where a human reads it. Most disappointing AI-in-NOC projects are essays deployed into data planes: a chat model wired into an alert pipeline, asked to "analyze and recommend," followed by months writing regexes to extract the recommendation. The problem was never the model's intelligence — it was a mismatch between output shape and job.
Once you look for bounded judgments, they're everywhere — the runbook steps that say "determine whether," "assess the," or "assign to the appropriate":
Syslog triage. "Is this event customer-impacting?" is identical across Cisco, Arista, Juniper, and Aruba even though the string patterns differ — a Noul over the raw log line, instead of a regex library rewritten per vendor and per release.
Ticket routing. Choosing the assignment group for a free-text ServiceNow incident is a Choice over a fixed set of teams.
Change review. "How risky is this?" for a proposed Junos or IOS-XE change is a Score against a rubric — routine, elevated, high-risk — with values that can fall between levels.
Alert deduplication. Is a new Splunk alert the same problem as an incident opened eleven minutes ago? A Noul over a state containing both payloads.
Customer impact classification. Does this incident need a Salesforce case? Another Noul, with a confidence threshold deciding whether a human confirms first.
Each is a question a competent engineer answers in about two seconds using judgment, not calculation — and each today either consumes human attention or is approximated badly by brittle rules.
The governing architectural principle: System One positions AI as a structured decision-making component inside deterministic software workflows, not an autonomous agent that runs the network. "Keep control flow, deterministic rules, and side effects in code. Break broad judgments into narrow, typed questions with explicit instructions and criteria." Code decides what happens — which API to call, which ticket to open, whether to page someone. The model contributes one judgment your code couldn't compute, as a value, never an action. The model never touches a device, closes a ticket, or pages anyone; code does, having consulted the model like any other data source.
Figure 1.4: Code Owns Control Flow; the Model Supplies Judgment
flowchart TD
A[Event arrives] --> B[Code decides which typed questions to ask]
B --> C[Jev supplies typed judgment]
C --> D{Code evaluates the judgment}
D -- Confidence high --> E[Code takes automatic action]
D -- Confidence low --> F[Code routes to human review]
E --> G[Code performs side effects such as ticket update or page]
F --> G
The other half of the rule: break broad judgments into narrow, typed questions rather than asking one big "analyze this alert and tell me what to do." Three narrow questions combined with an if statement you wrote are auditable; one broad question with uninspectable internal reasoning is not. The model supplies programmable common sense — it knows a BGP notification is more serious than a cleared counter without you encoding that — while the intelligence about your network (escalation matrix, maintenance windows, on-call rotation) stays in your code, in version control.
Visual animation — coming soon
A System One call belongs in the fast path of an operations pipeline the way a forwarding-table lookup belongs in a data plane, while generative text belongs where a human reads it. Bounded judgments hide throughout NOC workflows — syslog triage, ticket routing, change review, deduplication, customer-impact calls — and the durable design rule is that code keeps control flow and side effects while the model supplies narrow, typed judgments.
Post-Quiz: Why This Matters for Network Operations
The chapter compares a System One call to a longest-prefix-match forwarding lookup, and a generative LLM to hiring a consultant to write a design document. What is the point of this analogy?
Forwarding-table lookups are more accurate than consultant essays, so System One models are always the better choice
Both artifacts are legitimate, but each belongs in a different place: bounded typed judgments belong inline in fast pipelines, while generative text belongs where a human reads it
Consultant essays and forwarding-table lookups both take the same amount of time to produce, so either can go in a data plane
The analogy shows that AI should replace human network engineers in both roles
Cisco NX-OS, Arista EOS, Juniper Junos, and Aruba AOS-CX all report interface-down events using different message formats. According to the chapter, why is a Noul asking "is this event customer-impacting?" a better fit than a per-vendor regex library?
Because Nouls execute faster than regular expressions on any input string
Because the underlying judgment is the same across vendors even though the string patterns differ, so one well-written instruction can replace regexes that must be rewritten per vendor and per release
Because regex libraries cannot be version-controlled alongside application code
Because Noul automatically translates vendor-specific syslog formats into a single normalized schema before evaluation
Per the chapter's architectural principle, which of the following correctly divides responsibility between code and Jev in the NOC triage service?
Jev decides which ticket to open and pages the on-call engineer directly, while code only logs the outcome
Code keeps control flow, deterministic rules, and side effects (like paging or updating a ticket), while Jev supplies narrow typed judgments as values that code acts on
Jev and code share equal responsibility for side effects, with Jev handling ServiceNow updates and code handling Salesforce updates
Code only supplies the state; Jev decides both the judgment and the resulting action autonomously
Pre-Quiz: How This Guide Is Organized
The multi-vendor NOC triage service used throughout this book asks Jev typed questions about incoming events. Based on the chapter, which outcome follows when a typed answer comes back with low confidence?
The event is automatically escalated to Salesforce regardless of customer impact
The event is discarded, since low-confidence judgments are assumed to be irrelevant
The event is routed to a human review queue instead of triggering an automatic action
The severity score is automatically rounded up to the next-highest level to be safe
The book uses examples from Cisco, Arista, Juniper, Aruba, ServiceNow, Splunk, and Salesforce even though a reader might run only Cisco equipment. What is the stated reason for this multi-vendor framing?
Because TypeSafe AI only works correctly when trained on multiple vendors' syslog formats simultaneously
Because it demonstrates that the judgment layer stays the same while only the syslog dialect differs, reinforcing the case for typed questions over per-vendor regex
Because each chapter requires a different vendor's equipment to illustrate a different TypeSafe primitive
Because readers are expected to already operate all five vendor platforms before starting the book
According to the chapter, what background is explicitly NOT assumed before starting this book?
Basic Python, including functions and dictionaries
Familiarity with what an HTTP POST request and an API key are
Machine learning background — Chapter 2 supplies exactly what is needed
Enough JSON literacy to read a nested object with string and float fields
How This Guide Is Organized
Key Points
Every chapter builds toward one running example: a multi-vendor NOC triage service spanning Cisco, Arista, Juniper, Aruba, Splunk, ServiceNow, and Salesforce.
The service asks Jev typed questions per event — owning team, severity, customer impact, duplicate status — then writes results into ServiceNow/Salesforce or routes to human review when confidence is low.
Examples span multiple vendors specifically to show the judgment layer stays constant while only the syslog dialect changes.
Only three prerequisites are assumed: basic Python, JSON literacy, and REST familiarity — no machine-learning background required.
Every chapter builds toward one system: a multi-vendor NOC triage service. It ingests syslog and alert data from Cisco IOS-XE and NX-OS, Arista EOS, Juniper Junos, and Aruba AOS-CX devices, plus alerts from Splunk and incidents already open in ServiceNow. For each event it asks Jev a small set of typed questions — which team owns this, how severe is it, is it customer-impacting, is it a duplicate — then writes team, severity, and confidence back into ServiceNow, creates or updates a Salesforce case for customer-facing situations, and routes to a human review queue where confidence is low.
Figure 1.5: NOC Triage Flow
flowchart LR
A[Syslog] --> D[State]
B[Splunk alerts] --> D
C[ServiceNow incidents] --> D
D --> E[Jev typed questions]
E --> F["Typed answers: team, severity, impact, duplicate"]
F --> G[ServiceNow fields updated]
F --> H[Salesforce case for customer impact]
F --> I[Human review queue if low confidence]
Chapters ahead build each piece: Chapter 5 the routing Choice, Chapter 6 the severity Score, Chapter 7 the impact Nouls, Chapter 8 the confidence gate, Chapter 11 the real ServiceNow/Splunk/Salesforce wiring, and Chapter 12 the full assembled pipeline.
Ch
Title
What you get from it
1
Introduction: Fast Decisions, Not Generated Text
Why typed answers beat parsed prose, and the shape of a System One request
2
AI Fundamentals for Network Engineers
Tokens, probabilities, calibration, and model behavior in networking terms
3
Getting Started
SDK install, TYPESAFE_API_KEY, TypeSafeClient, jev-latest, first real call
4
State
What to send as state, and how state design drives answer quality
Decomposing broad judgments into narrow typed questions
10
Advanced Structure and Model Limitations
Composite patterns, and where Jev is weak
11
Integrating with the Tools You Already Run
ServiceNow, Splunk, and Salesforce integration patterns
12
Capstone: NOC Triage Pipeline
The full multi-vendor triage service assembled and operating
Chapter 10 is worth a preview: Jev is fast and intuitive rather than deliberative, with corresponding weaknesses — notably arithmetic and instructions interpreted more literally than intended. This book covers those honestly, because designing around a known limitation is ordinary engineering and discovering one in production is not.
You do not need all of these to follow along. The multi-vendor framing exists because the judgment layer stays the same while syslog dialects differ — precisely the argument for a typed question instead of a per-vendor regex library.
Three prerequisites, and only three: Basic Python — functions, dictionaries, if statements, installing a package with pip; no decorators or async fluency required. JSON — enough to read a nested object like {"choice": "routing", "confidence": 0.91}. REST familiarity — what an HTTP POST is, what an API key does, and the difference between a connection error, an authentication error, and a validation error. What is explicitly not assumed is machine learning — Chapter 2 supplies exactly the background needed, introduced in networking terms first.
This guide is organized around one continuously developed system, a multi-vendor NOC triage service that reads Cisco, Arista, Juniper, Aruba, and Splunk events and writes judgments back into ServiceNow and Salesforce. Twelve chapters move from primitives to confidence gating to full integration, and the only prerequisites are basic Python, JSON literacy, and REST familiarity — no machine-learning background required.
Post-Quiz: How This Guide Is Organized
The multi-vendor NOC triage service used throughout this book asks Jev typed questions about incoming events. Based on the chapter, which outcome follows when a typed answer comes back with low confidence?
The event is automatically escalated to Salesforce regardless of customer impact
The event is discarded, since low-confidence judgments are assumed to be irrelevant
The event is routed to a human review queue instead of triggering an automatic action
The severity score is automatically rounded up to the next-highest level to be safe
The book uses examples from Cisco, Arista, Juniper, Aruba, ServiceNow, Splunk, and Salesforce even though a reader might run only Cisco equipment. What is the stated reason for this multi-vendor framing?
Because TypeSafe AI only works correctly when trained on multiple vendors' syslog formats simultaneously
Because it demonstrates that the judgment layer stays the same while only the syslog dialect differs, reinforcing the case for typed questions over per-vendor regex
Because each chapter requires a different vendor's equipment to illustrate a different TypeSafe primitive
Because readers are expected to already operate all five vendor platforms before starting the book
According to the chapter, what background is explicitly NOT assumed before starting this book?
Basic Python, including functions and dictionaries
Familiarity with what an HTTP POST request and an API key are
Machine learning background — Chapter 2 supplies exactly what is needed
Enough JSON literacy to read a nested object with string and float fields
Key Terms
Term
Definition
System One
TypeSafe's framework for AI models that make rapid, constrained judgments suitable for software automation, returning typed answers with calibrated probabilities rather than free-form text. Named for the fast, intuitive mode of human cognition.
Jev
TypeSafe's flagship model and the first System One model. Jev evaluates typed questions against a state and returns structured results directly. Referenced in code as jev-latest.
Primitive
A modular, composable building block representing a single typed question with a declared answer shape. TypeSafe provides three: Choice, Score, and Noul.
State
The input being evaluated — text, a JSON object, or an array. In NOC use, typically a syslog line, a ticket body, an alert payload, or structured device data. Passed as the state argument.
Question
A named, typed judgment asked about the state, built from a primitive with instructions and, for Choice and Score, criteria. Multiple questions are evaluated in parallel against the same state.
Typed answer
A structured result conforming to a known schema — a selected label, a numeric score, or a probability — usable directly in code without parsing generated prose.
Calibrated probability
A probability whose stated value matches observed frequency, so that cases reported at 0.80 are correct roughly 80 percent of the time. This is what makes threshold-based routing and escalation possible.
Generative LLM
A large language model that produces human-readable text. Excellent for summaries, narratives, and drafts; a poor fit for machine-consumed decisions because its output must be coerced into structure and parsed back out.
Choice
The primitive that selects one option from a known set with no inherent order. Returns choice, probabilities across all options, and confidence.
Score
The primitive that positions a judgment along a spectrum with defined levels. Returns score (which may fall between levels), legend, probabilities, and confidence.
Noul
The primitive that answers a clean yes/no question by returning the probability of "yes" as a value between 0 and 1. Returns only the noul field, with no separate confidence value.
confidence
A numeric measure of how certain a Choice or Score answer is, used to gate automatic action versus human review.
probabilities
The distribution of model probability across every option in a Choice or every level in a Score, exposing near-ties that a single point answer would hide.
legend
The level definitions returned with a Score answer, mapping the numeric scale back to the rubric text supplied in criteria.
Constrained decoding
A generation-time technique that compiles a schema into a state machine and masks invalid next tokens, guaranteeing structurally valid output instead of relying on the model to comply. Underlies structured output modes across major providers.
POST /v1/systemone
The single TypeSafe API endpoint that serves all models and all question types.