<?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: Tanya Garg</title>
    <description>The latest articles on DEV Community by Tanya Garg (@tanya_garg_5315).</description>
    <link>https://dev.to/tanya_garg_5315</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3807037%2Ff0fa8cce-c510-456a-9caa-df96093588e4.jpg</url>
      <title>DEV Community: Tanya Garg</title>
      <link>https://dev.to/tanya_garg_5315</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tanya_garg_5315"/>
    <language>en</language>
    <item>
      <title>VaultLog: Building a Persistent Key-Value Store with Zero Dependencies</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Wed, 02 Sep 2026 11:38:34 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/vaultlog-building-a-persistent-key-value-store-with-zero-dependencies-j69</link>
      <guid>https://dev.to/tanya_garg_5315/vaultlog-building-a-persistent-key-value-store-with-zero-dependencies-j69</guid>
      <description>&lt;p&gt;What if you had to build a useful storage engine without installing a single third-party package?&lt;/p&gt;

&lt;p&gt;That was the challenge behind &lt;strong&gt;VaultLog&lt;/strong&gt;, my submission for the &lt;strong&gt;Zero Dependency 72-Hour Hackathon&lt;/strong&gt; by Hackathon Raptors.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Use only the standard library. No third-party runtime dependencies.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;At first, this sounds like a restriction on what you can import.&lt;/p&gt;

&lt;p&gt;In practice, it changes how you think about software.&lt;/p&gt;

&lt;p&gt;Instead of asking &lt;em&gt;"Which package should I use?"&lt;/em&gt;, you start asking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What is actually happening underneath that package?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question became the foundation of VaultLog.&lt;/p&gt;

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

&lt;p&gt;VaultLog is a &lt;strong&gt;persistent embedded key-value store written entirely in Go 1.27&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It supports the fundamental operations you would expect from a small key-value database:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set a value&lt;/li&gt;
&lt;li&gt;Get a value&lt;/li&gt;
&lt;li&gt;Delete a value&lt;/li&gt;
&lt;li&gt;List stored keys&lt;/li&gt;
&lt;li&gt;Inspect storage statistics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important part is that VaultLog doesn't wrap an existing database engine.&lt;/p&gt;

&lt;p&gt;There is no SQLite driver.&lt;/p&gt;

&lt;p&gt;There is no BadgerDB.&lt;/p&gt;

&lt;p&gt;There is no BoltDB.&lt;/p&gt;

&lt;p&gt;There is no external storage library.&lt;/p&gt;

&lt;p&gt;The storage layer itself is implemented in the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Build a Storage Engine?
&lt;/h2&gt;

&lt;p&gt;For most applications, using an existing database is obviously the right decision.&lt;/p&gt;

&lt;p&gt;If I were building a normal production application, I wouldn't recommend writing a database from scratch just because I could.&lt;/p&gt;

&lt;p&gt;But the Zero Dependency Hackathon created a different engineering question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How much of a practical storage system can be built using only the language's standard library?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That made a key-value store a particularly interesting problem.&lt;/p&gt;

&lt;p&gt;A database package normally hides a lot of complexity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How records are persisted&lt;/li&gt;
&lt;li&gt;How data is indexed&lt;/li&gt;
&lt;li&gt;How writes are represented&lt;/li&gt;
&lt;li&gt;How deleted records are handled&lt;/li&gt;
&lt;li&gt;How data is recovered after restart&lt;/li&gt;
&lt;li&gt;How corrupted data is detected&lt;/li&gt;
&lt;li&gt;How concurrent access is synchronized&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;VaultLog makes those layers explicit.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;

&lt;p&gt;The core architecture is intentionally simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 VaultLog
                    │
          ┌─────────┴─────────┐
          │                   │
   In-Memory Index       Append-Only Log
          │                   │
          │                   ▼
          │             Persistent File
          │
          ▼
     Fast Lookups
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system has two important components:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Append-Only Log
&lt;/h3&gt;

&lt;p&gt;Every write is represented as a record and appended to the storage file.&lt;/p&gt;

&lt;p&gt;Instead of modifying existing records in place, VaultLog keeps adding new records.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SET user:name Tanya
SET user:role Developer
DELETE user:role
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The log becomes the historical sequence of operations.&lt;/p&gt;

&lt;p&gt;This approach makes persistence straightforward and gives us a natural source from which the database can reconstruct its state.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. In-Memory Index
&lt;/h3&gt;

&lt;p&gt;Scanning the entire file every time someone asks for a value would be inefficient.&lt;/p&gt;

&lt;p&gt;So VaultLog maintains an in-memory index.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Key                Record Location
-----------------------------------
user:name          → offset 0x120
user:role          → deleted
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The index allows VaultLog to locate the latest record associated with a key without scanning the entire log.&lt;/p&gt;

&lt;p&gt;This provides &lt;strong&gt;average O(1) hash-map lookup&lt;/strong&gt; for key access, while persistence remains on disk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing Data
&lt;/h2&gt;

&lt;p&gt;A &lt;code&gt;Set&lt;/code&gt; operation follows a simple process:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Set(key, value)
      │
      ▼
  Encode Record
      │
      ▼
Append Record to Log
      │
      ▼
Update In-Memory Index
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important design decision is that the persistent log is updated before the in-memory state becomes authoritative.&lt;/p&gt;

&lt;p&gt;This gives the log a durable representation of the operation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deleting Data
&lt;/h2&gt;

&lt;p&gt;Deletes are interesting in an append-only system.&lt;/p&gt;

&lt;p&gt;We don't physically remove the old record from the file.&lt;/p&gt;

&lt;p&gt;Instead, VaultLog writes a delete record.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SET username → Tanya
DELETE username
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;During recovery, the replay engine sees both operations and knows that the latest operation means the key no longer exists.&lt;/p&gt;

&lt;p&gt;This is one of the trade-offs of append-only storage:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deletes are cheap, but the log grows over time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A future version could introduce log compaction to remove obsolete records.&lt;/p&gt;

&lt;h2&gt;
  
  
  Restart Recovery
&lt;/h2&gt;

&lt;p&gt;Persistence isn't particularly useful if the database forgets its state after restarting.&lt;/p&gt;

&lt;p&gt;VaultLog therefore reconstructs its in-memory index from the storage log.&lt;/p&gt;

&lt;p&gt;The recovery process looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
  Persistent Log
      │
      ▼
Read Records Sequentially
      │
      ▼
   Validate Record
      │
      ▼
  Replay Operation
      │
      ▼
  Rebuild Index
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Suppose the log contains:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SET name Tanya
SET role Developer
DELETE role
SET city Meerut
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After replaying these records, the reconstructed state becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name → Tanya
city → Meerut
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The deleted key doesn't return because its latest operation was a deletion.&lt;/p&gt;

&lt;p&gt;This means the in-memory index doesn't need to be persisted separately.&lt;/p&gt;

&lt;p&gt;The log is enough to rebuild it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Integrity
&lt;/h2&gt;

&lt;p&gt;Persistent storage introduces another problem:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do we know that a record hasn't been corrupted?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;VaultLog uses the Go standard library's:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hash/crc32
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A checksum is stored alongside record data.&lt;/p&gt;

&lt;p&gt;During recovery, the checksum can be calculated again and compared with the stored value.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Record
  │
  ├── Header
  ├── Key
  ├── Value
  └── Checksum
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the calculated checksum doesn't match the stored checksum, the record cannot be trusted.&lt;/p&gt;

&lt;p&gt;This gives the storage layer a basic integrity mechanism without importing an external package.&lt;/p&gt;

&lt;h2&gt;
  
  
  Concurrency
&lt;/h2&gt;

&lt;p&gt;Another feature normally handled by database libraries is concurrent access.&lt;/p&gt;

&lt;p&gt;VaultLog uses Go's standard synchronization primitives from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sync
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The storage engine protects shared state so that multiple operations don't modify the in-memory index unsafely.&lt;/p&gt;

&lt;p&gt;Again, no external concurrency framework was necessary.&lt;/p&gt;

&lt;p&gt;Go already provides the building blocks.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Packages I Would Normally Use
&lt;/h2&gt;

&lt;p&gt;This is where the challenge became interesting.&lt;/p&gt;

&lt;p&gt;In a normal project, I might reach for external packages for several pieces of functionality.&lt;/p&gt;

&lt;p&gt;Instead, VaultLog uses standard-library alternatives.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Normally Used&lt;/th&gt;
&lt;th&gt;VaultLog Uses&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Database package&lt;/td&gt;
&lt;td&gt;Custom append-only storage engine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;testify&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;testing&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;logrus&lt;/code&gt; / &lt;code&gt;zap&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;log&lt;/code&gt; / &lt;code&gt;log/slog&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External binary encoding library&lt;/td&gt;
&lt;td&gt;&lt;code&gt;encoding/binary&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External hashing utility&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hash/crc32&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External filesystem utilities&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;os&lt;/code&gt; / &lt;code&gt;io&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External path utilities&lt;/td&gt;
&lt;td&gt;&lt;code&gt;path/filepath&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External CLI parser&lt;/td&gt;
&lt;td&gt;&lt;code&gt;flag&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The biggest replacement wasn't a small utility.&lt;/p&gt;

&lt;p&gt;It was the &lt;strong&gt;database layer itself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of importing a storage engine, VaultLog implements one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hardest Part
&lt;/h2&gt;

&lt;p&gt;The hardest part wasn't writing &lt;code&gt;Put()&lt;/code&gt; or &lt;code&gt;Get()&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Those operations are relatively straightforward.&lt;/p&gt;

&lt;p&gt;The difficult part was defining what should happen when things go wrong.&lt;/p&gt;

&lt;p&gt;Questions appeared everywhere:&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens after a restart?
&lt;/h3&gt;

&lt;p&gt;The index has to be reconstructed from the log.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens if a record is invalid?
&lt;/h3&gt;

&lt;p&gt;The recovery process needs to detect it instead of silently producing incorrect state.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens when a key is deleted?
&lt;/h3&gt;

&lt;p&gt;The delete needs to become part of the persistent history.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens with concurrent access?
&lt;/h3&gt;

&lt;p&gt;The in-memory index and file operations need appropriate synchronization.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens as the log gets larger?
&lt;/h3&gt;

&lt;p&gt;Append-only storage naturally creates a need for compaction.&lt;/p&gt;

&lt;p&gt;These are the kinds of problems that existing database libraries normally solve for you.&lt;/p&gt;

&lt;p&gt;Building VaultLog made those hidden engineering decisions visible.&lt;/p&gt;

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

&lt;p&gt;The biggest lesson from this hackathon wasn't simply that you can build software without dependencies.&lt;/p&gt;

&lt;p&gt;It was understanding &lt;strong&gt;why those dependencies exist in the first place&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A package like a database library isn't magic.&lt;/p&gt;

&lt;p&gt;Underneath the API are decisions about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Storage layout&lt;/li&gt;
&lt;li&gt;Indexing&lt;/li&gt;
&lt;li&gt;Serialization&lt;/li&gt;
&lt;li&gt;Durability&lt;/li&gt;
&lt;li&gt;Recovery&lt;/li&gt;
&lt;li&gt;Concurrency&lt;/li&gt;
&lt;li&gt;Integrity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you remove the package, those decisions become your responsibility.&lt;/p&gt;

&lt;p&gt;That is what made the Zero Dependency constraint valuable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What VaultLog Does Not Try to Be
&lt;/h2&gt;

&lt;p&gt;VaultLog is deliberately small.&lt;/p&gt;

&lt;p&gt;It is not intended to replace:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;SQLite&lt;/li&gt;
&lt;li&gt;Distributed databases&lt;/li&gt;
&lt;li&gt;Production-scale storage systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It currently has important limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The index is held in memory.&lt;/li&gt;
&lt;li&gt;The log grows until compaction is implemented.&lt;/li&gt;
&lt;li&gt;It is designed for embedded/single-process use.&lt;/li&gt;
&lt;li&gt;There is no distributed replication.&lt;/li&gt;
&lt;li&gt;There is no SQL query engine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't hidden.&lt;/p&gt;

&lt;p&gt;Understanding the limitations is part of understanding the design.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Zero Dependencies?
&lt;/h2&gt;

&lt;p&gt;Zero dependencies doesn't mean third-party packages are bad.&lt;/p&gt;

&lt;p&gt;Libraries save enormous amounts of engineering time and are essential for many real-world systems.&lt;/p&gt;

&lt;p&gt;The value of this challenge is different.&lt;/p&gt;

&lt;p&gt;It forces you to understand the layer underneath the abstraction.&lt;/p&gt;

&lt;p&gt;For VaultLog, that meant going from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Use a database package."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"How does a database actually store a record?"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then building that layer ourselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;VaultLog started with a constraint:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No third-party runtime dependencies.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It ended up becoming an exploration of how a small storage engine actually works.&lt;/p&gt;

&lt;p&gt;The result is a persistent key-value store with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Append-only storage&lt;/li&gt;
&lt;li&gt;In-memory indexing&lt;/li&gt;
&lt;li&gt;Restart recovery&lt;/li&gt;
&lt;li&gt;Integrity validation&lt;/li&gt;
&lt;li&gt;Concurrent access protection&lt;/li&gt;
&lt;li&gt;CLI operations&lt;/li&gt;
&lt;li&gt;Standard-library-only implementation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most interesting part wasn't removing dependencies.&lt;/p&gt;

&lt;p&gt;It was discovering &lt;strong&gt;what those dependencies were doing for us&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And that's probably the biggest takeaway from Zero Dependency:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't just use the abstraction. Understand the layer underneath it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Built With
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Go 1.27&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Standard library only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third-party runtime dependencies: 0.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; VaultLog&lt;br&gt;
&lt;strong&gt;Track:&lt;/strong&gt; Data &amp;amp; Storage&lt;/p&gt;

</description>
      <category>backend</category>
      <category>database</category>
      <category>go</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>ScholarAgent: Don’t Just Read Research. Reproduce It.</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Sun, 30 Aug 2026 18:28:49 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/scholaragent-dont-just-read-research-reproduce-it-942</link>
      <guid>https://dev.to/tanya_garg_5315/scholaragent-dont-just-read-research-reproduce-it-942</guid>
      <description>&lt;h2&gt;
  
  
  What if an AI agent could actually reproduce a research paper?
&lt;/h2&gt;

&lt;p&gt;Research papers are full of impressive results.&lt;/p&gt;

&lt;p&gt;94% accuracy.&lt;br&gt;
95% F1 score.&lt;br&gt;
30% improvement over previous methods.&lt;/p&gt;

&lt;p&gt;But there is a problem: &lt;strong&gt;reading a result is easy. Reproducing it is not.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reproducing research often means understanding dozens of pages, finding datasets, implementing algorithms, configuring dependencies, matching preprocessing steps, running experiments, debugging failures, and finally comparing your results with the original paper.&lt;/p&gt;

&lt;p&gt;We built &lt;strong&gt;ScholarAgent&lt;/strong&gt; to automate that journey.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don’t just read research. Reproduce it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  🔬 What is ScholarAgent?
&lt;/h2&gt;

