<?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: Dhruv Trivedi</title>
    <description>The latest articles on DEV Community by Dhruv Trivedi (@dj2313).</description>
    <link>https://dev.to/dj2313</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%2F3986244%2Ffb959a9b-a8c8-4972-a27d-6d090ac3816a.jpeg</url>
      <title>DEV Community: Dhruv Trivedi</title>
      <link>https://dev.to/dj2313</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dj2313"/>
    <language>en</language>
    <item>
      <title>Beyond the Chatbot: How I’m Engineering an Agentic AI Assistant for Android</title>
      <dc:creator>Dhruv Trivedi</dc:creator>
      <pubDate>Tue, 11 Aug 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/dj2313/beyond-the-chatbot-how-im-engineering-an-agentic-ai-assistant-for-android-2j6e</link>
      <guid>https://dev.to/dj2313/beyond-the-chatbot-how-im-engineering-an-agentic-ai-assistant-for-android-2j6e</guid>
      <description>&lt;p&gt;I Built an AI Assistant for Android — The Hard Part Wasn't the LLM&lt;/p&gt;

&lt;p&gt;Building an AI assistant sounds simple at first.&lt;/p&gt;

&lt;p&gt;User sends a message → LLM processes it → assistant responds.&lt;/p&gt;

&lt;p&gt;But the moment I started thinking beyond a chatbot, that architecture wasn't enough.&lt;/p&gt;

&lt;p&gt;I wanted my Android assistant, FRIDAY, to eventually understand context, remember useful information, access tools, search for current information, interact with Android capabilities, and — most importantly — know when it should not take an action.&lt;/p&gt;

&lt;p&gt;That changed the problem completely.&lt;/p&gt;

&lt;p&gt;The Idea Behind FRIDAY&lt;/p&gt;

&lt;p&gt;FRIDAY is my attempt to explore a simple question:&lt;/p&gt;

&lt;p&gt;«What does it actually take to turn an LLM into a useful personal AI system?»&lt;/p&gt;

&lt;p&gt;I don't want FRIDAY to simply be another interface around an LLM API.&lt;/p&gt;

&lt;p&gt;The system I'm working toward looks more like:&lt;/p&gt;

&lt;p&gt;User Request&lt;br&gt;
↓&lt;br&gt;
Context Processing&lt;br&gt;
↓&lt;br&gt;
Memory Retrieval&lt;br&gt;
↓&lt;br&gt;
Intent + Policy&lt;br&gt;
↓&lt;br&gt;
Tool Decision&lt;br&gt;
↓&lt;br&gt;
LLM / Tool Execution&lt;br&gt;
↓&lt;br&gt;
Permission Check&lt;br&gt;
↓&lt;br&gt;
Action&lt;br&gt;
↓&lt;br&gt;
Memory Update&lt;/p&gt;

&lt;p&gt;The LLM is only one component.&lt;/p&gt;

&lt;p&gt;The interesting engineering happens around it.&lt;/p&gt;

&lt;p&gt;🧠 Memory Before Intelligence&lt;/p&gt;

&lt;p&gt;One of the biggest limitations of a basic chatbot architecture is that every interaction can effectively become a new interaction.&lt;/p&gt;

&lt;p&gt;For an actual assistant, that isn't enough.&lt;/p&gt;

&lt;p&gt;FRIDAY needs different types of context.&lt;/p&gt;

&lt;p&gt;There is information relevant only to the current conversation.&lt;/p&gt;

&lt;p&gt;There is information that may be useful later.&lt;/p&gt;

&lt;p&gt;And there is information that should never be stored unnecessarily.&lt;/p&gt;

&lt;p&gt;So rather than blindly putting everything into a prompt, I'm exploring a memory layer where relevant information can be retrieved only when it is actually needed.&lt;/p&gt;

&lt;p&gt;This introduces another interesting problem:&lt;/p&gt;

&lt;p&gt;How does the system decide what is worth remembering?&lt;/p&gt;

&lt;p&gt;Saving everything isn't memory.&lt;/p&gt;

&lt;p&gt;It's storage.&lt;/p&gt;

&lt;p&gt;Useful memory requires selection, retrieval and forgetting.&lt;/p&gt;

