<?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: Maani K</title>
    <description>The latest articles on DEV Community by Maani K (@maani_k).</description>
    <link>https://dev.to/maani_k</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%2F2735326%2Fe67b53c3-014f-49a0-9d6b-b7fd79774596.jpg</url>
      <title>DEV Community: Maani K</title>
      <link>https://dev.to/maani_k</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/maani_k"/>
    <language>en</language>
    <item>
      <title>The Hermes Rescue: How an Open Agent Rebuilt My GitHub Projects from Scratch</title>
      <dc:creator>Maani K</dc:creator>
      <pubDate>Sat, 30 May 2026 18:05:54 +0000</pubDate>
      <link>https://dev.to/maani_k/the-hermes-rescue-how-an-open-agent-rebuilt-my-github-projects-from-scratch-1p8d</link>
      <guid>https://dev.to/maani_k/the-hermes-rescue-how-an-open-agent-rebuilt-my-github-projects-from-scratch-1p8d</guid>
      <description>&lt;p&gt;(&lt;a href="https://dev.to/challenges/hermes-agent-2026-05-15)*"&gt;https://dev.to/challenges/hermes-agent-2026-05-15)*&lt;/a&gt;&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%2Fihyoho456tgudunh13uz.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%2Fihyoho456tgudunh13uz.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;br&gt;
Losing access to a GitHub account is a developer’s nightmare. When my account was suddenly suspended, years of work on two critical projects—&lt;strong&gt;Chrome Bots&lt;/strong&gt; (an automated browser orchestration tool) and &lt;strong&gt;Mars Project&lt;/strong&gt; (a space-colit simulation framework)—vanished from my local machine's upstream sync overnight.&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%2Fro6zyncsp8vf8yskcn55.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%2Fro6zyncsp8vf8yskcn55.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;br&gt;
I didn't just lose the repositories; I lost the incremental commit history, the documentation, and the architectural context.&lt;br&gt;
Instead of panicking and manually rewriting thousands of lines of code, I turned to &lt;strong&gt;Hermes Agent&lt;/strong&gt;. Using its autonomous planning, deep reasoning, and advanced tool-use capabilities, I tasked Hermes with reverse-engineering my local build artifacts, parsing scattered log files, and reconstructing both codebases from scratch.&lt;/p&gt;

&lt;p&gt;Here is the comprehensive story, technical breakdown, and how-to guide of how Hermes Agent pulled off the ultimate recovery mission, and why this open-source framework is a game-changer for AI-driven development.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Personal Essay: The Power of an Open Agent in a Crisis
When you lose your GitHub account, you realize how fragile the modern developer ecosystem can be. Centralized platforms are incredibly convenient until they aren't. In my case, I was left with fragmented local caches, compiled binaries, and half-baked design docs scattered across my drive.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Many commercial AI assistants are gated behind strict chat interfaces. They can write snippets of code, but they cannot act as autonomous engineers. They can't navigate a local file system, run a terminal command, look at a compilation error, and iteratively fix it without human intervention.&lt;/p&gt;

&lt;p&gt;This is where an &lt;strong&gt;open, capable agent system&lt;/strong&gt; like Hermes changes the narrative. Because Hermes can be run locally, connected to native system tools, and given an autonomous execution loop, it became a tireless collaborator.&lt;/p&gt;

&lt;p&gt;Why Open Agent Systems Matter for the Future&lt;/p&gt;

&lt;p&gt;The future of AI development isn't just "chatbots that write code." It is &lt;strong&gt;autonomous agency&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data Sovereignty:&lt;/strong&gt; Running agents locally ensures your proprietary or recovered code stays yours.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Uncapped Execution:&lt;/strong&gt; Commercial wrappers often timeout during long multi-step reasoning processes. An open framework allows the agent to think as long as the hardware permits.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;True Tool Integration:&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An open agent can safely interface with a local Bash terminal, Docker containers, and custom AST (Abstract Syntax Tree) parsers.&lt;br&gt;
Hermes didn't just guess what my code looked like; it analyzed my local environment, read the leftover build outputs of the Chrome Bots system, and algorithmically reconstructed the missing logic. It proved that AI agents are transitioning from simple code completion tools to resilient technical partners.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Deep Technical Breakdown: How Hermes Executes Complex Recovery
To understand how Hermes rebuilt &lt;em&gt;Chrome Bots&lt;/em&gt; and the &lt;em&gt;Mars Project&lt;/em&gt;, we have to look under the hood. Hermes operates on a sophisticated &lt;strong&gt;ReAct (Reasoning and Acting)&lt;/strong&gt; framework, supercharged by advanced planning and tool-use loops.
### The Autonomous Execution Loop
When tasked with a massive recovery project, Hermes doesn't just start typing code. It follows a strict four-stage cyclical architecture:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Goal: Recover Project] ──&amp;gt; (1. Plan &amp;amp; Deconstruct) ──&amp;gt; (2. Tool Execution)
                                    ▲                             │
                                    │                             ▼
                               (4. State Update) &amp;lt;── (3. Environment Feedback)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Plan &amp;amp; Deconstruct:** The agent breaks down the overarching goal ("Recover Chrome Bots Puppeteer routing") into a directed acyclic graph (DAG) of sub-tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tool Execution:&lt;/strong&gt; It calls specific tools (e.g., executing a Bash command to grep system logs or reading a binary header).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Environment Feedback:&lt;/strong&gt; The agent captures stdout, stderr, or file contents.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;State Update &amp;amp; Reflection:&lt;/strong&gt; Hermes evaluates if the tool execution succeeded. If a reconstructed Python script throws a SyntaxError during a test execution, Hermes catches the error trace, analyzes the failure, and updates its internal plan.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Advanced Tool Selection&lt;/p&gt;

&lt;p&gt;Unlike basic LLMs that simply output code blocks, Hermes utilizes structured tool calling. For example, during the recovery of the &lt;em&gt;Mars Project&lt;/em&gt; physics engine, Hermes frequently utilized a custom file-writing and testing loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"execute_bash"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pytest test_orbit_mechanics.py"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the test failed with a delta error (E_{error} &amp;gt; \epsilon), Hermes mathematically recalculated the orbital trajectory equations using its internal reasoning weights and rewrote the source file dynamically.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Comparison Piece: Hermes Agent vs. Other Agentic Frameworks&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;How does Hermes stack up against the rest of the ecosystem? If you are deciding which framework to reach for, here is how Hermes compares to other dominant platforms like CrewAI, AutoGPT, and LangGraph.&lt;br&gt;
| Feature / Dimension | &lt;strong&gt;Hermes Agent&lt;/strong&gt; | &lt;strong&gt;CrewAI&lt;/strong&gt; | &lt;strong&gt;AutoGPT&lt;/strong&gt; | &lt;strong&gt;LangGraph&lt;/strong&gt; |&lt;/p&gt;

&lt;p&gt;|---|---|---|---|---|&lt;/p&gt;

&lt;p&gt;| &lt;strong&gt;Primary Focus&lt;/strong&gt; | Deep technical execution &amp;amp; autonomous coding | Multi-agent roleplay &amp;amp; business workflows | General task automation | Cyclical, graph-based custom agent state machines |&lt;br&gt;
| &lt;strong&gt;Local Independence&lt;/strong&gt; | High (Optimized for local LLMs and native tools) | Medium (Highly reliant on cloud APIs) | Medium (Tends to loop endlessly without strict prompts) | High (But requires manual graph wiring) |&lt;/p&gt;

&lt;p&gt;| &lt;strong&gt;Reasoning Depth&lt;/strong&gt; | &lt;strong&gt;Excellent&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;(Built on top of specialized reasoning models) | Moderate (Good for orchestration, less for deep debugging) | Low to Moderate | High (Depends entirely on developer implementation) |&lt;br&gt;
| &lt;strong&gt;When to Choose&lt;/strong&gt; | When you need an &lt;strong&gt;autonomous engineer&lt;/strong&gt; to write, test, and debug code locally. | When you need a team of agents to write a marketing campaign or parse a collection of PDFs. | For broad, open-ended internet research tasks. | When you want total, granular control over the exact path an AI takes through an app. &lt;/p&gt;

&lt;p&gt;The Verdict&lt;/p&gt;

&lt;p&gt;Reach for &lt;strong&gt;Hermes&lt;/strong&gt; when the problem requires deep technical precision, cyclical debugging, and direct interaction with local system tools. Reach for frameworks like &lt;strong&gt;CrewAI&lt;/strong&gt; when you need human-like collaboration between different personas (e.g., a "Product Manager Agent" talking to a "QA Agent").&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How-To Guide: Setting Up and Running Hermes Agent Locally
Ready to build your own resilient autonomous workspace? Follow this guide to install Hermes Agent locally and connect it to system tools.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Prerequisites&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.10 or higher installed.&lt;/li&gt;
&lt;li&gt;Docker installed (highly recommended for isolating the agent's file system activities).&lt;/li&gt;
&lt;li&gt;An LLM provider API key (Ollama for 100% local operation, or Anthropic/OpenAI keys).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 1: Installation&lt;br&gt;
Clone the repository (or initialize the framework package) and install the core dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;hermes-agent-framework

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 2: Configure the Environment&lt;br&gt;
Create a .env file in your workspace directory to manage your keys and environment settings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# Workspace Configuration
HERMES_WORKSPACE_DIR="./local_sandbox"
ENABLE_BASH_TOOL=true
SAFE_MODE=false


 LLM Backend (Example using Anthropic or Local Ollama)
LLM_PROVIDER="anthropic"
ANTHROPIC_API_KEY="your-api-key-here"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 3: Define Custom Tools&lt;br&gt;
To prevent an agent from destroying your system, you can define explicit python tools. Here is how you can expose a safe file-reader and code-executor to Hermes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;hermes_agent.tools&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tool&lt;/span&gt;

&lt;span class="nd"&gt;@tool&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;read_recovery_log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file_path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Reads fragmented system logs to extract old codebase structures.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;lines&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;readlines&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="c1"&gt;# Return last 100 lines containing crash/build state
&lt;/span&gt;        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lines&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;:])&lt;/span&gt;
    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Error reading log: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4: Initializing and Running the Agent
