<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: RagLeap</title>
    <description>The latest articles on DEV Community by RagLeap (@ragleap).</description>
    <link>https://dev.to/ragleap</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3859689%2F0fd789b1-b595-4861-8fb7-75c41f06a1ff.png</url>
      <title>DEV Community: RagLeap</title>
      <link>https://dev.to/ragleap</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ragleap"/>
    <language>en</language>
    <item>
      <title>I Made My AI Manager Work Across Telegram, WhatsApp, Web, and Phone Call — With Shared Memory</title>
      <dc:creator>RagLeap</dc:creator>
      <pubDate>Sat, 11 Apr 2026 13:49:58 +0000</pubDate>
      <link>https://dev.to/ragleap/i-made-my-ai-manager-work-across-telegram-whatsapp-web-and-phone-call-with-shared-memory-4668</link>
      <guid>https://dev.to/ragleap/i-made-my-ai-manager-work-across-telegram-whatsapp-web-and-phone-call-with-shared-memory-4668</guid>
      <description>&lt;p&gt;The hardest part of building RagLeap wasn't the RAG pipeline or the voice integration. It was making the owner's AI Manager feel like ONE continuous brain across four completely different channels.&lt;br&gt;
Here's how I solved it.&lt;br&gt;
The problem&lt;br&gt;
An owner starts a conversation on Telegram: "Connect my PostgreSQL database."&lt;br&gt;
Then the next day they call the Twilio number and say: "What automations did you suggest for my database?"&lt;br&gt;
The voice call should remember the Telegram conversation. They're the same person. One memory.&lt;br&gt;
The solution: ManagerConversation&lt;br&gt;
pythonclass ManagerConversation(models.Model):&lt;br&gt;
    workspace = models.OneToOneField(Workspace, ...)&lt;br&gt;
    user = models.ForeignKey(User, ...)&lt;br&gt;
    # Persistent memory across ALL platforms&lt;/p&gt;

&lt;p&gt;class ManagerMemory:&lt;br&gt;
    def add_action(self, action, platform, result, params):&lt;br&gt;
        # Stores what was done and on which platform&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def add_knowledge(self, fact, source, confidence, tags):
    # Stores facts learned about the business

def search_actions(self, action_type=None, limit=20):
    # Retrieve relevant past actions for context
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Every action the Manager takes — configuring WhatsApp, connecting a database, sending an email — gets stored with platform context. The next conversation starts with this memory loaded.&lt;br&gt;
Platform routing&lt;br&gt;
python# Telegram handler&lt;br&gt;
@csrf_exempt&lt;br&gt;
def telegram_personal_bot_webhook(request):&lt;br&gt;
    message = extract_telegram_message(request)&lt;br&gt;
    response = process_manager_message(&lt;br&gt;
        workspace=workspace,&lt;br&gt;
        message=message,&lt;br&gt;
        platform='telegram',&lt;br&gt;
        memory=load_manager_memory(workspace)&lt;br&gt;
    )&lt;br&gt;
    send_telegram_reply(response)&lt;/p&gt;

&lt;h1&gt;
  
  
  Voice handler
&lt;/h1&gt;

&lt;p&gt;def owner_voice_inbound(request):&lt;br&gt;
    speech = request.POST.get('SpeechResult')&lt;br&gt;
    response = process_manager_message(&lt;br&gt;
        workspace=workspace,&lt;br&gt;
        message=speech,&lt;br&gt;
        platform='voice',&lt;br&gt;
        memory=load_manager_memory(workspace)  # Same memory!&lt;br&gt;
    )&lt;br&gt;
    return twiml_say(response)&lt;br&gt;
Same process_manager_message. Same memory. Different input/output format.&lt;br&gt;
The system prompt&lt;br&gt;
The Manager AI has a ~7,500 token system prompt that includes:&lt;/p&gt;

&lt;p&gt;Current workspace status (documents, channels, credits)&lt;br&gt;
Recent actions from memory&lt;br&gt;
Known facts about the business&lt;br&gt;
Full list of 50+ executable actions&lt;/p&gt;