&lt;p&gt;🛠️ Giving the AI Tools&lt;/p&gt;

&lt;p&gt;Answering questions is one thing.&lt;/p&gt;

&lt;p&gt;Taking actions is completely different.&lt;/p&gt;

&lt;p&gt;Imagine asking:&lt;/p&gt;

&lt;p&gt;«“Open Spotify.”»&lt;/p&gt;

&lt;p&gt;The assistant probably doesn't need a powerful LLM call to execute that.&lt;/p&gt;

&lt;p&gt;But consider:&lt;/p&gt;

&lt;p&gt;«“Find something relaxing to play while I'm studying.”»&lt;/p&gt;

&lt;p&gt;Now the system needs to understand intent before selecting an action.&lt;/p&gt;

&lt;p&gt;This is why I'm designing FRIDAY around a tool layer.&lt;/p&gt;

&lt;p&gt;Instead of allowing the model to directly control everything, capabilities can be exposed as specific tools.&lt;/p&gt;

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

&lt;p&gt;Intent → Tool Router → Tool → Result&lt;/p&gt;

&lt;p&gt;The model shouldn't automatically receive unlimited access to the device.&lt;/p&gt;

&lt;p&gt;And that leads to the part I'm particularly interested in.&lt;/p&gt;

&lt;p&gt;🔐 Permission-Aware AI&lt;/p&gt;

&lt;p&gt;Giving an AI agent tools is powerful.&lt;/p&gt;

&lt;p&gt;It's also where things can go wrong.&lt;/p&gt;

&lt;p&gt;Opening an application and sending a message should not necessarily have the same permission level.&lt;/p&gt;

&lt;p&gt;Neither should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reading information&lt;/li&gt;
&lt;li&gt;Searching the internet&lt;/li&gt;
&lt;li&gt;Opening applications&lt;/li&gt;
&lt;li&gt;Creating reminders&lt;/li&gt;
&lt;li&gt;Accessing files&lt;/li&gt;
&lt;li&gt;Sending messages&lt;/li&gt;
&lt;li&gt;Changing device settings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm therefore exploring a permission/policy layer between decision and execution.&lt;/p&gt;

&lt;p&gt;Something like:&lt;/p&gt;

&lt;p&gt;AI proposes action&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Policy evaluates action&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Low risk → Execute&lt;/p&gt;

&lt;p&gt;Sensitive action → Ask user&lt;/p&gt;

&lt;p&gt;Restricted action → Reject&lt;/p&gt;

&lt;p&gt;The goal isn't maximum autonomy.&lt;/p&gt;

&lt;p&gt;The goal is controlled autonomy.&lt;/p&gt;

&lt;p&gt;🌐 When Should FRIDAY Search the Internet?&lt;/p&gt;

&lt;p&gt;Another surprisingly interesting problem is deciding when not to rely on the model.&lt;/p&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;p&gt;«“Explain binary search.”»&lt;/p&gt;

&lt;p&gt;Web search probably isn't necessary.&lt;/p&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;p&gt;«“What happened in AI today?”»&lt;/p&gt;

&lt;p&gt;Now current information matters.&lt;/p&gt;

&lt;p&gt;Ideally, the assistant should recognize that difference before generating the final answer.&lt;/p&gt;

&lt;p&gt;That means web search becomes another tool rather than something that runs for every request.&lt;/p&gt;

&lt;p&gt;⚡ Does Every Request Need an LLM?&lt;/p&gt;

&lt;p&gt;Probably not.&lt;/p&gt;

&lt;p&gt;This is where semantic caching becomes interesting.&lt;/p&gt;

&lt;p&gt;Suppose similar requests have already been processed.&lt;/p&gt;

&lt;p&gt;Instead of automatically doing:&lt;/p&gt;

&lt;p&gt;Request → LLM → Response&lt;/p&gt;

&lt;p&gt;the system could attempt:&lt;/p&gt;

&lt;p&gt;Request&lt;br&gt;
↓&lt;br&gt;
Semantic Similarity Check&lt;br&gt;
↓&lt;br&gt;
Relevant cached result?&lt;/p&gt;

&lt;p&gt;YES → Reuse / process cached information&lt;/p&gt;