&lt;p&gt;ScholarAgent is an autonomous AI research reproduction agent.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Give it a research paper, and let the agent attempt to reproduce its experiments.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of acting like a traditional PDF chatbot that answers questions about a paper, ScholarAgent actually takes action.&lt;/p&gt;

&lt;p&gt;Its workflow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Research Paper
      ↓
Methodology Extraction
      ↓
Research Subagents
      ↓
Experiment Planning
      ↓
Implementation Generation
      ↓
TrueForge Sandbox
      ↓
Experiment Execution
      ↓
Result Comparison
      ↓
Discrepancy Investigation
      ↓
  Human Approval
      ↓
Final Reproduction Report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🧠 Why we built it
&lt;/h2&gt;

&lt;p&gt;One of the biggest challenges in machine learning research is reproducibility.&lt;/p&gt;

&lt;p&gt;A paper may describe the model clearly but leave important details unclear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which preprocessing configuration was used?&lt;/li&gt;
&lt;li&gt;What random seed was selected?&lt;/li&gt;
&lt;li&gt;What exact training settings were used?&lt;/li&gt;
&lt;li&gt;Which dependency versions were used?&lt;/li&gt;
&lt;li&gt;How were edge cases handled?&lt;/li&gt;
&lt;li&gt;Why does the reported metric differ from an independently implemented version?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These small differences can produce significantly different results.&lt;/p&gt;

&lt;p&gt;We wanted to build something that doesn't simply say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Here is how you could reproduce this paper.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We wanted an agent that says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I attempted the reproduction. Here is what happened.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🤖 From Paper to Experiment
&lt;/h2&gt;

&lt;p&gt;When a paper is uploaded, ScholarAgent first extracts the experimental methodology.&lt;/p&gt;

&lt;p&gt;It identifies things such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Dataset
Model / Algorithm
Preprocessing
Hyperparameters
Training procedure
Evaluation metric
Reported results
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The main agent can then delegate parts of the analysis to specialized subagents.&lt;/p&gt;

&lt;h3&gt;
  
  
  Methodology Analyst
&lt;/h3&gt;

&lt;p&gt;Focuses on understanding the algorithm and experimental procedure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dataset Analyst
&lt;/h3&gt;

&lt;p&gt;Identifies dataset requirements, preprocessing, splits, and availability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Experiment Analyst
&lt;/h3&gt;

&lt;p&gt;Extracts hyperparameters, evaluation metrics, baselines, and reported results.&lt;/p&gt;

&lt;p&gt;These findings are combined into an executable reproduction plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 Why TrueForge Matters
&lt;/h2&gt;

&lt;p&gt;TrueForge is not just sitting underneath ScholarAgent as a backend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is where the agent actually acts.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The agent can use tools to work with project resources, generate experiment files, and execute the resulting research code inside a sandbox.&lt;/p&gt;

&lt;p&gt;The workflow becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent decides what to do
        ↓
     Tool call
        ↓
Generate / modify experiment
        ↓
   TrueForge sandbox
        ↓
    Execute code
        ↓
   Inspect output
        ↓
  Reason about result
        ↓
   Next action
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is fundamentally different from a normal chatbot.&lt;/p&gt;

&lt;p&gt;A chatbot might tell you:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Run &lt;code&gt;python train.py&lt;/code&gt;.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ScholarAgent can actually run the experiment in its controlled execution environment and inspect what happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 When the Experiment Fails
&lt;/h2&gt;

&lt;p&gt;This is where the agent becomes particularly useful.&lt;/p&gt;

&lt;p&gt;Suppose the paper reports:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Reported Accuracy: 94.2%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ScholarAgent runs the reproduction and gets:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Our Accuracy: 92.8%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of immediately declaring failure, the agent investigates.&lt;/p&gt;

&lt;p&gt;It may identify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;⚠ Random seed not specified
⚠ Preprocessing details incomplete
⚠ Training configuration differs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent can then formulate hypotheses and propose additional experiments.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I found two plausible causes for the accuracy gap. Running both configurations will require additional compute. Would you like me to continue?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And this is where &lt;strong&gt;human approval&lt;/strong&gt; becomes important.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⛔ Human in the Loop
&lt;/h2&gt;

&lt;p&gt;Autonomous does not mean uncontrolled.&lt;/p&gt;

&lt;p&gt;ScholarAgent is designed to stop before consequential or resource-intensive actions.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────────────┐
│       APPROVAL REQUIRED              │
│                                      │
│ Two alternative configurations       │
│ could explain the result gap.        │
│                                      │
│ Estimated additional computation:    │
│ 2 experiment runs                    │
│                                      │
│ [ Reject ]             [ Approve ]   │
└──────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The researcher remains in control.&lt;/p&gt;

&lt;p&gt;Once approved, the agent can continue the experiment.&lt;/p&gt;

&lt;p&gt;This creates a useful balance:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Autonomous investigation + controlled execution + human oversight.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📊 Reproduction Report
&lt;/h2&gt;

&lt;p&gt;At the end of the workflow, ScholarAgent generates a structured reproduction report.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Paper: Image Classification using XYZ

Reported Accuracy: 94.2%
Reproduced Accuracy: 92.8%

Difference: -1.4%

Reproduction Status: PARTIAL

Detected Differences:
• Dataset preprocessing differs
• Training epochs unavailable
• Random seed unspecified

Additional Experiments:
• Configuration A → 93.7%
• Configuration B → 94.0%

Conclusion:
The published result is approximately reproducible,
but the exact experimental configuration could not
be completely reconstructed from the paper.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is not to artificially produce a high score.&lt;/p&gt;

&lt;p&gt;The goal is to provide an &lt;strong&gt;honest, evidence-backed assessment&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ Architecture
&lt;/h2&gt;

&lt;p&gt;The project uses a modern agent-based architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 ┌───────────────────┐
                 │    React + Vite   │
                 │   ScholarAgent UI │
                 └─────────┬─────────┘
                           │
                           ▼
                 ┌───────────────────┐
                 │      FastAPI      │
                 │   Agent Backend   │
                 └─────────┬─────────┘
                           │
                           ▼
                 ┌───────────────────┐
                 │     TrueForge     │
                 │    Agent Runtime  │
                 └─────────┬─────────┘
                           │
             ┌─────────────┼─────────────┐
             ▼             ▼             ▼
       Methodology     Dataset       Experiment
        Analyst        Analyst         Analyst
             │             │             │
             └─────────────┼─────────────┘
                           ▼
                    ┌─────────────┐
                    │ MCP Tools   │
                    └──────┬──────┘
                           ▼
                    ┌─────────────┐
                    │  Sandbox    │
                    │ Experiments │
                    └──────┬──────┘
                           ▼
                    ┌─────────────┐
                    │   Result    │
                    │  Analyzer   │
                    └──────┬──────┘
                           ▼
                    Reproduction
                       Report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🛠️ Technology Stack
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Agent Infrastructure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;TrueForge&lt;/li&gt;
&lt;li&gt;Specialized research subagents&lt;/li&gt;
&lt;li&gt;MCP tools&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Experiment Layer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;TrueForge sandbox&lt;/li&gt;
&lt;li&gt;Python research environments&lt;/li&gt;
&lt;li&gt;Experiment logging&lt;/li&gt;
&lt;li&gt;Result comparison&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Development &amp;amp; Code Quality
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;Pull-request workflow&lt;/li&gt;
&lt;li&gt;Qodo Code Review&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔍 Qodo and Engineering Quality
&lt;/h2&gt;

&lt;p&gt;Building an autonomous agent means reliability matters.&lt;/p&gt;

&lt;p&gt;Generated code, sandbox execution, error handling, and tool orchestration can introduce subtle bugs.&lt;/p&gt;

&lt;p&gt;We therefore incorporated Qodo into our development workflow through GitHub pull requests.&lt;/p&gt;

&lt;p&gt;The workflow was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Feature Branch
      ↓
Pull Request
      ↓
Qodo Review
      ↓
Fix Valid Findings
      ↓
Follow-up Review
      ↓
Human Merge
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Qodo helped us identify issues and improve areas such as error handling, maintainability, and reliability.&lt;/p&gt;

&lt;p&gt;This was especially important because ScholarAgent isn't just displaying AI-generated text—it is generating and executing real experiment workflows.&lt;/p&gt;

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

&lt;p&gt;The biggest lesson from building ScholarAgent was that &lt;strong&gt;building an agent is very different from building a chatbot.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A chatbot mostly needs to produce a useful response.&lt;/p&gt;

&lt;p&gt;An agent needs to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Decide what action to take.&lt;/li&gt;
&lt;li&gt;Use the correct tool.&lt;/li&gt;
&lt;li&gt;Observe the result.&lt;/li&gt;
&lt;li&gt;Reason about what happened.&lt;/li&gt;
&lt;li&gt;Recover from failures.&lt;/li&gt;
&lt;li&gt;Decide what to do next.&lt;/li&gt;
&lt;li&gt;Know when it should stop.&lt;/li&gt;
&lt;li&gt;Ask a human when approval is required.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That feedback loop is where the real engineering challenge lies.&lt;/p&gt;

&lt;p&gt;We also learned that sandboxing is not an optional feature when an agent can generate and execute code.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 What's Next?
&lt;/h2&gt;

&lt;p&gt;ScholarAgent is currently focused on making research reproduction easier and more transparent.&lt;/p&gt;

&lt;p&gt;Future versions could support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More research domains&lt;/li&gt;
&lt;li&gt;Larger experiment libraries&lt;/li&gt;
&lt;li&gt;Automated dataset discovery&lt;/li&gt;
&lt;li&gt;More sophisticated statistical comparison&lt;/li&gt;
&lt;li&gt;Reproduction across different hardware environments&lt;/li&gt;
&lt;li&gt;Experiment lineage and provenance tracking&lt;/li&gt;
&lt;li&gt;Reproduction benchmarks across multiple papers&lt;/li&gt;
&lt;li&gt;Collaborative researcher workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eventually, we imagine ScholarAgent becoming a kind of &lt;strong&gt;automated research lab assistant&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Not one that blindly trusts a paper.&lt;/p&gt;

&lt;p&gt;Not one that blindly trusts its own output.&lt;/p&gt;

&lt;p&gt;But one that &lt;strong&gt;tests, measures, investigates, and reports evidence.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Final Thought
&lt;/h2&gt;

&lt;p&gt;Research becomes more valuable when its results can be independently verified.&lt;/p&gt;

&lt;p&gt;AI can help us read papers faster.&lt;/p&gt;

&lt;p&gt;But we believe the next step is much more interesting:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI that can actually attempt the experiment.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's why we built ScholarAgent.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't just read research. Reproduce it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>🎙️ Building BillBhasha AI: A Voice-First Assistant for Bills, GST &amp; Everyday Commerce</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Sat, 15 Aug 2026 18:07:56 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/building-billbhasha-ai-a-voice-first-assistant-for-bills-gst-everyday-commerce-ag1</link>
      <guid>https://dev.to/tanya_garg_5315/building-billbhasha-ai-a-voice-first-assistant-for-bills-gst-everyday-commerce-ag1</guid>
      <description>&lt;p&gt;&lt;strong&gt;From a simple voice agent to a multilingual AI assistant with memory, tools, outbound calls, human escalation, analytics, and specialist handoffs.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;What if understanding a bill was as simple as asking a friend?&lt;/p&gt;

&lt;p&gt;For many users, invoices, GST charges, convenience fees, payment details, and other commerce-related information can be confusing. Reading through a long bill and figuring out what each charge means isn't always easy.&lt;/p&gt;

&lt;p&gt;That's the problem I wanted to address with &lt;strong&gt;BillBhasha AI&lt;/strong&gt; — a voice-first AI assistant that helps users understand bills, GST, invoices, fees, and payment-related information through natural conversations.&lt;/p&gt;

&lt;p&gt;I built BillBhasha AI as part of &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/strong&gt;, using &lt;strong&gt;Murf Falcon&lt;/strong&gt; for text-to-speech.&lt;/p&gt;

&lt;p&gt;The interesting part wasn't just making an AI that could talk.&lt;/p&gt;

&lt;p&gt;The real challenge was making it behave like a useful assistant.&lt;/p&gt;

&lt;p&gt;Over ten days, I gradually added personality, safety, memory, tools, outbound calling, human escalation, analytics, and specialist-agent handoffs.&lt;/p&gt;

&lt;h1&gt;
  
  
  💡 What is BillBhasha AI?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;BillBhasha AI&lt;/strong&gt; is a multilingual voice assistant designed for commerce-related queries.&lt;/p&gt;

&lt;p&gt;A user can simply speak to the agent and ask questions such as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Mere bill mein GST kitna laga hai?"&lt;/p&gt;

&lt;p&gt;"Convenience fee kya hoti hai?"&lt;/p&gt;

&lt;p&gt;"Can you explain this charge?"&lt;/p&gt;

&lt;p&gt;"Mujhe ye bill Hindi mein samjha do."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of forcing users to navigate complicated interfaces or read technical terminology, BillBhasha focuses on &lt;strong&gt;simple, conversational explanations&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It can also handle &lt;strong&gt;code-mixed conversations&lt;/strong&gt;, such as Hindi + English, which is common in everyday communication.&lt;/p&gt;

&lt;h1&gt;
  
  
  🎯 Why Voice?
&lt;/h1&gt;

&lt;p&gt;I chose a voice-first approach because not every user wants to type a detailed query or understand a complicated dashboard.&lt;/p&gt;

&lt;p&gt;Voice makes the interaction more natural:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User speaks → AI understands → AI processes → AI responds&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This becomes especially useful when the user wants a quick explanation rather than searching through documentation.&lt;/p&gt;

&lt;p&gt;For BillBhasha, the goal was not just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Build a chatbot that speaks."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Build a voice assistant that can actually help."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  🏗️ How BillBhasha AI Works
&lt;/h1&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    User
     ↓
Microphone / Phone Call
     ↓
Speech-to-Text
     ↓
LLM / Agent Logic
     ↓
 ┌───────────────┐
 │ Memory        │
 │ Tools         │
 │ Guardrails    │
 │ Escalation    │
 │ Specialist    │
 └───────────────┘
     ↓
Text-to-Speech
     ↓
  Murf Falcon
     ↓
   User
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent uses real-time voice infrastructure to receive and process speech, while the LLM handles reasoning and conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Murf Falcon&lt;/strong&gt; generates the agent's voice response.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fihna9p25h1wyxkd9ud2w.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fihna9p25h1wyxkd9ud2w.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  🚀 What I Built During the Challenge
&lt;/h1&gt;

&lt;p&gt;The project evolved significantly throughout the challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. 🎙️ Voice Conversation
&lt;/h2&gt;

&lt;p&gt;The first milestone was getting BillBhasha to actually talk.&lt;/p&gt;

&lt;p&gt;The user could start a conversation, speak naturally, and receive a spoken response.&lt;/p&gt;

&lt;p&gt;This became the foundation for everything that followed.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. 🧠 Personality &amp;amp; Guardrails
&lt;/h2&gt;

