# Dexorder Knowledge Base This directory contains global knowledge documents that are automatically loaded into the RAG system as platform-wide knowledge (user_id="0"). ## Structure - **platform/**: Platform architecture and capabilities - **trading/**: Trading concepts and fundamentals - **indicators/**: Indicator development and usage - **strategies/**: Strategy development and patterns ## Document Format Documents should be in Markdown format with: - Clear headings for chunking - Optional YAML frontmatter for tags - Code examples where relevant - Cross-references to other docs ### Example with Frontmatter ```markdown --- tags: [trading, risk-management, position-sizing] --- # Risk Management Content here... ``` ## How It Works 1. At gateway startup, the DocumentLoader scans this directory 2. Each markdown file is chunked by headers (max ~1000 tokens per chunk) 3. Chunks are embedded using the configured embedding service 4. Embeddings are stored in Qdrant with user_id="0" (global namespace) 5. Content hash tracking enables incremental updates ## Updating Documents ### During Development - Edit markdown files - Restart gateway or call reload endpoint: `POST /admin/reload-knowledge` ### In Production - Update markdown files in git - Deploy new version - Gateway will detect changes and update vectors automatically ## RAG Integration When users query the agent: 1. Their query is embedded 2. Qdrant searches both global (user_id="0") and user-specific vectors 3. Relevant chunks from these docs are included in context 4. LLM generates response with platform knowledge ## Adding New Documents 1. Create markdown file in appropriate subdirectory 2. Use clear section headers (##, ###) for automatic chunking 3. Include practical examples and code samples 4. Add tags in frontmatter if using complex categorization 5. Restart gateway or reload knowledge ## Best Practices - **Keep chunks focused**: Each section should cover one topic - **Use examples**: Code samples and practical examples help - **Link concepts**: Reference other docs for deeper dives - **Update regularly**: Keep knowledge current with platform changes - **Test queries**: Verify RAG retrieves relevant chunks ## Maintenance The DocumentLoader tracks: - Content hashes for change detection - Number of chunks per document - Last update timestamps Check logs for load statistics: ``` Knowledge documents loaded: { loaded: 5, updated: 2, skipped: 3 } ``` Monitor Qdrant collection stats: ``` GET /health { "qdrantVectors": 1234, "qdrantIndexed": 1234 } ```