Models

asi1-ultra

asi1-ultra is the most capable model in the ASI:One family. It is designed for workloads where reasoning depth and tool budget matter more than speed: long-running agentic tasks, deep research, code audits, and any plan that requires sustaining context across many steps.

If you are unsure whether you need it, start with asi1 and upgrade to asi1-ultra when you find that:

  • Your task requires more than a handful of tool calls to complete
  • You need the model to reason across long documents or large codebases
  • You want the most thorough analysis the family can produce, and you accept a longer response time and higher cost in exchange

For most general workloads, asi1 is the right starting point. See Model Selection for a side-by-side comparison.


Quickstart

$curl -X POST https://api.asi1.ai/v1/chat/completions \
> -H "Content-Type: application/json" \
> -H "Authorization: Bearer $ASI_ONE_API_KEY" \
> -d '{
> "model": "asi1-ultra",
> "messages": [
> {"role": "user", "content": "Audit this 800-line contract and flag the top five risks"}
> ]
> }'

Specifications

SpecificationValue
Model IDasi1-ultra
PositionDeepest reasoning in the ASI:One family
Context Window200,000 tokens
Max Tool Calls per TurnUp to 500
StreamingSupported
OpenAI CompatibilityFull SDK
APIsChat Completions (/v1/chat/completions), Responses (/v1/responses)
Rate LimitsSee your API dashboard

The 500-tool-calls-per-turn budget is the headline difference from the rest of the family. It is what makes long agentic flows possible without forcing your application to chunk work into separate turns.


What asi1-ultra is for

Long-running agentic tasks

When an agent has to plan, call multiple tools, evaluate intermediate results, and continue working, the per-turn tool budget becomes the binding constraint. asi1-ultra lets a single turn cover work that other models would need to break across many requests.

Common patterns:

  • A research agent that searches the web, reads sources, evaluates credibility, synthesizes findings, and writes a report
  • A coding agent that reads a repository, runs tests, edits files, re-runs tests, and iterates until green
  • A planning agent that gathers data from multiple services and produces a coherent recommendation

Deep research and synthesis

For multi-hop questions where the answer depends on connecting evidence from several sources, asi1-ultra reasons across longer chains without losing the thread.

Code audits and contract analysis

Static analysis of large code or legal documents benefits from the deepest reasoning mode. asi1-ultra is the right pick when you want the model to catch subtle issues, not skim.

Strategic planning

Multi-constraint planning problems where the answer requires weighing tradeoffs and exploring branches.


When to use a different model

asi1-ultra is not the best choice for every workload.

If your workload is…Use this instead
Real-time chat, voice, or autocompleteasi1-mini
Classification or routing of short inputsasi1-mini
General-purpose chat and tool callingasi1
Routine coding assistanceasi1
Short, high-volume requests where cost and latency matterasi1 or asi1-mini

The cost and latency profile of asi1-ultra matches its capability. Reach for it when the task warrants it, not by default.


Tool calling with asi1-ultra

asi1-ultra uses the same tool-calling API as the rest of the family. The difference is the per-turn budget.

1import requests, os
2
3url = "https://api.asi1.ai/v1/chat/completions"
4headers = {
5 "Content-Type": "application/json",
6 "Authorization": f"Bearer {os.getenv('ASI_ONE_API_KEY')}"
7}
8
9tools = [
10 {
11 "type": "function",
12 "function": {
13 "name": "search_documents",
14 "description": "Search a document store and return matching passages",
15 "parameters": {
16 "type": "object",
17 "properties": {
18 "query": {"type": "string", "description": "Search query"},
19 "top_k": {"type": "integer", "description": "Number of results", "default": 10},
20 },
21 "required": ["query"],
22 },
23 },
24 },
25]
26
27data = {
28 "model": "asi1-ultra",
29 "messages": [
30 {"role": "user", "content": "Find every mention of 'liability cap' across my contracts and summarize"}
31 ],
32 "tools": tools,
33}
34
35response = requests.post(url, headers=headers, json=data)
36print(response.json())

For a complete walkthrough of tool calling - schemas, multi-turn flows, parallel calls - see the Tool Calling guide.


Migration from asi1

Switching from asi1 to asi1-ultra requires only changing the model field in the request body. The API surface, message format, tool schema, streaming behavior, and SDK compatibility are identical.

1 {
2- "model": "asi1",
3+ "model": "asi1-ultra",
4 "messages": [...]
5 }

Recommended approach:

  1. Identify the workloads where you currently retry, chunk, or split requests across multiple turns to fit within tool budget or reasoning depth
  2. A/B test those workloads against asi1-ultra and measure quality
  3. Roll out asi1-ultra for the workloads where the quality improvement justifies the cost difference
  4. Keep asi1 as the default for everything else