&lt;p&gt;An AI assistant needs to know not only &lt;strong&gt;what it can do&lt;/strong&gt;, but also what it should &lt;strong&gt;not&lt;/strong&gt; do.&lt;/p&gt;

&lt;p&gt;I defined:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Its identity&lt;/li&gt;
&lt;li&gt;Its main objectives&lt;/li&gt;
&lt;li&gt;Its communication style&lt;/li&gt;
&lt;li&gt;Language behaviour&lt;/li&gt;
&lt;li&gt;Things it must refuse&lt;/li&gt;
&lt;li&gt;Situations requiring human help&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, BillBhasha should not invent a GST amount or confidently claim information that it doesn't have.&lt;/p&gt;

&lt;p&gt;It should explain uncertainty instead of hallucinating an answer.&lt;/p&gt;

&lt;h1&gt;
  
  
  🌐 3. Multilingual &amp;amp; Code-Mixed Conversations
&lt;/h1&gt;

&lt;p&gt;One important part of BillBhasha is language flexibility.&lt;/p&gt;

&lt;p&gt;A user might say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Mere bill mein GST kitna hai?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and then switch to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can you explain the convenience fee?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent should be able to understand this naturally and respond in an appropriate language/register.&lt;/p&gt;

&lt;p&gt;I also configured the agent to respect the correct native script when generating multilingual text.&lt;/p&gt;

&lt;h1&gt;
  
  
  🎨 4. Personalised Voice-Agent Frontend
&lt;/h1&gt;

&lt;p&gt;I didn't want the interface to look like a generic chatbot.&lt;/p&gt;

&lt;p&gt;The frontend was redesigned around the voice experience and clearly communicates different agent states:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ready → Connecting → Listening → Speaking → Call Ended&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This makes it immediately clear to the user whether the agent is waiting, listening, or responding.&lt;/p&gt;

&lt;p&gt;Microphone permission errors are also handled with clear feedback rather than leaving the user wondering why the call isn't starting.&lt;/p&gt;

&lt;h1&gt;
  
  
  🧠 5. Giving BillBhasha Memory
&lt;/h1&gt;

&lt;p&gt;One of the biggest improvements was adding memory.&lt;/p&gt;

&lt;p&gt;Initially:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Call ends → Everything is forgotten.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After adding persistent storage:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Call ends → User information can be stored → Next call can retrieve it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example, during one conversation a user may say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I prefer speaking in Hindi."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After receiving permission, that preference can be saved.&lt;/p&gt;

&lt;p&gt;During the next conversation, BillBhasha can recognise the returning user and continue more naturally.&lt;/p&gt;

&lt;p&gt;Importantly, &lt;strong&gt;the agent asks for permission before saving information&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This makes memory an intentional feature rather than silent data collection.&lt;/p&gt;

&lt;h1&gt;
  
  
  🔧 6. Adding Tools
&lt;/h1&gt;

&lt;p&gt;An AI model shouldn't have to guess information that can be obtained through a function or external data source.&lt;/p&gt;

&lt;p&gt;I added tool-based functionality so the agent can retrieve or calculate relevant commerce information when needed.&lt;/p&gt;

&lt;p&gt;The important design principle was:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If reliable data is available through a tool, use the tool instead of inventing an answer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I also added a failure path so that if a data source is unavailable, the agent can communicate the issue instead of silently failing or making up information.&lt;/p&gt;

&lt;h1&gt;
  
  
  📞 7. Outbound Voice Calls
&lt;/h1&gt;

&lt;p&gt;Next, I moved beyond browser-based conversations.&lt;/p&gt;

&lt;p&gt;BillBhasha was extended to support outbound calling.&lt;/p&gt;

&lt;p&gt;This changes the interaction completely.&lt;/p&gt;

&lt;p&gt;When an agent calls someone, the user didn't necessarily request the conversation.&lt;/p&gt;

&lt;p&gt;So the opening needs to be transparent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who is calling?&lt;/li&gt;
&lt;li&gt;Why are they calling?&lt;/li&gt;
&lt;li&gt;What can the user do if they don't want to continue?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This taught me that &lt;strong&gt;outbound voice agents need a different conversational design from inbound agents.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  👩‍💻 8. Human Escalation
&lt;/h1&gt;

&lt;p&gt;Another important lesson was that an AI agent shouldn't try to solve everything.&lt;/p&gt;

&lt;p&gt;For certain situations, BillBhasha can decide that a human should take over.&lt;/p&gt;

&lt;p&gt;The flow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Request
     ↓
AI Understands Problem
     ↓
Does AI Need Human Help?
     ↓
    Yes
     ↓
Ask User Permission
     ↓
Create Escalation Request
     ↓
Provide Reference ID
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent doesn't simply say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I'll contact a human."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It creates a structured escalation request containing only useful information.&lt;/p&gt;

&lt;p&gt;Privacy is also important here.&lt;/p&gt;

&lt;p&gt;The system should never send sensitive information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OTPs&lt;/li&gt;
&lt;li&gt;PINs&lt;/li&gt;
&lt;li&gt;Passwords&lt;/li&gt;
&lt;li&gt;Account numbers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;to the human escalation flow.&lt;/p&gt;

&lt;h1&gt;
  
  
  📊 9. Call Analytics Dashboard
&lt;/h1&gt;

&lt;p&gt;Once an agent starts handling multiple conversations, another question appears:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How well is it actually performing?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I added a call analytics dashboard.&lt;/p&gt;

&lt;p&gt;The dashboard tracks key metrics such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Total Calls&lt;/li&gt;
&lt;li&gt;Successful Calls&lt;/li&gt;
&lt;li&gt;Failed Calls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The data is based on actual calls rather than hardcoded numbers.&lt;/p&gt;

&lt;p&gt;I also redesigned the UI to make the dashboard more visually engaging and easier to understand.&lt;/p&gt;

&lt;p&gt;This helped turn BillBhasha from simply a voice demo into something closer to a complete voice-agent product.&lt;/p&gt;

&lt;h1&gt;
  
  
  🤝 10. Specialist Agent Handoff
&lt;/h1&gt;

&lt;p&gt;One of the final improvements was introducing a specialist agent.&lt;/p&gt;

&lt;p&gt;The main agent doesn't need to be an expert at everything.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 ↓
BillBhasha AI
 ↓
Does this require specialist help?
 ↓
Yes
 ↓
Specialist Agent
 ↓
Continues the conversation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The main agent informs the user before transferring the conversation.&lt;/p&gt;

&lt;p&gt;The specialist then receives the context and continues from there instead of asking the user to repeat everything.&lt;/p&gt;

&lt;p&gt;This made the architecture more modular and showed me how multiple specialised agents can work together.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu7z6l087f9snbxawrqes.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu7z6l087f9snbxawrqes.png" alt=" " width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  🧩 The Technology Behind It
&lt;/h1&gt;

&lt;p&gt;The project combines several technologies and services to create the complete experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core components
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; HTML / CSS / JavaScript and voice-agent UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice orchestration:&lt;/strong&gt; LiveKit&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM:&lt;/strong&gt; Google Gemini&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speech-to-Text:&lt;/strong&gt; Deepgram&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text-to-Speech:&lt;/strong&gt; Murf Falcon&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; SQLite / persistent storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telephony:&lt;/strong&gt; Twilio / outbound calling setup&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; Function-based integrations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytics:&lt;/strong&gt; Call data + dashboard&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specialist agents:&lt;/strong&gt; Agent handoff architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most important thing I learned is that a voice agent isn't a single model.&lt;/p&gt;

&lt;p&gt;It's a &lt;strong&gt;system of multiple components working together in real time.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  ⚙️ Challenges I Faced
&lt;/h1&gt;

&lt;p&gt;Building the project wasn't always straightforward.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Multilingual voice behaviour
&lt;/h2&gt;

&lt;p&gt;One challenge was getting the agent to understand Hindi/code-mixed speech while maintaining the appropriate language and voice behaviour.&lt;/p&gt;

&lt;p&gt;This required careful configuration of speech recognition, language handling, and prompting.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Memory shouldn't become automatic data collection
&lt;/h2&gt;

&lt;p&gt;Adding memory sounds simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Just save the user's information."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But that isn't enough.&lt;/p&gt;

&lt;p&gt;The agent needs to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Would you like me to remember this?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Only after confirmation should the information be saved.&lt;/p&gt;

&lt;p&gt;This changed the way I thought about AI memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Voice responses need different prompting
&lt;/h2&gt;

&lt;p&gt;A response that looks good on a screen doesn't always sound good when spoken.&lt;/p&gt;

&lt;p&gt;Long explanations, complicated formatting, and overly technical sentences can feel unnatural in a voice conversation.&lt;/p&gt;

&lt;p&gt;I learned to keep responses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Short&lt;/li&gt;
&lt;li&gt;Clear&lt;/li&gt;
&lt;li&gt;Conversational&lt;/li&gt;
&lt;li&gt;Easy to understand when heard rather than read&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. APIs can fail
&lt;/h2&gt;

&lt;p&gt;Real-world voice agents depend on multiple external services.&lt;/p&gt;

&lt;p&gt;A tool may fail.&lt;/p&gt;

&lt;p&gt;An API may timeout.&lt;/p&gt;

&lt;p&gt;A call may disconnect.&lt;/p&gt;

&lt;p&gt;A microphone permission may be denied.&lt;/p&gt;

&lt;p&gt;The agent therefore needs a &lt;strong&gt;failure path&lt;/strong&gt;, not just a success path.&lt;/p&gt;

&lt;p&gt;That was one of the biggest lessons from this challenge.&lt;/p&gt;

&lt;h1&gt;
  
  
  🔐 Privacy &amp;amp; Safety
&lt;/h1&gt;

&lt;p&gt;Because BillBhasha deals with commerce and payment-related conversations, privacy cannot be an afterthought.&lt;/p&gt;

&lt;p&gt;The agent is designed not to request or expose sensitive information such as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OTP, PIN, passwords, or account numbers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Memory also requires user consent.&lt;/p&gt;

&lt;p&gt;Similarly, human escalation requires permission before sharing information with another person.&lt;/p&gt;

&lt;p&gt;The goal is to make the assistant useful &lt;strong&gt;without making it careless.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  📂 Project Repository
&lt;/h1&gt;

&lt;p&gt;The complete project is available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BillBhasha AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Tanya-garg10/BillBhasha-AI" rel="noopener noreferrer"&gt;https://github.com/Tanya-garg10/BillBhasha-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the implementation and setup required to explore the project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; API keys and other secrets should always be stored in environment variables and should never be committed to GitHub.&lt;/p&gt;

&lt;h1&gt;
  
  
  🛠️ How to Start Building Your Own Voice Agent
&lt;/h1&gt;

&lt;p&gt;If you're starting your own voice-agent project, think about it as these building blocks:&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1 — Speech-to-Text
&lt;/h3&gt;

&lt;p&gt;Convert the user's voice into text.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2 — LLM
&lt;/h3&gt;

&lt;p&gt;Send the text to your language model and decide what the agent should do.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3 — Tools &amp;amp; Memory
&lt;/h3&gt;

&lt;p&gt;Give the agent access to reliable data and persistent information when necessary.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4 — Text-to-Speech
&lt;/h3&gt;

&lt;p&gt;Convert the response back into natural speech.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5 — Real-Time Transport
&lt;/h3&gt;

&lt;p&gt;Connect everything through a real-time voice layer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6 — Guardrails
&lt;/h3&gt;

&lt;p&gt;Define what the agent can and cannot do.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7 — Test Failure Cases
&lt;/h3&gt;

&lt;p&gt;Don't test only:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hello, how are you?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Also test:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API failures&lt;/li&gt;
&lt;li&gt;Silence&lt;/li&gt;
&lt;li&gt;Wrong requests&lt;/li&gt;
&lt;li&gt;Language switching&lt;/li&gt;
&lt;li&gt;Permission denial&lt;/li&gt;
&lt;li&gt;Human escalation&lt;/li&gt;
&lt;li&gt;Call disconnects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's where the real engineering begins.&lt;/p&gt;

&lt;h1&gt;
  
  
  🌱 What I Would Build Next
&lt;/h1&gt;

&lt;p&gt;BillBhasha is still a work in progress.&lt;/p&gt;

&lt;p&gt;Some improvements I'd like to explore next are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better bill/invoice document understanding&lt;/li&gt;
&lt;li&gt;OCR-based bill analysis&lt;/li&gt;
&lt;li&gt;More Indian language support&lt;/li&gt;
&lt;li&gt;Better GST explanation workflows&lt;/li&gt;
&lt;li&gt;More advanced analytics&lt;/li&gt;
&lt;li&gt;Improved specialist-agent routing&lt;/li&gt;
&lt;li&gt;Stronger privacy controls&lt;/li&gt;
&lt;li&gt;Real-world user testing&lt;/li&gt;
&lt;li&gt;Better accessibility for first-time technology users&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The long-term goal would be to make BillBhasha useful beyond a hackathon or challenge demo.&lt;/p&gt;

&lt;h1&gt;
  
  
  🎓 What I Learned
&lt;/h1&gt;

&lt;p&gt;The biggest takeaway from these 10 days is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Building a voice agent is much more than connecting an LLM to a microphone.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A useful voice agent needs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice + Intelligence + Memory + Tools + Safety + Human Support + Observability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The challenge pushed me to think about the complete user experience rather than just the AI model.&lt;/p&gt;

&lt;p&gt;I learned how small things — such as a clear greeting, a permission request, a fallback message, or a handoff explanation — can make a huge difference in how trustworthy an AI system feels.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5caiqhz6e44ummcl2gaa.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5caiqhz6e44ummcl2gaa.jpeg" alt=" " width="800" height="592"&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fas8i53m97ylm75qvikeh.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fas8i53m97ylm75qvikeh.jpeg" alt=" " width="799" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  🚀 Final Thoughts
&lt;/h1&gt;

&lt;p&gt;BillBhasha AI started as a simple idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What if users could simply ask an AI to explain their bills?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Over the course of &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/strong&gt;, that idea evolved into a much more complete voice-agent system.&lt;/p&gt;

&lt;p&gt;It can now:&lt;/p&gt;

&lt;p&gt;✅ Hold natural voice conversations&lt;br&gt;
✅ Handle code-mixed language&lt;br&gt;
✅ Follow safety guardrails&lt;br&gt;
✅ Remember users with permission&lt;br&gt;
✅ Use tools for useful information&lt;br&gt;
✅ Make outbound calls&lt;br&gt;
✅ Escalate problems to humans&lt;br&gt;
✅ Track call outcomes&lt;br&gt;
✅ Provide analytics&lt;br&gt;
✅ Hand conversations to specialist agents&lt;/p&gt;

&lt;p&gt;And throughout the journey, &lt;strong&gt;Murf Falcon&lt;/strong&gt; powered the voice experience.&lt;/p&gt;

&lt;p&gt;This challenge wasn't just about building an AI that can speak.&lt;/p&gt;

