Structured instructions and field paths
Most Jev questions are one sentence in instructions. When the state is a record, TypeSafe wants you to name the field with a dot-and-index path in backticks so the model is not guessing which paragraph matters.
This page is for builders who already heard of Jev / System One and want a production-minded mental model. jev.pro is an independent unofficial field guide — not affiliated with TypeSafe AI. Confirm facts on docs.typesafe.ai. We do not sell keys.
Structured instructions are how you keep the question atomic while still attaching supporting data. They are not a second API. First-party evaluation remains POST /v1/systemone. The shape of instructions is part of the request body, next to type and criteria.
"Does `ticket.messages[0].text` request a refund?"
How to use
instructions can be a string, an object, or an array. Put the question in one field and supporting data in others, then refer to those fields by name in backticks — the same habit as pointing into state:
"instructions": {
"potential_duplicate": {
"name": "John Smith",
"location": "Oakland, California",
"last_employer": "Google"
},
"question": "Is the resume for the same person as `potential_duplicate`?"
}
This is useful when the extra context is part of the question, not the document under evaluation. Keep the document in state so every question can see it without duplication. One POST can still carry many questions; each instruction object is local to its key.
Write paths a person could follow: ticket.messages[0].text, not “the first angry paragraph.” Validate that the path exists before you POST. A missing field does not become a clever abstention — it confuses the question.
When not to use structured instructions
- The question is already one sentence about a single field. A string is enough. Do not wrap it in an object for ceremony.
- You are stuffing the whole CRM into
instructions“in case it helps.” That is a dump-truck. Filter state instead. - You hide the actual question at the bottom of an array. Allowed, but you will confuse reviewers and the model.
- You use structured instructions as a substitute for criteria. Criteria close the answer space. Instructions ask the question.
- You invent a field-path language that is not in the request. Backticks refer to keys you actually sent.
Reduce hops
The jaggedness note on indirection: questions about a property of a property, or double negatives, cost accuracy. Name the relevant part of state. Ask the direct question. Official advanced-structure docs: primitives/advanced.
“Is the customer not unhappy with the thing mentioned in the second attachment?” is two hops and a negation. Extract the sentence in code, then ask a Noul on that string.
Production notes
Treat instruction objects as code. Diff them in PRs. Changing a backtick path is a new decision contract: replay gold. Do not send reviewer essays back into instructions unfiltered — you may inject instructions into the next call. Schema-safe answers are not the same as factual correctness; a well-pointed path can still get a wrong yes.
Hub: Primitives. Sibling: criteria. Request shape: request format.
See also
FAQ
Can criteria also be structured?
Yes — TypeSafe says criteria, like instructions, can hold JSON structure.
Does the path have to exist?
If you point at a missing field you will confuse the question. Validate state in code.
Array instructions?
Allowed. Keep them scannable; do not hide the actual question at the bottom of a pile.
Is this a different HTTP endpoint?
No. First-party evaluation is still POST /v1/systemone.
Disclaimer
This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai. Never treat jev.pro as TypeSafe official documentation. We do not sell, issue, or proxy API keys.