mcpField
A
ai-rag-pipeline

ai-rag-pipeline

github.com/inference-shAgent workflows7891.0k installsUpdated 2w ago
Repository

About ai-rag-pipeline

ai-rag-pipeline is a skill for building retrieval-augmented generation workflows with the inference.sh CLI (belt). It is aimed at research and agent workflows that combine external information with LLM output, and includes patterns for search, extraction, and multi-source analysis.

Key features

  1. 01Combine search results with LLM responses
  2. 02Support multi-source research and aggregation
  3. 03Extract and process content from URLs
  4. 04Provide fact-checking and report workflow examples

Use cases

  1. 01Generate grounded answers from web search
  2. 02Synthesize and compare multiple sources
  3. 03Extract web content and create summaries
  4. 04Search for evidence to verify claims

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/inference-sh/skills --skill ai-rag-pipeline

After installing, type/ai-rag-pipelinein Claude Code to confirm it loaded.

Details

From the project README

Install the belt CLI skill: npx skills add belt-sh/cli

AI RAG Pipeline

Build RAG (Retrieval Augmented Generation) pipelines via inference.sh CLI.

AI RAG Pipeline

Quick Start

Requires inference.sh CLI (belt). Install instructions

belt login

# Simple RAG: Search + LLM
SEARCH=$(belt app run tavily/search-assistant --input '{"query": "latest AI developments 2024"}')
belt app run openrouter/claude-sonnet-45 --input "{
  \"prompt\": \"Based on this research, summarize the key trends: $SEARCH\"
}"

What is RAG?

RAG combines:

  1. Retrieval: Fetch relevant information from external sources
  2. Augmentation: Add retrieved context to the prompt
  3. 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
ToolApp IDBest For
Tavily Searchtavily/search-assistantAI-powered search with answers
Exa Searchexa/searchNeural search, semantic matching
Exa Answerexa/answerDirect factual answers
Extraction Tools
ToolApp IDBest For
Tavily Extracttavily/extractClean content from URLs
Exa Extractexa/extractAnalyze web content
LLM Tools
ModelApp IDBest For
Claude Sonnet 4.5openrouter/claude-sonnet-45Complex analysis
Claude Haiku 4.5openrouter/claude-haiku-45Fast processing
GPT-4oopenrouter/gpt-4oGeneral purpose
Gemini 2.5 Proopenrouter/gemini-25-proLong context

Pipeline Examples

Basic RAG Pipeline
# 1. Search for information
SEARCH_RESULT=$(belt app run tavily/search-assistant --input '{
  "query": "What are the latest breakthroughs in quantum computing 2024?"
}')

# 2. Generate grounded response
belt 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=$(belt app run tavily/search-assistant --input '{"query": "electric vehicle market trends 2024"}')
EXA=$(belt app run exa/search --input '{"query": "EV market analysis latest reports"}')

# Combine and analyze
belt 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=$(belt app run tavily/extract --input '{
  "urls": [
    "https://example.com/research-paper",
    "https://example.com/industry-report"
  ]
}')

# 2. Analyze extracted content
belt 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=$(belt app run tavily/search-assistant --input "{
  \"query\": \"$CLAIM evidence studies research\"
}")

# 2. Verify claim
belt 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=$(belt app run tavily/search-assistant --input "{\"query\": \"$TOPIC overview\"}")
STATISTICS=$(belt app run exa/search --input "{\"query\": \"$TOPIC statistics data\"}")
OPINIONS=$(belt app run tavily/search-assistant --input "{\"query\": \"$TOPIC expert opinions\"}")

# 2. Generate comprehensive report
belt 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
belt 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=$(belt app run tavily/search-assistant --input '{"query": "..."}')

# If too long, summarize first
SUMMARY=$(belt app run openrouter/claude-haiku-45 --input "{
  \"prompt\": \"Summarize these search results in bullet points: $SEARCH\"
}")

# Then use summary for analysis
belt 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:

belt app run openrouter/claude-sonnet-45 --input '{
  "prompt": "... Always cite sources in [Source Name](URL) format."
}'
4. Iterative Research
# First pass: broad search
INITIAL=$(belt app run tavily/search-assistant --input '{"query": "topic overview"}')

# Second pass: dive deeper based on findings
DEEP=$(belt 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=$(belt app run tavily/search-assistant --input "{\"query\": \"$query\"}")

  # Analyze
  belt 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: belt app list

Documentation

Comments

Markdown supported