&lt;p&gt;It was about learning how to build an AI system that can &lt;strong&gt;listen, understand, remember, act, and know when it shouldn't act alone.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10 Days. One voice agent. A lot of learning. 🎙️🚀&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; BillBhasha AI&lt;br&gt;
&lt;strong&gt;Track:&lt;/strong&gt; Local Commerce&lt;br&gt;
&lt;strong&gt;Challenge:&lt;/strong&gt; 10 Days of Voice Agents — VoiceForBharat Edition&lt;br&gt;
&lt;strong&gt;TTS:&lt;/strong&gt; Murf Falcon&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
    </item>
    <item>
      <title>From Python to Rust: Rewriting a Real Open Source Project for Port Mortem 2026</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Fri, 07 Aug 2026 11:31:14 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/from-python-to-rust-rewriting-a-real-open-source-project-for-port-mortem-2026-3g64</link>
      <guid>https://dev.to/tanya_garg_5315/from-python-to-rust-rewriting-a-real-open-source-project-for-port-mortem-2026-3g64</guid>
      <description>&lt;p&gt;Modern AI can translate code between programming languages in seconds.&lt;/p&gt;

&lt;p&gt;But one question still remains:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does the translated program actually behave like the original?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question is exactly what &lt;strong&gt;Code Resurrection 2026 – Port Mortem&lt;/strong&gt; challenged participants to answer.&lt;/p&gt;

&lt;p&gt;Instead of building a new application, the challenge was to take an existing open-source project and rewrite it in another language while preserving its behavior.&lt;/p&gt;

&lt;p&gt;I participated in &lt;strong&gt;Track D (Python → Rust)&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Chose Rust
&lt;/h2&gt;

&lt;p&gt;Rust has become one of the most exciting systems programming languages because it offers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory safety without a garbage collector&lt;/li&gt;
&lt;li&gt;Excellent performance&lt;/li&gt;
&lt;li&gt;Strong compile-time guarantees&lt;/li&gt;
&lt;li&gt;Modern tooling through Cargo&lt;/li&gt;
&lt;li&gt;Reliable error handling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than creating a simple syntax translation, I wanted to understand how Python concepts map to idiomatic Rust.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Goal
&lt;/h2&gt;

&lt;p&gt;The objective wasn't simply to make the project compile.&lt;/p&gt;

&lt;p&gt;The real objective was to preserve the original behavior while redesigning the implementation using Rust best practices.&lt;/p&gt;

&lt;p&gt;That meant focusing on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Functional equivalence&lt;/li&gt;
&lt;li&gt;Clean project architecture&lt;/li&gt;
&lt;li&gt;Better memory safety&lt;/li&gt;
&lt;li&gt;Idiomatic Rust patterns&lt;/li&gt;
&lt;li&gt;Maintainability&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Repository Structure
&lt;/h2&gt;

&lt;p&gt;The project follows the structure recommended by the hackathon.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;README.md
DECISIONS.md
Dockerfile
Cargo.toml
src/
tests/
fuzz/
bench/
.port-mortem.toml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbiyho705wr7oz40siw9h.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbiyho705wr7oz40siw9h.png" alt=" " width="799" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This organization makes the project easier to evaluate, build, and extend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migration Decisions
&lt;/h2&gt;

&lt;p&gt;Several design choices changed during the migration.&lt;/p&gt;

&lt;p&gt;Instead of Python's exception-based workflow, I adopted Rust's &lt;code&gt;Result&amp;lt;T, E&amp;gt;&lt;/code&gt; error handling.&lt;/p&gt;

&lt;p&gt;Dynamic Python collections were replaced with Rust's strongly typed collections.&lt;/p&gt;

&lt;p&gt;The application was reorganized into Cargo modules to improve maintainability.&lt;/p&gt;

&lt;p&gt;Every important design decision was documented in &lt;strong&gt;DECISIONS.md&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Biggest Challenge
&lt;/h2&gt;

&lt;p&gt;The hardest part wasn't writing Rust.&lt;/p&gt;

&lt;p&gt;It was making sure the Rust implementation behaved exactly like the original Python project.&lt;/p&gt;

&lt;p&gt;Language features differ significantly.&lt;/p&gt;

&lt;p&gt;Error handling, ownership, borrowing, collections, and type safety required a completely different mindset.&lt;/p&gt;

&lt;p&gt;Writing equivalent logic often meant redesigning the implementation instead of translating it line by line.&lt;/p&gt;

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

&lt;p&gt;This project taught me that software migration is much more than language translation.&lt;/p&gt;

&lt;p&gt;A good migration should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preserve behavior&lt;/li&gt;
&lt;li&gt;Improve maintainability&lt;/li&gt;
&lt;li&gt;Follow target-language best practices&lt;/li&gt;
&lt;li&gt;Be easy to build and test&lt;/li&gt;
&lt;li&gt;Document architectural decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rust encouraged writing code that is explicit, predictable, and easier to reason about.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1g6eds7yub9jw31pkniw.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1g6eds7yub9jw31pkniw.png" alt=" " width="800" height="605"&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftrjlo72pzxtf7314hhc5.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftrjlo72pzxtf7314hhc5.png" alt=" " width="800" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Port Mortem was one of the most unique hackathons I've participated in.&lt;/p&gt;

&lt;p&gt;Instead of rewarding quick prototypes, it encouraged participants to think like software engineers—focusing on correctness, maintainability, and engineering discipline.&lt;/p&gt;

&lt;p&gt;Whether or not this project wins, it gave me a much deeper appreciation for systems programming, open-source software, and Rust's design philosophy.&lt;/p&gt;

&lt;p&gt;Huge thanks to &lt;strong&gt;Hackathon Raptors&lt;/strong&gt; for organizing such an interesting event.&lt;/p&gt;

&lt;p&gt;If you're interested in systems programming or language migration, I'd definitely recommend trying a project like this yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Tanya-garg10/croniter-.git" rel="noopener noreferrer"&gt;https://github.com/Tanya-garg10/croniter-.git&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building SentinelAI: How I Used SigNoz &amp; OpenTelemetry to Make AI Agents Observable</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Sun, 26 Jul 2026 18:13:50 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/building-sentinelai-how-i-used-signoz-opentelemetry-to-make-ai-agents-observable-2lh0</link>
      <guid>https://dev.to/tanya_garg_5315/building-sentinelai-how-i-used-signoz-opentelemetry-to-make-ai-agents-observable-2lh0</guid>
      <description>&lt;p&gt;&lt;strong&gt;Building SentinelAI: How I Used SigNoz &amp;amp; OpenTelemetry to Make AI Agents Observable&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;From black-box AI workflows to real-time traces, logs, metrics, security monitoring, and AI-powered root cause analysis.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Hook
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;AI agents are becoming increasingly capable—they can reason, call tools, retrieve knowledge, and automate complex workflows. But when an agent fails in production, the biggest challenge isn't fixing the bug—it's understanding &lt;em&gt;why&lt;/em&gt; it happened.&lt;/p&gt;

&lt;p&gt;During the &lt;strong&gt;Agents of SigNoz Hackathon&lt;/strong&gt; by WeMakeDevs, I wanted to solve exactly this problem. Instead of building another AI chatbot, I built &lt;strong&gt;SentinelAI&lt;/strong&gt;, an observability platform that gives developers complete visibility into AI agents using &lt;strong&gt;SigNoz&lt;/strong&gt; and &lt;strong&gt;OpenTelemetry&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;While experimenting with AI applications, I realized that traditional logging wasn't enough.&lt;/p&gt;

&lt;p&gt;Some common questions remained unanswered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which tool call caused the failure?&lt;/li&gt;
&lt;li&gt;Why did latency suddenly increase?&lt;/li&gt;
&lt;li&gt;Which prompt consumed the most tokens?&lt;/li&gt;
&lt;li&gt;Why did the agent hallucinate?&lt;/li&gt;
&lt;li&gt;Which API became the bottleneck?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without proper observability, AI systems become difficult to debug as they grow in complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why SigNoz?
&lt;/h2&gt;

&lt;p&gt;I wanted an observability platform that could collect multiple signals in one place.&lt;/p&gt;

&lt;p&gt;SigNoz stood out because it supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenTelemetry-native instrumentation&lt;/li&gt;
&lt;li&gt;Distributed tracing&lt;/li&gt;
&lt;li&gt;Metrics&lt;/li&gt;
&lt;li&gt;Logs&lt;/li&gt;
&lt;li&gt;Dashboards&lt;/li&gt;
&lt;li&gt;Alerts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of jumping between different monitoring tools, I could inspect an entire AI workflow from a single interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Architecture
&lt;/h2&gt;

&lt;p&gt;Include architecture diagram here.&lt;/p&gt;

&lt;p&gt;Explain:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       User
        ↓
  Frontend (React)
        ↓
   FastAPI Backend
        ↓
  OpenTelemetry SDK
        ↓
    SigNoz Cloud
        ↓
     Traces
    Metrics
      Logs
     Alerts
        ↓
SentinelAI Dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Building SentinelAI
&lt;/h2&gt;

&lt;p&gt;Instead of only monitoring servers, I wanted to monitor AI reasoning itself.&lt;/p&gt;

&lt;p&gt;The application contains multiple modules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dashboard
&lt;/h2&gt;

&lt;p&gt;The dashboard provides a quick overview of the system.&lt;/p&gt;

&lt;p&gt;It displays:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agent Health Score&lt;/li&gt;
&lt;li&gt;Active Requests&lt;/li&gt;
&lt;li&gt;Average Latency&lt;/li&gt;
&lt;li&gt;Token Usage&lt;/li&gt;
&lt;li&gt;Estimated Cost&lt;/li&gt;
&lt;li&gt;Error Rate&lt;/li&gt;
&lt;li&gt;Live Alerts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The health score combines multiple signals into a single indicator, making it easier to identify unhealthy AI agents.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd4nvfgvmlllepbr7pguc.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd4nvfgvmlllepbr7pguc.jpeg" alt=" " width="799" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Live Agent Monitoring
&lt;/h2&gt;

&lt;p&gt;Every AI request is tracked individually.&lt;/p&gt;

&lt;p&gt;For each request I record:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt&lt;/li&gt;
&lt;li&gt;Response&lt;/li&gt;
&lt;li&gt;Execution time&lt;/li&gt;
&lt;li&gt;Token usage&lt;/li&gt;
&lt;li&gt;Model used&lt;/li&gt;
&lt;li&gt;Tool calls&lt;/li&gt;
&lt;li&gt;Status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of manually searching logs, developers can inspect an individual execution from start to finish.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc9djo69bgg2rklc6nclr.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc9djo69bgg2rklc6nclr.jpeg" alt=" " width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  OpenTelemetry Integration
&lt;/h2&gt;

&lt;p&gt;One of the most interesting parts of this project was instrumenting AI requests.&lt;/p&gt;

&lt;p&gt;Every request generates telemetry that can later be visualized inside SigNoz.&lt;/p&gt;

&lt;p&gt;This made it possible to understand where time was being spent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt processing&lt;/li&gt;
&lt;li&gt;Retrieval&lt;/li&gt;
&lt;li&gt;LLM generation&lt;/li&gt;
&lt;li&gt;External API calls&lt;/li&gt;
&lt;li&gt;Database operations&lt;/li&gt;
&lt;/ul&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1q0k8uwwio2rju2ziuza.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1q0k8uwwio2rju2ziuza.jpeg" alt=" " width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Using SigNoz
&lt;/h2&gt;

&lt;p&gt;SigNoz became the observability backbone of SentinelAI.&lt;/p&gt;

&lt;p&gt;I used it for:&lt;/p&gt;

&lt;h3&gt;
  
  
  Distributed Traces
&lt;/h3&gt;

&lt;p&gt;To visualize every stage of an AI request.&lt;/p&gt;

&lt;h3&gt;
  
  
  Metrics
&lt;/h3&gt;

&lt;p&gt;To monitor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Request latency&lt;/li&gt;
&lt;li&gt;Error rate&lt;/li&gt;
&lt;li&gt;Token consumption&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Logs
&lt;/h3&gt;

&lt;p&gt;To inspect failures and debug issues.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dashboards
&lt;/h3&gt;

&lt;p&gt;To create an overview of system performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Alerts
&lt;/h3&gt;

&lt;p&gt;To identify abnormal latency and failures quickly.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjdt9moa9vu4qywahxaa5.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjdt9moa9vu4qywahxaa5.jpeg" alt=" " width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Security Monitoring
&lt;/h1&gt;

&lt;p&gt;One feature I particularly enjoyed building was the Security Monitor.&lt;/p&gt;

&lt;p&gt;It detects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt Injection attempts&lt;/li&gt;
&lt;li&gt;Jailbreak prompts&lt;/li&gt;
&lt;li&gt;Suspicious tool calls&lt;/li&gt;
&lt;li&gt;High-risk requests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each request receives a Security Risk Score, helping developers prioritize investigation.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmesv45gdgbwrl1dp8v69.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmesv45gdgbwrl1dp8v69.jpeg" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Root Cause Analysis
&lt;/h2&gt;

&lt;p&gt;Raw logs can still be difficult to understand.&lt;/p&gt;

&lt;p&gt;So I added an AI-powered analysis engine.&lt;/p&gt;

&lt;p&gt;Whenever an anomaly occurs, SentinelAI automatically generates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Incident summary&lt;/li&gt;
&lt;li&gt;Root cause&lt;/li&gt;
&lt;li&gt;Severity&lt;/li&gt;
&lt;li&gt;Suggested resolution&lt;/li&gt;
&lt;li&gt;Recommended next steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This significantly reduces debugging time.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9pj9u8ltx5xkyjudstra.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9pj9u8ltx5xkyjudstra.jpeg" alt=" " width="799" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Analytics &amp;amp; Audit Export
&lt;/h1&gt;

&lt;p&gt;To make the platform useful beyond debugging, I also implemented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Latency analytics&lt;/li&gt;
&lt;li&gt;Token usage trends&lt;/li&gt;
&lt;li&gt;Cost estimation&lt;/li&gt;
&lt;li&gt;JSON export&lt;/li&gt;
&lt;li&gt;CSV export&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These exports make it easier to share telemetry with engineering teams and support compliance workflows.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1651nut3ivfpqglbntcb.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1651nut3ivfpqglbntcb.jpeg" alt=" " width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The biggest challenge wasn't building the UI.&lt;/p&gt;

&lt;p&gt;The real challenge was understanding how observability works.&lt;/p&gt;

&lt;p&gt;Initially, I assumed logs alone would be enough.&lt;/p&gt;

&lt;p&gt;While integrating SigNoz, I realized that combining traces, metrics, and logs provides much richer context than relying on any single signal.&lt;/p&gt;

&lt;p&gt;Another challenge was organizing AI telemetry in a way that remained easy to understand for developers.&lt;/p&gt;

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

&lt;p&gt;This hackathon completely changed how I think about production AI.&lt;/p&gt;

