SKILLS/asi1-builder/SKILL.md
Complete reference and build guide for ASI:One (ASI1) — the AI platform by Fetch.ai built for agentic, Web3-native applications. Use this skill IMMEDIATELY and ALWAYS when the user mentions ASI1, ASI:One, Fetch.ai AI API, building with ASI1, integrating ASI:One, asking about ASI1 models, tool calling with ASI1, ASI1 image generation, ASI1 agentic LLM, Agentverse, uagents, Agent Chat Protocol, structured output with ASI1, or OpenAI-compatible wrappers for ASI1. Also trigger when the user says things like "use ASI1 instead of OpenAI", "build an app with ASI:One", "ASI1 API", or references docs.asi1.ai. This skill covers everything needed to build production apps - setup, all models, all API features, tool calling, image gen, agentic orchestration, structured data, session management, streaming, LangChain integration, uagents / Agent Chat Protocol, and TypeScript/Node.js patterns.
npx skillsauth add pinkpixel-dev/skills-collection-1 asi1-builderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
ASI:One is an intelligent AI platform by Fetch.ai that unifies LLM inference, agentic orchestration (via the Agentverse marketplace), image generation, tool calling, and Web3-native features behind a single OpenAI-compatible API.
Base URL: https://api.asi1.ai/v1
API Key header: Authorization: Bearer $ASI_ONE_API_KEY
Docs: https://docs.asi1.ai
ASI1 uses one model string that auto-activates capabilities based on context and parameters:
| Model String | Use When |
|---|---|
| asi1 | Default — full agentic orchestration, Agentverse discovery, all capabilities |
| asi1-mini | Tool calling, image gen, lower latency general use |
| asi1-fast | Tool calling, lowest latency, real-time applications |
| asi1-extended | Tool calling, deep reasoning, complex analysis |
Key specs:
base_url only)| Capability | What it does | |---|---| | Agentic Reasoning | Discovers & orchestrates agents from Agentverse marketplace | | Extended Reasoning | Multi-step analysis, chain-of-thought | | Fast Inference | Low-latency path for simple tasks | | Tool Calling | External function/API integration | | Visualization | Charts & graphs from data | | Web3 Native | Smart contracts, tokenomics, on-chain reasoning |
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",
"messages": [{"role": "user", "content": "What is agentic AI?"}]
}'
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.ASI_ONE_API_KEY!,
baseURL: 'https://api.asi1.ai/v1',
});
const response = await client.chat.completions.create({
model: 'asi1',
messages: [
{ role: 'system', content: 'Be precise and concise.' },
{ role: 'user', content: 'Explain agentic AI.' },
],
temperature: 0.7,
max_tokens: 1000,
});
console.log(response.choices[0].message.content);
from openai import OpenAI
client = OpenAI(
api_key="YOUR_ASI_ONE_API_KEY",
base_url="https://api.asi1.ai/v1"
)
response = client.chat.completions.create(
model="asi1",
messages=[
{"role": "system", "content": "Be precise and concise."},
{"role": "user", "content": "What is agentic AI?"}
],
temperature=0.2,
max_tokens=1000,
)
print(response.choices[0].message.content)
Standard OpenAI fields + ASI:One-specific fields:
{
"id": "...",
"choices": [{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "...",
"role": "assistant",
"tool_calls": null
}
}],
"usage": {
"completion_tokens": 149,
"prompt_tokens": 2105,
"total_tokens": 2254
},
"executable_data": [], // ASI:One — agent manifests/tool calls from Agentverse
"intermediate_steps": [], // ASI:One — multi-step reasoning traces
"thought": [], // ASI:One — model reasoning process
"metadata": { "weight_version": "default" }
}
POST /v1/chat/completionsHeaders:
Authorization: Bearer <api_key> (required)x-session-id: <uuid> (required for agentic model session persistence)Body:
| Parameter | Type | Required | Notes |
|---|---|---|---|
| model | string | ✅ | asi1, asi1-mini, asi1-fast, asi1-extended |
| messages | array | ✅ | Standard chat array |
| stream | boolean | ❌ | SSE streaming |
| temperature | float | ❌ | 0–2 |
| max_tokens | integer | ❌ | Max response tokens |
| top_p | float | ❌ | Nucleus sampling |
| frequency_penalty | float | ❌ | -2.0 to 2.0 |
| presence_penalty | float | ❌ | -2.0 to 2.0 |
| tools | array | ❌ | Tool definitions for function calling |
| tool_choice | string/object | ❌ | "auto", "required", "none", or {type, function} |
| parallel_tool_calls | boolean | ❌ | Default true |
| response_format | object | ❌ | For structured JSON output |
| web_search | boolean | ❌ | Enable built-in web search |
| agent_address | string | ❌ | Target specific Agentverse agent |
| planner_mode | boolean | ❌ | Enable ASI Planner |
| study_mode | boolean | ❌ | Enable study/research mode |
For detailed implementation docs, see the reference files:
references/tool-calling.md — Tool definitions, execution cycle, strict mode, parallel callsreferences/image-generation.md — Image gen endpoint, sizes, prompting, batch patternsreferences/agentic-llm.md — Session management, async polling, Agentverse integrationreferences/structured-data.md — JSON schema output, Pydantic/LangChain patternsreferences/agent-chat-protocol.md — uagents, Chat Protocol, inter-agent messaging (Python)references/openai-compat.md — Full OpenAI SDK compatibility, LangChain, streaming, web searchRead the relevant reference file(s) based on what the user needs to build.
const stream = await client.chat.completions.create({
model: 'asi1',
messages: [{ role: 'user', content: 'Tell me about Web3' }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? '');
}
import { v4 as uuidv4 } from 'uuid';
const sessionId = uuidv4();
const response = await client.chat.completions.create(
{
model: 'asi1',
messages: [{ role: 'user', content: 'Check flight arrivals at Delhi airport' }],
stream: true,
},
{
headers: { 'x-session-id': sessionId },
}
);
const response = await client.chat.completions.create({
model: 'asi1',
messages: [{ role: 'user', content: 'Latest AI research 2025' }],
// @ts-ignore — ASI:One-specific extra body field
extra_body: { web_search: true },
});
Set it as env var: ASI_ONE_API_KEY=your_key_here
x-session-id header when using asi1 model for multi-turn agentic tasksasi1-mini, asi1-fast, asi1-extended (not base asi1 alone)POST /v1/image/generatestrict: true AND additionalProperties: false AND list all fields in requiredcontent must be JSON-stringified (a string, not an object)tool_call_id values when sending tool results backdevelopment
Build a systematic threat hunt hypothesis framework that transforms threat intelligence, attack patterns, and environmental data into testable hunting hypotheses.
development
Deploy MISP (Malware Information Sharing Platform) to aggregate, correlate, and distribute threat intelligence feeds from multiple sources for centralized IOC management and automated SIEM integration.
development
Build comprehensive threat actor profiles using open-source intelligence (OSINT) techniques to document adversary motivations, capabilities, infrastructure, and TTPs for proactive defense.
development
Builds a structured SOC incident response playbook for ransomware attacks covering detection, containment, eradication, and recovery phases with specific SIEM queries, isolation procedures, and decision trees. Use when SOC teams need formalized response procedures for ransomware incidents aligned to NIST SP 800-61 and MITRE ATT&CK ransomware techniques.