Semantic search and Q&A over workspace files using Telnyx Storage + AI embeddings. Index your memory, knowledge, and skills for natural language retrieval and AI-powered answers.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Semantic search and Q&A over workspace files using Telnyx Storage + AI embeddings. Index your memory, knowledge, and skills for natural language retrieval and AI-powered answers.
Use a consistent naming scheme so anyone can adopt this:
openclaw-{agent-id}
Agent
Bucket
Chief (main)
openclaw-main
Bob the Builder
openclaw-builder
Voice agent
openclaw-voice
Your agent
openclaw-{your-id}
Why?
Predictable: anyone can find any agent's bucket
Collision-free: scoped to agent, not person or team
Discoverable: prefix groups all agent buckets in Telnyx Storage UI
openclaw-*
Quick Start
cd ~/skills/telnyx-rag
# Set YOUR Telnyx API key (each user/agent uses their own)echo'TELNYX_API_KEY=KEY...' > .env# Run setup with validation
./setup.sh --check # Validate requirements first
./setup.sh # Full setup (uses bucket from config.json)# Search your memory
./search.py "What are my preferences?"# Ask questions (full RAG pipeline)
./ask.py "What is the porting process?"
What It Does
Indexes your workspace files (MEMORY.md, memory/*.md, knowledge/, skills/)
Chunks large files intelligently (markdown by headers, JSON/Slack by threads)
Embeds content automatically using Telnyx AI
Searches using natural language queries with retry logic
Answers questions using a full RAG pipeline (retrieve → rerank → generate)
Prioritizes results from memory/ (your primary context)
Incremental sync — only uploads changed files
Orphan cleanup — removes deleted files from bucket
Setup Options
Option 1: Environment Variable
export TELNYX_API_KEY="KEY..."
./setup.sh
Option 2: .env File
echo'TELNYX_API_KEY=KEY...' > .env
./setup.sh
Validation Mode
./setup.sh --check # Validate requirements without making changes
Custom Bucket Name
./setup.sh my-custom-bucket
Usage
Ask Questions (RAG Pipeline)
# Basic question answering
./ask.py "What is Telnyx's porting process?"# Show retrieved context alongside answer
./ask.py "How do I deploy?" --context
# Use a different model
./ask.py "Explain voice setup" --model meta-llama/Meta-Llama-3.1-8B-Instruct
# More/fewer context chunks
./ask.py "meeting decisions" --num 12
# JSON output for scripting
./ask.py "API usage limits" --json
# Search a different bucket
./ask.py "project timeline" --bucket work-memory
Search Memory
# Basic search with improved error handling
./search.py "What are David's communication preferences?"# Search specific bucket
./search.py "meeting notes" --bucket my-other-bucket
# More results with timeout control
./search.py "procedures" --num 10 --timeout 45
# JSON output (for scripts)
./search.py "procedures" --json
Sync Files (with Chunking)
# Incremental sync with auto-chunking
./sync.py
# Override chunk size (tokens)
./sync.py --chunk-size 600
# Quiet mode for cron jobs
./sync.py --quiet
# Remove orphaned files (including stale chunks)
./sync.py --prune
# Sync + trigger embedding
./sync.py --embed
# Check status
./sync.py --status
# List indexed files (shows chunks too)
./sync.py --list
Watch Mode
# Watch for changes and auto-sync with chunking
./sync.py --watch
Trigger Embedding
# Trigger embedding for current bucket
./embed.sh
# OR
./sync.py --embed
# Check embedding status
./sync.py --embed-status <task_id>
Why is this needed? Uploading files to Telnyx Storage doesn't automatically generate embeddings. The embedding process converts your files into searchable vectors. Without this step, search.py and ask.py won't return results.