&lt;p&gt;Some key takeaways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Observability is as important as the AI model itself.&lt;/li&gt;
&lt;li&gt;Distributed tracing makes debugging much easier.&lt;/li&gt;
&lt;li&gt;Metrics help identify trends before users notice problems.&lt;/li&gt;
&lt;li&gt;AI applications require security monitoring in addition to performance monitoring.&lt;/li&gt;
&lt;li&gt;OpenTelemetry provides a flexible standard that works across different services.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;If I continue working on SentinelAI, I would like to add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-agent workflow visualization&lt;/li&gt;
&lt;li&gt;Kubernetes monitoring&lt;/li&gt;
&lt;li&gt;Real-time anomaly detection&lt;/li&gt;
&lt;li&gt;Predictive incident alerts&lt;/li&gt;
&lt;li&gt;Slack &amp;amp; Microsoft Teams notifications&lt;/li&gt;
&lt;li&gt;Multi-tenant dashboards&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Building SentinelAI taught me that successful AI applications need more than accurate responses—they need visibility, reliability, and security.&lt;/p&gt;

&lt;p&gt;By combining &lt;strong&gt;OpenTelemetry&lt;/strong&gt; with &lt;strong&gt;SigNoz&lt;/strong&gt;, I was able to build a platform that helps developers understand every stage of an AI agent's execution instead of treating it as a black box.&lt;/p&gt;

&lt;p&gt;This hackathon was a great opportunity to explore modern observability practices while building something practical for real-world AI systems.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>observability</category>
      <category>opentelemetry</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Beyond Logs: Building Reliable AI Agents with SigNoz LLM Observability</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Fri, 17 Jul 2026 15:56:38 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/beyond-logs-building-reliable-ai-agents-with-signoz-llm-observability-57k1</link>
      <guid>https://dev.to/tanya_garg_5315/beyond-logs-building-reliable-ai-agents-with-signoz-llm-observability-57k1</guid>
      <description>&lt;p&gt;&lt;em&gt;How exploring SigNoz changed the way I think about monitoring AI applications.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;While preparing for the &lt;strong&gt;Agents of SigNoz Hackathon&lt;/strong&gt;, I wanted to do more than just register and wait for the event to begin. Since the organizers encouraged participants to explore SigNoz before the hackathon, I decided to spend some time understanding what the platform actually offers and why observability has become such an important topic for modern AI applications.&lt;/p&gt;

&lt;p&gt;Before this, my understanding of monitoring was fairly basic. I associated it with checking CPU usage, memory consumption, application logs, or server uptime. Those metrics are useful, but as I started learning more about AI systems, I realized they don't explain what is happening inside an AI workflow.&lt;/p&gt;

&lt;p&gt;Think about an AI assistant that uses a Large Language Model (LLM). A single user request doesn't just go to the model and return a response. It may pass through authentication, a vector database, prompt construction, multiple API calls, external tools, memory retrieval, and finally the LLM before generating an answer. If something goes wrong in between, traditional monitoring often isn't enough to identify the exact cause.&lt;/p&gt;

&lt;p&gt;This is where I discovered the concept of &lt;strong&gt;AI Observability&lt;/strong&gt;, and that's what led me to SigNoz.&lt;/p&gt;

&lt;p&gt;As I explored the platform, one thing immediately stood out—it isn't just another monitoring dashboard. SigNoz brings together &lt;strong&gt;logs, metrics, traces, dashboards, alerts, and AI observability&lt;/strong&gt; into a single platform built on &lt;strong&gt;OpenTelemetry&lt;/strong&gt;, making it much easier to understand what is happening inside an application.&lt;/p&gt;

&lt;p&gt;In this blog, I'll share what I learned while exploring SigNoz, the features that impressed me the most, and why I believe observability is becoming an essential part of building reliable AI applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Traditional Monitoring Isn't Enough Anymore
&lt;/h2&gt;

&lt;p&gt;Most developers, including me, usually begin debugging by checking logs or looking at CPU and memory graphs. That approach works reasonably well for traditional applications, but AI systems introduce an entirely different level of complexity.&lt;/p&gt;

&lt;p&gt;Imagine asking an AI assistant:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Summarize yesterday's meeting and create a follow-up email."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Behind the scenes, several operations happen almost instantly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The request is authenticated.&lt;/li&gt;
&lt;li&gt;Previous conversation history is retrieved.&lt;/li&gt;
&lt;li&gt;Relevant documents are fetched from a vector database.&lt;/li&gt;
&lt;li&gt;A prompt is generated.&lt;/li&gt;
&lt;li&gt;The LLM processes the request.&lt;/li&gt;
&lt;li&gt;External tools may be called.&lt;/li&gt;
&lt;li&gt;The final response is formatted and returned.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the response suddenly takes 12 seconds instead of 2, simply checking application logs doesn't immediately reveal the problem.&lt;/p&gt;

&lt;p&gt;During my exploration of SigNoz, this became much clearer. Instead of showing only the final response time, observability helps break an entire request into smaller steps, making it easier to understand &lt;strong&gt;where&lt;/strong&gt; time is being spent and &lt;strong&gt;which component&lt;/strong&gt; is responsible for delays.&lt;/p&gt;

&lt;p&gt;That shift in perspective was probably the biggest takeaway for me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding AI Observability
&lt;/h2&gt;

&lt;p&gt;Before exploring SigNoz, I had heard the term &lt;em&gt;observability&lt;/em&gt; many times but never really understood how different it was from monitoring.&lt;/p&gt;

&lt;p&gt;The easiest way I can explain it now is this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitoring tells you that something is wrong. Observability helps you understand why it went wrong.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For AI applications, that difference is extremely important.&lt;/p&gt;

&lt;p&gt;Instead of tracking only infrastructure metrics, AI observability allows developers to understand what's happening throughout the complete lifecycle of an AI request.&lt;/p&gt;

&lt;p&gt;Some examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model response latency&lt;/li&gt;
&lt;li&gt;Prompt execution time&lt;/li&gt;
&lt;li&gt;Token usage&lt;/li&gt;
&lt;li&gt;Tool calls&lt;/li&gt;
&lt;li&gt;API failures&lt;/li&gt;
&lt;li&gt;Retrieval performance&lt;/li&gt;
&lt;li&gt;Distributed traces&lt;/li&gt;
&lt;li&gt;Error propagation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Seeing these capabilities helped me understand why observability has become such an important topic as AI applications continue to grow in complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  My First Impression of SigNoz
&lt;/h2&gt;

&lt;p&gt;The feature that impressed me the most while exploring SigNoz was its ability to bring different types of telemetry into one place.&lt;/p&gt;

&lt;p&gt;Rather than jumping between separate tools for logs, metrics, and traces, everything is available through a single interface.&lt;/p&gt;

&lt;p&gt;For someone trying to understand how an application behaves internally, this makes debugging feel much more organized and intuitive.&lt;/p&gt;

&lt;p&gt;Another thing I appreciated was that SigNoz is &lt;strong&gt;OpenTelemetry-native&lt;/strong&gt;. Since OpenTelemetry has become the standard for collecting telemetry data, building on open standards instead of proprietary solutions makes the platform much more flexible for developers and organizations.&lt;/p&gt;

&lt;p&gt;At this point, I started understanding that observability isn't just about fixing bugs—it's about building software with enough visibility that problems can be identified and solved before they affect users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In the next section, I'll walk through the SigNoz platform, explain its core features, and share why Distributed Tracing became my favorite feature while exploring the platform.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Exploring SigNoz: Features That Stood Out
&lt;/h2&gt;

&lt;p&gt;After understanding why observability matters, I wanted to see what SigNoz actually offers beyond the buzzwords.&lt;/p&gt;

&lt;p&gt;As I explored the platform and its documentation, I realized that SigNoz isn't focused on just one aspect of monitoring. Instead, it combines everything needed to understand an application's health in a single place.&lt;/p&gt;

&lt;p&gt;Some of the features that immediately caught my attention were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Application Performance Monitoring (APM)&lt;/strong&gt; for tracking application performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Distributed Tracing&lt;/strong&gt; to follow requests across multiple services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Centralized Log Management&lt;/strong&gt; for debugging issues quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Dashboards&lt;/strong&gt; for visualizing important metrics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time Alerts&lt;/strong&gt; to detect problems before users report them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM &amp;amp; AI Observability&lt;/strong&gt; for monitoring AI-powered applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What impressed me the most was that these features are available within one platform rather than requiring multiple tools working together.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding OpenTelemetry
&lt;/h2&gt;

&lt;p&gt;While exploring SigNoz, I also learned why it emphasizes being &lt;strong&gt;OpenTelemetry-native&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Initially, I thought OpenTelemetry was simply another monitoring library. After reading more about it, I realized it has become the industry standard for collecting telemetry data.&lt;/p&gt;

&lt;p&gt;Instead of using vendor-specific agents, developers instrument their applications once with OpenTelemetry and can send the collected data to compatible platforms like SigNoz.&lt;/p&gt;

&lt;p&gt;This approach offers several benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No vendor lock-in&lt;/li&gt;
&lt;li&gt;Standardized telemetry collection&lt;/li&gt;
&lt;li&gt;Support for multiple programming languages&lt;/li&gt;
&lt;li&gt;Easier migration between observability platforms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For AI applications, this becomes even more valuable because a single request often travels through multiple services before generating a response.&lt;/p&gt;

&lt;p&gt;OpenTelemetry captures each of these interactions, while SigNoz visualizes them in an easy-to-understand format.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up SigNoz
&lt;/h2&gt;

&lt;p&gt;One thing I liked was that getting started with SigNoz is relatively straightforward.&lt;/p&gt;

&lt;p&gt;The recommended approach is to run it locally using Docker.&lt;/p&gt;

&lt;p&gt;The installation involves cloning the repository and starting the required services.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/SigNoz/signoz.git

&lt;span class="nb"&gt;cd &lt;/span&gt;signoz/deploy

docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the services start, the dashboard becomes accessible through the browser.&lt;/p&gt;

&lt;p&gt;Although the setup itself isn't complicated, I would still recommend checking the official documentation because it provides clear instructions for different operating systems and deployment options.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Figure 1:&lt;/strong&gt; &lt;em&gt;SigNoz Dashboard after completing the local setup.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frisq3lq5dpydmisvxoj3.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frisq3lq5dpydmisvxoj3.png" alt="SigNoz Dashboard after completing the local setup." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Feature I Found Most Interesting: Distributed Tracing
&lt;/h2&gt;

&lt;p&gt;Among all the capabilities, &lt;strong&gt;Distributed Tracing&lt;/strong&gt; was the feature that interested me the most.&lt;/p&gt;

&lt;p&gt;When we build AI applications, a single request rarely consists of just one API call.&lt;/p&gt;

&lt;p&gt;Instead, it usually looks something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Request
      │
      ▼
Authentication
      │
      ▼
Retrieve Context
      │
      ▼
Vector Database
      │
      ▼
     LLM
      │
      ▼
External Tool
      │
      ▼
Final Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without tracing, developers only know the total response time.&lt;/p&gt;

&lt;p&gt;With distributed tracing, every step appears as an individual span.&lt;/p&gt;

&lt;p&gt;For example, imagine an AI assistant takes &lt;strong&gt;10 seconds&lt;/strong&gt; to answer.&lt;/p&gt;

&lt;p&gt;Tracing could reveal something like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Authentication&lt;/td&gt;
&lt;td&gt;40 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vector Search&lt;/td&gt;
&lt;td&gt;320 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLM Processing&lt;/td&gt;
&lt;td&gt;6.2 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External API&lt;/td&gt;
&lt;td&gt;2.8 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Response Formatting&lt;/td&gt;
&lt;td&gt;120 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Instead of guessing where the slowdown happened, developers immediately know which component needs attention.&lt;/p&gt;

&lt;p&gt;This made me appreciate why distributed tracing is considered one of the most powerful debugging tools for modern applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Observability: More Than Traditional Monitoring
&lt;/h2&gt;

&lt;p&gt;Traditional monitoring tells us whether servers are healthy.&lt;/p&gt;

&lt;p&gt;AI observability answers a different question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"How well is my AI application actually performing?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While exploring SigNoz, I found it interesting that AI-specific metrics can also be monitored.&lt;/p&gt;

&lt;p&gt;These include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt execution time&lt;/li&gt;
&lt;li&gt;LLM response latency&lt;/li&gt;
&lt;li&gt;Token usage&lt;/li&gt;
&lt;li&gt;Error rates&lt;/li&gt;
&lt;li&gt;Tool invocation&lt;/li&gt;
&lt;li&gt;Request success rate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These metrics become especially useful when building AI agents because performance depends on much more than server resources.&lt;/p&gt;

&lt;p&gt;A perfectly healthy server can still produce a slow AI application if prompt execution, vector retrieval, or external APIs become bottlenecks.&lt;/p&gt;

&lt;p&gt;Having visibility into these components makes troubleshooting significantly easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Key Takeaway
&lt;/h2&gt;

&lt;p&gt;The biggest lesson I learned while exploring SigNoz is that observability is not just about collecting logs.&lt;/p&gt;

&lt;p&gt;It is about understanding the complete story behind every request.&lt;/p&gt;

&lt;p&gt;Logs tell you &lt;strong&gt;what happened&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Metrics tell you &lt;strong&gt;how often it happens&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Distributed traces show &lt;strong&gt;exactly where it happened&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When all three are available together, debugging becomes much faster and more reliable.&lt;/p&gt;

&lt;p&gt;That, in my opinion, is what makes SigNoz particularly valuable for developers building modern AI-powered applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In the final section, I'll share how LLM observability helps monitor token usage and costs, discuss dashboards and alerts, compare SigNoz with other observability platforms, and conclude with my overall thoughts after exploring the platform.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  LLM Observability: A Feature Every AI Developer Should Understand
&lt;/h2&gt;

&lt;p&gt;As AI applications continue to evolve, one thing became very clear to me while exploring SigNoz—monitoring an AI application is very different from monitoring a traditional web application.&lt;/p&gt;

&lt;p&gt;For a normal application, checking CPU usage, memory utilization, request count, or response time is often enough.&lt;/p&gt;

&lt;p&gt;But AI applications introduce completely new variables.&lt;/p&gt;

&lt;p&gt;Questions like these become much more important:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why is one prompt taking twice as long as another?&lt;/li&gt;
&lt;li&gt;Which model is consuming the most tokens?&lt;/li&gt;
&lt;li&gt;Which tool call failed?&lt;/li&gt;
&lt;li&gt;Why did today's AI cost suddenly increase?&lt;/li&gt;
&lt;li&gt;Which step in the workflow is creating the biggest delay?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are questions that traditional monitoring tools simply weren't designed to answer.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;LLM Observability&lt;/strong&gt; becomes incredibly valuable.&lt;/p&gt;

&lt;p&gt;Instead of treating an LLM call as just another API request, SigNoz provides visibility into AI-specific metrics that actually matter.&lt;/p&gt;

