Llmobs Integration
DataDog/dd-trace-js
A skill your agent uses when adding, debugging, or modifying LLMObs plugins for an LLM library in dd-trace-js.
Call POST /embeddings on Venice. An agent skill from veniceai/skills.
$ npx skills add veniceai/skills --skill venice-embeddings -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install veniceai/skills venice-embeddings --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/venice-embeddings .claude/skills/venice-embeddings && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "venice-embeddings" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-embeddings into .claude/skills/venice-embeddings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-embeddings", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/veniceai/skills/tree/main/skills/venice-embeddingsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add veniceai/skills --skill venice-embeddings -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install veniceai/skills venice-embeddings --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/venice-embeddings .agents/skills/venice-embeddings && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "venice-embeddings" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-embeddings into .agents/skills/venice-embeddings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-embeddings", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add veniceai/skills --skill venice-embeddings -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install veniceai/skills venice-embeddings --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/venice-embeddings .cursor/skills/venice-embeddings && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "venice-embeddings" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-embeddings into .cursor/skills/venice-embeddings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-embeddings", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/veniceai/skills.git --path skills/venice-embeddings--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add veniceai/skills --skill venice-embeddings -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install veniceai/skills venice-embeddings --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/venice-embeddings .gemini/skills/venice-embeddings && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "venice-embeddings" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-embeddings into .gemini/skills/venice-embeddings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-embeddings", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install veniceai/skills venice-embeddingsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add veniceai/skills --skill venice-embeddings -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/venice-embeddings .github/skills/venice-embeddings && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "venice-embeddings" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-embeddings into .github/skills/venice-embeddings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-embeddings", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add veniceai/skills --skill venice-embeddings -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install veniceai/skills venice-embeddings --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/venice-embeddings .opencode/skills/venice-embeddings && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "venice-embeddings" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-embeddings into .opencode/skills/venice-embeddings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-embeddings", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
venice-embeddingsCall POST /embeddings on Venice. An agent skill from veniceai/skills.
Venice Embeddings is an agent skill from veniceai/skills. Call POST /embeddings on Venice. Covers request shape (input, model, encodingformat, dimensions, user), text-only input (token arrays rejected), per-input and batch limits, per-model dimensions/privacy, the text-embedding-ada-002 alias, API-key privacy gating, OpenAI/LangChain compatibility, response compression (gzip/br), and practical usage for retrieval, clustering, and RAG.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in AI & LLM Engineering, covering Embeddings. It works with OpenAI and LangChain. The repository describes itself as: Agent Skills for the Venice.ai API. One folder per surface area, each with a SKILL.md for agent runtimes (Cursor, Claude, Codex, etc.). The licence is MIT.
Read from SKILL.md and the folder at commit 5eaeac5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.venice.aiapi.openai.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
VENICE_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Venice Embeddings loads about 2.4k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 892 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from veniceai/skills at commit 5eaeac5, republished under its MIT licence (© veniceai). 892 words, ~2,352 tokens.
.claude/skills/venice-embeddings/SKILL.md (or your agent's skills folder).POST /api/v1/embeddings returns vector embeddings for strings. It's OpenAI-compatible: request and response match https://api.openai.com/v1/embeddings closely enough that the OpenAI SDK works with baseURL: "https://api.venice.ai/api/v1", with one exception: token-ID arrays are not accepted (see below).
Auth: Bearer API key or x402 wallet (SIGN-IN-WITH-X) — see venice-auth.
model_spec.privacy on each model.Text-only: input must be a string or an array of strings. For images, run them through a vision chat model and embed the description.
curl https://api.venice.ai/api/v1/embeddings \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
--compressed \
-d '{
"model": "text-embedding-bge-m3",
"input": "Why is the sky blue?"
}'{
"object": "list",
"model": "text-embedding-bge-m3",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0023, -0.0093, 0.0158, ...] }
],
"usage": { "prompt_tokens": 8, "total_tokens": 8 }
}The body is strict — unknown top-level fields (e.g. input_type, task, truncate) are rejected with 400.
| Field | Type | Notes |
|---|---|---|
model | string | Required. Model ID from GET /models?type=embedding. text-embedding-ada-002 is accepted as an alias for text-embedding-bge-m3 (the response model then reads text-embedding-bge-m3). |
input | string | string[] | Required. A non-empty string, or an array of 1–2048 strings. Token-ID arrays (number[] / number[][]) are rejected with 400 — see Gotchas. |
encoding_format | "float" | "base64" | Default "float". "base64" returns each vector as a base64-encoded string — a much smaller payload; decode client-side. |
dimensions | integer ≥ 1 | Optional. Requested output size. Only honoured by models whose model_spec.supportsCustomDimensions is true; it is forwarded as-is otherwise, and the provider may ignore or reject it. |
user | string | Accepted for OpenAI compatibility; not used for inference, but it does split the error budget per value (see venice-errors). |
ceil(chars / 3.2 × 0.95) and rejects any string over 8192 estimated tokens (≈ 27,500 characters) with 400 "Input text exceeds the maximum token limit of 8192 tokens". This cap is the same for every model, including those whose maxInputTokens is 32768.model_spec.maxInputTokens (e.g. 512 for text-embedding-multilingual-e5-large-instruct, 2048 for gemini-embedding-2-preview) enforce that limit themselves; Venice's pre-check does not. Chunk to the model's maxInputTokens.index.Send Accept-Encoding: gzip, br (curl: --compressed; most HTTP clients decode automatically); the response comes back with Content-Encoding set. For large batches this matters — float vectors in JSON are big.
Also returned:
x-ratelimit-limit-* / x-ratelimit-remaining-* / x-ratelimit-reset-* (requests, tokens) — see venice-errors.x-venice-balance-usd / x-venice-balance-diem — current balance, when non-zero.X-Balance-Remaining — listed in the spec for x402 callers but not currently set by the server; poll GET /x402/balance/{walletAddress} instead.import OpenAI from 'openai'
const client = new OpenAI({
apiKey: process.env.VENICE_API_KEY,
baseURL: 'https://api.venice.ai/api/v1',
})
const res = await client.embeddings.create({
model: 'text-embedding-bge-m3',
input: ['first doc', 'second doc'],
})
const vec0 = res.data[0].embeddingThe OpenAI Node SDK asks for base64 when you omit encoding_format and decodes it client-side. Venice forwards encoding_format to the model; if the decoded vectors look wrong, pass encoding_format: 'float' explicitly.
LangChain's OpenAIEmbeddings tokenizes input and sends token arrays by default, which Venice rejects. Turn that off:
import os
from langchain_openai import OpenAIEmbeddings
emb = OpenAIEmbeddings(
model="text-embedding-bge-m3",
base_url="https://api.venice.ai/api/v1",
api_key=os.environ["VENICE_API_KEY"],
check_embedding_ctx_length=False,
)Wrappers that build OpenAIEmbeddings internally without that flag (e.g. gpt-researcher's openai provider) hit the same 400.
async function embedBatch(texts: string[], batchSize = 64) {
const out: number[][] = []
for (let i = 0; i < texts.length; i += batchSize) {
const slice = texts.slice(i, i + batchSize)
const res = await client.embeddings.create({
model: 'text-embedding-bge-m3',
input: slice,
encoding_format: 'float',
})
for (const row of res.data) out[i + row.index] = row.embedding
}
return out
}429, back off exponentially and halve the batch — see venice-errors.Query GET /models?type=embedding for the current catalog. Each entry's model_spec exposes:
embeddingDimensions — native output dimension (e.g. 1024 for text-embedding-bge-m3, 4096 for text-embedding-qwen3-8b).maxInputTokens — the model's per-input token limit.supportsCustomDimensions — present and true only on models that honour dimensions (absent otherwise).privacy — "private" (no retention) or "anonymized" (a third-party model; the request is sent without your identity).pricing.input / pricing.output — { usd, diem } per million tokens.Representative IDs: text-embedding-bge-m3 (private, 1024-d), text-embedding-qwen3-8b (private, 4096-d, custom dimensions), text-embedding-multilingual-e5-large-instruct (private, 512-token inputs), text-embedding-3-small / text-embedding-3-large (anonymized, OpenAI, custom dimensions), gemini-embedding-2-preview (anonymized, custom dimensions). The list changes — always read it from /models.
Always pin the model ID — cosine distances are not comparable across different embedding models.
| Code | Meaning |
|---|---|
400 | Missing model, or a validation error (details names the field): token-array input, empty string/array, > 2048 items, item over the 8192-token estimate, unknown field. Non-JSON Content-Type → "'Content-Type' must be 'application/json'". Also model-side rejections (e.g. input over the model's own limit), returned with the model's message when one can be extracted, otherwise a generic "Invalid request parameters…". |
401 | Invalid API key or SIWX signature. |
402 | Insufficient balance or the key's USD/DIEM spend limit reached. Bearer → "Insufficient USD or Diem balance…"; x402 → payment-required body + PAYMENT-REQUIRED header. A request with no credentials at all also gets 402 (x402 discovery challenge), not 401. |
403 | The API key's modelPrivacy is PRIVATE_TEXT or PRIVATE_ONLY and the model is anonymized. Also region / provider restrictions, or API access disabled for the account. |
404 | Unknown model (the message may suggest a close match). |
429 | Rate limited. |
500 | Inference failed; retry with jitter. |
503 | Model temporarily offline; retry later. |
input: [101, 2023, ...] or [[101, ...]] returns 400 "Token array inputs are not supported. Pass a string or an array of strings." Send text.modelPrivacy: PRIVATE_TEXT (or PRIVATE_ONLY) can only call private embedding models; text-embedding-3-* and gemini-embedding-2-preview return 403. See venice-api-keys.400, but empty strings inside an array are not pre-checked — filter them out yourself.Content-Type: application/json; anything else is rejected with 400 "'Content-Type' must be 'application/json'" before auth or validation runs.Math.hypot(...v) ≈ 1 before assuming.model (and dimensions, if set) alongside each vector so you can re-embed on upgrade.© veniceai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/venice-embeddings of veniceai/skills.
Open the folder on GitHubat commit 5eaeac5
Venice Embeddings next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Venice Embeddings this skillveniceai/skills | 144 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Llmobs IntegrationDataDog/dd-trace-js | 837 | — | ~1.4k | Automated safety check: Pass | Custom licence | |
| RAG ArchitectJeffallan/claude-skills | 12k | — | ~2k | Automated safety check: Pass | MIT | |
| Langchain RAGlangchain-ai/langchain-skills | 1.3k | — | ~3.9k | Automated safety check: Pass | MIT | |
| Sap Cloud SDK AIsecondsky/sap-skills | 462 | — | ~3.2k | Automated safety check: Pass | GPL-3.0 | |
| Sap Cloud SDK AI Pythonsecondsky/sap-skills | 462 | — | ~3.8k | Automated safety check: Pass | GPL-3.0 |
DataDog/dd-trace-js
A skill your agent uses when adding, debugging, or modifying LLMObs plugins for an LLM library in dd-trace-js.
Jeffallan/claude-skills
Designs retrieval-augmented generation systems: document chunking, embeddings, vector store setup, hybrid search, reranking and retrieval evaluation, with checks at each step.
langchain-ai/langchain-skills
INVOKE THIS SKILL when building ANY retrieval-augmented generation (RAG) system.
secondsky/sap-skills
Integrates SAP Cloud SDK for AI into JavaScript/TypeScript and Java applications.
secondsky/sap-skills
Integrates the SAP Cloud SDK for AI for Python (sap-ai-sdk-gen, formerly generative-ai-hub-sdk) into Python applications.
jeremylongshore/tons-of-skills-marketplace
Build and query vector stores with LangChain 1.0 without getting burned by flipped score semantics, embedding-dim mismatches, reranker quirks, and chunk-splitter bugs.
veniceai/skills
Picks which Venice text model to call for a prompt based on privacy tier, input modality, capabilities and cost, and decides when to escalate from a local agent.
veniceai/skills
Documents Venice's model discovery endpoints, GET /models, /models/traits and /models/compatibility_mapping, so an agent can pick a model by capability, constraint or price.
veniceai/skills
Manages Venice API keys through the /api_keys endpoints: create, list, update and revoke keys, set spending limits, and read rate limits.
veniceai/skills
High-level map of the Venice.ai API: base URL, auth modes per endpoint, endpoint categories, response headers, pricing model, error shape and versioning.
veniceai/skills
Async music, sound-effect and long-form voice generation via Venice.
veniceai/skills
Generate speech from text via POST /audio/speech, and clone a voice via POST /audio/voices.
Categories
Call POST /embeddings on Venice. An agent skill from veniceai/skills. Venice Embeddings is an agent skill from veniceai/skills. Call POST /embeddings on Venice.
Venice Embeddings fits situations like: tasks that involve Embeddings.
Run `npx skills add veniceai/skills --skill venice-embeddings -a claude-code`. Or copy the skill folder (skills/venice-embeddings in veniceai/skills) into .claude/skills/venice-embeddings in your project. Claude Code loads it when a task matches its description.
Run `npx skills add veniceai/skills --skill venice-embeddings -a codex`. Or copy the skill folder (skills/venice-embeddings in veniceai/skills) into .agents/skills/venice-embeddings in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add veniceai/skills --skill venice-embeddings -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/venice-embeddings, .gemini/skills/venice-embeddings, .github/skills/venice-embeddings and .opencode/skills/venice-embeddings in your project.
Going by SKILL.md and its folder, Venice Embeddings needs the command-line tools its instructions call (curl) and credentials named VENICE_API_KEY. Our summary lists: Python 3; A credential in VENICE_API_KEY.
SKILL.md names 2 domains. In commands or code: api.venice.ai and api.openai.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Venice Embeddings is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Venice Embeddings: Llmobs Integration (DataDog/dd-trace-js, 837 stars), RAG Architect (Jeffallan/claude-skills, 12k stars), Langchain RAG (langchain-ai/langchain-skills, 1.3k stars) and Sap Cloud SDK AI (secondsky/sap-skills, 462 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
veniceai (a GitHub organization) maintains it in veniceai/skills, which has 144 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 5, 2026.
Source: veniceai/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.