Recipe catalog / repeated-attempt
Compare attempted approaches
Does proposedAttempt use essentially the same approach as previousAttempt for objective?
You need to detect whether a proposed retry repeats an earlier approach.
Explore this recipe interactively ยท Source and implementation guide
Use repeated-attempt in TypeScript
Install with npm install jev-recipes. Requires Node.js 22.9 or newer and ES modules. Set TYPESAFE_API_KEY in your server environment for live calls, which send input to TypeSafe and use API quota. See the installation guide.
import { repeatedAttempt } from 'jev-recipes/repeated-attempt';
const result = await repeatedAttempt({
"objective": "Find reset documentation.",
"previousAttempt": "Search the help center for password reset.",
"proposedAttempt": "Search the same help center for reset password."
});
console.log(result);
Input contract
| Field | Type | Needed |
|---|---|---|
| objective | string | Required |
| previousAttempt | string | Required |
| proposedAttempt | string | Required |
| minConfidence | number | Optional |
Full input and result schemas
{
"input": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"objective": {
"type": "string"
},
"previousAttempt": {
"type": "string"
},
"proposedAttempt": {
"type": "string"
},
"minConfidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"objective",
"previousAttempt",
"proposedAttempt"
]
},
"result": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"model": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"input_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"output_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"input_tokens",
"output_tokens"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"ready",
"review"
]
},
"verdict": {
"type": "string",
"enum": [
"same_approach",
"different_approach",
"unclear"
]
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"probabilities": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"same_approach",
"different_approach",
"unclear"
]
},
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"required": [
"same_approach",
"different_approach",
"unclear"
]
}
},
"required": [
"model",
"usage",
"status",
"verdict",
"confidence",
"probabilities"
],
"additionalProperties": false
}
}Saved example result
This hand-authored response demonstrates the contract. It is not a model accuracy measurement. Run it without an API key: npx jev-recipes demo repeated-attempt.
{
"model": "demo-fixture",
"usage": {
"input_tokens": 0,
"output_tokens": 0
},
"status": "ready",
"verdict": "same_approach",
"confidence": 0.96,
"probabilities": {
"same_approach": 1,
"different_approach": 0,
"unclear": 0
}
}
Evaluation evidence
No verified live accuracy measurement is available. Evaluate representative cases before using this decision in your workflow.
Use the evaluation guide to measure this decision on your own labeled cases.
Limitations
- Compares two attempts only. Counting repeats, deciding whether a retry is justified, and stopping loops belong in application code.
Related recipes
- step-progress: Use step-progress to assess what an attempted step actually changed.