Agent skill
ai-rag-pipeline
Build RAG (Retrieval Augmented Generation) pipelines with web search and LLMs. Tools: Tavily Search, Exa Search, Exa Answer, Claude, GPT-4, Gemini via OpenRouter. Capabilities: research, fact-checking, grounded responses, knowledge retrieval. Use for: AI agents, research assistants, fact-checkers, knowledge bases. Triggers: rag, retrieval augmented generation, grounded ai, search and answer, research agent, fact checking, knowledge retrieval, ai research, search + llm, web grounded, perplexity alternative, ai with sources, citation, research pipeline
Install this agent skill to your Project
npx add-skill https://github.com/inference-sh/skills/tree/main/tools/llm/ai-rag-pipeline
SKILL.md
AI RAG Pipeline
Build RAG (Retrieval Augmented Generation) pipelines via inference.sh CLI.
Quick Start
Requires inference.sh CLI (
infsh). Install instructions
infsh login
# Simple RAG: Search + LLM
SEARCH=$(infsh app run tavily/search-assistant --input '{"query": "latest AI developments 2024"}')
infsh app run openrouter/claude-sonnet-45 --input "{
\"prompt\": \"Based on this research, summarize the key trends: $SEARCH\"
}"
What is RAG?
RAG combines:
- Retrieval: Fetch relevant information from external sources
- Augmentation: Add retrieved context to the prompt
- Generation: LLM generates response using the context
This produces more accurate, up-to-date, and verifiable AI responses.
RAG Pipeline Patterns
Pattern 1: Simple Search + Answer
[User Query] -> [Web Search] -> [LLM with Context] -> [Answer]
Pattern 2: Multi-Source Research
[Query] -> [Multiple Searches] -> [Aggregate] -> [LLM Analysis] -> [Report]
Pattern 3: Extract + Process
[URLs] -> [Content Extraction] -> [Chunking] -> [LLM Summary] -> [Output]
Available Tools
Search Tools
| Tool | App ID | Best For |
|---|---|---|
| Tavily Search | tavily/search-assistant |
AI-powered search with answers |
| Exa Search | exa/search |
Neural search, semantic matching |
| Exa Answer | exa/answer |
Direct factual answers |
Extraction Tools
| Tool | App ID | Best For |
|---|---|---|
| Tavily Extract | tavily/extract |
Clean content from URLs |
| Exa Extract | exa/extract |
Analyze web content |
LLM Tools
| Model | App ID | Best For |
|---|---|---|
| Claude Sonnet 4.5 | openrouter/claude-sonnet-45 |
Complex analysis |
| Claude Haiku 4.5 | openrouter/claude-haiku-45 |
Fast processing |
| GPT-4o | openrouter/gpt-4o |
General purpose |
| Gemini 2.5 Pro | openrouter/gemini-25-pro |
Long context |
Pipeline Examples
Basic RAG Pipeline
# 1. Search for information
SEARCH_RESULT=$(infsh app run tavily/search-assistant --input '{
"query": "What are the latest breakthroughs in quantum computing 2024?"
}')
# 2. Generate grounded response
infsh app run openrouter/claude-sonnet-45 --input "{
\"prompt\": \"You are a research assistant. Based on the following search results, provide a comprehensive summary with citations.
Search Results:
$SEARCH_RESULT
Provide a well-structured summary with source citations.\"
}"
Multi-Source Research
# Search multiple sources
TAVILY=$(infsh app run tavily/search-assistant --input '{"query": "electric vehicle market trends 2024"}')
EXA=$(infsh app run exa/search --input '{"query": "EV market analysis latest reports"}')
# Combine and analyze
infsh app run openrouter/claude-sonnet-45 --input "{
\"prompt\": \"Analyze these research results and identify common themes and contradictions.
Source 1 (Tavily):
$TAVILY
Source 2 (Exa):
$EXA
Provide a balanced analysis with sources.\"
}"
URL Content Analysis
# 1. Extract content from specific URLs
CONTENT=$(infsh app run tavily/extract --input '{
"urls": [
"https://example.com/research-paper",
"https://example.com/industry-report"
]
}')
# 2. Analyze extracted content
infsh app run openrouter/claude-sonnet-45 --input "{
\"prompt\": \"Analyze these documents and extract key insights:
$CONTENT
Provide:
1. Key findings
2. Data points
3. Recommendations\"
}"
Fact-Checking Pipeline
# Claim to verify
CLAIM="AI will replace 50% of jobs by 2030"
# 1. Search for evidence
EVIDENCE=$(infsh app run tavily/search-assistant --input "{
\"query\": \"$CLAIM evidence studies research\"
}")
# 2. Verify claim
infsh app run openrouter/claude-sonnet-45 --input "{
\"prompt\": \"Fact-check this claim: '$CLAIM'
Based on the following evidence:
$EVIDENCE
Provide:
1. Verdict (True/False/Partially True/Unverified)
2. Supporting evidence
3. Contradicting evidence
4. Sources\"
}"
Research Report Generator
TOPIC="Impact of generative AI on creative industries"
# 1. Initial research
OVERVIEW=$(infsh app run tavily/search-assistant --input "{\"query\": \"$TOPIC overview\"}")
STATISTICS=$(infsh app run exa/search --input "{\"query\": \"$TOPIC statistics data\"}")
OPINIONS=$(infsh app run tavily/search-assistant --input "{\"query\": \"$TOPIC expert opinions\"}")
# 2. Generate comprehensive report
infsh app run openrouter/claude-sonnet-45 --input "{
\"prompt\": \"Generate a comprehensive research report on: $TOPIC
Research Data:
== Overview ==
$OVERVIEW
== Statistics ==
$STATISTICS
== Expert Opinions ==
$OPINIONS
Format as a professional report with:
- Executive Summary
- Key Findings
- Data Analysis
- Expert Perspectives
- Conclusion
- Sources\"
}"
Quick Answer with Sources
# Use Exa Answer for direct factual questions
infsh app run exa/answer --input '{
"question": "What is the current market cap of NVIDIA?"
}'
Best Practices
1. Query Optimization
# Bad: Too vague
"AI news"
# Good: Specific and contextual
"latest developments in large language models January 2024"
2. Context Management
# Summarize long search results before sending to LLM
SEARCH=$(infsh app run tavily/search-assistant --input '{"query": "..."}')
# If too long, summarize first
SUMMARY=$(infsh app run openrouter/claude-haiku-45 --input "{
\"prompt\": \"Summarize these search results in bullet points: $SEARCH\"
}")
# Then use summary for analysis
infsh app run openrouter/claude-sonnet-45 --input "{
\"prompt\": \"Based on this research summary, provide insights: $SUMMARY\"
}"
3. Source Attribution
Always ask the LLM to cite sources:
infsh app run openrouter/claude-sonnet-45 --input '{
"prompt": "... Always cite sources in [Source Name](URL) format."
}'
4. Iterative Research
# First pass: broad search
INITIAL=$(infsh app run tavily/search-assistant --input '{"query": "topic overview"}')
# Second pass: dive deeper based on findings
DEEP=$(infsh app run tavily/search-assistant --input '{"query": "specific aspect from initial search"}')
Pipeline Templates
Agent Research Tool
#!/bin/bash
# research.sh - Reusable research function
research() {
local query="$1"
# Search
local results=$(infsh app run tavily/search-assistant --input "{\"query\": \"$query\"}")
# Analyze
infsh app run openrouter/claude-haiku-45 --input "{
\"prompt\": \"Summarize: $results\"
}"
}
research "your query here"
Related Skills
# Web search tools
npx skills add inference-sh/skills@web-search
# LLM models
npx skills add inference-sh/skills@llm-models
# Content pipelines
npx skills add inference-sh/skills@ai-content-pipeline
# Full platform skill
npx skills add inference-sh/skills@infsh-cli
Browse all apps: infsh app list
Documentation
- Adding Tools to Agents - Agent tool integration
- Building a Research Agent - Full guide
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ui
Batteries-included agent component for React/Next.js from ui.inference.sh. One component with runtime, tools, streaming, approvals, and widgets built in. Capabilities: drop-in agent, human-in-the-loop, client-side tools, form filling. Use for: building AI chat interfaces, agentic UIs, SaaS copilots, assistants. Triggers: agent component, agent ui, chat agent, shadcn agent, react agent, agentic ui, ai assistant ui, copilot ui, inference ui, human in the loop
chat-ui
Chat UI building blocks for React/Next.js from ui.inference.sh. Components: container, messages, input, typing indicators, avatars. Capabilities: chat interfaces, message lists, input handling, streaming. Use for: building custom chat UIs, messaging interfaces, AI assistants. Triggers: chat ui, chat component, message list, chat input, shadcn chat, react chat, chat interface, messaging ui, conversation ui, chat building blocks
tools-ui
Tool lifecycle UI components for React/Next.js from ui.inference.sh. Display tool calls: pending, progress, approval required, results. Capabilities: tool status, progress indicators, approval flows, results display. Use for: showing agent tool calls, human-in-the-loop approvals, tool output. Triggers: tool ui, tool calls, tool status, tool approval, tool results, agent tools, mcp tools ui, function calling ui, tool lifecycle, tool pending
widgets-ui
Declarative UI widgets from JSON for React/Next.js from ui.inference.sh. Render rich interactive UIs from structured agent responses. Capabilities: forms, buttons, cards, layouts, inputs, selects, checkboxes. Use for: agent-generated UIs, dynamic forms, data display, interactive cards. Triggers: widgets, declarative ui, json ui, widget renderer, agent widgets, dynamic ui, form widgets, card widgets, shadcn widgets, structured output ui
web-search
Web search and content extraction with Tavily and Exa via inference.sh CLI. Apps: Tavily Search, Tavily Extract, Exa Search, Exa Answer, Exa Extract. Capabilities: AI-powered search, content extraction, direct answers, research. Use for: research, RAG pipelines, fact-checking, content aggregation, agents. Triggers: web search, tavily, exa, search api, content extraction, research, internet search, ai search, search assistant, web scraping, rag, perplexity alternative
llm-models
Access Claude, Gemini, Kimi, GLM and 100+ LLMs via inference.sh CLI using OpenRouter. Models: Claude Opus 4.5, Claude Sonnet 4.5, Claude Haiku 4.5, Gemini 3 Pro, Kimi K2, GLM-4.6, Intellect 3. One API for all models with automatic fallback and cost optimization. Use for: AI assistants, code generation, reasoning, agents, chat, content generation. Triggers: claude api, openrouter, llm api, claude sonnet, claude opus, gemini api, kimi, language model, gpt alternative, anthropic api, ai model api, llm access, chat api, claude alternative, openai alternative
Didn't find tool you were looking for?