&lt;p&gt;Some examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt execution time&lt;/li&gt;
&lt;li&gt;Response generation latency&lt;/li&gt;
&lt;li&gt;Token usage&lt;/li&gt;
&lt;li&gt;Model response time&lt;/li&gt;
&lt;li&gt;Request failures&lt;/li&gt;
&lt;li&gt;Tool invocation&lt;/li&gt;
&lt;li&gt;End-to-end request traces&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These insights make it much easier to understand how an AI application behaves in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Token Monitoring Matters
&lt;/h2&gt;

&lt;p&gt;One topic I hadn't thought much about before exploring AI observability was &lt;strong&gt;token usage&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every interaction with a language model consumes tokens.&lt;/p&gt;

&lt;p&gt;A longer prompt or response means higher inference cost.&lt;/p&gt;

&lt;p&gt;As an application scales, even small increases in token usage can have a noticeable impact on monthly expenses.&lt;/p&gt;

&lt;p&gt;Instead of waiting for billing reports, developers can monitor token trends in real time and identify inefficient prompts or unusually expensive requests.&lt;/p&gt;

&lt;p&gt;For teams deploying AI products in production, this kind of visibility can be just as important as monitoring latency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dashboards That Make Monitoring Easier
&lt;/h2&gt;

&lt;p&gt;Another feature I liked was the flexibility of dashboards.&lt;/p&gt;

&lt;p&gt;Instead of displaying only infrastructure metrics, dashboards can combine application health, traces, AI metrics, and performance graphs in one place.&lt;/p&gt;

&lt;p&gt;For an AI application, a useful dashboard might include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Average response latency&lt;/li&gt;
&lt;li&gt;Request throughput&lt;/li&gt;
&lt;li&gt;Error rate&lt;/li&gt;
&lt;li&gt;Token consumption&lt;/li&gt;
&lt;li&gt;Slowest endpoints&lt;/li&gt;
&lt;li&gt;LLM latency&lt;/li&gt;
&lt;li&gt;Tool execution time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Having all of these metrics together makes it much easier to understand the overall health of an application.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Figure 2:&lt;/strong&gt; &lt;em&gt;Dashboard showing request latency, throughput, traces, and application metrics.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9tc41n1vbywcp7ae3axy.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9tc41n1vbywcp7ae3axy.png" alt="Dashboard showing request latency, throughput, traces, and application metrics." width="799" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-Time Alerts
&lt;/h2&gt;

&lt;p&gt;Monitoring dashboards are helpful, but someone has to be looking at them.&lt;/p&gt;

&lt;p&gt;This is where alerts become useful.&lt;/p&gt;

&lt;p&gt;With SigNoz, developers can configure alerts for situations such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High response latency&lt;/li&gt;
&lt;li&gt;Increased error rate&lt;/li&gt;
&lt;li&gt;Unexpected token spikes&lt;/li&gt;
&lt;li&gt;Database failures&lt;/li&gt;
&lt;li&gt;Slow external APIs&lt;/li&gt;
&lt;li&gt;Service downtime&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than discovering problems through user complaints, teams can identify issues much earlier and respond before they become major incidents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparing SigNoz with Other Platforms
&lt;/h2&gt;

&lt;p&gt;While researching observability tools, I also came across platforms like Datadog, New Relic, and Grafana.&lt;/p&gt;

&lt;p&gt;Each has its own strengths, but one aspect that stood out about SigNoz is its focus on open standards.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;SigNoz&lt;/th&gt;
&lt;th&gt;Typical Proprietary Platform&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Open Source&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Usually No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenTelemetry Native&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-hosting&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unified Logs, Metrics &amp;amp; Traces&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Observability&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Depends on Plan&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For developers who value transparency, flexibility, and avoiding vendor lock-in, this is a significant advantage.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Overall Takeaway
&lt;/h2&gt;

&lt;p&gt;Exploring SigNoz changed how I think about monitoring modern software.&lt;/p&gt;

&lt;p&gt;Earlier, I viewed monitoring as something you check only after an application breaks.&lt;/p&gt;

&lt;p&gt;Now I understand that observability is about continuously understanding &lt;strong&gt;how&lt;/strong&gt; an application behaves and &lt;strong&gt;why&lt;/strong&gt; something goes wrong.&lt;/p&gt;

&lt;p&gt;The feature I found most useful was &lt;strong&gt;Distributed Tracing&lt;/strong&gt;, because it makes debugging much more visual and intuitive.&lt;/p&gt;

&lt;p&gt;I also found AI observability particularly interesting since AI applications introduce challenges—like token usage, prompt performance, and model latency—that traditional monitoring tools were never designed to solve.&lt;/p&gt;

&lt;p&gt;Although I explored SigNoz as part of preparing for the &lt;strong&gt;Agents of SigNoz Hackathon&lt;/strong&gt;, it gave me a much better understanding of why observability is becoming an essential part of building production-ready AI applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Artificial Intelligence is changing how we build software, but it also introduces new debugging and monitoring challenges.&lt;/p&gt;

&lt;p&gt;After spending time exploring SigNoz, I now have a much clearer understanding of why observability is more than just logs and dashboards. Being able to view metrics, traces, logs, alerts, and AI telemetry together provides a much deeper understanding of application behavior.&lt;/p&gt;

&lt;p&gt;If you're planning to build AI agents, chatbots, or any LLM-powered application, I believe learning observability early is just as important as learning the AI frameworks themselves.&lt;/p&gt;

&lt;p&gt;For me, exploring SigNoz wasn't just preparation for a hackathon—it was an opportunity to better understand how production AI systems are monitored, optimized, and maintained.&lt;/p&gt;

&lt;p&gt;I'm excited to apply these learnings while building projects during the Agents of SigNoz Hackathon, and I hope this article helps other developers who are beginning their own observability journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;SigNoz Documentation&lt;/li&gt;
&lt;li&gt;SigNoz GitHub Repository&lt;/li&gt;
&lt;li&gt;OpenTelemetry Documentation&lt;/li&gt;
&lt;li&gt;CNCF OpenTelemetry Project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading! If you're participating in the &lt;strong&gt;Agents of SigNoz Hackathon&lt;/strong&gt;, I highly recommend exploring SigNoz yourself. Even a short hands-on session provides a much better understanding of observability than reading documentation alone, and it's a great way to prepare before building AI applications in the hackathon.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>signoz</category>
      <category>observability</category>
      <category>opentelemetry</category>
    </item>
    <item>
      <title>🚀 Building Two AI-Powered Solutions at HACKHAZARDS '26: VeritasFlow &amp; PermitFlow</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Wed, 15 Jul 2026 14:43:18 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/building-two-ai-powered-solutions-at-hackhazards-26-veritasflow-permitflow-ab9</link>
      <guid>https://dev.to/tanya_garg_5315/building-two-ai-powered-solutions-at-hackhazards-26-veritasflow-permitflow-ab9</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Building Two AI-Powered Solutions at HACKHAZARDS '26: VeritasFlow &amp;amp; PermitFlow
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How our team built two AI-powered solutions—VeritasFlow and PermitFlow—during one of the world's largest community-driven hackathons.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Innovation begins with identifying real-world problems and building technology that creates meaningful impact.&lt;/p&gt;

&lt;p&gt;That belief guided our team throughout &lt;strong&gt;HACKHAZARDS '26&lt;/strong&gt;, a global community-driven buildathon organized by &lt;strong&gt;NAMESPACE&lt;/strong&gt;. Unlike traditional 24- or 48-hour hackathons, HACKHAZARDS gave participants nearly two months to research, design, develop, and refine production-ready solutions instead of rushed prototypes.&lt;/p&gt;

&lt;p&gt;With over &lt;strong&gt;30,000 participants from more than 75 countries&lt;/strong&gt;, the event brought together developers, designers, and innovators to solve meaningful challenges using modern technologies.&lt;/p&gt;

&lt;p&gt;As a team, we challenged ourselves to build solutions for &lt;strong&gt;two completely different problem domains&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;One focused on improving &lt;strong&gt;digital wellbeing and responsible information consumption&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The other focused on transforming &lt;strong&gt;construction permit approvals through AI-powered compliance automation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That journey resulted in two projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧠 &lt;strong&gt;VeritasFlow – AI-Powered Information Diet Coach&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🏗️ &lt;strong&gt;PermitFlow – The Construction Compliance Autopilot&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although they solve different problems, both projects share the same vision:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Building AI that solves real-world problems, not just showcases technology.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🧠 Project 1: VeritasFlow – AI-Powered Information Diet Coach
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;The internet gives us unlimited access to information, but not all information is beneficial.&lt;/p&gt;

&lt;p&gt;Every day people are exposed to endless news articles, social media feeds, videos, and recommendations that often prioritize engagement over quality. This results in information overload, echo chambers, misinformation, and unhealthy digital habits.&lt;/p&gt;

&lt;p&gt;We wanted to build a platform that helps users become more mindful of what they consume online.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Solution
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VeritasFlow&lt;/strong&gt; is an AI-powered Information Diet Coach that analyzes users' content consumption patterns and recommends healthier, more balanced, and more informative content.&lt;/p&gt;

&lt;p&gt;Rather than maximizing screen time, VeritasFlow focuses on improving digital wellbeing through intelligent recommendations and personalized insights.&lt;/p&gt;

&lt;p&gt;Users can understand how they consume information and gradually build healthier digital habits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI-powered content analysis&lt;/li&gt;
&lt;li&gt;Sentiment analysis&lt;/li&gt;
&lt;li&gt;Personalized recommendations&lt;/li&gt;
&lt;li&gt;Article summarization&lt;/li&gt;
&lt;li&gt;Digital wellbeing dashboard&lt;/li&gt;
&lt;li&gt;Information diversity score&lt;/li&gt;
&lt;li&gt;Reading insights&lt;/li&gt;
&lt;li&gt;AI-powered recommendation engine&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technology Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;li&gt;Natural Language Processing (NLP)&lt;/li&gt;
&lt;li&gt;Sentiment Analysis&lt;/li&gt;
&lt;li&gt;Recommendation Engine&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Implementation
&lt;/h2&gt;

&lt;p&gt;The platform processes user content using NLP techniques to identify topics, sentiment, and reading patterns. Based on this analysis, the recommendation engine suggests educational and balanced content while providing personalized insights into users' digital habits.&lt;/p&gt;

&lt;p&gt;Our goal was not to encourage users to spend more time online but to help them spend their time more meaningfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ Project 2: PermitFlow – The Construction Compliance Autopilot
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Construction permits remain one of the biggest bottlenecks in urban development.&lt;/p&gt;

&lt;p&gt;Contractors often spend weeks navigating complicated zoning regulations, submitting repetitive paperwork, correcting applications, and waiting for approvals.&lt;/p&gt;

&lt;p&gt;Even a single missing document can delay an entire construction project.&lt;/p&gt;

&lt;p&gt;We wanted to simplify this complex process using Artificial Intelligence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Solution
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;PermitFlow&lt;/strong&gt; is an AI-powered construction compliance platform that streamlines the permit approval workflow for contractors, architects, municipal officers, and administrators.&lt;/p&gt;

&lt;p&gt;Users upload project documents, and the platform automatically analyzes compliance requirements, detects missing information, assists with documentation, and guides applicants throughout the approval process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI Blueprint Analysis&lt;/li&gt;
&lt;li&gt;OCR-based document extraction&lt;/li&gt;
&lt;li&gt;Compliance Gap Detection&lt;/li&gt;
&lt;li&gt;Government Form Autofill&lt;/li&gt;
&lt;li&gt;Permit Status Tracking&lt;/li&gt;
&lt;li&gt;Municipal Officer Dashboard&lt;/li&gt;
&lt;li&gt;Admin Analytics Dashboard&lt;/li&gt;
&lt;li&gt;AI Compliance Assistant&lt;/li&gt;
&lt;li&gt;Multilingual Support&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technology Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;li&gt;OCR&lt;/li&gt;
&lt;li&gt;JWT Authentication&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sarvam AI&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How We Used Sarvam AI
&lt;/h2&gt;

&lt;p&gt;PermitFlow was also built for the &lt;strong&gt;Sarvam AI Track&lt;/strong&gt;, where Sarvam AI became a key part of our solution.&lt;/p&gt;

&lt;p&gt;We integrated Sarvam AI to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build a multilingual AI compliance assistant.&lt;/li&gt;
&lt;li&gt;Answer user queries related to zoning rules, FAR limits, setbacks, Fire NOCs, and municipal regulations.&lt;/li&gt;
&lt;li&gt;Translate compliance guidance into multiple Indian languages.&lt;/li&gt;
&lt;li&gt;Enable voice-based interactions for easier accessibility.&lt;/li&gt;
&lt;li&gt;Simplify complex legal and technical regulations into easy-to-understand explanations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By integrating Sarvam AI, PermitFlow became more accessible, user-friendly, and practical for contractors, architects, and government officials across India.&lt;/p&gt;

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

&lt;p&gt;Although both projects belonged to different industries, they presented equally interesting engineering challenges.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;VeritasFlow&lt;/strong&gt;, designing recommendations that promote healthier information consumption rather than maximizing engagement required careful planning and experimentation.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;PermitFlow&lt;/strong&gt;, understanding complex construction regulations and transforming them into a simple AI-assisted workflow required thoughtful product design and user-centric development.&lt;/p&gt;

&lt;p&gt;Throughout the hackathon, we continuously refined our UI, backend architecture, and AI workflows to create solutions that were both practical and intuitive.&lt;/p&gt;

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

&lt;p&gt;HACKHAZARDS '26 taught us that successful AI applications begin with understanding real user problems.&lt;/p&gt;

&lt;p&gt;Beyond writing code, we learned the importance of product thinking, collaboration, user experience, and responsible AI implementation.&lt;/p&gt;

&lt;p&gt;Working on two completely different projects also strengthened our understanding of full-stack development, document intelligence, recommendation systems, workflow automation, and AI integration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Both projects have exciting possibilities for future development.&lt;/p&gt;

&lt;h3&gt;
  
  
  VeritasFlow
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Browser Extension&lt;/li&gt;
&lt;li&gt;Fake News Detection&lt;/li&gt;
&lt;li&gt;AI Wellness Score&lt;/li&gt;
&lt;li&gt;Social Media Feed Analysis&lt;/li&gt;
&lt;li&gt;Mobile Application&lt;/li&gt;
&lt;li&gt;Advanced Recommendation Models&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  PermitFlow
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;GIS-based Zoning Verification&lt;/li&gt;
&lt;li&gt;BIM/CAD Blueprint Support&lt;/li&gt;
&lt;li&gt;Real-time Municipal API Integration&lt;/li&gt;
&lt;li&gt;Predictive Approval Analytics&lt;/li&gt;
&lt;li&gt;Digital Signature Support&lt;/li&gt;
&lt;li&gt;Inspection Scheduling&lt;/li&gt;
&lt;li&gt;Mobile App for Field Officers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;HACKHAZARDS '26 was much more than a hackathon—it was an incredible learning journey.&lt;/p&gt;

&lt;p&gt;It gave us the opportunity to transform ideas into working products, collaborate as a team, and explore how AI can solve meaningful problems across entirely different industries.&lt;/p&gt;