&lt;p&gt;NO → Continue to LLM&lt;/p&gt;

&lt;p&gt;That potentially reduces unnecessary model calls while improving response latency.&lt;/p&gt;

&lt;p&gt;But caching AI responses creates its own challenges.&lt;/p&gt;

&lt;p&gt;When is a cached response too old?&lt;/p&gt;

&lt;p&gt;How similar is “similar enough”?&lt;/p&gt;

&lt;p&gt;Should responses involving current information ever be cached?&lt;/p&gt;

&lt;p&gt;These are exactly the kinds of engineering decisions I want to explore through FRIDAY.&lt;/p&gt;

&lt;p&gt;🎯 Context Engineering &amp;gt; Giant Prompts&lt;/p&gt;

&lt;p&gt;Another thing I've learned while experimenting with AI systems is that giving the model more text doesn't automatically give it better context.&lt;/p&gt;

&lt;p&gt;Instead of creating one enormous system prompt, I want FRIDAY's context to be assembled dynamically.&lt;/p&gt;

&lt;p&gt;The model should receive the information relevant to the current request:&lt;/p&gt;

&lt;p&gt;Relevant memories.&lt;/p&gt;

&lt;p&gt;Available tools.&lt;/p&gt;

&lt;p&gt;Permissions.&lt;/p&gt;

&lt;p&gt;Current state.&lt;/p&gt;

&lt;p&gt;Retrieved information.&lt;/p&gt;

&lt;p&gt;Conversation context.&lt;/p&gt;

&lt;p&gt;Not everything the system has ever seen.&lt;/p&gt;

&lt;p&gt;For me, this is where context engineering becomes much more interesting than simply writing a better prompt.&lt;/p&gt;

&lt;p&gt;🤖 The Architecture I'm Working Toward&lt;/p&gt;

&lt;p&gt;At a high level:&lt;/p&gt;

&lt;p&gt;User&lt;br&gt;
↓&lt;br&gt;
Intent / Context&lt;br&gt;
↓&lt;br&gt;
Memory Retrieval&lt;br&gt;
↓&lt;br&gt;
Policy Layer&lt;br&gt;
↓&lt;br&gt;
Decision Engine&lt;br&gt;
↙        ↓        ↘&lt;br&gt;
Memory   Tool      LLM&lt;br&gt;
↓&lt;br&gt;
Permission Layer&lt;br&gt;
↓&lt;br&gt;
Action&lt;br&gt;
↓&lt;br&gt;
Result / Response&lt;br&gt;
↓&lt;br&gt;
Memory Update&lt;/p&gt;

&lt;p&gt;Each layer should have a specific responsibility.&lt;/p&gt;

&lt;p&gt;That separation is important because I don't want the LLM to become the entire application.&lt;/p&gt;

&lt;p&gt;It should be one reasoning component inside a larger engineered system.&lt;/p&gt;

&lt;p&gt;The Questions I'm Exploring&lt;/p&gt;

&lt;p&gt;FRIDAY is already a project I've worked on, but I now want to share more of the engineering behind it as I continue improving it.&lt;/p&gt;

&lt;p&gt;Some of the questions I want to explore publicly are:&lt;/p&gt;

&lt;p&gt;Memory&lt;/p&gt;

&lt;p&gt;What should an assistant remember?&lt;/p&gt;

&lt;p&gt;How should memories expire?&lt;/p&gt;

&lt;p&gt;How do you retrieve the right memory without flooding the context window?&lt;/p&gt;

&lt;p&gt;Tools&lt;/p&gt;

&lt;p&gt;How should tools be registered?&lt;/p&gt;

&lt;p&gt;How does the system select between similar tools?&lt;/p&gt;

&lt;p&gt;What happens when a tool fails?&lt;/p&gt;

&lt;p&gt;Security&lt;/p&gt;

&lt;p&gt;Which actions can happen automatically?&lt;/p&gt;

&lt;p&gt;Which actions always require confirmation?&lt;/p&gt;

&lt;p&gt;How do you prevent the model from bypassing those rules?&lt;/p&gt;

&lt;p&gt;Context&lt;/p&gt;

&lt;p&gt;How much information should reach the model?&lt;/p&gt;