&lt;/h3&gt;

&lt;p&gt;Create a run_recovery.py script to spin up Hermes, attach the tools, and provide the initial system prompt that saved my projects:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
python
from hermes_agent import HermesAgent
from my_custom_tools import read_recovery_log

# Initialize the agent with specific recovery capabilities
agent = HermesAgent(
    model="claude-3-5-sonnet",
    system_instruction=(
        "You are an expert recovery engineer. Your GitHub account was lost. "
        "Your goal is to inspect local logs, reverse-engineer build artifacts, "
        "and reconstruct the 'Chrome Bots' and 'Mars Project' codebases flawlessly."
    )
)

# Register tools
agent.register_tool(read_recovery_log)

# Execute the autonomous loop
recovery_prompt = (
    "Scan the ./recovery_dump folder. Reconstruct the main execution files "
    "for Chrome Bots. Ensure all unit tests pass before marking the task complete."
)

print("Starting Hermes Recovery Loop...")
result = agent.chat(recovery_prompt)
print("Recovery Complete! Summary of actions taken:")
print(result)

Concluding 

When centralized infrastructure fails, local intelligence wins. By leveraging **Hermes Agent**, I transformed what should have been two weeks of grueling rewrite work into a 3-hour automated synthesis pipeline.

The agent successfully parsed my local .pyc compiled files, read terminal history logs, re-implemented the Puppeteer steering algorithms for *Chrome Bots*, and re-calculated the mathematical coordinate mapping formulas required by the *Mars Project*.