&lt;p&gt;From promoting healthier digital habits with &lt;strong&gt;VeritasFlow&lt;/strong&gt; to simplifying construction compliance through &lt;strong&gt;PermitFlow&lt;/strong&gt; and &lt;strong&gt;Sarvam AI&lt;/strong&gt;, this journey reinforced one important belief:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Technology creates the greatest impact when it solves real problems for real people.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A heartfelt thank you to &lt;strong&gt;NAMESPACE&lt;/strong&gt;, the mentors, organizers, and partner communities for creating such an amazing platform for builders around the world.&lt;/p&gt;

&lt;p&gt;We are excited to continue improving both projects beyond the hackathon and turn them into solutions that create real-world impact.&lt;/p&gt;

&lt;h2&gt;
  
  
  👥 Team
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prerna&lt;/strong&gt; — Team Lead&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tanya Garg&lt;/strong&gt; — AI &amp;amp; Backend Developer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kritika Maurya&lt;/strong&gt; — Frontend &amp;amp; Design Lead&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Thanks for reading!&lt;/strong&gt; If you'd like to connect, share feedback, or discuss these projects, feel free to reach out. Happy building! 🚀&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>buildinpublic</category>
      <category>hackathon</category>
    </item>
    <item>
      <title>Building DetectiveAI: Giving Crime Investigation an AI That Never Forgets with Cognee</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Sun, 05 Jul 2026 17:47:08 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/building-detectiveai-giving-crime-investigation-an-ai-that-never-forgets-with-cognee-3bjk</link>
      <guid>https://dev.to/tanya_garg_5315/building-detectiveai-giving-crime-investigation-an-ai-that-never-forgets-with-cognee-3bjk</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;One of the biggest limitations of modern AI assistants is memory. Every new conversation starts almost from scratch, making it difficult to work on long-running investigations or complex cases.&lt;/p&gt;

&lt;p&gt;For my hackathon project, I wanted to solve exactly this problem.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;DetectiveAI&lt;/strong&gt;, an AI-powered crime investigation assistant that uses &lt;strong&gt;Cognee Cloud&lt;/strong&gt; as its persistent memory layer. Instead of forgetting evidence after every session, DetectiveAI stores, organizes, and recalls investigation data whenever it is needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Imagine a detective investigating a case over several days.&lt;/p&gt;

&lt;p&gt;New evidence keeps arriving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Witness statements&lt;/li&gt;
&lt;li&gt;CCTV footage&lt;/li&gt;
&lt;li&gt;Crime scene observations&lt;/li&gt;
&lt;li&gt;Timelines&lt;/li&gt;
&lt;li&gt;Suspect information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Traditional AI can summarize information, but it doesn't naturally remember and connect all of these details across sessions.&lt;/p&gt;

&lt;p&gt;This is where persistent memory becomes essential.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Solution
&lt;/h2&gt;

&lt;p&gt;DetectiveAI combines a simple investigation workflow with Cognee Cloud.&lt;/p&gt;

&lt;p&gt;The investigator can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a crime case&lt;/li&gt;
&lt;li&gt;Add evidence&lt;/li&gt;
&lt;li&gt;Store investigation details&lt;/li&gt;
&lt;li&gt;Search previous information&lt;/li&gt;
&lt;li&gt;Ask natural language questions&lt;/li&gt;
&lt;li&gt;Generate investigation summaries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because the information is stored inside Cognee, the AI can retrieve relevant context instead of depending only on the current prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Cognee Powers DetectiveAI
&lt;/h2&gt;

&lt;p&gt;Cognee acts as the memory layer for my application.&lt;/p&gt;

&lt;p&gt;Each investigation is stored as structured knowledge rather than temporary chat history.&lt;/p&gt;

&lt;p&gt;When the investigator asks questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who is the suspect?&lt;/li&gt;
&lt;li&gt;Summarize this investigation.&lt;/li&gt;
&lt;li&gt;What relationships exist between the evidence?&lt;/li&gt;
&lt;li&gt;Explain the timeline.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cognee retrieves the most relevant information from the stored investigation memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create Case
&lt;/h3&gt;

&lt;p&gt;Start a new investigation with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Case name&lt;/li&gt;
&lt;li&gt;Location&lt;/li&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;Officer name&lt;/li&gt;
&lt;li&gt;Initial description&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Add Evidence
&lt;/h3&gt;

&lt;p&gt;Store investigation evidence including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Witness statements&lt;/li&gt;
&lt;li&gt;CCTV observations&lt;/li&gt;
&lt;li&gt;Timeline events&lt;/li&gt;
&lt;li&gt;Physical evidence&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Investigation Chat
&lt;/h3&gt;

&lt;p&gt;Interact with the investigation using natural language instead of manually searching documents.&lt;/p&gt;

&lt;h3&gt;
  
  
  Persistent Memory
&lt;/h3&gt;

&lt;p&gt;Unlike traditional AI assistants, DetectiveAI remembers previously stored information and can reuse it across future sessions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Investigation Reports
&lt;/h3&gt;

&lt;p&gt;Generate structured summaries of the investigation for quick review.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Cognee Cloud&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;AI Language Model&lt;/li&gt;
&lt;li&gt;Modern Web Interface&lt;/li&gt;
&lt;/ul&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp1enrjppkzt3w87m786v.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp1enrjppkzt3w87m786v.png" alt=" " width="799" height="353"&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F388xw39u5oqmpt1nmiuh.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F388xw39u5oqmpt1nmiuh.png" alt=" " width="800" height="418"&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsgxz3t4wxx0am0kmqtez.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsgxz3t4wxx0am0kmqtez.png" alt=" " width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;This project taught me that AI memory is much more than saving chat history.&lt;/p&gt;

&lt;p&gt;Persistent memory allows AI systems to continuously build knowledge, connect related information, and provide more reliable answers over time.&lt;/p&gt;

&lt;p&gt;Cognee made it easy to explore this concept while building a practical real-world application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Multi-case investigations&lt;/li&gt;
&lt;li&gt;Image and PDF evidence analysis&lt;/li&gt;
&lt;li&gt;Voice-based investigation assistant&lt;/li&gt;
&lt;li&gt;Collaborative investigations for multiple officers&lt;/li&gt;
&lt;li&gt;Automatic contradiction detection&lt;/li&gt;
&lt;li&gt;Risk scoring for suspects&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;DetectiveAI demonstrates how persistent memory can transform AI assistants from simple chatbots into long-term intelligent investigation systems.&lt;/p&gt;

&lt;p&gt;With Cognee Cloud, our AI doesn't just answer questions—it remembers the investigation.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>cognee</category>
      <category>developer</category>
    </item>
    <item>
      <title>CrisisIQ – AI-Powered Business Risk Intelligence using Gemma 4</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Fri, 22 May 2026 18:01:53 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/crisisiq-ai-powered-business-risk-intelligence-using-gemma-4-44lb</link>
      <guid>https://dev.to/tanya_garg_5315/crisisiq-ai-powered-business-risk-intelligence-using-gemma-4-44lb</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-gemma-2026-05-06"&gt;Gemma 4 Challenge: Build with Gemma 4&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  CrisisIQ – AI-Powered Crisis Intelligence &amp;amp; Business Risk Analysis Dashboard
&lt;/h2&gt;

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

&lt;p&gt;CrisisIQ is an AI-powered business intelligence dashboard that analyzes how global crises impact companies, industries, and supply chains in real time.&lt;/p&gt;

&lt;p&gt;Modern companies operate in highly interconnected ecosystems where geopolitical conflicts, cyberattacks, economic instability, sanctions, natural disasters, and trade disruptions can rapidly affect operations worldwide. CrisisIQ helps users understand these impacts using AI-driven analysis and contextual reasoning.&lt;/p&gt;

&lt;p&gt;The platform allows users to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;analyze company exposure during crises&lt;/li&gt;
&lt;li&gt;understand operational and financial risks&lt;/li&gt;
&lt;li&gt;simulate business disruption scenarios&lt;/li&gt;
&lt;li&gt;generate AI-powered mitigation strategies&lt;/li&gt;
&lt;li&gt;summarize complex global events into actionable insights&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of manually reading lengthy reports and news articles, users receive structured AI-generated intelligence instantly.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Features Demonstrated
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Company risk analysis dashboard&lt;/li&gt;
&lt;li&gt;Crisis impact summarization&lt;/li&gt;
&lt;li&gt;AI-generated mitigation strategies&lt;/li&gt;
&lt;li&gt;Scenario simulation&lt;/li&gt;
&lt;li&gt;Industry-wise risk comparison&lt;/li&gt;
&lt;li&gt;Supply chain disruption analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Demo Video
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1kMt-lclhDu2YvFDQi1mgjPbBoagkEouq/view?usp=drive_link" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1kMt-lclhDu2YvFDQi1mgjPbBoagkEouq/view?usp=drive_link&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Live Project
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://crisisiq-ai-business-risk-intelligence-using-gemma-4-edaputmky.streamlit.app/" rel="noopener noreferrer"&gt;https://crisisiq-ai-business-risk-intelligence-using-gemma-4-edaputmky.streamlit.app/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&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%2Fy1or9yg3q1lb26fjb9lw.jpeg" 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%2Fy1or9yg3q1lb26fjb9lw.jpeg" alt=" " width="800" height="343"&gt;&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%2Fk86bbj6ic3l6vgd3yee5.jpeg" 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%2Fk86bbj6ic3l6vgd3yee5.jpeg" alt=" " width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  GitHub Repository
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/Tanya-garg10/CrisisIQ-AI-Business-Risk-Intelligence-using-Gemma-4.git" rel="noopener noreferrer"&gt;https://github.com/Tanya-garg10/CrisisIQ-AI-Business-Risk-Intelligence-using-Gemma-4.git&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Streamlit&lt;/li&gt;
&lt;li&gt;Gemma 4&lt;/li&gt;
&lt;li&gt;Pandas&lt;/li&gt;
&lt;li&gt;Plotly&lt;/li&gt;
&lt;li&gt;OpenRouter / Google AI Studio API&lt;/li&gt;
&lt;li&gt;News APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How I Used Gemma 4
&lt;/h2&gt;

&lt;p&gt;Gemma 4 powers the core reasoning engine of CrisisIQ.&lt;/p&gt;

&lt;p&gt;The application collects company data, industry context, and crisis-related information, then uses Gemma 4 to generate intelligent business impact analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Model Used
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Gemma 4 31B Dense&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I Chose the 31B Dense Model
&lt;/h3&gt;

&lt;p&gt;I intentionally selected the 31B Dense model because the project depends heavily on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;long-context understanding&lt;/li&gt;
&lt;li&gt;analytical reasoning&lt;/li&gt;
&lt;li&gt;structured business analysis&lt;/li&gt;
&lt;li&gt;multi-factor risk interpretation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The larger context window allowed the model to process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lengthy crisis reports&lt;/li&gt;
&lt;li&gt;multiple company profiles&lt;/li&gt;
&lt;li&gt;supply chain dependencies&lt;/li&gt;
&lt;li&gt;geopolitical developments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This made the 31B Dense model the ideal choice for generating detailed and reliable business intelligence insights.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Gemma 4 Powers the System
&lt;/h2&gt;

&lt;p&gt;Gemma 4 analyzes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;crisis events&lt;/li&gt;
&lt;li&gt;company operations&lt;/li&gt;
&lt;li&gt;industry dependencies&lt;/li&gt;
&lt;li&gt;supply chain vulnerabilities&lt;/li&gt;
&lt;li&gt;financial exposure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model then generates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;risk assessments&lt;/li&gt;
&lt;li&gt;operational impact summaries&lt;/li&gt;
&lt;li&gt;mitigation recommendations&lt;/li&gt;
&lt;li&gt;scenario-based predictions&lt;/li&gt;
&lt;li&gt;executive-level insights&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example Output
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;“The ongoing geopolitical conflict may significantly disrupt semiconductor supply chains affecting manufacturing timelines and increasing operational costs for automotive companies dependent on Asian suppliers.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The system transforms raw crisis information into understandable strategic intelligence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AI Risk Scoring
&lt;/h3&gt;

&lt;p&gt;Generates dynamic company risk scores based on current events.&lt;/p&gt;

&lt;h3&gt;
  
  
  Crisis Summarization
&lt;/h3&gt;

&lt;p&gt;Converts complex news and reports into concise business insights.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario Simulation
&lt;/h3&gt;

&lt;p&gt;Allows users to test hypothetical crisis situations and predict business outcomes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Supply Chain Intelligence
&lt;/h3&gt;

&lt;p&gt;Identifies vulnerable operational dependencies and potential disruption points.&lt;/p&gt;

&lt;h3&gt;
  
  
  Executive Insights
&lt;/h3&gt;

&lt;p&gt;Produces human-readable strategic recommendations for decision-making.&lt;/p&gt;

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

&lt;p&gt;One of the main challenges was designing prompts that produced structured, analytical responses instead of generic summaries.&lt;/p&gt;

&lt;p&gt;Another challenge was handling large volumes of contextual information while maintaining coherent reasoning and fast response times.&lt;/p&gt;

&lt;p&gt;Balancing accuracy, readability, and practical usefulness required significant prompt engineering and response optimization.&lt;/p&gt;

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

&lt;p&gt;Through this project, I gained deeper experience in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI-powered reasoning systems&lt;/li&gt;
&lt;li&gt;long-context prompt engineering&lt;/li&gt;
&lt;li&gt;business intelligence workflows&lt;/li&gt;
&lt;li&gt;risk analysis pipelines&lt;/li&gt;
&lt;li&gt;dashboard development&lt;/li&gt;
&lt;li&gt;integrating LLMs into analytical applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also learned how powerful open models like Gemma 4 can be for enterprise-style AI applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;Planned future enhancements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;real-time live news integration&lt;/li&gt;
&lt;li&gt;predictive trend forecasting&lt;/li&gt;
&lt;li&gt;interactive crisis maps&lt;/li&gt;
&lt;li&gt;AI-generated financial impact estimation&lt;/li&gt;
&lt;li&gt;multilingual analysis support&lt;/li&gt;
&lt;li&gt;collaborative enterprise dashboards&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;CrisisIQ demonstrates how AI can transform overwhelming global information into actionable strategic intelligence.&lt;/p&gt;

&lt;p&gt;By combining real-world crisis data with the reasoning capabilities of Gemma 4, the platform helps businesses better understand risks, prepare for disruptions, and make informed decisions faster.&lt;/p&gt;

&lt;p&gt;This project highlights the growing potential of open AI models in enterprise intelligence and decision-support systems.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
    </item>
    <item>
      <title>Building a Smart Environmental Monitoring System with Google Cloud (Inspired by NEXT ‘26)</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Thu, 23 Apr 2026 05:13:43 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/building-a-smart-environmental-monitoring-system-with-google-cloud-inspired-by-next-26-4263</link>
      <guid>https://dev.to/tanya_garg_5315/building-a-smart-environmental-monitoring-system-with-google-cloud-inspired-by-next-26-4263</guid>
      <description>&lt;h2&gt;
  
  
  Building a Smart Environmental Monitoring System with Google Cloud (Inspired by NEXT ‘26)
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-cloud-next-2026-04-22"&gt;Google Cloud NEXT Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 Why Google Cloud NEXT ‘26 Caught My Attention
&lt;/h2&gt;