&lt;p&gt;When should context be retrieved?&lt;/p&gt;

&lt;p&gt;When should information be discarded?&lt;/p&gt;

&lt;p&gt;Performance&lt;/p&gt;

&lt;p&gt;Can semantic caching reduce unnecessary LLM calls?&lt;/p&gt;

&lt;p&gt;What should run locally?&lt;/p&gt;

&lt;p&gt;What actually needs a cloud model?&lt;/p&gt;

&lt;p&gt;Why I'm Sharing the Process&lt;/p&gt;

&lt;p&gt;There are already countless AI chatbot demos.&lt;/p&gt;

&lt;p&gt;I'm more interested in what happens after the chatbot demo.&lt;/p&gt;

&lt;p&gt;How do we turn these models into reliable software systems?&lt;/p&gt;

&lt;p&gt;How do we manage memory?&lt;/p&gt;

&lt;p&gt;How do we give them tools safely?&lt;/p&gt;

&lt;p&gt;How do we control their actions?&lt;/p&gt;

&lt;p&gt;How do we evaluate whether their decisions are correct?&lt;/p&gt;

&lt;p&gt;And how much of the system should actually depend on an LLM?&lt;/p&gt;

&lt;p&gt;That's what I want to use FRIDAY to explore.&lt;/p&gt;

&lt;p&gt;I'll be sharing the architecture, experiments, failures and individual components as I continue engineering the assistant.&lt;/p&gt;

&lt;p&gt;Because perhaps the interesting future of AI assistants isn't just about building a smarter model.&lt;/p&gt;

&lt;p&gt;It's about building a better system around the model.&lt;/p&gt;




&lt;p&gt;What would you consider the most important component of a personal AI assistant: memory, tools, context, security, or something else?&lt;/p&gt;

&lt;p&gt;I'd be interested to hear how other developers would approach the architecture.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>softwareengineering</category>
      <category>mcp</category>
    </item>
    <item>
      <title>Beyond the Chatbot: How I’m Engineering an Agentic AI Assistant for Android</title>
      <dc:creator>Dhruv Trivedi</dc:creator>
      <pubDate>Tue, 11 Aug 2026 14:00:00 +0000</pubDate>
      <link>https://dev.to/dj2313/beyond-the-chatbot-how-im-engineering-an-agentic-ai-assistant-for-android-160p</link>
      <guid>https://dev.to/dj2313/beyond-the-chatbot-how-im-engineering-an-agentic-ai-assistant-for-android-160p</guid>
      <description>&lt;p&gt;I Built an AI Assistant for Android — The Hard Part Wasn't the LLM&lt;/p&gt;

&lt;p&gt;Building an AI assistant sounds simple at first.&lt;/p&gt;

&lt;p&gt;User sends a message → LLM processes it → assistant responds.&lt;/p&gt;

&lt;p&gt;But the moment I started thinking beyond a chatbot, that architecture wasn't enough.&lt;/p&gt;

&lt;p&gt;I wanted my Android assistant, FRIDAY, to eventually understand context, remember useful information, access tools, search for current information, interact with Android capabilities, and — most importantly — know when it should not take an action.&lt;/p&gt;

&lt;p&gt;That changed the problem completely.&lt;/p&gt;

&lt;p&gt;The Idea Behind FRIDAY&lt;/p&gt;

&lt;p&gt;FRIDAY is my attempt to explore a simple question:&lt;/p&gt;

&lt;p&gt;«What does it actually take to turn an LLM into a useful personal AI system?»&lt;/p&gt;

&lt;p&gt;I don't want FRIDAY to simply be another interface around an LLM API.&lt;/p&gt;

&lt;p&gt;The system I'm working toward looks more like:&lt;/p&gt;

&lt;p&gt;User Request&lt;br&gt;
↓&lt;br&gt;
Context Processing&lt;br&gt;
↓&lt;br&gt;
Memory Retrieval&lt;br&gt;
↓&lt;br&gt;
Intent + Policy&lt;br&gt;
↓&lt;br&gt;
Tool Decision&lt;br&gt;
↓&lt;br&gt;
LLM / Tool Execution&lt;br&gt;
↓&lt;br&gt;
Permission Check&lt;br&gt;
↓&lt;br&gt;
Action&lt;br&gt;
↓&lt;br&gt;
Memory Update&lt;/p&gt;