&lt;p&gt;This makes every conversation context-aware without any manual session management.&lt;br&gt;
What this enables&lt;br&gt;
Owner on Telegram: "Set up order status checker on WhatsApp"&lt;br&gt;
→ Manager connects DB, generates SQL, deploys to WhatsApp&lt;br&gt;
Next day, owner calls:&lt;br&gt;
→ "Did my WhatsApp automation get deployed?"&lt;br&gt;
→ Manager: "Yes, I deployed order status checker to WhatsApp yesterday at 2:34 PM. 12 customers have used it."&lt;br&gt;
One brain. Four channels.&lt;br&gt;
ragleap.com&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99kszqr0tohluxrffm4a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99kszqr0tohluxrffm4a.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>architecture</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How I Built a Multilingual AI Call Center on a 4GB VPS Using Django, Neo4j, and Twilio</title>
      <dc:creator>RagLeap</dc:creator>
      <pubDate>Sat, 11 Apr 2026 13:45:32 +0000</pubDate>
      <link>https://dev.to/ragleap/how-i-built-a-multilingual-ai-call-center-on-a-4gb-vps-using-django-neo4j-and-twilio-81j</link>
      <guid>https://dev.to/ragleap/how-i-built-a-multilingual-ai-call-center-on-a-4gb-vps-using-django-neo4j-and-twilio-81j</guid>
      <description>&lt;p&gt;I spent 18 months building RagLeap. Here's the full technical breakdown of how I got a production RAG system with voice, WhatsApp, and Telegram running on a $8/month VPS.&lt;br&gt;
The stack&lt;br&gt;
Backend:     Django 4.2 + DRF&lt;br&gt;
Vector DB:   pgvector (PostgreSQL)&lt;br&gt;
Graph DB:    Neo4j (included on all plans, even free)&lt;br&gt;
Queue:       Celery + Redis&lt;br&gt;
Voice:       Twilio + ElevenLabs TTS&lt;br&gt;
Messaging:   Twilio WhatsApp, Telegram Bot API, Discord&lt;br&gt;
AI:          Any provider (OpenAI, Gemini, Anthropic, Mistral, private)&lt;br&gt;
Server:      4GB RAM VPS (Ubuntu 24)&lt;br&gt;
The RAG architecture&lt;br&gt;
Standard vector search gets you ~78% retrieval accuracy. That's not good enough for business-critical answers.&lt;br&gt;
I combined pgvector with Neo4j knowledge graphs for hybrid retrieval:&lt;br&gt;
python# Hybrid retrieval: vector (75%) + graph (25%)&lt;br&gt;
result = hybrid_retrieval.search(&lt;br&gt;
    query=user_question,&lt;br&gt;
    workspace_id=workspace_id,&lt;br&gt;
    vector_weight=0.75,&lt;br&gt;
    graph_weight=0.25&lt;br&gt;
)&lt;br&gt;
The graph stores entity relationships extracted from documents. When a customer asks "What's included in the Pro plan?", the graph knows that Pro → includes → Feature X → requires → Setup Y. Vector search alone misses these hops.&lt;br&gt;
Result: 94.3% retrieval accuracy.&lt;br&gt;
The multilingual pipeline&lt;br&gt;
No hardcoded translations. Every response is generated by the LLM in the target language:&lt;br&gt;
pythonrag_result = orchestrator.execute_rag(&lt;br&gt;
    query=user_message,&lt;br&gt;
    language=detected_language,       # auto-detected from message&lt;br&gt;
    response_language=workspace_language,  # forced by workspace settings&lt;br&gt;
    custom_api_key=owner_api_key,     # owner's own key&lt;br&gt;
)&lt;br&gt;
The workspace owner sets their language. All customer responses come in that language regardless of what language the customer writes in.&lt;br&gt;
The voice routing&lt;br&gt;
One Twilio number serves two completely different AI experiences:&lt;br&gt;
pythondef twilio_voice_incoming(request):&lt;br&gt;
    caller = request.POST.get('From')&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Check if caller is verified owner
owner_plan = UserPlan.objects.filter(
    user=workspace.owner,
    mobile_verified=True
).first()

if owner_plan and normalize(caller) == normalize(owner_plan.mobile_number):
    # Route to Manager AI (private mode)
    return redirect_to_manager_ai(workspace)
else:
    # Route to customer RAG bot (public mode)
    return customer_rag_response(workspace)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The Manager AI&lt;br&gt;