&lt;p&gt;Every year, Google Cloud NEXT brings new ideas, but this time what stood out to me was the strong push toward &lt;strong&gt;real-time data processing, AI integration, and scalable cloud-native systems&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;As someone working on IoT + web-based systems, I was especially interested in how cloud tools can handle &lt;strong&gt;live sensor data efficiently&lt;/strong&gt; and make it useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 The Idea: Smart Environmental Monitoring System
&lt;/h2&gt;

&lt;p&gt;Inspired by the announcements around cloud scalability and developer tools, I decided to explore a simple but practical use case:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A system that monitors &lt;strong&gt;temperature, CO₂ levels, and soil moisture in real time&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This kind of system can be useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smart agriculture 🌱&lt;/li&gt;
&lt;li&gt;Indoor air quality monitoring 🏠&lt;/li&gt;
&lt;li&gt;Climate-aware applications 🌍&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛠️ Tech Stack I Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Raspberry Pi&lt;/strong&gt; → Collect sensor data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Django (Backend)&lt;/strong&gt; → Handle APIs &amp;amp; data processing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React.js (Frontend)&lt;/strong&gt; → Display real-time dashboard&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP Protocol&lt;/strong&gt; → Send live sensor data&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Google Cloud (Conceptual Integration)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud Run / App Engine (deployment ideas)&lt;/li&gt;
&lt;li&gt;Cloud Storage / Firestore (data handling)&lt;/li&gt;
&lt;li&gt;AI/ML possibilities for predictions&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

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

&lt;ol&gt;
&lt;li&gt;Sensors connected to Raspberry Pi collect data&lt;/li&gt;
&lt;li&gt;Data is sent via HTTP to a Django backend&lt;/li&gt;
&lt;li&gt;Backend processes and stores the data&lt;/li&gt;
&lt;li&gt;React dashboard displays it in real time&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🔍 What I Learned from NEXT ‘26
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Cloud Makes Real-Time Systems Scalable
&lt;/h3&gt;

&lt;p&gt;Before cloud integration, systems like this are limited locally.&lt;br&gt;
With Google Cloud, this can scale to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thousands of devices&lt;/li&gt;
&lt;li&gt;Multiple locations&lt;/li&gt;
&lt;li&gt;Real-time analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. AI Integration is the Next Step
&lt;/h3&gt;

&lt;p&gt;The real power is not just collecting data, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Predicting trends&lt;/li&gt;
&lt;li&gt;Detecting anomalies&lt;/li&gt;
&lt;li&gt;Automating alerts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Predict soil dryness before it happens&lt;/li&gt;
&lt;li&gt;Alert when CO₂ levels become unsafe&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Developer Experience is Improving
&lt;/h3&gt;

&lt;p&gt;One key takeaway from NEXT ‘26 is how tools are becoming:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easier to deploy&lt;/li&gt;
&lt;li&gt;More integrated&lt;/li&gt;
&lt;li&gt;Faster to build with&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This reduces the gap between &lt;strong&gt;idea → prototype → production&lt;/strong&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%2Fg56wolqcx5k9qs5jsdwj.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%2Fg56wolqcx5k9qs5jsdwj.png" alt=" " width="800" height="533"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  🤔 My Honest Take
&lt;/h2&gt;

&lt;p&gt;While Google Cloud offers powerful tools, beginners might still face:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initial setup complexity&lt;/li&gt;
&lt;li&gt;Understanding pricing&lt;/li&gt;
&lt;li&gt;Choosing the right service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, once you get past that, the ecosystem is incredibly powerful.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 What I’d Do Next
&lt;/h2&gt;

&lt;p&gt;If I extend this project using Google Cloud:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploy backend on &lt;strong&gt;Cloud Run&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Store real-time data in &lt;strong&gt;Firestore&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;AI models&lt;/strong&gt; for prediction&lt;/li&gt;
&lt;li&gt;Add alerts using cloud functions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📌 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Google Cloud NEXT ‘26 reinforced one thing for me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The future is not just about building apps — it’s about building &lt;strong&gt;intelligent, scalable systems&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Even a simple IoT project can become powerful when combined with cloud + AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  💬 What About You?
&lt;/h2&gt;

&lt;p&gt;Did you explore anything from Google Cloud NEXT ‘26?&lt;br&gt;
What feature excited you the most?&lt;/p&gt;

&lt;p&gt;Let’s discuss 👇&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>cloudnextchallenge</category>
      <category>googlecloud</category>
      <category>iot</category>
    </item>
    <item>
      <title>🤡 I Built an AI That Gives the Worst Advice Ever (On Purpose)</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Fri, 10 Apr 2026 10:37:27 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/i-built-an-ai-that-gives-the-worst-advice-ever-on-purpose-17db</link>
      <guid>https://dev.to/tanya_garg_5315/i-built-an-ai-that-gives-the-worst-advice-ever-on-purpose-17db</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the DEV April Fools Challenge&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built an AI-powered web app called &lt;strong&gt;“Worst Advisor Ever”&lt;/strong&gt; — an application that gives you the most terrible, chaotic, and absolutely useless advice possible.&lt;/p&gt;

&lt;p&gt;Instead of helping you make better decisions, this app confidently suggests the worst possible choices 😭&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input: “Should I study for my exam?”
Output: “No. Knowledge is temporary, vibes are forever.”&lt;/li&gt;
&lt;li&gt;Input: “Should I save money?”
Output: “Invest everything in imaginary stocks.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal? Make users laugh, question life choices, and regret asking for advice in the first place.&lt;/p&gt;

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

&lt;p&gt;👉 Live Demo: &lt;a href="https://hdtkpyfikfrfaoeteddsai.streamlit.app/" rel="noopener noreferrer"&gt;https://hdtkpyfikfrfaoeteddsai.streamlit.app/&lt;/a&gt;&lt;br&gt;
👉 Video Demo: &lt;a href="https://youtu.be/3QxcMWa5EZc" rel="noopener noreferrer"&gt;https://youtu.be/3QxcMWa5EZc&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;👉 GitHub Repository: &lt;a href="https://github.com/Tanya-garg10/Worst-Advisor-Ever-.git" rel="noopener noreferrer"&gt;https://github.com/Tanya-garg10/Worst-Advisor-Ever-.git&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I built this project using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React.js (for an interactive UI)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Django / Node.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Integration:&lt;/strong&gt; Prompt-based AI that is intentionally designed to generate the &lt;em&gt;worst advice possible&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling:&lt;/strong&gt; CSS (with a playful and chaotic UI to match the theme)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core idea was prompt engineering:&lt;br&gt;
Instead of optimizing for correctness, I optimized for &lt;em&gt;maximum nonsense and humor&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;p&gt;🏆 &lt;strong&gt;Best Google AI Usage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I used AI creatively and unconventionally — not to solve problems, but to make them worse 😄&lt;/p&gt;

&lt;p&gt;The system prompt was designed to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always give bad advice&lt;/li&gt;
&lt;li&gt;Sound confident (even when completely wrong)&lt;/li&gt;
&lt;li&gt;Be funny and unpredictable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This flips the usual use of AI on its head, making it intentionally useless but highly entertaining.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building something useless was surprisingly refreshing.&lt;/p&gt;

&lt;p&gt;In a world where everything needs to be productive, optimized, and scalable, this project celebrates chaos, humor, and creativity.&lt;/p&gt;

&lt;p&gt;Sometimes, the best ideas are the ones that make absolutely no sense.&lt;/p&gt;

&lt;p&gt;⚠️ Disclaimer: Please do NOT follow any advice from this app. Seriously.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>418challenge</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Building TeamMind AI: A Project Manager That Learns From the Past</title>
      <dc:creator>Tanya Garg</dc:creator>
      <pubDate>Mon, 23 Mar 2026 06:28:39 +0000</pubDate>
      <link>https://dev.to/tanya_garg_5315/building-teammind-ai-a-project-manager-that-learns-from-the-past-38ec</link>
      <guid>https://dev.to/tanya_garg_5315/building-teammind-ai-a-project-manager-that-learns-from-the-past-38ec</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Hindsight Made Our Project Manager Remember&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Our first assignment logic was embarrassingly simple: match skills, count workload, pick a name.&lt;/p&gt;

&lt;p&gt;It looked fine — until we realized it treated a reliable finisher and a repeat blocker exactly the same.&lt;/p&gt;

&lt;p&gt;That’s when I built &lt;strong&gt;TeamMind AI&lt;/strong&gt; — a project manager that doesn’t just assign tasks, but &lt;em&gt;remembers how your team actually works&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚨 The Problem With Generic Task Assignment
&lt;/h2&gt;

&lt;p&gt;Most project management systems (and even AI tools) assign work based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;skills&lt;/li&gt;
&lt;li&gt;availability&lt;/li&gt;
&lt;li&gt;workload&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On paper, that makes sense.&lt;/p&gt;

&lt;p&gt;But in reality, it ignores something critical:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;delivery behavior&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who consistently finishes tasks?&lt;/li&gt;
&lt;li&gt;Who gets blocked repeatedly?&lt;/li&gt;
&lt;li&gt;What decisions were already made in meetings?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without this context, every sprint starts like the system has amnesia.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 What I Built: TeamMind AI
&lt;/h2&gt;

&lt;p&gt;TeamMind AI is a Streamlit-based application that combines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Team member tracking&lt;/li&gt;
&lt;li&gt;Task assignment&lt;/li&gt;
&lt;li&gt;Meeting notes&lt;/li&gt;
&lt;li&gt;AI-based recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the key difference is:&lt;/p&gt;

&lt;p&gt;👉 It uses a &lt;strong&gt;memory layer powered by Hindsight&lt;/strong&gt; to influence decisions.&lt;/p&gt;

&lt;p&gt;Instead of just generating answers, it &lt;strong&gt;recalls past events&lt;/strong&gt; and uses them to explain recommendations.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 Adding Memory With Hindsight
&lt;/h2&gt;

&lt;p&gt;I integrated the Hindsight system as a memory backend.&lt;/p&gt;

&lt;p&gt;This allowed us to store structured events like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;team members and their skills&lt;/li&gt;
&lt;li&gt;completed tasks&lt;/li&gt;
&lt;li&gt;delayed or blocked work&lt;/li&gt;
&lt;li&gt;meeting decisions&lt;/li&gt;
&lt;li&gt;recurring issues&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each interaction is stored as a memory event, which can later be retrieved when assigning new tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ How It Works (Simplified)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Store memory
&lt;/h3&gt;

&lt;p&gt;Whenever something happens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task completed&lt;/li&gt;
&lt;li&gt;blocker reported&lt;/li&gt;
&lt;li&gt;meeting note added&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We send it to the memory system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Recall memory
&lt;/h3&gt;

&lt;p&gt;When assigning a new task:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;relevant past events are retrieved&lt;/li&gt;
&lt;li&gt;patterns are analyzed&lt;/li&gt;
&lt;li&gt;context is added to the recommendation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 3: Generate recommendation
&lt;/h3&gt;

&lt;p&gt;Now the system doesn’t just say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Assign to Aisha”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Assign to Aisha because she completed similar Streamlit work and has no blocker history, while others faced issues in related tasks.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🔄 Before vs After Memory
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ❌ Before (Generic Assignment)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Based on skills + workload&lt;/li&gt;
&lt;li&gt;No historical awareness&lt;/li&gt;
&lt;li&gt;No explanation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
Aisha is selected simply because she knows Streamlit.&lt;/p&gt;
&lt;h3&gt;
  
  
  ✅ After (Memory-Based Assignment)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Uses past performance&lt;/li&gt;
&lt;li&gt;Considers blockers and delays&lt;/li&gt;
&lt;li&gt;Includes meeting decisions&lt;/li&gt;
&lt;li&gt;Provides explainable output&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
Aisha is selected because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;she completed similar dashboard tasks&lt;/li&gt;
&lt;li&gt;she consistently delivers on time&lt;/li&gt;
&lt;li&gt;other teammates had blocker history in similar work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 This is not just smarter — it’s &lt;em&gt;trustworthy&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  👀 Making Memory Visible
&lt;/h2&gt;

&lt;p&gt;One key lesson I learned:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Memory is useless if users can’t see it working.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So instead of hiding it, we exposed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;recalled memory context&lt;/li&gt;
&lt;li&gt;evidence behind recommendations&lt;/li&gt;
&lt;li&gt;comparison between generic and memory-based suggestions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;transparent&lt;/li&gt;
&lt;li&gt;debuggable&lt;/li&gt;
&lt;li&gt;believable&lt;/li&gt;
&lt;/ul&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%2Fj5kqrmki61eh0t8y9qlj.jpeg" 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%2Fj5kqrmki61eh0t8y9qlj.jpeg" alt="TeamMind UI" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;TeamMind AI interface showing task and team management&lt;/em&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%2Fyx8p9fzhkgci65ibumja.jpeg" 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%2Fyx8p9fzhkgci65ibumja.jpeg" alt=" " width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Comparison between generic and memory-based task assignment&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  ⚠️ Challenges I Faced
&lt;/h2&gt;

&lt;p&gt;This wasn’t just a UI problem.&lt;/p&gt;

&lt;p&gt;The real challenges were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Setting up the memory API&lt;/li&gt;
&lt;li&gt;Handling async memory indexing&lt;/li&gt;
&lt;li&gt;Ensuring recall returns useful context&lt;/li&gt;
&lt;li&gt;Dealing with deployment limitations&lt;/li&gt;
&lt;li&gt;Debugging when memory wasn’t immediately available&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  📌 Key Lessons
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Skills alone are not enough&lt;/li&gt;
&lt;li&gt;Memory should influence decisions, not just store data&lt;/li&gt;
&lt;li&gt;Explainability builds trust&lt;/li&gt;
&lt;li&gt;Visibility of memory is critical&lt;/li&gt;
&lt;li&gt;Past behavior is the best predictor of future performance&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  🚀 Final Thought
&lt;/h2&gt;

&lt;p&gt;Most project management tools track what happened.&lt;/p&gt;

&lt;p&gt;TeamMind AI goes one step further:&lt;/p&gt;

&lt;p&gt;👉 It remembers what happened — and uses that memory to make better decisions.&lt;/p&gt;
&lt;h2&gt;
  
  
  🔗 Useful Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/vectorize-io/hindsight" rel="noopener noreferrer"&gt;https://github.com/vectorize-io/hindsight&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hindsight.vectorize.io/" rel="noopener noreferrer"&gt;https://hindsight.vectorize.io/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vectorize.io/features/agent-memory" rel="noopener noreferrer"&gt;https://vectorize.io/features/agent-memory&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  💬 Closing
&lt;/h2&gt;

&lt;p&gt;If you’re building AI systems:&lt;/p&gt;

&lt;p&gt;Don’t just make them smarter.&lt;br&gt;
Make them remember.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Repo: https://github.com/Tanya-garg10/TeamMind-AI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>ai</category>
      <category>management</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