&lt;p&gt;The LLM is only one component.&lt;/p&gt;

&lt;p&gt;The interesting engineering happens around it.&lt;/p&gt;

&lt;p&gt;🧠 Memory Before Intelligence&lt;/p&gt;

&lt;p&gt;One of the biggest limitations of a basic chatbot architecture is that every interaction can effectively become a new interaction.&lt;/p&gt;

&lt;p&gt;For an actual assistant, that isn't enough.&lt;/p&gt;

&lt;p&gt;FRIDAY needs different types of context.&lt;/p&gt;

&lt;p&gt;There is information relevant only to the current conversation.&lt;/p&gt;

&lt;p&gt;There is information that may be useful later.&lt;/p&gt;

&lt;p&gt;And there is information that should never be stored unnecessarily.&lt;/p&gt;

&lt;p&gt;So rather than blindly putting everything into a prompt, I'm exploring a memory layer where relevant information can be retrieved only when it is actually needed.&lt;/p&gt;

&lt;p&gt;This introduces another interesting problem:&lt;/p&gt;

&lt;p&gt;How does the system decide what is worth remembering?&lt;/p&gt;

&lt;p&gt;Saving everything isn't memory.&lt;/p&gt;

&lt;p&gt;It's storage.&lt;/p&gt;

&lt;p&gt;Useful memory requires selection, retrieval and forgetting.&lt;/p&gt;

&lt;p&gt;🛠️ Giving the AI Tools&lt;/p&gt;

&lt;p&gt;Answering questions is one thing.&lt;/p&gt;

&lt;p&gt;Taking actions is completely different.&lt;/p&gt;

&lt;p&gt;Imagine asking:&lt;/p&gt;

&lt;p&gt;«“Open Spotify.”»&lt;/p&gt;

&lt;p&gt;The assistant probably doesn't need a powerful LLM call to execute that.&lt;/p&gt;

&lt;p&gt;But consider:&lt;/p&gt;

&lt;p&gt;«“Find something relaxing to play while I'm studying.”»&lt;/p&gt;

&lt;p&gt;Now the system needs to understand intent before selecting an action.&lt;/p&gt;

&lt;p&gt;This is why I'm designing FRIDAY around a tool layer.&lt;/p&gt;

&lt;p&gt;Instead of allowing the model to directly control everything, capabilities can be exposed as specific tools.&lt;/p&gt;

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

&lt;p&gt;Intent → Tool Router → Tool → Result&lt;/p&gt;

&lt;p&gt;The model shouldn't automatically receive unlimited access to the device.&lt;/p&gt;

&lt;p&gt;And that leads to the part I'm particularly interested in.&lt;/p&gt;

&lt;p&gt;🔐 Permission-Aware AI&lt;/p&gt;

&lt;p&gt;Giving an AI agent tools is powerful.&lt;/p&gt;

&lt;p&gt;It's also where things can go wrong.&lt;/p&gt;

&lt;p&gt;Opening an application and sending a message should not necessarily have the same permission level.&lt;/p&gt;

&lt;p&gt;Neither should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reading information&lt;/li&gt;
&lt;li&gt;Searching the internet&lt;/li&gt;
&lt;li&gt;Opening applications&lt;/li&gt;
&lt;li&gt;Creating reminders&lt;/li&gt;
&lt;li&gt;Accessing files&lt;/li&gt;
&lt;li&gt;Sending messages&lt;/li&gt;
&lt;li&gt;Changing device settings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm therefore exploring a permission/policy layer between decision and execution.&lt;/p&gt;

&lt;p&gt;Something like:&lt;/p&gt;

&lt;p&gt;AI proposes action&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Policy evaluates action&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Low risk → Execute&lt;/p&gt;

&lt;p&gt;Sensitive action → Ask user&lt;/p&gt;

&lt;p&gt;Restricted action → Reject&lt;/p&gt;

&lt;p&gt;The goal isn't maximum autonomy.&lt;/p&gt;

&lt;p&gt;The goal is controlled autonomy.&lt;/p&gt;

