Skip to main content
Glama

Chat completion

carpe_chat

Run OpenAI-compatible chat completions with a private TEE route or cost-based market routing, returning the answer, usage, billed cost, and serving market.

Instructions

Run a chat completion on Carpe Diem (OpenAI-compatible; Venice models: GPT, Claude, Gemini, DeepSeek, GLM, Qwen, Llama, uncensored models…). Two surfaces: route "carpe" (/v1, Carpe's TEE, private) or route "router" (/router, cheapest market). Returns the answer plus usage, the exact cost billed and which market served it. Supports function tools, response_format (JSON schema), reasoning_effort and Venice web search. Paid — use carpe_quote first for expensive requests.

Input Schema

NameRequiredDescriptionDefault
seedNo
stopNo
extraNoAdditional body fields passed through verbatim (e.g. venice_parameters, frequency_penalty).
modelNoModel id (default deepseek-v4-flash). See carpe_list_models type "text".
routeNo"carpe" → /v1: Carpe alone, always in its TEE, Carpe price. "router" → /router: best price across markets (may be served outside a TEE; see privacy). Default from CARPE_DEFAULT_ROUTE.
toolsNoOpenAI function tools; tool calls are returned, not executed.
top_pNo
promptNoUser message (shortcut for messages).
systemNoSystem prompt, used with prompt.
privacyNoroute "router" only. true = TEE markets only (Carpe, Chutes, Venice); "private" = for models Venice runs privately, only markets that keep nothing. Ignored on route "carpe", which is always TEE.
messagesNoFull OpenAI-style messages array (takes precedence over prompt/system).
providerNoroute "router" only: OpenRouter-style routing preferences.
max_tokensNoOutput token cap (also bounds the cost).
web_searchNoVenice web search (extra flat fee per search that runs).
temperatureNo
tool_choiceNo
response_formatNoe.g. {"type":"json_schema","json_schema":{…}}
reasoning_effortNonone | low | medium | high … (model-dependent).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false) the description discloses the paid nature, that the response includes usage, exact billed cost and serving market, that tool calls are returned rather than executed, that web search carries an extra flat fee, and the TEE/privacy difference between routes. That is exactly the behavioral context an agent needs before spending money on a non-idempotent call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The critical facts — what it is, the two routes, what comes back, cost warning — are front-loaded, and the model-list parenthetical is the only slightly bloated part. It stays dense but readable for a complex 18-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter tool with nested objects and no output schema, the description does the important work: it describes the return payload (answer, usage, cost, market) and the two routing surfaces. Remaining gaps are standard LLM parameters (temperature, top_p, seed) that an agent will recognize from convention.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 72%, so the schema already documents route, privacy, provider, max_tokens and others. The description still adds value by grouping the supported capabilities (function tools, response_format JSON schema, reasoning_effort, Venice web search) and flagging the per-search fee, though it says nothing about seed, stop, top_p, temperature or the precedence rules already encoded in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ("Run a chat completion on Carpe Diem") and immediately differentiates it from siblings like carpe_embeddings, carpe_web_search and the image/video/audio generators by naming the OpenAI-compatible surface and model families. The two-route explanation further pins down exactly what this call does that no other tool in the list does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives actionable routing guidance ("carpe" for private TEE, "router" for cheapest market) and an explicit cost-control alternative: "use carpe_quote first for expensive requests." What's missing is a when-not statement — nothing says when to prefer carpe_embeddings or a different tool, though the domain separation is fairly obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.