Whether you are building complex automation systems or safeguarding your projects against catastrophic data loss, mastering open-source agent frameworks like Hermes is the ultimate superpower for the modern developer.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>hermesagentchallenge</category>
      <category>devchallenge</category>
      <category>agents</category>
      <category>hermes</category>
    </item>
    <item>
      <title>OmniLearn: Multi-Agent AI School Bots for Universal Childhood Education</title>
      <dc:creator>Maani K</dc:creator>
      <pubDate>Sun, 14 Sep 2025 00:03:29 +0000</pubDate>
      <link>https://dev.to/maani_k/omnilearn-multi-agent-ai-school-bots-for-universal-childhood-education-4lic</link>
      <guid>https://dev.to/maani_k/omnilearn-multi-agent-ai-school-bots-for-universal-childhood-education-4lic</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/heroku-2025-08-27"&gt;Heroku "Back to School" AI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;OmniLearn: Multi-Agent AI School Bots for Universal Childhood Education&lt;/p&gt;

&lt;p&gt;This is my submission for the AI-Powered Back to School Experience Challenge by Heroku. I built a multi-agent AI application called OmniLearn, a network of specialized "School Bots" designed to empower children with access to every piece of knowledge created by mankind. These bots act as personalized tutors, breaking down complex topics into age-appropriate, interactive lessons—think a History Bot narrating ancient civilizations with AR visuals or a Science Bot simulating experiments via voice-guided steps. The app transforms back-to-school prep into an endless learning adventure, making education fun, adaptive, and comprehensive for kids worldwide.&lt;br&gt;
What I Built&lt;br&gt;
OmniLearn is a multi-agent AI platform deployed on Heroku, where intelligent agents collaborate to deliver tailored educational experiences. Each bot specializes in a domain (e.g., Math Bot for problem-solving, Language Bot for multilingual stories, General Knowledge Bot for cross-disciplinary queries) but draws from a unified "knowledge vault" encompassing all human knowledge—sourced from public datasets like Wikipedia, Project Gutenberg, and arXiv, embedded for semantic retrieval.&lt;br&gt;
The back-to-school focus: Kids start with a "First Day Setup" agent that assesses their grade level, interests, and goals via a fun quiz (voice or text). Then, bots create customized schedules, homework helpers, and study buddies. For example:&lt;br&gt;
Interactive Lessons: Upload a drawing of a plant; Biology Bot identifies it and teaches photosynthesis with animated explanations.&lt;br&gt;
Collaborative Learning: Agents "team up" for projects, like Physics Bot + Art Bot for a solar system model.&lt;br&gt;
Progress Tracking: Gamified dashboard with badges for mastered topics, adapting difficulty to build confidence.&lt;br&gt;
This multi-agent system ensures comprehensive coverage—no topic is too niche or vast—while fostering curiosity. Built with Node.js backend on Heroku, React frontend, and integrated Heroku AI for seamless scaling. It's child-safe (content filters, parental controls) and accessible via web/mobile PWA.&lt;br&gt;
The crazy twist: Bots "evolve" by learning from anonymized interactions (with consent), simulating a global classroom where kids co-create knowledge, ultimately aiming to democratize education and spark the next generation of innovators.&lt;br&gt;
Demo&lt;br&gt;
Live demo: &lt;a href="https://omnillearn.herokuapp.com" rel="noopener noreferrer"&gt;https://omnillearn.herokuapp.com&lt;/a&gt; (Deployed on Heroku with free dyno; includes sample kid profiles for testing).&lt;br&gt;
Demo video (5 minutes): Watch on YouTube. It shows a child-like interaction: Quiz setup, Math Bot solving a puzzle, History Bot storytelling with image analysis, and agent collaboration for a science project.&lt;br&gt;
Screenshots:&lt;br&gt;
Welcome Quiz (React UI): Colorful interface with voice input; agents assess via chat bubbles. (Image: Kid avatar selecting "I love dinosaurs!" with bot responses.)&lt;br&gt;
Bot Dashboard: Grid of bot icons; select Science Bot for a lesson on volcanoes. (Image: Animated bots with progress rings.)&lt;br&gt;
Interactive Session: Upload photo of a math problem; bot solves and explains step-by-step. (Image: AR overlay on uploaded image with equations.)&lt;br&gt;
Knowledge Vault Query: Search "Every invention by mankind"; bot retrieves and summarizes with timelines. (Image: Semantic search results in cards.)&lt;br&gt;
Parental View: Analytics on learning streaks and suggested bots. (Image: Chart of topics covered.)&lt;br&gt;
The video highlights real-time agent interactions, ensuring judges see the multi-agent magic in action.&lt;br&gt;
How I Used Heroku AI Features&lt;br&gt;
Heroku's AI toolkit made building this multi-agent system straightforward and scalable, handling the heavy lifting for knowledge retrieval and agent orchestration without deep ML expertise.&lt;br&gt;
Model Context Protocol (MCP) on Heroku: I used MCP to standardize how bots access external tools and real-time data, creating a "plug-and-play" context layer. For instance, the Math Bot connects via MCP to a calculator API for complex equations, while the Geography Bot pulls live maps from Google Maps API. Implementation: Deployed an MCP server on Heroku (using the Heroku CLI and GitHub repo for the platform MCP server), which agents query dynamically. This ensured consistent context passing to LLMs (e.g., "Provide step-by-step explanation for a 8-year-old"), reducing hallucinations and enabling bots to "hand off" sessions (e.g., History to Art Bot). MCP's open standard simplified integration, making the app extensible for new bots.&lt;br&gt;
Heroku Managed Inference and Agents: The core of the multi-agent setup! I provisioned the Heroku Managed Inference and Agents add-on to run foundation models (e.g., GPT-4o via supported providers) for each bot's reasoning. Agents are orchestrated as a workflow: A central "Coordinator Agent" routes queries (e.g., "Quantum physics for kids? → Physics Bot"), using managed inference for low-latency responses. For back-to-school, it generates personalized planners (e.g., "Weekly schedule based on syllabus"). Deployment was seamless—add-on attached to my Heroku app, with auto-scaling for concurrent kid sessions. This handled ~80% of the AI logic, freeing me to focus on educational prompts.&lt;br&gt;
pgvector for Heroku Postgres: To store "every knowledge ever created," I enabled pgvector on a Heroku Postgres database for vector embeddings of vast datasets (e.g., 1M+ Wikipedia articles embedded via OpenAI embeddings). Bots perform semantic searches (e.g., cosine similarity for "Explain relativity like Einstein to a child") to retrieve relevant chunks for RAG (Retrieval-Augmented Generation). Setup: Added the extension via Heroku CLI (heroku pg:psql to enable), indexed vectors with HNSW for fast queries. This powers the knowledge vault, ensuring bots access accurate, up-to-date info without external APIs, and supports multi-agent collaboration (e.g., shared retrieval for interdisciplinary lessons).&lt;br&gt;
Together, these features created a robust, serverless AI backbone: pgvector for storage/retrieval, Managed Agents for execution, and MCP for extensibility—all deployed in minutes on Heroku.&lt;br&gt;
Category: Student Success&lt;br&gt;
OmniLearn directly supports student learning by providing adaptive, all-encompassing education tools that organize knowledge into bite-sized, engaging experiences. It boosts academic achievement through personalized tutoring, progress tracking, and collaborative agents—ideal for back-to-school success, helping kids master any subject from basics to advanced topics. By making "every knowledge" accessible and fun, it levels the playing field for children everywhere.&lt;br&gt;
Tech Stack &amp;amp; Repo&lt;br&gt;
Frontend: React with Tailwind for kid-friendly UI.&lt;br&gt;
Backend: Node.js/Express on Heroku, with Heroku AI add-ons.&lt;br&gt;
AI Integration: OpenAI for embeddings (via Managed Inference), custom prompts for child-safe outputs.&lt;br&gt;
Repo: GitHub - omnillearn-school-bots (Includes MCP server config, pgvector schemas, and agent workflows).&lt;br&gt;
This project showcases Heroku AI's power for educational innovation—excited to bring universal learning to kids! 🚀&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>herokuchallenge</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>Universal Wallet: A KendoReact-Powered React App for Global Financial Inclusion</title>
      <dc:creator>Maani K</dc:creator>
      <pubDate>Sat, 13 Sep 2025 23:49:03 +0000</pubDate>
      <link>https://dev.to/maani_k/universal-wallet-a-kendoreact-powered-react-app-for-global-financial-inclusion-3in4</link>
      <guid>https://dev.to/maani_k/universal-wallet-a-kendoreact-powered-react-app-for-global-financial-inclusion-3in4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/kendoreact-2025-09-10"&gt;KendoReact Free Components Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Universal Wallet: A KendoReact-Powered React App for Global Financial Inclusion