&lt;p&gt;🌐 When Should FRIDAY Search the Internet?&lt;/p&gt;

&lt;p&gt;Another surprisingly interesting problem is deciding when not to rely on the model.&lt;/p&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;p&gt;«“Explain binary search.”»&lt;/p&gt;

&lt;p&gt;Web search probably isn't necessary.&lt;/p&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;p&gt;«“What happened in AI today?”»&lt;/p&gt;

&lt;p&gt;Now current information matters.&lt;/p&gt;

&lt;p&gt;Ideally, the assistant should recognize that difference before generating the final answer.&lt;/p&gt;

&lt;p&gt;That means web search becomes another tool rather than something that runs for every request.&lt;/p&gt;

&lt;p&gt;⚡ Does Every Request Need an LLM?&lt;/p&gt;

&lt;p&gt;Probably not.&lt;/p&gt;

&lt;p&gt;This is where semantic caching becomes interesting.&lt;/p&gt;

&lt;p&gt;Suppose similar requests have already been processed.&lt;/p&gt;

&lt;p&gt;Instead of automatically doing:&lt;/p&gt;

&lt;p&gt;Request → LLM → Response&lt;/p&gt;

&lt;p&gt;the system could attempt:&lt;/p&gt;

&lt;p&gt;Request&lt;br&gt;
↓&lt;br&gt;
Semantic Similarity Check&lt;br&gt;
↓&lt;br&gt;
Relevant cached result?&lt;/p&gt;

&lt;p&gt;YES → Reuse / process cached information&lt;/p&gt;

&lt;p&gt;NO → Continue to LLM&lt;/p&gt;

&lt;p&gt;That potentially reduces unnecessary model calls while improving response latency.&lt;/p&gt;

&lt;p&gt;But caching AI responses creates its own challenges.&lt;/p&gt;

&lt;p&gt;When is a cached response too old?&lt;/p&gt;

&lt;p&gt;How similar is “similar enough”?&lt;/p&gt;

&lt;p&gt;Should responses involving current information ever be cached?&lt;/p&gt;

&lt;p&gt;These are exactly the kinds of engineering decisions I want to explore through FRIDAY.&lt;/p&gt;

&lt;p&gt;🎯 Context Engineering &amp;gt; Giant Prompts&lt;/p&gt;

&lt;p&gt;Another thing I've learned while experimenting with AI systems is that giving the model more text doesn't automatically give it better context.&lt;/p&gt;

&lt;p&gt;Instead of creating one enormous system prompt, I want FRIDAY's context to be assembled dynamically.&lt;/p&gt;

&lt;p&gt;The model should receive the information relevant to the current request:&lt;/p&gt;

&lt;p&gt;Relevant memories.&lt;/p&gt;

&lt;p&gt;Available tools.&lt;/p&gt;

&lt;p&gt;Permissions.&lt;/p&gt;

&lt;p&gt;Current state.&lt;/p&gt;

&lt;p&gt;Retrieved information.&lt;/p&gt;

&lt;p&gt;Conversation context.&lt;/p&gt;

&lt;p&gt;Not everything the system has ever seen.&lt;/p&gt;

&lt;p&gt;For me, this is where context engineering becomes much more interesting than simply writing a better prompt.&lt;/p&gt;

&lt;p&gt;🤖 The Architecture I'm Working Toward&lt;/p&gt;

&lt;p&gt;At a high level:&lt;/p&gt;

&lt;p&gt;User&lt;br&gt;
↓&lt;br&gt;
Intent / Context&lt;br&gt;
↓&lt;br&gt;
Memory Retrieval&lt;br&gt;
↓&lt;br&gt;
Policy Layer&lt;br&gt;
↓&lt;br&gt;
Decision Engine&lt;br&gt;
↙        ↓        ↘&lt;br&gt;
Memory   Tool      LLM&lt;br&gt;
↓&lt;br&gt;
Permission Layer&lt;br&gt;
↓&lt;br&gt;
Action&lt;br&gt;
↓&lt;br&gt;
Result / Response&lt;br&gt;
↓&lt;br&gt;
Memory Update&lt;/p&gt;

&lt;p&gt;Each layer should have a specific responsibility.&lt;/p&gt;

