veniceai/skills/venice-decisions
Claude Code and agent skill by veniceai/skills
- community
Checking that the SKILL.md file is still in the repository.
Call Venice's Beta POST /decisions (and its TypeSafe-compatible alias POST /systemone) to get typed judgments instead of generated text. Covers the Jev "System One" decision model (jev-latest, aliases jev-1-13-0 / typesafe-jev), the state + questions request shape, the three question/answer types (noul yes/no probability, choice with probability distribution + confidence, score on an ordered rubric), token limits (maxStateTokens / maxTotalTokens), input-token pricing, rate limits, and how upstream 422 validation errors surface as 400.
Install
npx vskill@latest install veniceai/skills/venice-decisionsSKILL.md
Venice Decisions (Beta)
POST /api/v1/decisions evaluates a state (text or JSON) against a map of typed questions and returns one structured answer per question — probabilities, picks, and scores your code can branch on directly. It does not generate text. The only model is TypeSafe's Jev (jev-latest), a "System One" decision model.
Beta. The spec labels both routes Beta: "Request/response schemas and behavior may change without notice."
Use when
- Routing / classifying (support tickets, intents, moderation buckets) into a closed set of options.
- Yes/no gates where the probability itself is useful (
is_urgent,requests_refund). - Rating something on an ordered rubric (severity, frustration, quality).
- You want several independent judgments about the same state in one call.
Use `venice-chat` instead when you need prose, explanations, multi-turn conversation, tool calling, or open-ended answers.
Endpoints
| Method | Path | Notes | |
|---|---|---|---|
POST | /api/v1/decisions | Main route (operationId: createDecision). API key or x402. | |
POST | /api/v1/systemone | Same behavior as /decisions (createDecisionSystemOne). Mirrors TypeSafe's upstream path so TypeSafe SDKs work with a base-URL swap: TYPESAFE_BASE_URL=https://api.venice.ai/api. | |
GET | /api/v1/models?type=decision | Lists decision models with pricing and token limits. |
Both POST routes accept Accept-Encoding: gzip, br.
Quick start
Illustrative response (values vary per request):
Request schema
Top level is strict — unknown fields are rejected with 400.
| Field | Type | Required | Notes | |||
|---|---|---|---|---|---|---|
model | string | Yes | jev-latest, or an alias jev-1-13-0 / typesafe-jev. Missing/empty → 400 "model is required"; non-string → 400; unknown → 404 with a suggestion. | |||
state | string \ | object \ | array | Yes | What to evaluate. String must be non-empty; array must have ≥ 1 item; object is free-form JSON (not checked by Venice for emptiness). Use structured JSON for chat logs, records, or app state. | |
questions | object (map) | Yes | Map of question_id → question. At least one entry ("At least one question is required"). Answers come back under the same ids. Each question is evaluated in parallel and in isolation against the same state; question ids are not sent to the model, so put all meaning in instructions. |
Question objects
Each question is strict (no extra keys) and discriminated by type. instructions on every type accepts a non-empty string, a JSON object, or a non-empty array.
type | instructions | criteria | Venice-side limits | ||
|---|---|---|---|---|---|
noul | Required. The yes/no question. | Optional object { "true"?: string, "false"?: string } — what a yes (≈1) / no (≈0) means. | Any other key inside criteria is silently stripped (not rejected). | ||
choice | Required. What to decide. | Required map `option_name → description \ | null (null` = no extra detail). | No minimum option count enforced by Venice; upstream may reject degenerate sets. | |
score | Required. What to rate. | Required array of level descriptions, ordered lowest → highest. | minItems: 2. |
Any other type value is rejected with 400.
Token limits
From GET /models?type=decision (model_spec):
maxStateTokens: 32000—stateplus the single longest question.maxTotalTokens: 64000—stateplus all questions combined.
Venice does not count tokens before forwarding; these budgets are enforced by TypeSafe. An oversized request therefore passes Venice validation and fails upstream — as a 400 carrying TypeSafe's message if TypeSafe answers 400/422, otherwise as a 500 (see Errors). The generic JSON body cap is 35 MB.
Answer types
Every answer has type. The response schema passes unknown extra fields through, and an answer whose type is not noul/choice/score is forwarded as-is (forward-compat) — branch on type and ignore what you don't recognise.
noul — yes/no probability
noul: number in[0, 1]; ≈1 strong yes, ≈0 strong no, ≈0.5 uncertain. There is noconfidencefield on noul answers.
choice — pick one option
choice: the highest-probability option name.probabilities: every option → probability in[0, 1](sum to 1).confidence:[0, 1], derived from the distribution.- Include an
other/noneoption when your options may not cover every state.
score — position on an ordered rubric
- Levels are indexed from
0in the order you gave them;legendandprobabilitiesare keyed by the index as a string. score: probability-weighted (≥ 0), so it can land between levels.confidence:[0, 1], derived from the distribution.
Response
| Field | Type | Notes | |
|---|---|---|---|
model | string | Always the canonical id jev-latest, even if you sent an alias. | |
answers | object | One answer per question id (shapes above). | |
usage.input_tokens | integer ≥ 0 | Tokens for state + questions. Billed. | |
usage.output_tokens | integer ≥ 0 | Tokens produced evaluating the questions. Currently priced at $0. |
Headers: x-ratelimit-{limit,remaining,reset}-{requests,tokens}; Content-Encoding when compressed. The spec also lists X-Balance-Remaining for x402 callers, but the server does not currently set it — poll GET /x402/balance/{walletAddress} instead.
JavaScript / Python
No OpenAI SDK method exists for this route — use plain HTTP.
Authentication
Both routes accept either (see `venice-auth`):
Authorization: Bearer $VENICE_API_KEY, orSIGN-IN-WITH-Xwallet auth for x402 (legacyX-Sign-In-With-Xalso accepted). Payment headers (X-PAYMENTetc.) are only accepted on/x402/top-up; sending one here →400 PAYMENT_HEADER_NOT_ACCEPTED. See `venice-x402`.
With no credentials at all you get a 402 x402 discovery response. The spec's x-payment-info is mode: dynamic, USD, min 0.001 / max 10.00.
API keys whose modelPrivacy is PRIVATE_ONLY or PRIVATE_TEXT are refused (403): Jev is an anonymized (third-party) model, and PRIVATE_TEXT gates decisions as well as text and embeddings.
Pricing & limits
- Price (live
GET /models?type=decision): $0.042 per 1M input tokens (0.042 DIEM); output tokens $0. A 429-input-token request costs ≈ $0.000018. Always readmodel_spec.pricingfor the current number. - Charged from
usageafter a successful response. If the upstream answer is malformed or missingusage, you get500and are not charged. - Balance is checked before the call; insufficient balance →
402. - Rate limits (per account, shared by all its keys; Jev-specific override): Paid tier 100 RPM / 1,000,000 TPM; Partner Tier 1 300 RPM / 10,000,000 TPM. One request is counted before the model runs; tokens (
input + output) are metered afterwards. Check yours withGET /api_keys/rate_limits(`venice-api-keys`).
Errors
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/venice-decisions/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/veniceai/skills/venice-decisions)