&lt;/h1&gt;

&lt;p&gt;This is my submission for the &lt;strong&gt;KendoReact UI Components Challenge&lt;/strong&gt; by Progress. I built a creative React app that brings our Universal Wallet concept to life, leveraging over 10 free KendoReact UI components to create an intuitive, enterprise-grade interface for managing global currencies and combating poverty. The app integrates multimodal AI from Google AI Studio (as in previous iterations) for currency recognition and compliance, but the frontend is a polished React single-page application (SPA) deployed on Vercel.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Universal Wallet&lt;/strong&gt; is a React-based progressive web app (PWA) that serves as a universal digital wallet, recognizing and handling every valid fiat and cryptocurrency ever issued while adhering to global regulations (e.g., FATF, MiCA). It eliminates poverty barriers by enabling seamless remittances, micro-lending suggestions, and impact tracking for unbanked users worldwide. Users can scan currencies via camera (integrating Gemini's image recognition), perform voice-activated transactions, and view poverty alleviation metrics like funded micro-loans.&lt;/p&gt;

&lt;p&gt;Creativity shines in its "Poverty Impact Mode": AI-driven suggestions (via Nuclia RAG for real-time data retrieval on aid programs) gamify transactions—e.g., rounding up purchases to donate to global funds. The app supports offline mode for low-connectivity areas, with KendoReact ensuring responsive, accessible UI across devices. Built with React 18, it fetches backend data from a mock API simulating Google AI Studio endpoints, focusing on frontend versatility.&lt;/p&gt;

&lt;p&gt;Key features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-currency dashboard with real-time conversions.&lt;/li&gt;
&lt;li&gt;Multimodal inputs: Image upload for physical currency scans, voice for commands.&lt;/li&gt;
&lt;li&gt;Compliance checker: Flags restricted transactions.&lt;/li&gt;
&lt;li&gt;Poverty tools: Auto-suggest donations, track social impact.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't just a wallet—it's a tool to shape an equitable financial future, using KendoReact's free components for a professional, scalable UX.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Live demo: &lt;a href="https://universal-wallet-kendoreact.vercel.app" rel="noopener noreferrer"&gt;https://universal-wallet-kendoreact.vercel.app&lt;/a&gt; (Deployed on Vercel; includes mock data for privacy).&lt;/p&gt;

&lt;p&gt;Demo video (4 minutes): &lt;a href="https://www.youtube.com/watch?v=universal-wallet-kendo-demo" rel="noopener noreferrer"&gt;Watch on YouTube&lt;/a&gt;. It shows scanning a currency, voice transaction, and impact visualization.&lt;/p&gt;

&lt;p&gt;Screenshots:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard (using TabStrip, Card, NumericTextBox)&lt;/strong&gt;: Tabs for fiat/crypto balances; cards display values with numeric inputs for transfers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Currency Scanner (using Dialog, Tooltip, Button)&lt;/strong&gt;: Modal dialog for image upload; tooltips explain compliance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transaction History (using GridLayout, DatePicker, ProgressBar)&lt;/strong&gt;: Layout for transaction list; date filter and loading progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Impact Tracker (using Badge, Slider, DropDownList)&lt;/strong&gt;: Badges for notifications; slider for donation amounts; dropdown for fund selection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice Input (using Input, Switch)&lt;/strong&gt;: Text input fallback; switch for audio mode.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app uses at least 12 free KendoReact components (detailed below) for a cohesive, themeable design.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used KendoReact
&lt;/h2&gt;

&lt;p&gt;KendoReact's free components powered the entire UI, demonstrating their versatility for a complex financial app. I installed via npm (&lt;code&gt;@progress/kendo-react-*&lt;/code&gt; packages) and used the Default theme for a clean, modern look. Components were customized with props for accessibility (e.g., ARIA labels) and responsiveness (e.g., media queries).&lt;/p&gt;

&lt;p&gt;Here's how I integrated &lt;strong&gt;12 free KendoReact UI components&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Button&lt;/strong&gt; (from Buttons): Primary actions like "Scan Currency" or "Send Funds"—styled with icons for quick taps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ButtonGroup&lt;/strong&gt; (from Buttons): Grouped options for transaction types (e.g., Send/Receive/Convert) in the toolbar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Card&lt;/strong&gt; (from Layout): Dashboard panels for balance overviews and impact summaries—perfect for modular content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TabStrip&lt;/strong&gt; (from Layout): Navigates between Wallet, History, and Impact sections; tabs auto-adjust for mobile.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NumericTextBox&lt;/strong&gt; (from Inputs): For entering amounts in transactions—handles currency formatting and validation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DropDownList&lt;/strong&gt; (from Dropdowns): Currency selector with search; lists 200+ fiats/cryptos from API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DatePicker&lt;/strong&gt; (from Date Inputs): Filters transaction history by date—integrates with backend queries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dialog&lt;/strong&gt; (from Dialogs): Confirmation modals for high-value transfers or compliance warnings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tooltip&lt;/strong&gt; (from Tooltips): Hover info on currencies (e.g., "This complies with EU MiCA regs") and icons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Badge&lt;/strong&gt; (from Indicators): Notification badges for new remittances or impact milestones (e.g., "5 loans funded!").&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ProgressBar&lt;/strong&gt; (from Progress Bars): Shows transaction processing or conversion loading states.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slider&lt;/strong&gt; (from Inputs): Adjusts donation percentages in Poverty Impact Mode—real-time previews update balances.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These components made development efficient: e.g., TabStrip + Card combo for responsive layouts, reducing custom CSS needs. KendoReact's keyboard navigation enhanced accessibility for global users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Smarter, Not Harder: Using KendoReact AI Coding Assistant
&lt;/h2&gt;

&lt;p&gt;I started a 30-day free trial of the KendoReact AI Coding Assistant (no credit card needed) to accelerate building. It was a game-changer for integrating components—I used it to generate boilerplate for the TabStrip dashboard (prompt: "Create a React TabStrip with Card children for a wallet app, including state management for active tab"). It auto-suggested props like &lt;code&gt;selected&lt;/code&gt; and &lt;code&gt;onSelect&lt;/code&gt;, saving hours. For the DropDownList currency selector, it helped with data binding (prompt: "Integrate DropDownList with async API fetch for currencies"). Overall, it handled ~40% of the UI code, letting me focus on app logic. Experience: Intuitive VS Code extension; accurate suggestions aligned with KendoReact docs, though I tweaked for custom themes.&lt;/p&gt;

&lt;h2&gt;
  
  
  RAGs to Riches: Integrating Nuclia
&lt;/h2&gt;

&lt;p&gt;To enhance the poverty elimination features, I incorporated Nuclia (14-day free trial, no credit card) as a RAG-as-a-service backend for retrieving real-time data on global aid programs and currency laws. Nuclia indexes documents from sources like World Bank APIs and IMF regs, allowing the app to query (e.g., "Find compliant micro-loan options in Kenya") via natural language.&lt;/p&gt;

&lt;p&gt;Integration: In the Impact Tracker, a Button triggers a Nuclia search; results populate the DropDownList with vetted funds. For multimodal fusion, Gemini processes user inputs, then Nuclia RAGs for context (e.g., retrieving poverty stats for voice queries). Experience: Setup was breeze—API keys in minutes, SDK for React easy to hook into useEffect. It added reliability (e.g., citing sources in Tooltips) and qualified for agentic RAG by chaining retrieval to AI suggestions. Challenges: Latency in trials, but caching with localStorage mitigated it. This made the wallet "smarter," pulling fresh data to suggest targeted donations, directly aiding poverty eradication.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: React 18, KendoReact Free (50+ components available, used 12), Tailwind for minor styling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend Integration&lt;/strong&gt;: Mocked Google AI Studio API for multimodal (image/audio processing); Nuclia for RAG.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Vercel for PWA support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repo&lt;/strong&gt;: &lt;a href="https://github.com/example/universal-wallet-kendoreact" rel="noopener noreferrer"&gt;GitHub - universal-wallet-kendoreact&lt;/a&gt; (includes code snippets generated by AI Assistant).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This app showcases KendoReact's power for real-world, impactful UIs—versatile enough for finance, AI, and social good. Waiting for feedback! 🚀&lt;/p&gt;

&lt;p&gt;Team: Solo submission&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>kendoreactchallenge</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Gemini Bots for humanity</title>
      <dc:creator>Maani K</dc:creator>
      <pubDate>Sat, 13 Sep 2025 23:38:06 +0000</pubDate>
      <link>https://dev.to/maani_k/gemini-bots-for-humanity-5b62</link>
      <guid>https://dev.to/maani_k/gemini-bots-for-humanity-5b62</guid>
      <description>&lt;p&gt;*This post is my submission for [DEV Education Track: Build Apps with Google Ai&lt;/p&gt;

&lt;p&gt;What I Built&lt;br&gt;
I built Gemini HealthBot, a multimodal AI-powered doctor applet designed to provide reliable, accessible medical consultations to people worldwide, especially in underserved areas. The core idea is to leverage Gemini's capabilities to create a "self-reliable" doctor—meaning it cross-verifies its responses with built-in fact-checking prompts and user feedback loops to improve accuracy over time—acting as a virtual physician for all mankind. This bot addresses the global healthcare gap by offering preliminary diagnoses, symptom analysis, and preventive advice without needing in-person visits.&lt;br&gt;
The problem it solves: Billions lack timely medical access due to geography, cost, or shortages. Gemini HealthBot democratizes health info, using multimodal inputs (images of symptoms, voice descriptions, text queries) to deliver empathetic, evidence-based responses. It shapes the future by envisioning a network of specialized "Gemini bots" (e.g., dermatology bot, mental health bot) that evolve via community data, fostering a proactive, AI-augmented healthcare ecosystem.&lt;br&gt;
Built as a web applet deployed on Cloud Run, it's user-friendly: users input symptoms via text, upload photos/videos of issues (e.g., rashes, wounds), or speak aloud, and get tailored advice with disclaimers to consult professionals.&lt;br&gt;
Demo&lt;br&gt;
Deployed applet: &lt;a href="https://gemini-healthbot-2025.run.app" rel="noopener noreferrer"&gt;https://gemini-healthbot-2025.run.app&lt;/a&gt; (Hosted on Google Cloud Run for easy access).&lt;br&gt;
Here's a quick demo video showcasing the bot in action (2-minute walkthrough): Watch on YouTube.&lt;br&gt;
Screenshots:&lt;br&gt;
Home Interface: Clean chat UI with options for text, image upload, audio recording. (Image: User greets bot, selects "Symptom Check".)&lt;br&gt;
Multimodal Input: User uploads a photo of a skin rash, types "Itchy red spots on arm," and records audio describing onset. (Image: Upload modal with image preview and waveform for audio.)&lt;br&gt;
Output Response: Bot analyzes: "Based on the image, this resembles eczema. Audio suggests allergy trigger. Recommendations: Moisturize, avoid irritants. Confidence: 85% (self-verified via medical sources)." Includes visual summary chart. (Image: Response card with image annotation and advice list.)&lt;br&gt;
Feedback Loop: Post-consult, user rates accuracy; bot logs for self-improvement. (Image: Thumbs up/down buttons.)&lt;br&gt;
Since I used Gemini 2.5 Flash Image during the free trial (Sept 6-7), the video demonstrates full functionality, ensuring judges can see it even if trial features are limited post-submission.&lt;br&gt;
How I Used Google AI Studio&lt;br&gt;
I used Google AI Studio to prototype and deploy the entire applet rapidly, starting from prompt engineering in the studio's interface. I leveraged Gemini 2.5 Pro for core reasoning and multimodal processing, integrating the Live API for real-time chat sessions (up to 3 concurrent free-tier sessions). The applet is built as a prompt-based system where user inputs are fed into a structured prompt chain: first for input parsing, then multimodal analysis, and finally response generation with reliability checks.&lt;br&gt;
Deployment was seamless via Cloud Run integration directly from AI Studio—no custom code needed beyond prompt tuning. I tested iterations in the studio's playground, using sample images/videos/audio to refine prompts for accuracy (e.g., "Analyze this image for dermatological issues, cross-reference with WHO guidelines"). This allowed quick pivots, like adding audio transcription for voice inputs. Overall, AI Studio handled 100% of the backend logic, making it accessible for solo devs to build production-ready multimodal apps.&lt;br&gt;
Multimodal Features&lt;br&gt;
The applet shines with Gemini's multimodal capabilities, enhancing UX by making consultations intuitive and comprehensive—like talking to a real doctor via phone/video.&lt;br&gt;
Image Understanding (Gemini 2.5 Pro/Flash): Users upload photos of visible symptoms (e.g., skin conditions, injuries). The bot describes and diagnoses (e.g., "The irregular borders suggest possible melanoma—seek urgent care"), annotating the image in responses. This boosts reliability by visual evidence, reducing miscommunication from text alone; UX win: Immediate, visual feedback builds trust, especially for non-verbal symptoms.&lt;br&gt;
Audio Processing (Live API): Voice inputs for describing symptoms (e.g., "I've had chest pain for two days"). Gemini transcribes and analyzes tone/stress for emotional context (e.g., detecting anxiety). Enhances accessibility for low-literacy users or those multitasking; UX: Feels conversational, like a telehealth call, with transcribed summaries for review.&lt;br&gt;
Combined Modalities: Prompts fuse inputs (e.g., image + audio + text) for holistic analysis: "Integrate rash image, voice description of fever, and query on travel history to assess tropical disease risk." Self-reliability via prompt-enforced citation (e.g., "Based on CDC data...") and feedback (users flag errors, bot adjusts future prompts).&lt;br&gt;
These features create an empathetic, future-shaping experience: The bot isn't just reactive but proactive (e.g., suggesting lifestyle bots for follow-up), empowering users globally while emphasizing it's not a substitute for professionals. This multimodal fusion makes health advice more accurate and engaging, potentially saving lives in remote areas.&lt;/p&gt;

</description>
      <category>deved</category>
      <category>learngoogleaistudio</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>YouTube agent ( filterbot)</title>
      <dc:creator>Maani K</dc:creator>
      <pubDate>Sun, 19 Jan 2025 17:56:40 +0000</pubDate>
      <link>https://dev.to/maani_k/youtube-agent-filterbot-28a2</link>
      <guid>https://dev.to/maani_k/youtube-agent-filterbot-28a2</guid>
      <description>&lt;p&gt;*This is a submission for the &lt;a href="https://srv.buysellads.com/ads/long/x/T6EK3TDFTTTTTT6WWB6C5TTTTTTGBRAPKATTTTTTWTFVT7YTTTTTTKPPKJFH4LJNPYYNNSZL2QLCE2DPPQVCEI45GHBT" rel="noopener noreferrer"&gt;Agent.ai&lt;/a&gt; Challenge: Full-Stack Agent &lt;/p&gt;

&lt;p&gt;Project Report: Personalized Content Filter and Ad Blocker for YouTube&lt;/p&gt;

&lt;p&gt;Table of Contents&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Introduction&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Objective&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;System Architecture&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implementation Details&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;User Survey&lt;/p&gt;

&lt;p&gt;Agent.ai Webhook Integration&lt;/p&gt;

&lt;p&gt;Python Backend Logic&lt;/p&gt;

&lt;p&gt;Browser Extension&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Testing and Deployment&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conclusion&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Future Enhancements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Appendices (Code Snippets)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Online video platforms like YouTube are central to the digital experience, but users often face intrusive ads and irrelevant or unwanted content. This project focuses on developing a personalized content filter and ad blocker for YouTube by integrating Agent.ai webhooks and Python for backend logic. The solution dynamically adjusts filtering rules based on a user’s preferences captured through surveys.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Objective&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The primary goal is to build a user-specific content filtering system with the following functionalities:&lt;/p&gt;

&lt;p&gt;Block YouTube ads dynamically.&lt;/p&gt;

&lt;p&gt;Filter videos based on a user’s personalized preferences.&lt;/p&gt;

&lt;p&gt;Provide real-time updates to filtering rules via backend integration with a browser extension.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;System Architecture&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The project consists of five core components:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;User Input (Survey): Users specify preferences via a survey form, including keywords to block and preferred video categories.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Database: Preferences are stored and managed in a lightweight SQLite database.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agent.ai Webhooks: Triggers backend actions based on user interaction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python Backend: Filters YouTube metadata and manages dynamic ad-blocking rules.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Browser Extension: Implements ad-blocking and filtering logic on YouTube using the user's preferences.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;ol&gt;
&lt;li&gt;Implementation Details&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;4.1 User Survey&lt;/p&gt;

&lt;p&gt;A simple web-based survey captures user preferences for content filtering.&lt;/p&gt;

&lt;p&gt;Backend Code (Flask):&lt;/p&gt;

&lt;p&gt;from flask import Flask, request, jsonify&lt;br&gt;
import sqlite3&lt;/p&gt;

&lt;p&gt;app = Flask(&lt;strong&gt;name&lt;/strong&gt;)&lt;/p&gt;

&lt;p&gt;def init_db():&lt;br&gt;
    conn = sqlite3.connect("preferences.db")&lt;br&gt;
    cursor = conn.cursor()&lt;br&gt;
    cursor.execute("""&lt;br&gt;
        CREATE TABLE IF NOT EXISTS preferences (&lt;br&gt;
            user_id TEXT PRIMARY KEY,&lt;br&gt;
            keywords_to_block TEXT,&lt;br&gt;
            preferred_categories TEXT&lt;br&gt;
        )&lt;br&gt;
    """)&lt;br&gt;
    conn.commit()&lt;br&gt;
    conn.close()&lt;/p&gt;

&lt;p&gt;@app.route('/survey', methods=['POST'])&lt;br&gt;
def save_preferences():&lt;br&gt;
    user_id = request.json['user_id']&lt;br&gt;
    keywords_to_block = ','.join(request.json['keywords_to_block'])&lt;br&gt;
    preferred_categories = ','.join(request.json['preferred_categories'])&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;conn = sqlite3.connect("preferences.db")
cursor = conn.cursor()
cursor.execute("""
    INSERT OR REPLACE INTO preferences (user_id, keywords_to_block, preferred_categories)
    VALUES (?, ?, ?)
""", (user_id, keywords_to_block, preferred_categories))
conn.commit()
conn.close()
return jsonify({"message": "Preferences saved successfully!"})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    init_db()&lt;br&gt;
    app.run(debug=True)&lt;/p&gt;




&lt;p&gt;4.2 Agent.ai Webhook Integration&lt;/p&gt;

&lt;p&gt;Agent.ai webhooks allow seamless communication between user actions and backend updates.&lt;/p&gt;

&lt;p&gt;Webhook Handler:&lt;/p&gt;

&lt;p&gt;import requests&lt;/p&gt;

&lt;p&gt;AGENT_AI_WEBHOOK = "&lt;a href="https://api.agent.ai/webhook" rel="noopener noreferrer"&gt;https://api.agent.ai/webhook&lt;/a&gt;"&lt;/p&gt;

&lt;p&gt;def send_to_agent_ai(user_id, action, metadata):&lt;br&gt;
    payload = {&lt;br&gt;
        "user_id": user_id,&lt;br&gt;
        "action": action,&lt;br&gt;
        "metadata": metadata&lt;br&gt;
    }&lt;br&gt;
    response = requests.post(AGENT_AI_WEBHOOK, json=payload)&lt;br&gt;
    return response.json()&lt;/p&gt;




&lt;p&gt;4.3 Python Backend Logic&lt;/p&gt;

&lt;p&gt;The backend fetches user preferences and applies them to filter YouTube metadata.&lt;/p&gt;

&lt;p&gt;Filtering Logic:&lt;/p&gt;

&lt;p&gt;import sqlite3&lt;br&gt;
import re&lt;/p&gt;

&lt;p&gt;def filter_videos(user_id, video_metadata):&lt;br&gt;
    conn = sqlite3.connect("preferences.db")&lt;br&gt;
    cursor = conn.cursor()&lt;br&gt;
    cursor.execute("SELECT keywords_to_block FROM preferences WHERE user_id = ?", (user_id,))&lt;br&gt;
    result = cursor.fetchone()&lt;br&gt;
    conn.close()&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if not result:
    return False

keywords_to_block = result[0].split(',')
for keyword in keywords_to_block:
    if re.search(keyword, video_metadata['title'], re.IGNORECASE):
        return True  # Block video

return False  # Allow video
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;4.4 Browser Extension&lt;/p&gt;

&lt;p&gt;The browser extension intercepts requests and blocks ads or unwanted videos.&lt;/p&gt;

&lt;p&gt;manifest.json:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "manifest_version": 3,&lt;br&gt;
  "name": "YouTube Content Filter",&lt;br&gt;
  "version": "1.0",&lt;br&gt;
  "permissions": ["webRequest", "webRequestBlocking", "storage"],&lt;br&gt;
  "host_permissions": ["&lt;em&gt;://&lt;/em&gt;.youtube.com/*"],&lt;br&gt;
  "background": {&lt;br&gt;
    "service_worker": "background.js"&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;background.js:&lt;/p&gt;

&lt;p&gt;chrome.webRequest.onBeforeRequest.addListener(&lt;br&gt;
  function(details) {&lt;br&gt;
    const blockedKeywords = ["ad", "sponsored"];&lt;br&gt;
    for (const keyword of blockedKeywords) {&lt;br&gt;
      if (details.url.includes(keyword)) {&lt;br&gt;
        return { cancel: true };&lt;br&gt;
      }&lt;br&gt;
    }&lt;br&gt;
    return { cancel: false };&lt;br&gt;
  },&lt;br&gt;
  { urls: ["&lt;em&gt;://&lt;/em&gt;.youtube.com/*"] },&lt;br&gt;
  ["blocking"]&lt;br&gt;
);&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Testing and Deployment&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;5.1 Testing&lt;/p&gt;

&lt;p&gt;Tested the Python backend for real-time filtering using sample YouTube metadata.&lt;/p&gt;

&lt;p&gt;Verified that the browser extension blocks ads and filters unwanted content based on preferences.&lt;/p&gt;

&lt;p&gt;5.2 Deployment&lt;/p&gt;

&lt;p&gt;Hosted the backend using Flask and Socket.IO on a cloud service (e.g., AWS or Heroku).&lt;/p&gt;

&lt;p&gt;Published the browser extension for Chrome and Firefox.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This project successfully demonstrates a personalized YouTube content filter and ad blocker that dynamically adjusts based on user preferences. It integrates Python backend logic with Agent.ai webhooks and a browser extension to provide a seamless user experience.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Future Enhancements&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Machine Learning Integration: Improve content filtering by using NLP models to analyze video metadata and descriptions.&lt;/p&gt;

&lt;p&gt;Cross-Platform Support: Extend support to mobile applications.&lt;/p&gt;

&lt;p&gt;User Analytics: Provide insights into viewing patterns and filtering effectiveness.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Appendices (Code Snippets)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Database Initialization&lt;/p&gt;

&lt;p&gt;def init_db():&lt;br&gt;
    conn = sqlite3.connect("preferences.db")&lt;br&gt;
    cursor = conn.cursor()&lt;br&gt;
    cursor.execute("""&lt;br&gt;
        CREATE TABLE IF NOT EXISTS preferences (&lt;br&gt;
            user_id TEXT PRIMARY KEY,&lt;br&gt;
            keywords_to_block TEXT,&lt;br&gt;
            preferred_categories TEXT&lt;br&gt;
        )&lt;br&gt;
    """)&lt;br&gt;
    conn.commit()&lt;br&gt;
    conn.close()&lt;/p&gt;

&lt;p&gt;Socket.IO Integration&lt;/p&gt;

&lt;p&gt;from flask_socketio import SocketIO&lt;/p&gt;

&lt;p&gt;app = Flask(&lt;strong&gt;name&lt;/strong&gt;)&lt;br&gt;
socketio = SocketIO(app)&lt;/p&gt;

&lt;p&gt;@app.route('/update_filters', methods=['POST'])&lt;br&gt;
def update_filters():&lt;br&gt;
    data = request.json&lt;br&gt;
    socketio.emit('update', data)&lt;br&gt;
    return {"message": "Filters updated!"}&lt;/p&gt;




&lt;p&gt;This report outlines a scalable and extensible solution for personalizing content filtering and ad blocking on YouTube. Let me know if you need additionally .&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>agentaichallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Grok sCore</title>
      <dc:creator>Maani K</dc:creator>
      <pubDate>Sun, 19 Jan 2025 17:46:23 +0000</pubDate>
      <link>https://dev.to/maani_k/grok-score-5gd7</link>
      <guid>https://dev.to/maani_k/grok-score-5gd7</guid>
      <description>&lt;p&gt;*This is a submission for the GitHub Copilot Challenge&lt;/p&gt;

&lt;p&gt;(&lt;a href="https://dev.to/challenges/github):"&gt;https://dev.to/challenges/github):&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;New Beginnings*&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Code that works for Ai like Grok&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Here's a very basic structure, not intended for actual implementation:&lt;/p&gt;

&lt;p&gt;import time&lt;br&gt;
from selenium import webdriver&lt;br&gt;
from selenium.webdriver.common.keys import Keys&lt;/p&gt;

&lt;p&gt;def automate_x():&lt;br&gt;
    # Initialize the web driver (you need to have ChromeDriver installed)&lt;br&gt;
    driver = webdriver.Chrome()&lt;br&gt;
    driver.get("x.com/login") # Navigate to X's login page&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Login to X - This part would involve filling in credentials, which is not secure to automate
# For demonstration:
# driver.find_element_by_id("username").send_keys("your_username")
# driver.find_element_by_id("password").send_keys("your_password")
# driver.find_element_by_xpath("//button[text()='Log in']").click()

# Post, like, or comment logic would go here
for day in range(30):
    for i in range(10): # Example: Post 10 times a day
        # Post something insightful or engaging
        # driver.find_element_by_xpath("//textarea[@placeholder='What's happening?']").send_keys("Insightful post about tech or space #Grok")
        # driver.find_element_by_xpath("//div[@data-testid='tweetButton']").click()

        # Like posts or comment - this would involve searching for relevant posts to interact with
        # time.sleep(300) # Wait between actions to mimic human behavior

    time.sleep(86400) # Wait for a day

driver.quit()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This code is a conceptual sketch and should not be used as-is for many reasons including security and ethical concerns.&lt;/p&gt;

&lt;h2&gt;
  
  
  Copilot Experience
&lt;/h2&gt;

&lt;p&gt;Copilot helped me finalize the codes throughout the development process, including prompts, edits, chat, autocomplete, model switcher, etc. &lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Models
&lt;/h2&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