&lt;p&gt;That separation is important because I don't want the LLM to become the entire application.&lt;/p&gt;

&lt;p&gt;It should be one reasoning component inside a larger engineered system.&lt;/p&gt;

&lt;p&gt;The Questions I'm Exploring&lt;/p&gt;

&lt;p&gt;FRIDAY is already a project I've worked on, but I now want to share more of the engineering behind it as I continue improving it.&lt;/p&gt;

&lt;p&gt;Some of the questions I want to explore publicly are:&lt;/p&gt;

&lt;p&gt;Memory&lt;/p&gt;

&lt;p&gt;What should an assistant remember?&lt;/p&gt;

&lt;p&gt;How should memories expire?&lt;/p&gt;

&lt;p&gt;How do you retrieve the right memory without flooding the context window?&lt;/p&gt;

&lt;p&gt;Tools&lt;/p&gt;

&lt;p&gt;How should tools be registered?&lt;/p&gt;

&lt;p&gt;How does the system select between similar tools?&lt;/p&gt;

&lt;p&gt;What happens when a tool fails?&lt;/p&gt;

&lt;p&gt;Security&lt;/p&gt;

&lt;p&gt;Which actions can happen automatically?&lt;/p&gt;

&lt;p&gt;Which actions always require confirmation?&lt;/p&gt;

&lt;p&gt;How do you prevent the model from bypassing those rules?&lt;/p&gt;

&lt;p&gt;Context&lt;/p&gt;

&lt;p&gt;How much information should reach the model?&lt;/p&gt;

&lt;p&gt;When should context be retrieved?&lt;/p&gt;

&lt;p&gt;When should information be discarded?&lt;/p&gt;

&lt;p&gt;Performance&lt;/p&gt;

&lt;p&gt;Can semantic caching reduce unnecessary LLM calls?&lt;/p&gt;

&lt;p&gt;What should run locally?&lt;/p&gt;

&lt;p&gt;What actually needs a cloud model?&lt;/p&gt;

&lt;p&gt;Why I'm Sharing the Process&lt;/p&gt;

&lt;p&gt;There are already countless AI chatbot demos.&lt;/p&gt;

&lt;p&gt;I'm more interested in what happens after the chatbot demo.&lt;/p&gt;

&lt;p&gt;How do we turn these models into reliable software systems?&lt;/p&gt;

&lt;p&gt;How do we manage memory?&lt;/p&gt;

&lt;p&gt;How do we give them tools safely?&lt;/p&gt;

&lt;p&gt;How do we control their actions?&lt;/p&gt;

&lt;p&gt;How do we evaluate whether their decisions are correct?&lt;/p&gt;

&lt;p&gt;And how much of the system should actually depend on an LLM?&lt;/p&gt;

&lt;p&gt;That's what I want to use FRIDAY to explore.&lt;/p&gt;

&lt;p&gt;I'll be sharing the architecture, experiments, failures and individual components as I continue engineering the assistant.&lt;/p&gt;

&lt;p&gt;Because perhaps the interesting future of AI assistants isn't just about building a smarter model.&lt;/p&gt;

&lt;p&gt;It's about building a better system around the model.&lt;/p&gt;




&lt;p&gt;What would you consider the most important component of a personal AI assistant: memory, tools, context, security, or something else?&lt;/p&gt;

&lt;p&gt;I'd be interested to hear how other developers would approach the architecture.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>agents</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>🚀 I’m Building Real AI Engineering Systems — Not Just AI Apps</title>
      <dc:creator>Dhruv Trivedi</dc:creator>
      <pubDate>Tue, 16 Jun 2026 07:00:00 +0000</pubDate>
      <link>https://dev.to/dj2313/im-building-real-ai-engineering-systems-not-just-ai-apps-25kf</link>
      <guid>https://dev.to/dj2313/im-building-real-ai-engineering-systems-not-just-ai-apps-25kf</guid>
      <description>&lt;p&gt;Most AI projects I see today are simple wrappers around APIs.&lt;/p&gt;

&lt;p&gt;You call an LLM → get a response → call it “AI app”.&lt;/p&gt;

&lt;p&gt;But I wanted to go deeper.&lt;/p&gt;

