Agent skill
ms-agent-framework-rag
Comprehensive guide for building Agentic RAG systems using Microsoft Agent Framework in C#. Use when creating RAG applications with semantic search, document indexing, and intelligent agent orchestration. Includes scaffolding scripts, reference implementations, and documentation for vector databases, embedding models, and multi-agent workflows.
Install this agent skill to your Project
npx add-skill https://github.com/shuyu-labs/WebCode/tree/main/skills/codex/ms-agent-framework-rag
SKILL.md
Microsoft Agent Framework - Agentic RAG System
This skill provides scaffolding and guidance for building production-ready Agentic RAG (Retrieval-Augmented Generation) systems using Microsoft Agent Framework with C#.
Quick Start
Use the scaffolding script to create a new RAG system:
scripts/create_rag_system.sh <project-name> [--output-dir <path>]
Example:
scripts/create_rag_system.sh MyKnowledgeBase --output-dir ./my-rag-project
Architecture Overview
An Agentic RAG system consists of:
- Ingestion Layer: Document parsing, chunking, and embedding generation
- Vector Store: Semantic search index (Azure AI Search, Qdrant, or Pinecone)
- Agent Framework: Multi-agent orchestration with Microsoft AutoGen
- LLM Integration: Azure OpenAI or OpenAI API for generation
- API Layer: RESTful endpoints for querying
Core Components
1. Semantic Search
- Use Azure AI Search for integrated vector + keyword search
- Store embeddings with metadata (source, timestamp, tags)
- Implement hybrid search (vector + BM25) for best results
See references/semantic_search.md for implementation details.
2. Multi-Agent System
Build specialized agents:
- Research Agent: Finds relevant documents
- Synthesis Agent: Combines information from multiple sources
- Validation Agent: Checks accuracy and citations
See references/agent_patterns.md for agent design patterns.
3. Document Processing
- Supported formats: PDF, DOCX, TXT, MD, HTML
- Chunking strategies: semantic, sliding window, hierarchical
- Metadata extraction: title, author, date, tags
See references/document_processing.md for chunking strategies.
Available Scripts
create_rag_system.sh
Scaffolds a complete RAG system with:
- Project structure following best practices
- Configuration files (appsettings.json)
- Docker compose for local development
- Example agents and tools
Usage:
scripts/create_rag_system.sh <project-name> [--output-dir <path>]
ingest_documents.sh
Batch document ingestion:
scripts/ingest_documents.sh <source-dir> <index-name>
run_local.sh
Start the RAG system locally:
scripts/run_local.sh <project-dir>
Configuration
Required environment variables:
AZURE_OPENAI_ENDPOINT=<your-endpoint>
AZURE_OPENAI_API_KEY=<your-key>
AZURE_SEARCH_ENDPOINT=<your-search-endpoint>
AZURE_SEARCH_KEY=<your-search-key>
EMBEDDING_MODEL=text-embedding-ada-002
CHAT_MODEL=gpt-4
Reference Documentation
references/semantic_search.md- Vector search implementationreferences/agent_patterns.md- Multi-agent design patternsreferences/document_processing.md- Chunking and preprocessingreferences/evaluation.md- RAG quality metrics
Best Practices
- Start Simple: Begin with basic RAG, add agents incrementally
- Metadata Matters: Rich metadata improves retrieval accuracy
- Hybrid Search: Combine vector and keyword search
- Citation Tracking: Always include source references
- Evaluation: Use RAGAS framework for quality metrics
Common Patterns
Multi-Step Retrieval
For complex queries, use iterative refinement:
- Initial search with broad query
- Research agent expands with sub-queries
- Synthesis agent combines results
- Validation agent checks citations
Citation Management
Always track:
- Document ID
- Page number
- Chunk index
- Relevance score
See references/citations.md for implementation.
Troubleshooting
Poor Retrieval Quality
- Adjust chunk size (try 512-1024 tokens)
- Use hybrid search instead of pure vector
- Add more metadata for filtering
- Consider re-embedding with different model
Slow Performance
- Enable caching on vector queries
- Use streaming responses
- Implement async document ingestion
- Consider partitioning large indices
High Costs
- Use smaller models for embeddings
- Cache frequently asked questions
- Implement result pagination
- Use batch processing for ingestion
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
doc-coauthoring
Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.
internal-comms
A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
mcp-builder
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
canvas-design
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
web-artifacts-builder
Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
Didn't find tool you were looking for?