Skip to main content
Human guide: work with your agent → Inspect one Deepline Agent action before starting provider-backed work. Your first result is a verified input and output contract.

Provider-specific requirements

Use ai_inference for plain text or structured-output model calls with no tool use. Model IDs are case-sensitive. Use the exact id string from the live AI Gateway model catalog. The current Deepline default is openai/gpt-5.6-luna. The describe CLI also shows the selected model metadata and provider option schema: deepline tools describe ai_inference --model openai/gpt-5.6-luna. Use jsonSchema for a structured result. It is a strict subset of JSON Schema: the root is "type": "object", and every field is always returned. Omit required (Deepline then requires every property) or list every property. A partial required list is rejected. Make a field optional with a nullable type such as "type": ["string", "null"]. Deepline guides the model to emit complete, compact JSON while preserving an explicit maxOutputTokens limit. Do not apply a small token cap indiscriminately to research or long free-text fields. For a small budget, ask for brief values. leave enough headroom for every required field and any model reasoning. Inspect describe for the current model and operation contract. Incomplete JSON remains a failure, not a partial successful result. For inference and deeplineagent, read toolResponse.rawV2.result.text for text, toolResponse.rawV2.result.object for optional structured data, and toolResponse.rawV2.extracted_json for the compatibility JSON field. For ai_evaluate, use toolResponse.rawV2.result.answers and toolResponse.rawV2.extracted_json. Use deeplineagent when the task benefits from streaming output and tool use across the current whitelist: serper_google_search, exa_search, firecrawl_scrape, firecrawl_map, firecrawl_crawl, and bash. For research tasks, prefer an adaptive loop: cheap Serper search first, synthesize, then only run targeted Exa follow-up searches if key gaps remain. When using exa_search, prefer type: "auto" with contents.highlights and no contents.summary. highlights are token-efficient snippets, while summaries add an extra AI pass. Use Firecrawl only after you know the target site or section. Prefer firecrawl_scrape for one known URL, firecrawl_map for URL inventory before crawling, and keep firecrawl_crawl tightly scoped with explicit low limit, includePaths/excludePaths, or maxDiscoveryDepth. Firecrawl work scales with discovered pages, crawled pages, and requested modifiers, so do not run broad speculative crawls. When bash is enabled, /refs/prompts.json is available as a lazily loaded reference file for GTM prompt-template lookup. Prefer Deepline-native tools over freeform bash when structured provider actions already exist.

Find an applicable action

Confirm your effective workspace, then search the live catalog:
Search returns candidates. Check the returned provider and operation rather than selecting a similar title automatically.

Inspect the selected contract

Replace <returned-tool-id> with the identifier returned by discovery:
These commands do not execute the selected provider action. Read its required inputs, supported access mode, pricing unit, outputs, and limits. A connection does not establish that every action supports BYOK. Follow the provider-specific requirements above and the live action contract.

Prepare one reviewed input

Use one authorized record that matches the inspected schema. Preserve its source identity and define the result you will accept. Open the action reference for its payload and response shape. Provider-backed execution can incur usage or external effects. For reusable logic, follow Write Plays. For direct-call recovery, use Tool execution recovery.
Continue only when the workspace, provider, required fields, acceptance rule, and applicable price are understood. Keep unavailable access separate from no-result evidence.