&lt;p&gt;I’m currently building &lt;strong&gt;real AI engineering systems&lt;/strong&gt; — where AI is just one part of a full backend architecture, not the entire product.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 What I’m building
&lt;/h2&gt;

&lt;p&gt;I’m working on multiple AI projects like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🤖 AI personal assistant (Friday Assistant)&lt;/li&gt;
&lt;li&gt;🧠 Multi-agent productivity system (NOVA)&lt;/li&gt;
&lt;li&gt;🇩🇪 AI German learning PWA (Sofort German)&lt;/li&gt;
&lt;li&gt;📚 RAG-based study assistant (StudyRAG)&lt;/li&gt;
&lt;li&gt;🍽️ AI food intelligence app (FoodSight AI)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the goal is NOT just features.&lt;/p&gt;

&lt;p&gt;The goal is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Building production-style AI systems with real engineering concepts.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ⚙️ What makes these different
&lt;/h2&gt;

&lt;p&gt;Instead of just “using AI”, I’m focusing on:&lt;/p&gt;

&lt;h3&gt;
  
  
  🏗️ System architecture
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Backend services (FastAPI)&lt;/li&gt;
&lt;li&gt;Modular AI pipelines&lt;/li&gt;
&lt;li&gt;Separation of AI logic and application logic&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧠 AI engineering layer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Agent-based workflows&lt;/li&gt;
&lt;li&gt;RAG pipelines (retrieval + generation)&lt;/li&gt;
&lt;li&gt;Tool calling systems&lt;/li&gt;
&lt;li&gt;Memory systems (short-term + long-term)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💾 Data + state handling
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Databases for persistence&lt;/li&gt;
&lt;li&gt;Vector databases for semantic memory&lt;/li&gt;
&lt;li&gt;Structured data flow between components&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⚡ Real-world constraints
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Latency handling&lt;/li&gt;
&lt;li&gt;Async processing&lt;/li&gt;
&lt;li&gt;Failure handling (what if AI fails?)&lt;/li&gt;
&lt;li&gt;Cost-aware design decisions&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔥 Why I’m doing this
&lt;/h2&gt;

&lt;p&gt;I don’t want to build “AI demos”.&lt;/p&gt;

&lt;p&gt;I want to build systems that behave like real products.&lt;/p&gt;

&lt;p&gt;Systems that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scale&lt;/li&gt;
&lt;li&gt;Fail gracefully&lt;/li&gt;
&lt;li&gt;Have architecture&lt;/li&gt;
&lt;li&gt;Can be explained clearly in interviews&lt;/li&gt;
&lt;li&gt;Solve real-world problems&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧪 My current focus
&lt;/h2&gt;

&lt;p&gt;Right now I’m in the process of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Turning prototypes into proper backend systems&lt;/li&gt;
&lt;li&gt;Improving architecture design&lt;/li&gt;
&lt;li&gt;Adding real engineering structure to AI workflows&lt;/li&gt;
&lt;li&gt;Making everything explainable and production-ready&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📌 What I’ll share next
&lt;/h2&gt;

&lt;p&gt;I’ll start documenting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecture breakdowns 🧠&lt;/li&gt;
&lt;li&gt;System design decisions ⚙️&lt;/li&gt;
&lt;li&gt;AI engineering concepts used in real projects 🔥&lt;/li&gt;
&lt;li&gt;Failures and debugging stories 🐞&lt;/li&gt;
&lt;li&gt;Live demos of working systems 🚀&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💬 Why I’m posting this
&lt;/h2&gt;

&lt;p&gt;I want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Share my journey openly&lt;/li&gt;
&lt;li&gt;Connect with other AI engineers&lt;/li&gt;
&lt;li&gt;Learn from real-world feedback&lt;/li&gt;
&lt;li&gt;And build in public while improving every system I create&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Final thought
&lt;/h2&gt;

&lt;p&gt;AI is not just about prompts.&lt;/p&gt;

&lt;p&gt;Real value comes from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;engineering systems that use AI as a component, not the entire product.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is what I’m building toward.&lt;/p&gt;




&lt;p&gt;If you’re also working on AI systems, I’d love to connect and learn from your work.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>python</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