The owner's AI Manager has 50+ executive actions registered:&lt;br&gt;
pythonACTION_HANDLERS = {&lt;br&gt;
    'check_owner_emails_now': check_owner_emails_now_action,&lt;br&gt;
    'create_report': create_report,&lt;br&gt;
    'query_external_database': query_external_database,&lt;br&gt;
    'setup_ai_call_center': setup_ai_call_center,&lt;br&gt;
    'analyse_database_for_automation': analyse_database_for_automation,&lt;br&gt;
    # ... 45 more actions&lt;br&gt;
}&lt;br&gt;
When the owner sends "How many orders today?" on Telegram, the system parses the intent, executes the database query, and returns a formatted answer — all in the owner's language.&lt;br&gt;
Performance on 4GB RAM&lt;br&gt;
Neo4j:          ~800MB&lt;br&gt;
PostgreSQL:     ~400MB&lt;br&gt;&lt;br&gt;
Redis:          ~200MB&lt;br&gt;
Gunicorn:       ~600MB&lt;br&gt;
Celery workers: ~400MB&lt;br&gt;
Total:          ~2.4GB (leaves headroom)&lt;br&gt;
The whole system runs on a $8/month Contabo VPS.&lt;br&gt;
Full docs: docs.ragleap.com&lt;br&gt;
Try it: ragleap.com (7-day free trial, bring your own API key)&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdorzi3t779ketg737cww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdorzi3t779ketg737cww.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>django</category>
      <category>ai</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>How We Built an AI Agent to Automate Business Workflows</title>
      <dc:creator>RagLeap</dc:creator>
      <pubDate>Fri, 10 Apr 2026 16:14:17 +0000</pubDate>
      <link>https://dev.to/ragleap/how-we-built-an-ai-agent-to-automate-business-workflows-3558</link>
      <guid>https://dev.to/ragleap/how-we-built-an-ai-agent-to-automate-business-workflows-3558</guid>
      <description>&lt;h2&gt;
  
  
  How We Built an AI Agent to Automate Business Workflows
&lt;/h2&gt;

&lt;p&gt;Most businesses still rely on manual workflows to manage sales, customer interactions, and operations.&lt;/p&gt;

&lt;p&gt;As developers, we kept asking:&lt;br&gt;
What if AI could handle these repetitive tasks?&lt;/p&gt;

&lt;p&gt;That’s what led us to start building Ragleap — an AI-powered platform designed to automate business workflows using intelligent agents.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Idea
&lt;/h2&gt;

&lt;p&gt;The goal was simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduce manual effort
&lt;/li&gt;
&lt;li&gt;Automate repetitive business tasks
&lt;/li&gt;
&lt;li&gt;Make AI useful for real-world operations
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of building just another chatbot, we focused on creating an AI agent that can &lt;strong&gt;take actions&lt;/strong&gt;, not just respond.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;We used a flexible and scalable stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Django
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; PostgreSQL / MySQL
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Integration:&lt;/strong&gt; Multi-model API support (LLMs)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation Layer:&lt;/strong&gt; Custom workflow engine
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea was to keep the system modular so it can integrate with different APIs and services.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;At a high level, the system follows this flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User provides input (task or request)
&lt;/li&gt;
&lt;li&gt;AI processes the intent
&lt;/li&gt;
&lt;li&gt;System maps it to an action
&lt;/li&gt;
&lt;li&gt;Workflow gets executed automatically
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Example Use Cases
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Automating sales workflows
&lt;/li&gt;
&lt;li&gt;Managing customer interactions
&lt;/li&gt;
&lt;li&gt;Triggering business processes based on events
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of requiring manual setup, we are working toward an AI-assisted setup experience.&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenges We Faced
&lt;/h2&gt;

&lt;p&gt;Building AI agents that actually &lt;em&gt;do things&lt;/em&gt; (not just chat) comes with challenges:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. API Integration
&lt;/h3&gt;

&lt;p&gt;Handling multiple external services and making them work reliably together.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Context Understanding
&lt;/h3&gt;

&lt;p&gt;Ensuring the AI understands business intent correctly.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Workflow Execution
&lt;/h3&gt;

&lt;p&gt;Mapping AI decisions to real-world actions without breaking the system.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Scalability
&lt;/h3&gt;

&lt;p&gt;Designing the system to handle multiple users and workflows efficiently.&lt;/p&gt;




&lt;h2&gt;
  
  
  What We Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI is powerful, but execution is the hard part
&lt;/li&gt;
&lt;li&gt;Real-world automation requires reliability, not just intelligence
&lt;/li&gt;
&lt;li&gt;Simplicity in UX is more important than adding features
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;We’re continuing to improve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI decision-making
&lt;/li&gt;
&lt;li&gt;Workflow automation
&lt;/li&gt;
&lt;li&gt;Integration capabilities
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;We’re building this at &lt;a href="https://ragleap.com" rel="noopener noreferrer"&gt;https://ragleap.com&lt;/a&gt; — would love feedback from the developer community 🙌&lt;/p&gt;

</description>
      <category>ai</category>
      <category>saas</category>
      <category>webdev</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
