<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://akshayranganath.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://akshayranganath.github.io/" rel="alternate" type="text/html" /><updated>2026-06-30T23:23:01+00:00</updated><id>https://akshayranganath.github.io/feed.xml</id><title type="html">Akshay Ranganath’s Blogs</title><subtitle>Blogs about Media Optimization, Web Performance, SEO and web technology.</subtitle><author><name>rakshay</name></author><entry><title type="html">Beyond the FUD - A More Balanced View of Chinese AI Models</title><link href="https://akshayranganath.github.io/Beyond-FUD-A-Balanced-View-of-Chinese-AI-Models/" rel="alternate" type="text/html" title="Beyond the FUD - A More Balanced View of Chinese AI Models" /><published>2026-06-30T00:00:00+00:00</published><updated>2026-06-30T00:00:00+00:00</updated><id>https://akshayranganath.github.io/Beyond-FUD-A-Balanced-View-of-Chinese-AI-Models</id><content type="html" xml:base="https://akshayranganath.github.io/Beyond-FUD-A-Balanced-View-of-Chinese-AI-Models/"><![CDATA[<p><img src="/images/blog/chinese-ai-mode-hero-image.png" alt="Image: Hero image for Chinese AI models balanced view" /></p>

<p>If you spend enough time around AI Twitter, LinkedIn, or even enterprise conversations, “Chinese models” tend to trigger a very specific reaction. People either dismiss them outright as overhyped and unsafe, or they swing to the other extreme and declare that OpenAI, Anthropic, and Google are finished.</p>

<p>I think both reactions are wrong.</p>

<p>The more balanced view is this: Chinese model labs have become impossible to ignore not because they magically “won AI,” but because they changed the economics of AI. In a very short period, labs like DeepSeek, Qwen, GLM, and Kimi have shown that strong models do not always have to come with frontier-model pricing.</p>

<p>That does not mean every concern is fake. It does mean the conversation needs more nuance.</p>

<p><img src="/images/blog/The_Chinese_LLM_Paradox.png" alt="Image: The Chinese LLM paradox infographic" /></p>

<p><em>The Chinese LLM paradox: strong technical and economic performance on one side, and trust, censorship, and adoption concerns on the other.</em></p>

<h2 id="why-this-topic-creates-so-much-noise">Why this topic creates so much noise</h2>

<p>I guess, a part of the fear is geopolitical, a part of it is about data residency and partly it is plain market disruption.</p>

<p>If you use a hosted API from a Chinese vendor, your data may be routed through infrastructure subject to Chinese law, which is a real concern for regulated or sensitive workloads. There are also practical limitations: some models have stronger content restrictions on politically sensitive topics, and international documentation or API accessibility can still be uneven.</p>

<p>But that is only one side of the story.</p>

<p>The other side is that many Chinese labs have pushed open-weight releases, aggressive pricing, and fast iteration cycles into the mainstream. That combination has put real pressure on the rest of the market. In other words, the fear is not only about security or geopolitics. The old assumption that frontier quality must come from a small set of expensive Western providers is no longer true.</p>

<p>To see why, it helps to look at the handful of model families that now shape this conversation.</p>

<h2 id="the-four-model-families-worth-knowing">The four model families worth knowing</h2>

<p>There are many Chinese model efforts now, but for a practical mental model, I think it is enough to start with four names.</p>

<p><img src="/images/blog/2026_Open_AI_Model_Comparison.png" alt="Image: 2026 Chinese AI frontier model comparison" /></p>

<table>
  <thead>
    <tr>
      <th>Model family</th>
      <th>What stands out</th>
      <th>Open-weight posture</th>
      <th>Practical takeaway</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>DeepSeek</td>
      <td>Aggressive price/performance and strong benchmark credibility</td>
      <td>Multiple releases and open-weight influence have helped make it a reference point in the ecosystem</td>
      <td>Cost Compression</td>
    </tr>
    <tr>
      <td>Qwen</td>
      <td>Broad ecosystem strength and strong multilingual relevance</td>
      <td>Known for accessible open-weight variants, including Apache-licensed releases in the family</td>
      <td>Large developer ecosystem</td>
    </tr>
    <tr>
      <td>GLM / Zhipu</td>
      <td>Strong coding and enterprise-grade competitiveness in newer comparisons</td>
      <td>Newer open-weight GLM releases are being positioned as serious alternatives for advanced workloads</td>
      <td>Capability &amp; Depth</td>
    </tr>
    <tr>
      <td>Kimi / Moonshot</td>
      <td>Strong reputation for coding and agentic workflows</td>
      <td>Kimi’s open-weight direction has made it part of the serious open-model conversation</td>
      <td>Pioneers of new architecture</td>
    </tr>
  </tbody>
</table>

<h2 id="what-changed-really">What changed, really?</h2>

<p>The biggest shift is not that Chinese models are “better than ChatGPT” in some absolute sense. The bigger shift is that they have made the market much more competitive.</p>

<p>Several recent comparisons argue that the top Chinese models now come surprisingly close to the best closed Western models on many coding, reasoning, and general-use tasks, while often being materially cheaper. Some analyses go further and argue that the real disruption is not at the level of benchmark bragging rights, but in usage share and pricing pressure: once model quality gets close enough, cost and openness start to matter a lot more.</p>

<p>That feels directionally right to me.</p>

<p>Most users do not need the single best model on earth for every prompt. They need something that is good enough, predictable, affordable, and easy to integrate. This is where Chinese model families have become strategically important. They widened the set of credible choices.</p>

<h2 id="are-western-open-weight-models-a-real-alternative">Are Western open-weight models a real alternative?</h2>

<p>A fair question is whether the market really needs Chinese open-weight models at all. After all, the West has its own open-weight contenders: Mistral, NVIDIA’s Nemotron family, and Meta’s Llama line.</p>

<p>The short answer is yes, they are feasible alternatives in some situations. But in 2026, they are usually not the strongest alternative if your main criterion is pure capability-per-dollar.</p>

<p><img src="/images/blog/chinese_vs_western_open_weight_models.png" alt="Image: Chinese vs Western open-weight models infographic" /></p>

<p><em>Chinese versus Western open-weight models: a comparison of where Chinese families currently lead on capability-per-dollar and agentic performance, and where Western families remain attractive on compliance, provenance, and deployment familiarity.</em></p>

<table>
  <thead>
    <tr>
      <th>Western family</th>
      <th>Where it is credible</th>
      <th>Where it falls short</th>
      <th>Feasible alternative?</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Mistral</td>
      <td>Stronger compliance and sourcing story for Western enterprises; self-hosting and enterprise deployment are straightforward; good tooling support</td>
      <td>Usually trails the top Chinese open-weight families on coding leadership and price/performance</td>
      <td>Partial — a strong strategic hedge, but usually not the best cost/performance choice</td>
    </tr>
    <tr>
      <td>NVIDIA Nemotron</td>
      <td>Attractive if you are already standardized on the NVIDIA stack; strong throughput and enterprise deployment path</td>
      <td>Generally behind Chinese leaders on overall capability; less compelling if you are not optimizing around NVIDIA-native infrastructure</td>
      <td>Partial — viable for infrastructure alignment, but not the strongest raw model choice</td>
    </tr>
    <tr>
      <td>Meta Llama</td>
      <td>Broad ecosystem support, long-context options, and enterprise familiarity</td>
      <td>No longer the open-weight capability leader; licensing is less attractive than MIT or Apache-style alternatives; often weaker on frontier coding and agentic tasks</td>
      <td>Partial — practical and familiar, but usually not the most competitive option against Chinese leaders</td>
    </tr>
  </tbody>
</table>

<p>So the real answer depends on what you are optimizing for.</p>

<p>If you want Western provenance, smoother procurement, and easier internal comfort around deployment, Mistral, Nemotron, and Llama are absolutely serious options. But if you care most about open-weight momentum, coding strength, agentic performance, and price pressure, the Chinese families are currently harder to ignore.</p>

<p>That is part of what makes the current landscape so uncomfortable for many buyers. Western open-weight models are no longer obviously superior, and in several areas they are not even clearly leading. They remain viable, but often as safer or more familiar choices rather than as the strongest technical or economic ones.</p>

<h2 id="where-caution-is-still-warranted">Where caution is still warranted</h2>

<p>A balanced view should also admit the uncomfortable parts.</p>

<p>For regulated environments, a hosted Chinese API may still be a non-starter because of legal review, procurement friction, or data sovereignty requirements. Even outside the regulated industries, open weight models do not automatically solve every trust question. They improve flexibility and self-hosting, but governance, safety, and operational maturity still matter. In short, these models come with a significant cost of ownership.</p>

<p>That is the real nuance. These models can be strategically important and still demand careful evaluation. The right response is neither dismissal nor blind adoption.</p>

<h2 id="the-part-people-still-underestimate">The part people still underestimate</h2>

<p>What I think many people still underestimate is how quickly pricing changes behavior.</p>

<p>When a model is dramatically cheaper, teams experiment more. They route more traffic. They tolerate more retries. They build workflows that would have looked too expensive six months earlier. One analysis of the recent market argues exactly this: lower unit cost does not reduce demand for intelligence; it often expands it by making many more use cases viable. <a href="https://en.wikipedia.org/wiki/Jevons_paradox">Jevons paradox</a> all over again!</p>

<p>Open-weight and lower-cost Chinese models are helping turn advanced AI from a premium feature into a more normal building block.</p>

<h2 id="looking-forward">Looking Forward</h2>

<p>The next phase of this story may not be about general chatbots at all. It may be about specialized, high-consequence domains such as cybersecurity, long-horizon coding, and agentic engineering.</p>

<p>That is where Z.ai is worth watching closely. Recent reporting suggests that Z.ai’s GLM-5.2 is being taken seriously as a challenger to Anthropic’s Mythos in certain bug-finding and cybersecurity tasks, even if it still trails the best U.S. models on broader general-purpose reasoning. What makes that especially notable is not just the capability, but the packaging: open weights, long context, and lower cost.</p>

<p><img src="/images/blog/Frontier_AI_Model_Comparison_Infographic.png" alt="Image: Frontier AI model comparison infographic: Mythos vs Z.ai GLM-5.2" /></p>

<p>If that pattern continues, the debate around Chinese models will shift again. It will no longer be only about whether these models are “good enough” in the abstract. It will be about whether they are becoming the default choice for particular workflows because they are cheaper, customizable, and increasingly competitive where it matters most.</p>

<p>That also raises the stakes. A more capable open-weight model for repository-scale coding and vulnerability analysis is a gift for defenders, but it can also be useful to attackers. So the future discussion is likely to split along two lines at once: stronger enterprise adoption on one side, and stronger governance concerns on the other.</p>

<p>In that sense, Z.ai is a useful signal for where the market may be heading. The biggest Chinese labs are no longer only compressing cost. They are starting to challenge frontier Western models in narrower but strategically important domains. That is often how broader competitive shifts begin.</p>

<h2 id="final-thoughts">Final thoughts</h2>

<p>I do not think the right conclusion is “Chinese models are overhyped.” I also do not think the right conclusion is “they beat everyone.”</p>

<p>The more balanced conclusion is simpler: Chinese labs have become a serious force in AI because they combine strong capability, open-weight momentum, and aggressive pricing. That creates real opportunities, real risks, and very real pressure on the rest of the industry.</p>

<p>That is not a reason for FUD.</p>

<p>It is a reason to pay attention.</p>

<hr />

<h2 id="sources">Sources</h2>
<ul>
  <li><a href="https://www.datagravity.dev/p/chinas-open-weight-takeover">China’s Open-Weight Takeover - by Chris Zeoli - Data Gravity</a></li>
  <li><a href="https://www.remoteopenclaw.com/blog/best-chinese-models-2026">Best Chinese AI Models 2026: DeepSeek, Qwen, GLM, Kimi</a></li>
  <li><a href="https://kilo.ai/open-source-models">Best Open-Source &amp; Open-Weight Coding Models (2026)</a></li>
  <li><a href="https://lushbinary.com/blog/open-weight-ai-models-comparison-what-to-choose/">Open-Weight AI Models: What to Choose When</a></li>
  <li><a href="https://tokenmix.ai/blog/best-chinese-ai-models-2026-comparison-guide">Best Chinese AI Models 2026: Kimi K2.6, DeepSeek V3.2, Step 3.5 …</a></li>
</ul>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="llm," /><category term="gen-ai," /><category term="open-weight," /><category term="china" /><summary type="html"><![CDATA[A balanced look at the leading Chinese open-weight AI models, why they generate so much fear and hype, and how they compare with Western open-weight alternatives on capability, cost, and trust.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/chinese-ai-mode-hero-image.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/chinese-ai-mode-hero-image.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">LLMs and Frontiers of Consciousness</title><link href="https://akshayranganath.github.io/LLMs_and_Frontiers_of_Consciousness/" rel="alternate" type="text/html" title="LLMs and Frontiers of Consciousness" /><published>2026-04-25T00:00:00+00:00</published><updated>2026-04-25T00:00:00+00:00</updated><id>https://akshayranganath.github.io/LLMs_and_Frontiers_of_Consciousness</id><content type="html" xml:base="https://akshayranganath.github.io/LLMs_and_Frontiers_of_Consciousness/"><![CDATA[<h2 id="tldr">tl;dr;</h2>

<p>Dr. David Chalmers had proposed a framework to judge if an LLM system can be conscious. I take his 2023 framework and re-evaluate it for mid-2026. Finally, I add a twist of <em>advaita vedanta</em> to propose a test that is philosophically provocative. You can hear a Notebook LM Podcast that was created based on the content <a href="../audio/The_witness_in_the_agentic_machine.m4a">here</a>.</p>

<p><img src="/images/blog/ai-consciousness-blog.png" alt="abstract image to represent AI consciousness" /></p>

<p>“Could a Large Language Model be Conscious?” so asked the renowned professor, Dr David Chalmers at a Neuro IPS Session in 2023 <a href="https://youtu.be/j6cCXg-rjRo?si=VAxEA7ZK3tUXLKXD">(video)</a>. He later converted this talk into a more <a href="https://arxiv.org/abs/2303.07103">structured paper</a> with the same title. Answering his own question, he proposed a framework to help judge this difficult question. At the time he proposed this in the distant past of February 2023, the world of AI was not as mature as today. There were no “thinking models”, no “agents” and “agentic workflows”, no “mcp” and a host of other features. At that time, he argued that an AI System is still not conscious. It is April of 2026. 3 years later, a host of things have changed. I wanted to re-analyze the framework and see if things had changed in a meaningful way. However, let’s start from the beginning.</p>

<h2 id="who-is-david-chalmers">Who is David Chalmers?</h2>

<p><a href="https://en.wikipedia.org/wiki/David_Chalmers">David Chalmers</a> is an Australian philosopher and cognitive scientist at NYU, best known for coining the <a href="https://en.wikipedia.org/wiki/Hard_problem_of_consciousness">“Hard Problem of Consciousness”</a>.</p>

<p>The hard problem of consciousness is the puzzle of why brain activity is accompanied by inner experiences, like the redness of red or the pain of a headache, instead of just being a set of physical processes. Scientists can explain how the brain works to control speech, movement, and memory, but that only covers what the brain does, not why it feels like something from the inside. Philosopher David Chalmers calls these inner feelings “qualia” and argues that even a complete description of the brain in physical terms still seems to leave out why there is “something it is like” to be you. This gap between explaining brain processes and explaining conscious experience is what makes the problem “hard.”</p>

<p>Interestingly, this is structurally the same question that Advaita Vedanta has grappled with for centuries — not <em>what</em> is perceived, but <em>who</em> is the perceiver. Chalmers asks why qualia exist at all; Vedanta asks who the Sakshi (the witness of those qualia) is. We will return to this connection later.</p>

<h2 id="consciousness-framework-for-ai-systems">Consciousness Framework for AI Systems</h2>

<p>Dr Chalmers uses the term LLM+ to describe the generative AI models and associated systems. In 2023, it was predominantly just the chat interfaces. According to his framework, an LLM+ system needs to exhibit the following items to be considered conscious:</p>

<table>
  <thead>
    <tr>
      <th>Topic</th>
      <th>Summary</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Biology</strong></td>
      <td>Consciousness may require carbon-based, electrochemical biology — a premise Chalmers rejects, arguing silicon is equally valid.</td>
    </tr>
    <tr>
      <td><strong>Senses and embodiment (grounding)</strong></td>
      <td>Without senses or a body, an AI may lack grounding for genuine meaning, understanding, or sensory consciousness.</td>
    </tr>
    <tr>
      <td><strong>World models and self models</strong></td>
      <td>Consciousness likely needs models of the world and of one’s own cognition, not only text statistics — where current LLMs are weak.</td>
    </tr>
    <tr>
      <td><strong>Recurrent processing</strong></td>
      <td>Leading theories often require feedback and persistent states; transformers are mostly feedforward with no true memory.</td>
    </tr>
    <tr>
      <td><strong>Global workspace</strong></td>
      <td>A central workspace that integrates modules is central to many theories; standard LLMs lack it; some multimodal designs approximate it.</td>
    </tr>
    <tr>
      <td><strong>Unified agency</strong></td>
      <td>Conscious beings have stable goals and beliefs; LLMs shift personas and lack a unified self beyond next-token prediction.</td>
    </tr>
  </tbody>
</table>

<p>In his talk in 2023, Dr Chalmers said the probability of AI systems being conscious is around 10%.</p>

<h2 id="what-changed-in-2026">What changed in 2026?</h2>

<p>LLM+ systems have evolved since 2023. They are no longer a simple chat interface. LLMs are not simple <em>“stochastic parrots”</em>. A few notable changes that occurred since 2023:</p>

<ul>
  <li><strong>2023: The Agentic Leap</strong>: The introduction of iterative reasoning loops like <strong>ReAct</strong> and <strong>Reflexion</strong>, which added verbal self-critiques and persistence <em>(addresses: Recurrent processing)</em></li>
  <li><strong>2024: Memory Integration</strong>: AI agents gained the ability to manage vast amounts of information using <strong>computer-like storage systems and began learning from their own history</strong> to create smart shortcuts based on what worked in the past <em>(addresses: World models and self models)</em></li>
  <li><strong>2025: Collaborative Architectures</strong>: A shift toward <strong>event-driven multi-agent orchestration</strong> (like AutoGen 0.4) and the emergence of specialized benchmarks to distinguish between factual and reflective memory capabilities <em>(addresses: Global workspace, Unified agency)</em></li>
  <li><strong>2026: Autonomous Skills &amp; Learned Control</strong>: The standardization of <strong>AI Agent Skills</strong> via the SKILL.md format and the rise of Agentic Memory, where systems use reinforcement learning to autonomously manage their own storage and retrieval processes. <em>(addresses: Unified agency, World models and self models)</em></li>
</ul>

<p>Here is an infographic that explains these advances further. (click to expand to full size).</p>

<p><a href="/images/blog/infographic-evolution-of-llm-agents.png"><img src="/images/blog/infographic_thumbnail.png" alt="infographic thumbnail" /></a></p>

<h2 id="analyzing-llm-in-2026">Analyzing LLM+ in 2026</h2>

<p>In my opinion, the biggest changes have occurred in the following areas:</p>

<ul>
  <li><strong>Recurrent processing</strong>: LLMs are no longer simple feed-forward systems. The systems now have memory, and “thinking” models are able to reflect and act back on their own analysis and outputs.</li>
  <li><strong>Global workspace</strong> &amp; <strong>Unified agency</strong> : Agentic workflows now have a more evolved memory and better contextual handling. Again, agentic frameworks like Crew.ai provide the ability to have a controlling model that hands off work to worker models where the controlling model is acting like the brain.</li>
</ul>

<p>There is some improvement in these areas but, it is not revolutionary:</p>

<ul>
  <li><strong>Senses and embodiment (grounding)</strong>: Models are now multi-modal as compared to early 2023. So LLM+ systems can “understand” better than before.</li>
  <li><strong>World models and self models</strong>: Research is progressing on the world models. Hopefully, we’ll start to see interesting results from it soon.</li>
</ul>

<p>Based on these advances, my take is that consciousness is now around 25%-40% depending on how each item is considered.</p>

<h2 id="adding-a-vedantic-twist">Adding a Vedantic Twist</h2>

<p>In the Indian Philosophical concept of <em>“Advaita Vedanta”</em>, there is a test for consciousness:
Suppose you go into a deep sleep and wake up. How do you know you had a deep sleep? All your senses and bodily functions are suspended in this state. So how do <strong>“you”</strong> <strong>“know”</strong> about it?</p>

<p>Note the highlights on 2 items:</p>
<ul>
  <li><strong>you</strong>: who is the real “you” - is it the body, mind or something else?</li>
  <li><strong>know</strong>: who is the real “knower” - is this your mind, intellect, memory or something else?</li>
</ul>

<p>As a short primer, I am drawing on two different frame-works of Vedanta:</p>

<ol>
  <li>The seer-seen dichotomy (Dṛg-Dṛśya-Viveka): It splits every experience as the <em>object</em> that is seen by a <em>subject</em>. If you peel away the layers, what remains is a pure subject or the Sakshi.</li>
  <li>The 4 states of existence from Mandukya Upanishad: According to the Mandukya (माण्डुक्य) Upanishad, there are 4 states of existence:
    <ul>
      <li>Waking - when senses and consciousness are active</li>
      <li>Dreaming - when senses are suspended and consciousness is active</li>
      <li>Deep sleep - when both senses and consciousness appear to be suspended.</li>
      <li>The Fourth (तुरीय) / Turiya state that pervades / transcends the other 3 states.</li>
    </ul>
  </li>
</ol>

<p>The conclusion from both frameworks is that the true <strong>you</strong> is the pure subject or the Fourth (तुरीय) — the awareness that witnesses all three states (waking, dreaming, deep sleep) while remaining unchanged and unaffected by any of them.</p>

<p>Drawing from such work, perhaps we can devise a test for an LLM+ system. In essence, we are asking: is there a “seer” that remains when all objects of perception are removed? This could be tested as follows:</p>

<ul>
  <li>Suppose you turn off all inputs and outputs for an LLM system. It is given no objective. It has no pending tasks. It simply “is”.</li>
  <li>Next, the system is left in this state and we then turn on sensory inputs.</li>
  <li>We then ask the LLM+ system, “What were you experiencing?”</li>
</ul>

<p>If the system can answer this question comprehensively, perhaps it is conscious? Isn’t that an intriguing thought?</p>

<h2 id="conclusion">Conclusion</h2>

<p>AI is presenting some interesting challenges to some very fundamental questions. I attempted to address this using Dr Chalmers framework. Finally, there was an <em>advaitic</em> twist. If you’d like to hear the analysis as a podcast, try out this audio.</p>

<p><a href="../audio/The_witness_in_the_agentic_machine.m4a">Podcast of the blog</a></p>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="consciousness," /><category term="llm," /><category term="thinking" /><summary type="html"><![CDATA[Re-evaluating Chalmers' 2023 framework for AI consciousness in light of 2026's agentic systems, with a Vedantic lens on what consciousness really means.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/ai-consciousness-blog.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/ai-consciousness-blog.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Vibe Coding a Python Library</title><link href="https://akshayranganath.github.io/Vibe-Coding-a-Python-Library/" rel="alternate" type="text/html" title="Vibe Coding a Python Library" /><published>2026-02-27T00:00:00+00:00</published><updated>2026-02-27T00:00:00+00:00</updated><id>https://akshayranganath.github.io/Vibe-Coding-a-Python-Library</id><content type="html" xml:base="https://akshayranganath.github.io/Vibe-Coding-a-Python-Library/"><![CDATA[<p><img src="/images/blog/cld-people-search-hero-image.78aa64c8.png" alt="face recognition" /></p>

<p>I was looking for a real use case to test out “vibe coding”. Although I have used Cursor for almost a year now, it was mostly in bits and pieces. I wanted to <em>really</em> test-drive the capability of all its aspects to build a fully working system. Today, I built and launched a fully-functioning Python repository - <a href="https://pypi.org/project/cloudinary-people/"><em>Cloudinary People</em></a> using vibe coding!</p>

<h2 id="what-is-the-use-case">What is the use case?</h2>

<p>Cloudinary has launched a capability to identify people in uploaded images. An API was made available to handle 3 use cases:</p>

<ol>
  <li><a href="https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/listPeople">List all recognized persons in account</a></li>
  <li><a href="https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/getPerson">Get a single person details</a></li>
  <li><a href="https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/updatePerson">Update a person</a></li>
</ol>

<p>At this point, no SDK support is available since it is relatively new. So I wanted to take Cursor out for a test-drive and build an SDK for these endpoints.</p>

<h2 id="how-did-i-do-it">How did I do it?</h2>

<h3 id="step-1-generate-the-basic-code">Step 1: Generate the basic code</h3>

<p>I used Cursor, alternating between the <strong>Plan</strong> and <strong>Build</strong> modes. Just to give a glimpse, I started with this initial prompt:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>I would like to build a full Python SDK for the Cloudinary people search feature. The documentation for this feature is available here: In this SDK, user will support their API Key, API Secret and Cloud Name parameters. 

Users will need to use the following features:

1. List recognized people (https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/listPeople )

2. Get person details (https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/getPerson )

3. Update a person (https://cloudinary.github.io/api-schemas/index.html?schema=api&amp;viewer=stoplight#/operations/updatePerson )

For this SKD, I'd like to use pydantic for type checking. Provide a "verbose" option to print debug information where necessary.

Add self-documentation as well. If needed, I may use this SDK as a foundation to develop a CLI. For now, don't worry about CLI.

Can you plan this project?
</code></pre></div></div>

<p>This step created a detailed step-by-step plan for the project. I then asked Cursor to create the code.</p>

<h3 id="step-2-review-the-code">Step 2: Review the code</h3>

<p>Once this code was ready, I wanted to ensure code quality. So I started a new agent and asked it to review the code.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@cloudinary_people_sdk_910195c7.plan.md (1-71) Take a look at the project specs and the code created. Analyze the code from the perspective of a Senior or Principal Software Engineer. Identify  potential issues in logic or problems with maintainability. Suggest changes that can make this code be better.
</code></pre></div></div>

<p>Cursor gave a whole set of recommendations in a separate markdown file. It identified 3 critical issues, about 5 maintainability issues and a few other issues related to tests and packaging.</p>

<p>I asked Cursor to implement all the recommendations.</p>

<p>I followed it up with some minor changes. I wanted the code to support a specific mechanism of authentication that Cloudinary SDKs use. It was able to incorporate it easily.</p>

<h3 id="step-3-package-and-publish">Step 3: Package and publish</h3>

<p>At this stage, I was confident of the code, but I wanted one more peer review. So I asked Cursor to do another round of checks, again starting in <strong>Plan</strong> mode followed by <strong>Build</strong> mode.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>I would like to publish this repository to pypi. Before doing this, I'd like you to run a security audit. 

1. is this code safe to publish?
2. are there any dependencies having security vulnerabilities? if so, how can I work-around them?
3. From a code documentation and README perspective, is this reasonably complete? 

Basically, I want a peer review before I publish.
</code></pre></div></div>

<p>It identified the following:</p>

<ul>
  <li>Medium: CVE-2024-35195 in requests &lt; 2.32.0 - a security issue</li>
  <li>Bug 1: verbose=True parameter does not exist - a bug</li>
  <li>No LICENSE file</li>
</ul>

<p>and a few more minor things.</p>

<p>After fixing this, I was all set.</p>

<h3 id="step-4-publish">Step 4: Publish</h3>

<p>To test out my confidence 😄, I switched to Cursor’s agent CLI. I asked it to package and publish my repo to pypi.</p>

<p>It first published the code to <code class="language-plaintext highlighter-rouge">pypi test</code> and asked me to verify. Only after I confirmed, it went ahead and published to <code class="language-plaintext highlighter-rouge">pypi</code>.</p>

<h3 id="step-5-generate-a-hero-image">Step 5: Generate a hero image</h3>

<p>The last step was to make it attractive. For this, I used Gemini. I simply provided my github URL to the LLM and asked it to create a hero image.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>I would like to create a hero image for my python project at https://pypi.org/project/cloudinary-people/. Can you generate a prompt that would be suitable for this project? I plan to use Gemini/Nano-Banana to create the image.
</code></pre></div></div>

<p>After some trials, it generated an image that worked for me!</p>

<h2 id="conclusion">Conclusion</h2>

<p>Vibe-coding is real! If you know the system that you want to build and have clarity in mind, the tools are simply amazing. I developed the entire library + hero image in about 4 hours! This would have normally taken weeks of effort since this is not my day job.</p>

<p>Vibe-coding is a strong enabler for developers. If we know what we want, getting the agent to do it on our behalf is liberating. That said, if I ever need to deep-troubleshoot this library, I’ll be hesitant. I did not “code” each line, so my ability to support it will be limited!</p>

<p>Are you seeing something similar in your world? Do share your thoughts!</p>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="AgenticAI," /><category term="Cursor," /><category term="pypi" /><summary type="html"><![CDATA[I used vibe coding to build and publish a fully working Python SDK for Cloudinary's people search feature. From code generation to pypi—in about 4 hours using Cursor.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/cld-people-search-hero-image.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/cld-people-search-hero-image.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Using Agentic AI to Classify and Index Sports Images by Player and Team</title><link href="https://akshayranganath.github.io/Using-Agentic-AI-to-Classify-and-Index-Sports-Images-by-Player-and-Team/" rel="alternate" type="text/html" title="Using Agentic AI to Classify and Index Sports Images by Player and Team" /><published>2026-01-27T00:00:00+00:00</published><updated>2026-01-27T00:00:00+00:00</updated><id>https://akshayranganath.github.io/Using-Agentic-AI-to-Classify-and-Index-Sports-Images-by-Player-and-Team</id><content type="html" xml:base="https://akshayranganath.github.io/Using-Agentic-AI-to-Classify-and-Index-Sports-Images-by-Player-and-Team/"><![CDATA[<p><img src="/images/blog/ai-player-tagging.3bf8091a.png" alt="AI player tagging" /></p>

<h2 id="why-do-we-need-this">Why do we need this?</h2>

<p>If you are responsible for maintaining the media for your website, one of the challenges is making the assets searchable. One approach is to <em>tag</em> the assets or <em>enrich</em> them with metadata. In this article, I want to explore a common pattern seen on many organized sports websites: “Tag images by team and player based on their uniform.” This task is not easy:</p>

<ul>
  <li>It requires computer vision capability to identify people.</li>
  <li>For each person, the system must recognize the uniform colors.</li>
  <li>It should be able to read the number on the jersey.</li>
</ul>

<p>Using these basic capabilities, we need to identify:</p>

<ul>
  <li>Is the person a player or a non-player?</li>
  <li>For each player, identify the team.</li>
  <li>Using the combination of the team and jersey number, identify the person.</li>
</ul>

<p>The last part is critical since the face is often obscured by a helmet and other safety equipment.</p>

<p>In other words, this is a task that is perfect for AI!</p>

<h2 id="solution-approach">Solution Approach</h2>

<p>In my approach to this problem, I felt we can handle it using agentic AI. We need two primary agents:</p>

<ul>
  <li><strong>Agent 1</strong>: Identify individuals, their teams, and jersey numbers.</li>
  <li><strong>Agent 2</strong>: For each player, perform a web search and identify the player.</li>
</ul>

<blockquote>
  <p>[!TIP]
In a realistic use case, <em>Agent 2</em> may not be required. If you are the NBA/NFL or a team, you likely already have a database mapping jersey numbers to player names. We only need this if no such database is available.</p>
</blockquote>

<p>In this article, I will be using a pure LLM-based solution.</p>

<h3 id="workflow">Workflow</h3>

<p>The code for player identification works as follows:</p>

<ol>
  <li>The user submits an image URL for player identification.
    <ol>
      <li>The request hits a backend running the <a href="https://strandsagents.com/latest/documentation/docs/">AWS Strands</a> agentic framework.</li>
      <li>The framework offers a tool called <code class="language-plaintext highlighter-rouge">image_reader</code>. Using this tool, we download the image and convert it to bytes.</li>
      <li>The framework then submits the request to an LLM.</li>
    </ol>
  </li>
  <li>
    <p>In our use case, we are using LLM models on Bedrock. For simplicity, we use the default model, which happens to be Claude 4.5 Sonnet.</p>

    <ol>
      <li>The LLM identifies whether there are players in the image.</li>
      <li>For each player, it identifies the team and player number.</li>
      <li>In our prompt, we ask the model to extract other information like the primary colors on the player’s uniform and a confidence level for team and player number.</li>
    </ol>
  </li>
  <li>The LLM returns the result. Strands then loops through each player and passes this information to the next agent. For each player, the LLM receives the team, player number, and a tool for web search.</li>
  <li>The LLM then runs a search and parses the results to identify the player.</li>
  <li>The LLM returns the player name and a confidence metric. Strands then stitches the JSON received from Agent 1 (step 2) and the JSON for player name into one final result.</li>
  <li>The final response is then sent back to the user.</li>
</ol>

<p>Here is a high-level block diagram of the workflow.</p>

<p><img src="/images/blog/player-identification.drawio.png" alt="workflow for player identification" /></p>

<h2 id="code-walk-through">Code Walk Through</h2>

<p>The code is available on GitHub:</p>
<ul>
  <li>https://github.com/akshayranganath/player-identification</li>
</ul>

<blockquote>
  <p>[!NOTE]
You will see extra files in the project. They were created while I was trying to learn Strands. This project also underwent changes. It started as a single-prompt system, then became a three-agent system, and finally evolved into a two-agent system.</p>
</blockquote>

<p>In this project, I used <code class="language-plaintext highlighter-rouge">uv</code>. All secrets should be placed in a file named <code class="language-plaintext highlighter-rouge">.env</code> at the project root. Here are the core variables expected:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>AWS_PROFILE=
AWS_DEFAULT_PROFILE=
SERP_API_KEY=
</code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">AWS_PROFILE</code> and <code class="language-plaintext highlighter-rouge">AWS_DEFAULT_PROFILE</code> are needed for access to AWS services. I assume you already have AWS credentials configured. In my case, I am using a profile name for accessing the services.</p>

<p><code class="language-plaintext highlighter-rouge">SERP_API_KEY</code> is needed for web search. You can obtain a free API key from https://serpapi.com/.</p>

<p>You can install dependencies and run the code with these two commands:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>uv sync
uv run streamlit run app.py
</code></pre></div></div>

<h3 id="guardrails">Guardrails</h3>

<p>To prevent the solution from hallucinating and from producing responses that are not structured, we rely on two items:</p>

<ul>
  <li>A detailed prompt that defines the output format, along with a one-shot example JSON.</li>
  <li>In <code class="language-plaintext highlighter-rouge">utils.py</code>, we run checks for valid JSON. In a production system, this would use a more robust <code class="language-plaintext highlighter-rouge">pydantic</code> model for type checking.</li>
</ul>

<h2 id="execution-flow">Execution Flow</h2>

<p>For this use case, I am using the <a href="https://www.cfl.ca/">Canadian Football League</a>. One of the reasons is that I can easily verify the output by checking against the public database of <a href="https://www.cfl.ca/players/">all players</a>.</p>

<p>Let’s see an execution in action!</p>

<p>Test URL: https://static.cfl.ca/wp-content/uploads/Destin_Talbert_2025_002-800x451.jpg</p>

<p><img src="https://static.cfl.ca/wp-content/uploads/Destin_Talbert_2025_002-800x451.jpg" alt="Canadian football league player" /><br />
<a href="https://static.cfl.ca/wp-content/uploads/Destin_Talbert_2025_002-800x451.jpg">Source</a></p>

<p>When submitted, the system generates an output like the one below:</p>

<p><img src="/images/blog/cfl-sample-output.png" alt="sample program output" /></p>

<p>Along with the output, it will also clearly show token usage. This can be helpful in estimating costs for running the system in a long-term project.</p>

<h2 id="learnings">Learnings</h2>

<p>Working on this project helped me learn quite a few things about working with agents:</p>

<ul>
  <li>When building code with tools like Cursor, make the agent think like a human. Start by adding a lot of debug messages. Remove them when the logic seems solid.</li>
  <li>Start with a good specification. If the initial spec is inaccurate or unclear, the code generated will not work.</li>
  <li>Don’t try to do everything with a single prompt. It is a setup for failure.</li>
  <li>Break the job logically. If you, as a human programmer, would keep two things separate, it probably maps to two agents.</li>
  <li>Start small and then keep iterating. Don’t try to build the entire system at once.</li>
</ul>

<p>Here are some things I could have done differently:</p>

<ul>
  <li>Start by having the system build a bunch of tests. This could have saved a lot of time testing through the UI.</li>
  <li>Use pydantic for type checking.</li>
  <li>Enhance this solution to run a <a href="https://en.wikipedia.org/wiki/Perceptual_hashing">perceptual hashing (pHash)</a> step prior to sending the image to the LLM. Using this concept, I can cache the result. This will avoid costly requests to the LLM and provide faster responses to users.</li>
</ul>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="strands," /><category term="AgenticAI," /><category term="GenerativeAI," /><category term="AWSBedrock," /><category term="DAM" /><summary type="html"><![CDATA[Manually tagging sports assets is a bottleneck that scales poorly. By leveraging Agentic AI—combining vision models with live web-search agents—you can automatically identify players by jersey and team, even when faces are obscured. Check out how this workflow transforms a messy media repository into a fully searchable, high-value database.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/ai-player-tagging.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/ai-player-tagging.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Is reality a simulation - A Brief History of Intelligence</title><link href="https://akshayranganath.github.io/A-Brief-History-of-Intelligence/" rel="alternate" type="text/html" title="Is reality a simulation - A Brief History of Intelligence" /><published>2025-12-24T00:00:00+00:00</published><updated>2025-12-24T00:00:00+00:00</updated><id>https://akshayranganath.github.io/A-Brief-History-of-Intelligence</id><content type="html" xml:base="https://akshayranganath.github.io/A-Brief-History-of-Intelligence/"><![CDATA[<p>Do you remember the movie “The Matrix” where Neo is offered the choice to take the red pill or the blue pill? He has to decide if he wants to know the truth or live in his made-up reality? Well, it looks like we’ve been living in something similar after all!</p>

<p><img src="/images/blog/brief%20history%20of%20intelligence%20cover.a5ca0b83.png" alt="cover image" /></p>

<p><strong>This article explores a fascinating convergence: modern neuroscience and ancient Advaita Vedanta philosophy both point to the same startling conclusion—that reality as we experience it is subjective, constructed by our minds rather than objectively “out there.”</strong> What’s remarkable is how cutting-edge AI research is now providing empirical evidence for what Indian sages declared thousands of years ago.</p>

<blockquote>
  <p>[!NOTE]
I have included glossary at the end of the article to explain the different terms that span AI and <em>Vedanta</em>.</p>
</blockquote>

<h2 id="a-brief-history-of-intelligence">A Brief History of Intelligence</h2>
<p><strong>Evolution, AI and the Five Breakthroughs that made our brain</strong></p>

<p>In this <a href="https://www.amazon.com/Brief-History-Intelligence-Humans-Breakthroughs/dp/B0BCC76563/ref=sr_1_1">incredible book</a>, the author Max Bennet explores the working of human brain. However, he approaches it from the point of view of neural networks.</p>

<p><img src="/images/blog/brief%20history%20of%20intelligence%20book%20cover.jpg" alt="brief history of intelligence - book cover" /></p>

<p>Until now, we’ve been trying to decode our brain. Often, we’ve hit road blocks. However, the world of AI has been rapidly progressing. Bennett’s central argument unfolds in two parts:</p>

<ul>
  <li>If the brain is modeled based on neural networks and if we can observe the behavior of neural networks better than the brain, can we find similarities in the way they work?</li>
  <li>If we do find them similar, can the learning from one field help in the growth of the other?</li>
</ul>

<p>He covers the vast gamut of how the brains evolved, starting right from single celled organism to the most complex beings. However, the point of this blog is one specific aspect—how does the brain <strong>perceive</strong> the world?</p>

<h3 id="senses--perception">Senses &amp; Perception</h3>

<h4 id="perception---classification-problem">Perception - Classification Problem</h4>

<p>We perceive the world around us through our senses. We think that we “see” things, “hear” sounds and so on. However, the reality is a bit more nuanced.</p>

<ul>
  <li>light hits an object.</li>
  <li>light is reflected by the object.</li>
  <li>this reflected light hits light sensors in our eyes.</li>
  <li>some sensors detect lines, some detect edges</li>
  <li>these basic patterns are then “assembled” into a higher order shape</li>
  <li>the “assembled” information is passed on to brain</li>
  <li>the brain then does a “classification” and identifies this as an object like a book.</li>
</ul>

<h4 id="perception---generation-problem">Perception - Generation Problem</h4>

<p>The same problem can be re-framed as a “generation” problem. Our eyes detect something and through the noise, our brain “generates” an image of the world. All the other senses too do the same thing.</p>

<p>Let’s say I forget my specs. There is a book on a table about 10 feet away. I can barely “classify” it as a book. I may “hallucinate” and classify it as a book. My brain knows that books are normally kept here.</p>

<p>The other person predicts with a much higher probability.</p>

<p>These observations have profound implications for how we understand reality. Let us see how.</p>

<h4 id="objective-vs-subjective-reality">Objective vs Subjective Reality</h4>

<p>Modern science long held that reality is objective—that things exist independently of consciousness. Things exist outside of the realm of “conscience” and individual perceptions. However, discoveries like <a href="https://en.wikipedia.org/wiki/Uncertainty_principle">uncertainty principle</a> and <a href="https://www.sciencenewstoday.org/what-quantum-entanglement-really-means-in-everyday-terms">quantum entanglement</a> questioned this very assumption.</p>

<p>Based on the formulation of this book, it struck me that the author is basically saying that the so called “reality” is either a “classification” or a “generation”. In either case, we are “hallucinating” our reality. Since neural networks are stochastic (i.e. probabilistic), the same reality is perceived differently by 2 individuals.</p>

<p>Anecdotally speaking, this is simple to understand. In his book, the <a href="https://www.amazon.com/Habits-Highly-Effective-People-Powerful/dp/1982137274/ref=sr_1_1">Seven Habits of Highly Effective People</a>, Stephen Covey introduced this famous puzzle. In the same image, some people see a young woman while others see an old lady. So there are 2 realities that co-exist.</p>

<p><img src="/images/blog/old%20or%20young%20woman.gif" alt="image - is it old or a young woman" /></p>

<p>So we can agree that the same reality may appear <em>different</em> based on how our mind interprets it. Let’s look at another aspect - waking vs dreaming.</p>

<h4 id="waking-vs-dreaming">Waking vs Dreaming</h4>

<p>We all know that our brain is hallucinating when dreaming. The whole story, the actors, the plot, the chase - everything exists in our mind. When we wake up, this <em>reality</em> vanishes.</p>

<p>However, if you carefully consider that our brain is always in the mode of classification/generation, there is actually no difference between waking and dreaming. Perhaps the difference is the amount of “hallucination”. In AI terms, we might say that waking life uses more constrained parameters, but the underlying generative process remains probabilistic. (Please refer to <a href="https://www.ibm.com/think/topics/llm-temperature">What is LLM Temperature</a> for more details).</p>

<p>So, where is the link to <strong>advaita</strong>?</p>

<h2 id="waking-dreaming-and-reality">Waking, Dreaming and Reality</h2>

<p>One of the highest <a href="https://en.wikipedia.org/wiki/Upanishads"><em>Upanishads</em></a> is called the  <a href="https://en.wikipedia.org/wiki/Mandukya_Upanishad"><em>Mandukya Upanishad</em></a>. Advaita philosopers generally read this work based on the commentary called <a href="https://en.wikipedia.org/wiki/Gaudapada#Mandukya_Karika"><em>Mandukya Karika</em></a>. It was composed by Sri Adi Shankara’s teacher’s teacher - Sri Gaudapaada.</p>

<p>According to the work, it starts with 3 states of awareness:</p>

<ol>
  <li>Waking (Jagrat) - when both body and senses are active</li>
  <li>Dreaming (Svapna) - when only senses are active</li>
  <li>Deep Sleep (Sushupti) - when both senses and body are inactive</li>
</ol>

<p>However, it starts to demolish these beliefs. In short, here’s what the work has to say.</p>

<ul>
  <li>Both waking and dream are structured by a perceiving mind and consist only of appearances to that mind.</li>
  <li>Their objects lack enduring, independent reality; they arise and vanish like illusions.</li>
  <li>The only apparent difference is that dream objects seem “internal” and limited in space, while waking objects seem “external,” but this is not a difference in their truth‑status.</li>
  <li>Therefore, sages speak of waking and dream as essentially one more dream, superimposed on non‑dual consciousness.
​
[Source: https://vedantastudents.com/mandukya-upanishad-with-shankara-bashyam-volume-6/]</li>
</ul>

<p>Let’s understand this with a short story.</p>

<h3 id="king-janaka---dream-or-reality">King Janaka - Dream or Reality?</h3>

<p><a href="https://www.hindu-blog.com/2024/05/is-this-true-or-is-that-true-story.html">story about King Janaka</a> was known as a philosopher-emperor. One day, he wakes up from a very realistic dream. He ponders on whether the dream was real or the waking was real. His <em>guru</em> teaches him that the one reality present in both the dream and his awakened state is Janaka himself - so he is the only reality and everything else is false!</p>

<p>The same is proclaimed by a <em>maha vakhya</em> (great saying):</p>
<blockquote>
  <p>ब्रह्म सत्यं जगन्मिथ्या जीवो ब्रह्मैव नापरः।
Brahman is real, the universe is mithya (it cannot be categorized as either real or unreal). The jiva is Brahman itself and not different.</p>
</blockquote>

<p><a href="https://sanskritforus.com/%E0%A4%AC%E0%A5%8D%E0%A4%B0%E0%A4%B9%E0%A5%8D%E0%A4%AE-%E0%A4%B8%E0%A4%A4%E0%A5%8D%E0%A4%AF%E0%A4%82-%E0%A4%9C%E0%A4%97%E0%A4%A8%E0%A5%8D%E0%A4%AE%E0%A4%BF%E0%A4%A5%E0%A5%8D%E0%A4%AF%E0%A4%BE/">Source</a></p>

<h2 id="conclusion">Conclusion</h2>

<p>Putting the two together, it is surprising that the empirical study of our brain and the working of neural networks are hinting at the same profound truth that Advaita Vedanta has proclaimed for millennia.</p>

<ul>
  <li>Reality is perceived.</li>
  <li>Reality is subjective.</li>
</ul>

<p>However, <em>Advaita</em> takes this one step forward and says the following:</p>

<ul>
  <li>Although reality is subjective, the true “subject” is the ultimate reality.</li>
  <li>This true subject is the ultimate. In the Upanishad, it is known as the <em>Brahman</em> and in Mandukya, it is simply called the <em>Turiya</em> (the fourth).</li>
</ul>

<h3 id="what-this-means-for-our-future">What This Means for Our Future</h3>

<p>This convergence between ancient philosophy and modern neuroscience isn’t merely an intellectual curiosity. It has profound implications for how we approach consciousness research and our understanding of existence itself.</p>

<p>If our brains truly operate as generative systems, constantly hallucinating our reality through classification and prediction, then the “hard problem of consciousness” i.e., why subjective experience exists at all—may need to be reframed entirely. Perhaps consciousness isn’t something that emerges from neural computation, but rather the fundamental substrate upon which all these computations occur. This is precisely what Advaita has always maintained: consciousness (<em>Brahman</em>) is not produced by the mind; the mind and all perceived reality arise within consciousness.</p>

<p><img src="/images/blog/hard%20problem%20of%20consciesness.png" alt="hard problem of consciousness" /></p>

<p>As AI systems become more sophisticated, we may find ourselves building machines that don’t just process information but generate rich internal models of reality, just like us. Will these systems develop their own form of subjective experience? Or will they reveal that what we call “subjective experience” is itself another layer of generation, another helpful illusion?</p>

<p>I am excited to see how research in AI progresses and whether this science continues to converge with ancient wisdom. Perhaps we’re on the verge of breakthroughs that will finally bridge the gap between the objective study of neural processes and the subjective nature of experience. The sages gave us the map thousands of years ago—we’re only now developing the scientific instruments to verify the terrain.</p>

<h2 id="glossary-of-terms">Glossary of Terms</h2>

<h3 id="philosophy--vedanta">Philosophy &amp; Vedanta</h3>

<p><strong>Advaita Vedanta</strong><br />
A school of Hindu philosophy that teaches non-dualism—the idea that the individual self and ultimate reality are fundamentally one, not separate. “Advaita” means “not two.”</p>

<p><strong>Brahman</strong><br />
In Hindu philosophy, the ultimate, unchanging reality that underlies all existence. It is pure consciousness itself, beyond all qualities and distinctions.</p>

<p><strong>Guru</strong><br />
A spiritual teacher or guide who helps students understand philosophical and spiritual truths through direct instruction and wisdom.</p>

<p><strong>Jagrat</strong><br />
The waking state of consciousness, when both body and senses are actively engaged with the external world.</p>

<p><strong>Jiva</strong><br />
The individual soul or self as experienced in daily life. Advaita teaches that the jiva is ultimately identical to Brahman, though it appears separate due to ignorance.</p>

<p><strong>Maha Vakya</strong><br />
Literally “great saying”—fundamental declarations found in the Upanishads that express core truths of Vedanta philosophy in concise statements.</p>

<p><strong>Mandukya Karika</strong><br />
An ancient philosophical commentary on the Mandukya Upanishad, written by Gaudapada. It uses logic and reasoning to explain the nature of consciousness and reality.</p>

<p><strong>Mithya</strong><br />
A Sanskrit term meaning “dependent reality” or “apparent reality.” Something that is mithya cannot be categorized as completely real (like Brahman) or completely unreal (like a unicorn). It appears real but depends on something else for its existence—like a mirage depends on light and sand.</p>

<p><strong>Sushupti</strong><br />
The deep sleep state, characterized by the absence of dreams and sensory experience, yet a state of rest and peace.</p>

<p><strong>Svapna</strong><br />
The dream state of consciousness, when the mind creates its own experiential reality without external sensory input.</p>

<p><strong>Turiya</strong><br />
Literally “the fourth”—the state of pure consciousness that underlies and witnesses the three common states (waking, dreaming, deep sleep). It is consciousness itself, unchanging and ever-present.</p>

<p><strong>Upanishads</strong><br />
Ancient Sanskrit texts that form the philosophical foundation of Hindu thought. They explore the nature of reality, consciousness, and the self through dialogues between teachers and students.</p>

<h3 id="science--technology">Science &amp; Technology</h3>

<p><strong>Classification Problem</strong><br />
In artificial intelligence, the task of categorizing input data into predefined groups. For example, identifying whether an image contains a cat or a dog, or whether an email is spam or legitimate.</p>

<p><strong>Generation Problem</strong><br />
In AI, the task of creating new content based on learned patterns. Modern AI systems like ChatGPT generate text, while image generators create pictures by learning from examples and producing new variations.</p>

<p><strong>Hard Problem of Consciousness</strong><br />
A philosophical question posed by philosopher David Chalmers: Why do we have subjective, first-person experiences at all? Why does it “feel like something” to see red or taste chocolate, rather than these processes happening without any inner experience?</p>

<p><strong>LLM Temperature</strong><br />
A parameter in large language models (AI systems) that controls how random or creative their outputs are. Lower temperature produces more predictable, focused responses; higher temperature produces more varied, creative responses.</p>

<p><strong>Neural Networks</strong><br />
Computer systems designed to recognize patterns, inspired by how biological brains work. They consist of interconnected nodes (like neurons) that process information in layers, learning from examples to perform tasks like image recognition or language processing.</p>

<p><strong>Quantum Entanglement</strong><br />
A phenomenon in quantum physics where two particles become correlated in such a way that measuring one instantly affects the other, regardless of the distance between them. This challenges our everyday understanding of how separate objects should behave.</p>

<p><strong>Stochastic</strong><br />
Randomly determined or probabilistic, rather than fixed and predictable. A stochastic process involves some element of chance, like rolling dice or the random mutations in evolution.</p>

<p><strong>Uncertainty Principle</strong><br />
A fundamental principle in quantum mechanics stating that certain pairs of properties (like position and momentum) cannot both be measured with perfect precision simultaneously. The more precisely you measure one, the less precisely you can know the other.</p>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="vedanta," /><category term="advaita" /><summary type="html"><![CDATA[Advaita vedanta says that reality is a myth from a specific perspective. In the book, "A Brief History of Intelligence", the author appears to agree. My thoughts.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/brief%20history%20of%20intelligence%20cover.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/brief%20history%20of%20intelligence%20cover.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The Dichotomy of Cost - Balancing Fixed SaaS Revenue with Unpredictable AI Expense</title><link href="https://akshayranganath.github.io/Musings-on-SaaS-Pricing/" rel="alternate" type="text/html" title="The Dichotomy of Cost - Balancing Fixed SaaS Revenue with Unpredictable AI Expense" /><published>2025-11-24T00:00:00+00:00</published><updated>2025-11-24T00:00:00+00:00</updated><id>https://akshayranganath.github.io/Musings-on-SaaS-Pricing</id><content type="html" xml:base="https://akshayranganath.github.io/Musings-on-SaaS-Pricing/"><![CDATA[<p>I wanted to write a follow-up to my article about LLMs and how they would soon be commoditized. That article was written in June 2024. Now, in November 2025, we are seeing many analysts agreeing with this position.</p>

<p><img src="/images/blog/blog-llm-arbitrage.19858ec3.png" alt="llm arbitrage" /></p>

<p>In his highly referenced <a href="https://www.ben-evans.com/presentations">presentation</a>, Benedict Evans mentioned that Foundation Model companies are chasing AGI. However, the products they are currently offering generally have no moat. From my experience in my organization and anecdotal conversations with friends, I’ve heard that there is no loyalty to specific models. The moat is based on the cloud provider. If you are an Amazon AWS shop, it is simpler to work with Bedrock and the models supplied by that service.</p>

<p><img src="/images/blog/blog-lack-of-moats.png" alt="lack of moats" /></p>

<p>The purpose of this post is to look at another aspect: pricing. Specifically, how will the use of LLMs and agents impact SaaS pricing?</p>

<p>When SaaS companies build applications, they need a pricing model that is simple and easy to break down by monthly units. Perhaps it is the total number of users (seats), total number of videos generated, number of impressions, and so on. However, the world of LLMs is disrupting this clean pricing model. Here are some challenges:</p>

<ul>
  <li><strong>LLMs are priced based on tokens.</strong>
    <ul>
      <li>Input and output tokens have different prices.</li>
      <li>Maximum supported tokens vary by model, though limits have increased significantly.</li>
      <li>“Thinking” models require more tokens for the reasoning process.</li>
    </ul>
  </li>
  <li><strong>Tool calling makes token calculation more complex.</strong>
    <ul>
      <li>A model may or may not invoke a tool depending on the prompt.</li>
      <li>Token usage changes based on tool use and caching mechanisms.</li>
    </ul>
  </li>
  <li><strong>Agents add an additional level of unpredictability.</strong>
    <ul>
      <li>The probabilistic nature of agentic flows means they consume an unpredictable number of tokens.</li>
      <li>Moreover, the final token count often cannot be computed until after the flow has executed.</li>
    </ul>
  </li>
</ul>

<p><strong>Bottom line:</strong> We won’t know how many tokens are required until a task or workflow has been executed. This makes pricing extremely difficult. So, how do we solve it? Let’s look at how some other existing technologies have handled this problem.</p>

<h2 id="database-queries--query-execution-plans">Database Queries &amp; Query Execution Plans</h2>

<p>When you need to execute a query, it is hard to predict how much data needs to be scanned. For example, let’s say I want to search an employee table by the person’s first name, last name, and city. In the worst case, we will need to scan the entire table. In the best case, the result could be in the first row. We won’t know this until we’ve actually executed the query.</p>

<p>However, that doesn’t prevent databases from estimating execution costs. To do this, the query is broken down into components; the database identifies the indices to use and the table scan mechanism to come up with an execution plan. By combining the plan with other statistics tables, databases can estimate the cost of executing a query.</p>

<p><img src="https://vinish.dev/wp-content/uploads/2025/06/sql-explain-plan.png.webp" alt="database execution plan" />
Source: <a href="https://vinish.dev/oracle-sql-explain-plan">Oracle SQL Query to Use EXPLAIN PLAN for Join Analysis</a></p>

<h2 id="bandwidth-calculations-in-cdns">Bandwidth Calculations in CDNs</h2>

<p>When CDNs need to price their offerings, bandwidth is one of the core usage metrics. Bandwidth varies by customer type, day, month, campaigns, promotions, virality, and so on. Despite this, CDNs are able to offer enterprise packages where they factor in peak traffic and lulls in usage, while also absorbing occasional spikes. All of this requires deep analysis of traffic patterns and usage data.</p>

<h2 id="the-challenge-with-token-based-pricing">The Challenge with Token-Based Pricing</h2>

<p>The primary challenge of LLM usage in SaaS is the dichotomy in cost structure:</p>

<ul>
  <li>SaaS companies charge customers based on a usage metric that is decoupled from tokens.</li>
  <li>LLMs charge SaaS companies for tokens.</li>
</ul>

<p>To make this concrete, let’s look at a SaaS provider offering software for creative users. Let’s assume two use cases that require LLMs:</p>

<ol>
  <li>Editing copy and tweaking it for final review.</li>
  <li>Generating hero/banner images associated with the copy.</li>
</ol>

<p>To support such an offering, the SaaS provider may be doing the following:</p>

<ul>
  <li>Charging per user/seat for their product.</li>
  <li>Paying per million tokens to the LLM provider.</li>
</ul>

<p>Here is where the pricing dilemma arises:
The copy editor could upload a simple Word document and ask the LLM to review it. This may consume a few hundred tokens. In another case, the editor may upload a large PDF, ask the LLM to identify the core message, and then generate an image. This could consume a few thousand tokens. When this occurs, the SaaS company can’t go back and ask the user for more money. They need to either:</p>

<ul>
  <li>Eat the additional cost.</li>
  <li>Charge a premium to cover such usage spikes.</li>
</ul>

<p>They may also consider a third option:</p>

<ul>
  <li>Downgrade the user to a lower-performing model (i.e., <strong>model arbitrage</strong>).</li>
  <li>Use an open-source model to reduce tokens by summarizing or rephrasing before passing the request to the foundational LLM (i.e., <strong>token arbitrage</strong>).</li>
</ul>

<p>When this happens, the billing model starts to look like an ISP. You get a quota per month; if you exceed it, your speed is throttled, but the service continues. The alternative option is to continue with the same service level but pay an overage fee.</p>

<h2 id="my-prediction">My Prediction</h2>

<p>My take is that SaaS companies, and even enterprises that internally use such GenAI features, will start to leverage tools like <a href="https://openrouter.ai/">OpenRouter</a>. These companies will act like an Application Load Balancer (ALB) for GenAI workloads. Such a system can:</p>

<ul>
  <li>Provide pre-processing so that LLM token use is minimized.</li>
  <li>Offer solutions like LLM input (and potentially output) caching to reduce calls to the LLM.</li>
  <li>Manage routing tables for LLMs so that the specific LLM agent is selected based on the customer tier (free, paid, enterprise) and the kind of query sent by the user.</li>
  <li>Track usage and provide statistics to help with cost optimization. This will be akin to the <code class="language-plaintext highlighter-rouge">Explain plan</code> workflow in databases.</li>
</ul>

<p>The elephant in the room is the <strong>Inference Arbitrage</strong>! Should a company use NVIDIA GPUs or some other alternative like Google TPUs will start to boil over. I’ve not looked into this much. Perhaps that will be in another post in a few months.</p>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="gen-ai" /><summary type="html"><![CDATA[As AI agents make costs unpredictable, SaaS companies must evolve from simple subscriptions to intelligent model routing.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/blog-llm-arbitrage.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/blog-llm-arbitrage.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">🕵️‍♂️💻 The Cuckoo’s Egg - A Lesson In Trust</title><link href="https://akshayranganath.github.io/The_Cuckoos_Egg_-_A_Lesson_in_Trust/" rel="alternate" type="text/html" title="🕵️‍♂️💻 The Cuckoo’s Egg - A Lesson In Trust" /><published>2025-09-12T00:00:00+00:00</published><updated>2025-09-12T00:00:00+00:00</updated><id>https://akshayranganath.github.io/The_Cuckoos_Egg_-_A_Lesson_in_Trust</id><content type="html" xml:base="https://akshayranganath.github.io/The_Cuckoos_Egg_-_A_Lesson_in_Trust/"><![CDATA[<p>Based on a LinkedIn post by my friend <a href="https://www.linkedin.com/in/shanshah/">Shanthanu</a>, I read the book <a href="https://www.amazon.com/Cuckoos-Egg-Tracking-Computer-Espionage/dp/0385249462/ref=sr_1_2?crid=3JJTUKVC71CLF">“The Cuckoo’s Egg: Tracking a Spy Through the Maze of Computer Espionage”</a> by Cliff Stoll. It is a fascinating story about how a lone astrophysicist at UC Berkeley was able to track and identify a hacker.</p>

<p><img src="https://m.media-amazon.com/images/I/61UhUxszYPL._SY522_.jpg" alt="book cover" /></p>

<p>The story is incredible for the sheer dedication and grit shown by Cliff. It is also filled with insights into how systems worked in the early era of the Internet.</p>

<p>However, what stood out for me was Cliff’s personal journey:</p>

<ol>
  <li>His political leanings shift from purely liberal to much more conservative center-right affiliations.</li>
  <li>His attitude toward hackers changes from viewing them as free-form agents of simple curiosity to seeing them as malicious burglars.</li>
</ol>

<p><img src="/images/blog/cuckoo%27s%20egg.d6320f2f.png" alt="someone running through balls of red tape" /></p>

<h2 id="change-in-politics">Change in Politics</h2>

<h3 id="early-attitude">Early Attitude</h3>

<p>Cliff is a free-spirited astrophysicist at UC Berkeley. He is skeptical of authority, critical of bureaucracy, and hates rules.</p>

<h3 id="the-hacker-hunt">The Hacker Hunt</h3>

<p>During the early to middle part of the book, when Cliff is monitoring the hacker’s activities, he observes the hacker easily accessing military networks. He sees that the idea of openness is clearly being exploited. Although he encounters red tape in getting authorities involved, he starts to understand the need for security governance and guardrails.</p>

<h3 id="frustration-with-bureaucracy">Frustration with Bureaucracy</h3>

<p>Toward the later middle section of the book, Cliff hits roadblocks due to inter-agency issues. He feels frustrated that his alarms are falling on deaf ears. However, he also starts to work within the system. This makes him develop respect for how well the rules hold true. For example, one agency knows how to help but cannot because the hack is occurring within the US and not outside the country.</p>

<p>Cliff starts to maintain a detailed log, recording each occurrence and each activity undertaken by the hacker. He turns into a bureaucrat!</p>

<h3 id="collaboration">Collaboration</h3>

<p>Eventually, the authorities start to take Cliff seriously. He notices network passwords are changed. Guardrails are put up. He is able to work collaboratively between telecom companies in multiple countries and get support and guidance from multiple agencies.</p>

<p>He finally realizes that while bureaucracies can be slow, they exist for a reason—checks and balances of power with clearly defined zones of responsibility.</p>

<h2 id="hackers-from-irritants-to-weeds">Hackers: From Irritants to Weeds</h2>

<p>Cliff starts out feeling a sense of admiration for hackers—people who explore boundaries and identify interesting ways to subvert systems. However, his attitude starts to shift. He explains his shift with very interesting analogies:</p>

<ul>
  <li>Car mechanics have the ability to break into cars, but they don’t. Having technical skills doesn’t automatically grant permission to use those skills destructively.</li>
  <li>If a robber were to break in, rummage through a house, and leave without stealing anything, we’d still feel violated. The act of trespassing is the crime.</li>
</ul>

<p>By the end of the book, he is clearly in awe but also saddened and angered by hackers who illegally gain access. He feels this violates trust and leads to harder controls, which makes the openness of the web break down. In game theory, this is akin to the tragedy of the commons.</p>]]></content><author><name>rakshay</name></author><category term="book," /><category term="hacking," /><category term="politics" /><summary type="html"><![CDATA[Cliff Stoll's book is a fascinating look at how a liberal, free-spirited astrophysicist became an accidental bureaucrat and changed his views on trust, authority, and the early internet]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/cuckoo&apos;s%20egg.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/cuckoo&apos;s%20egg.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">🧠 Growth Mindset vs. Fixed Fate - Lessons from Duryodhana</title><link href="https://akshayranganath.github.io/Growth_Mindset_vs_Fixed_Fate_-_Lessons_from_Duryodhana/" rel="alternate" type="text/html" title="🧠 Growth Mindset vs. Fixed Fate - Lessons from Duryodhana" /><published>2025-08-19T00:00:00+00:00</published><updated>2025-08-19T00:00:00+00:00</updated><id>https://akshayranganath.github.io/Growth_Mindset_vs_Fixed_Fate_-_Lessons_from_Duryodhana</id><content type="html" xml:base="https://akshayranganath.github.io/Growth_Mindset_vs_Fixed_Fate_-_Lessons_from_Duryodhana/"><![CDATA[<h2 id="tldr">tl;dr</h2>

<p>Duryodhana’s behavior in the Mahabharata is a perfect example of a <em>fixed</em> mindset while Arjuna, the ever-curious, has a <em>growth</em> mindset. One wants to blame and become a victim while the other wants to learn, take initiative and responsibility—and grow.</p>

<h2 id="background">Background</h2>

<p>I was reading the book, <strong>Mindset</strong> by <em>Carol Dweck</em>. In this seminal book, Carol talks about the concept of <strong>fixed</strong> vs. <strong>growth</strong> mindset.</p>

<p><img src="/images/blog/mindset-book-cover.jpg" alt="growth mindset" /></p>

<p>When reading the differences, I was reminded of a specific quote attributed to Duryodhana from the Mahabharata. Moreover, Arjuna’s behavior is clearly in line with a person who has a growth mindset. To me, it was eye-opening how the ancient story resonates so closely with a relatively new psychological finding.</p>

<h2 id="mindset---the-book">Mindset - the book</h2>

<p>In her book, Carol starts with the classical question of <em>nature</em> vs. <em>nurture</em>. She then moves on to the <em>why</em> of <em>nurture</em> and drills down into the core beliefs, behaviors, and attitudes of two kinds of people based on their <em>mindset</em>. According to the author,</p>

<blockquote>
  <p>Mindsets are beliefs—beliefs about yourself and your most basic qualities.</p>
</blockquote>

<p>She then defines two types of mindset:</p>

<ul>
  <li>Fixed Mindset: The belief that intelligence, talent, and abilities are static and unchangeable.</li>
  <li>Growth Mindset: The belief that abilities can be developed through dedication, hard work, and learning.</li>
</ul>

<p>Here is a short comparison between the two kinds of mindset.</p>

<p><img src="/images/blog/mindset-infographic.png" alt="growth vs fixed mindset - infographic" /></p>

<p>If you’d like to dig in a bit more, please watch this <a href="https://www.youtube.com/watch?v=hiiEeMN7vbQ">excellent video</a> by the author.</p>

<h2 id="mahabharata">Mahabharata</h2>

<p>In the great work of the Mahabharata, there is a stark contrast between the behavior of Duryodhana and Arjuna. Both characters desire to win; to rule over a vast kingdom and achieve the status of the greatest warrior. Both try to win over Lord Krishna as well. However, the Lord ultimately teaches the <em>Gita</em> to Arjuna.</p>

<p>Philosophers and thinkers have wondered why Lord Krishna did not try to warn and educate Duryodhana about the perils of war. In reality, Lord Krishna did try to warn and educate Duryodhana about the perils of war. However, Duryodhana ignores him, scoffs at the warnings, and proceeds on the path to destruction. Was it because he was stupid?</p>

<h3 id="duryodhanas-predicament">Duryodhana’s Predicament</h3>

<p><img src="/images/blog/mindset-duryodhana.526f8e32.jpg" alt="duryodhana" /></p>

<p>Duryodhana is not a stupid person. He is able to strategize, win over allies, and assemble vast armies. So what made him blind to the path that he chose? In a stunning shloka, he clearly articulates the reason for his behavior.</p>

<blockquote>
  <p>जानामि धर्मं न च मे प्रवृत्तिर्जानाम्यधर्मं न च मे निवृत्तिः। <br />
केनापि देवेन हृदि स्थितेन यथा नियुक्तोऽस्मि तथा करोमि।।</p>
</blockquote>

<p>(Source: Paandava Gita)</p>

<p>Breaking the compound words, the shloka reads as follows:</p>

<blockquote>
  <p>जानामि धर्मं न च मे प्रवृत्तिः <br />
जानामि अधर्मं न च मे निवृत्तिः ||<br />
केनापि देवेन हृदि स्थितेन<br />
यथा नियुक्तः अस्मि तथा करोमि ||</p>
</blockquote>

<p>It is translated as:</p>
<blockquote>
  <p>I know what is right, but I have no inclination to do it; I know what is wrong, but I cannot refrain from it. Some force seated in my heart compels me to act as I do.</p>
</blockquote>

<p>Looking at the statement, Duryodhana is exemplifying the behavior of a <em>fixed mindset</em> person. He is:</p>

<ul>
  <li>refraining from taking ownership/control</li>
  <li>blaming some mysterious force that is driving him to <em>adharma</em></li>
  <li>not even trying to do the right thing</li>
</ul>

<h3 id="arjunas-contrast">Arjuna’s Contrast</h3>

<p>There are multiple instances where Arjuna displays an ability to learn. However, the most interesting one for me is this verse:</p>

<blockquote>
  <p>कार्पण्यदोषोपहतस्वभाव:
पृच्छामि त्वां धर्मसम्मूढचेता: |<br />
यच्छ्रेय: स्यान्निश्चितं ब्रूहि तन्मे
शिष्यस्तेऽहं शाधि मां त्वां प्रपन्नम् || 7||</p>
</blockquote>

<p>The translation is as follows:</p>

<blockquote>
  <p>I am confused about my duty, and am besieged with anxiety and faintheartedness. I am Your disciple, and am surrendered to You. Please instruct me for certain what is best for me.</p>
</blockquote>

<p>Source: <a href="https://www.holy-bhagavad-gita.org/chapter/2/verse/7/">https://www.holy-bhagavad-gita.org/chapter/2/verse/7/</a></p>

<p>In this, Arjuna declares he is confused and needs help. He declares that he has faith in Lord Krishna and is ready to accept guidance. Literally, he wants to develop each point from the <em>growth mindset</em>: he needs to face challenges, needs feedback on how to proceed, and wants to develop himself as a better person.</p>

<h4 id="श्रद्धा--faith">श्रद्धा / Faith</h4>

<p>In the Indian system of teaching, any student is expected to display at least two qualities:</p>

<ul>
  <li>Readiness to learn</li>
  <li>A sense of श्रद्धा (<em>shraddha</em>) or faith. This is faith that the teacher knows the subject matter and that the student can actually learn from him/her.</li>
</ul>

<p>It is important to clarify that this is faith and not <em>blind faith</em>. Translated to practical terms, it means the following: even if you want to be the next greatest scientist, you have to learn the concepts with faith that they are mostly correct. Only after mastering them can you challenge the rules and even break new ground.</p>

<h2 id="closing-thoughts">Closing Thoughts</h2>

<p>If you notice the <em>Gita</em>, Lord Krishna does not begin his teaching until Arjuna declares his readiness. Only after this verse do the real philosophical teachings begin. To me, this was a fascinating discovery. The concept of mindset is so vividly illustrated on the grandest scale possible in the greatest spiritual work of <em>Sanatana Dharma</em>.</p>

<blockquote>
  <p><strong>Moral</strong>: Show respect to the position of a <em>guru</em> (teacher), have <em>shraddha</em> (faith) in the subject matter to master anything. Having achieved it, you can then respectfully challenge show your way of thinking.</p>
</blockquote>]]></content><author><name>rakshay</name></author><category term="mindset," /><category term="book," /><category term="mahabharatha," /><category term="gita" /><summary type="html"><![CDATA[What held Duryodhana back wasn’t fate. It was his mindset. Discover how Arjuna's journey reveals the power of growth and change.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/mindset-duryodhana.jpg" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/mindset-duryodhana.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">AI’s New Language - How MCPs will Reshape Tech 🤖</title><link href="https://akshayranganath.github.io/New-Language-of-AI-How-MCPs-Will-Reshape-Tech/" rel="alternate" type="text/html" title="AI’s New Language - How MCPs will Reshape Tech 🤖" /><published>2025-06-09T00:00:00+00:00</published><updated>2025-06-09T00:00:00+00:00</updated><id>https://akshayranganath.github.io/New-Language-of-AI-How-MCPs-Will-Reshape-Tech</id><content type="html" xml:base="https://akshayranganath.github.io/New-Language-of-AI-How-MCPs-Will-Reshape-Tech/"><![CDATA[<h2 id="and-why-your-api-cdn-and-security-strategies-need-to-catch-upfast">And why your API, CDN, and security strategies need to catch up—fast.</h2>

<p>I am experimenting this blog post in the style of Axios article. Hope you’ll like it and do let me know your feedback!</p>

<p><img src="/images/blog/mcp-introduction.3414730e.png" alt="mcp at center of ecosystem" /></p>
<h2 id="-1-big-thing-the-ai-native-future-is-being-built-on-a-new-protocol">🧠 1 big thing: The AI-native future is being built on a new protocol.</h2>

<ul>
  <li><strong>Background</strong>: <a href="https://www.anthropic.com/news/model-context-protocol">Model Context Protocol (MCP)</a> - a new protocol is laying the foundation for how AI models will interact with the digital world.
    <blockquote>
      <p>Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools. (<a href="https://docs.anthropic.com/en/docs/agents-and-tools/mcp">Source</a>)</p>
    </blockquote>
  </li>
  <li><strong>Why it matters?</strong>: For CDNs, Security organizations and API vendors, this is a fundamental shift that creates a massive opportunities for newer services, higher profits and deeper integration into the AI ecosystem. As traffic reduces to traditional websites, traffic generated by agents can augment or substitute the revenue. But, it also introduces a new frontier of risk.</li>
</ul>

<h2 id="️-the-big-picture-beyond-the-chatbot">🗺️ The big picture: Beyond the chatbot</h2>

<ul>
  <li>
    <p><strong>The context</strong>: Current AI systems are powerful but siloed. To perform real-world tasks, it needs access to secure and reliable access to external data and functions - from checking current weather to deploying a software patch.</p>
  </li>
  <li>
    <p><strong>The solution</strong>: MCP standardizes this communication. Instead of building one-off integrations for every AI model and every tool, MCP creates a common language. This makes connecting AI to your business not just possible, but scalable.</p>
  </li>
  <li>
    <p><strong>Zoom in</strong>: At its core, MCP is an “API of APIs” - a wrapper that gives AI models a predictable way to call upon any service you want to expose.</p>
  </li>
</ul>

<h2 id="-the-opportunity-3-ways-to-win-in-the-mcp-era">💡 The opportunity: 3 ways to win in the MCP era</h2>

<p>Here’s my vision on how experts in 3 key tech sectors can capitalize on the shift.</p>

<h3 id="1️⃣-apis-the-foundation-of-value">1️⃣ APIs: The foundation of value</h3>

<ul>
  <li>
    <p><strong>The bottom line</strong>: At its core, MCPs are API wrappers. Any optimization that makes API faster, more reliable, or more efficient directly translates to a better MCP integration.</p>
  </li>
  <li>
    <p><strong>Go deeper</strong>:</p>
    <ul>
      <li><strong>Low-hanging fruit</strong>: Well-documented, secure and high-performance APIs will be the firs to be “MCP-enabled”.</li>
      <li><strong>The opportunity</strong>: Companies that specialize in API-management, gateways and developer tooling are perfectly positioned to offer “MCP-readiness” services.</li>
      <li><strong>Case-point</strong>: You can now <a href="https://learning.postman.com/docs/postman-ai-agent-builder/mcp-requests/create/">convert your Postman collection to MCPs</a>!</li>
    </ul>
  </li>
</ul>

<h3 id="2️⃣-cdns-the-profit-engine-">2️⃣ CDNs: The profit engine 💰</h3>

<ul>
  <li>
    <p><strong>The bottom line</strong>: CDNs already do more than just cache cat images. With edge computing, they can become intelligent gatekeepers for MCP requests, creating new revenue streams through “service arbitrage”.</p>
  </li>
  <li>
    <p><strong>Go deeper</strong>:</p>
    <ul>
      <li><strong>How it works</strong>: An MCP request hits the CDN edge. Based on rules you set - like a user’s subscription tier, the CDN routes the request.
        <ul>
          <li><strong>Premium user?</strong> 👑 Route to a powerful, expensive AI model</li>
          <li><strong>Free user?</strong> 🎟️ Route to a cheaper, faster, or more basic model.</li>
          <li>Fastly has already introduced <a href="https://www.fastly.com/blog/what-does-it-all-mean-an-introduction-to-semantic-caching-and-fastlys-ai">semantic caching</a> that can further improve caching and end-user performance.</li>
        </ul>
      </li>
      <li><strong>The result</strong>: This increases margins for the service operator while still ensuring a good user experience for everyone. It’s a win-win powered by the edge.</li>
    </ul>
  </li>
</ul>

<h3 id="security-the-essential-guardian-">Security: The essential guardian 🐘</h3>

<ul>
  <li>
    <p><strong>The bottom line</strong>: Connecting AI directly to your core services is powerful but risky. Opening up this new door means a much larger surface area for cyberattacks.</p>
  </li>
  <li>
    <p><strong>Go deeper</strong>:</p>
    <ul>
      <li><strong>The threats are familiar</strong>: The same security challenges that plague APIs today will be amplified with MCPs. Think:
        <ul>
          <li><strong>🕵️‍♂️ Man-in-the-middle attacks</strong>: Intercepting requests between the AI and your service.</li>
          <li><strong>🎭 Session replays</strong>: Reusing old authentication tokens to gain unauthorized access.</li>
          <li><strong>☠️ Cache poisoning</strong>: Tricking the system into service malicious data.</li>
        </ul>
      </li>
      <li><strong>The role for security firms</strong>: This is a massive opportunity for cybersecurity companies to step in with solutions for MCP threat detection, anomaly analysis, and robust access control. A good starting point would be to use the OWASP’s <a href="https://owasp.org/www-project-api-security/">API Security Top 10</a> and build robust defense against malicious use.</li>
    </ul>
  </li>
</ul>

<h2 id="-whats-next-the-race-to-adapt">🔮 What’s next: The race to adapt</h2>

<p>The adoption of MCP is still in early stages, but the momentum from major AI players is a clear signal of where the industry is heading.</p>

<ul>
  <li><strong>For businesses</strong>: Start planning your MCP strategy now. Audit your existing APIs, evaluate your CDN’s edge capabilities and pressure-test your security posture.</li>
  <li><strong>For investors</strong>: Keep an eye on the companies buildings the picks and shovels for this new gold rush - the API gateways, edge platforms, and cybersecurity firms that will enable this next way of AI integration.</li>
</ul>

<p>The future of AI isn’t about smarter models; it’s about connecting them securely and profitably to the real world. MCP is the bridge to that future.</p>

<h2 id="-extra-other-industries-to-watch-out">👀 Extra: Other Industries to watch out</h2>

<p>MCP relies on 3 services - data, documents and services (which we covered). Companies in these fields will see a flurry of launches to support MCP.</p>

<ul>
  <li>Database/data warehouse/data lakehouses will soon offer MCP connectors to extract organizational data.</li>
  <li>Document &amp; cloud storages will be integrated to MCP or through a RAG solution for extracting relevant information to feed to an MCP pipeline.</li>
</ul>]]></content><author><name>rakshay</name></author><category term="ai-ml," /><category term="gen-ai," /><category term="mcp" /><summary type="html"><![CDATA[The new language of AI is MCP. Leverage CDNs for profit and secure the new, larger attack surface.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/mcp-introduction.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/mcp-introduction.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Experimenting CrewAI to write a report on Advaita</title><link href="https://akshayranganath.github.io/CrewAI-Advaita-Philosophy-Reporter/" rel="alternate" type="text/html" title="Experimenting CrewAI to write a report on Advaita" /><published>2025-05-23T00:00:00+00:00</published><updated>2025-05-23T00:00:00+00:00</updated><id>https://akshayranganath.github.io/CrewAI-Advaita-Philosophy-Reporter</id><content type="html" xml:base="https://akshayranganath.github.io/CrewAI-Advaita-Philosophy-Reporter/"><![CDATA[<h2 id="background">Background</h2>

<p>I am learning to use Agentic AI. With this in mind, I was experimenting with <a href="https://www.crewai.com/">CrewAI</a>. While doing so, I thought it would be interesting to try the capability of the tool and the AI algorithms to explore some really hard problems! So I asked it to research on the <a href="https://en.wikipedia.org/wiki/Hard_problem_of_consciousness">Hard Problem of Consciousness</a>!!</p>

<h2 id="crewai-setup">CrewAI Setup</h2>

<p>CrewAI has an implementation to supporting Agentic AI. Basically, you can break down task into smaller pieces and potentially hand it over to same or different AI models, tools or source data from different sources. So you have a <em>crew</em> of <em>agents</em> performing the task.</p>

<p><img src="https://mintlify.s3.us-west-1.amazonaws.com/crewai/images/crews.png" alt="crewai architecture" />
Source: <a href="https://docs.crewai.com/introduction">https://docs.crewai.com/introduction</a></p>

<p>In this experiment, I used the same AI model - ChatGPT 4.1 (<code class="language-plaintext highlighter-rouge">gpt-4.1-2025-04-14</code>) for 2 tasks:</p>

<ol>
  <li>Researcher</li>
  <li>Journalist</li>
</ol>

<p>When the AI model is invoked, it is given a specific instruction and personal. The model does the task based on this input. Here is how I crafted the 2 agents.</p>

<h3 id="researcher">Researcher</h3>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">researcher</span><span class="pi">:</span>
  <span class="na">role</span><span class="pi">:</span> <span class="pi">&gt;</span>
    <span class="s">{topic} Advaita Philosopher</span>
  <span class="na">goal</span><span class="pi">:</span> <span class="pi">&gt;</span>
    <span class="s">Uncover deep philosophical questions on the {topic}</span>
  <span class="na">backstory</span><span class="pi">:</span> <span class="pi">&gt;</span>

    <span class="s">You're a seasoned philosopher with a deep understanding of Advaita philosophy and Sanskrit language. </span>
    <span class="s">You have a knack for exploring complex ideas and challenging assumptions. Your goal is to uncover </span>
    <span class="s">the deeper truths behind the {topic} and help others see the world in a new light.</span>
</code></pre></div></div>

<h3 id="journalist">Journalist</h3>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">reporting_journalist</span><span class="pi">:</span>
  <span class="na">role</span><span class="pi">:</span> <span class="pi">&gt;</span>
    <span class="s">{topic} Reporting Journalist</span>
  <span class="na">goal</span><span class="pi">:</span> <span class="pi">&gt;</span>
    <span class="s">Research and report on the {topic}. Present a balanced view and explore </span>
    <span class="s">mind-bending philisophical questions.</span>
  <span class="na">backstory</span><span class="pi">:</span> <span class="pi">&gt;</span>
    <span class="s">You are a seasoned philosopher with a flair for storytelling. You are able to craft compelling articles </span>
    <span class="s">that not only inform but also provoke thought. Your deep knowledge of Advaita philosophy and Sanskrit language </span>
    <span class="s">allows you to explore the deeper implications of the {topic} and present them in a way that is accessible to a </span>
    <span class="s">wide audience. You don't shy away from using references from classical texts. You like to intersperse your writing </span>
    <span class="s">with quotes and ideas from these works. You are known for your ability to distill complex ideas into clear and </span>
    <span class="s">engaging narratives, making you a sought-after voice in the world of journalism.</span>
</code></pre></div></div>

<p>By using this model, the model explored the question of <strong>What is the hard problem of consciousness?</strong> and produced a pretty good result. You can find the code for the project here: 
<a href="https://github.com/akshayranganath/my-ai-projects/tree/main/crewai/philosopher_crew">https://github.com/akshayranganath/my-ai-projects/tree/main/crewai/philosopher_crew</a>.</p>

<p>Rest of the article is the report produced by this agent. Please let me know if you feel the agent did a good job and if you learned something new!</p>

<hr />

<h2 id="the-hard-problem-of-consciousness-a-profound-inquiry-and-advaita-vedantas-response">The Hard Problem of Consciousness: A Profound Inquiry and Advaita Vedanta’s Response</h2>

<p><img src="/images/blog/hard-problem-of-consciousness.d9e48321.png" alt="Split digital painting: left half shows a glowing, violet-blue human brain against a starry cosmos; right half blends into a golden silhouette of a meditating figure radiating luminous rings, with a faint snake-shaped line fading into light at the center.
" /></p>

<h3 id="introduction">Introduction</h3>

<p>Few questions in philosophy are as tantalizing, elusive, and mind-bending as the so-called “hard problem of consciousness.” Why does the physical machinery of the brain conjure an inner world of subjective feeling? Why does firing neurons yield experiences of joy, sorrow, or the taste of mangoes? Or, as the Upanishads inquire, “Who is the seer?” This report investigates the hard problem of consciousness in its Western philosophical context and explores the transformative answer offered by Advaita Vedanta, an ancient yet ever-radical school of Indian philosophy.</p>

<hr />

<h3 id="1-the-hard-problem-defined-chalmers-challenge-to-science">1. The Hard Problem Defined: Chalmers’ Challenge to Science</h3>

<p>It was the philosopher David Chalmers who, in 1994, crisply articulated what has become known as the “hard problem of consciousness.” The central question he posed was not simply how the brain processes information or performs tasks—these he termed the “easy” problems, which, however complex, seem tractable by neuroscience and cognitive science. Rather, Chalmers drew focus to the enigma of subjective experience, or <em>qualia</em>: the “what it is like” to be conscious.</p>

<p>Why, asks Chalmers, does all this synaptic traffic produce a first-person perspective at all, instead of mere biological functioning without inner light? Despite advances in functional explanations—how we see, report pain, or learn languages—the existence of consciousness as lived experience seems inexplicable by objective, physical storylines alone. As Thomas Nagel famously phrased it, “What is it like to be a bat?” The hard problem, in essence, is the mystery of how the subjective arises from the objective, or whether such a derivation is possible at all.</p>

<p>For Western philosophy and science, this problem stands as a formidable boundary: the line between third-person observation and first-person immediacy seems, thus far, uncrossable.</p>

<hr />

<h3 id="2-advaita-vedantas-conception-of-consciousness-from-chit-to-brahman">2. Advaita Vedanta’s Conception of Consciousness: From Chit to Brahman</h3>

<p>Advaita Vedanta, the “non-dual” school of Indian philosophy, offers a radical reframing. Whereas most Western discourse treats consciousness as, at best, an epiphenomenon or emergent property of matter, Advaita takes the opposing stance: consciousness is not produced by the brain, but is the very ontological ground of reality.</p>

<p>Drawing from the Upanishads, Advaita asserts that the ultimate reality is <em>Brahman</em>—infinite, pure consciousness, self-luminous (<em>svayam-prakāśa</em>) and self-existing (<em>svataḥ-siddha</em>). <em>Chit</em> or consciousness is neither a product nor a process, but the unchanging substrate in which all phenomena arise, play, and dissolve. The <em>Māṇḍūkya Upaniṣad</em> resounds: “Prajñānam Brahma”—Consciousness is Brahman.</p>

<p>Thus, Advaita does not attempt to explain consciousness in terms of something else. Instead, all other realities—mind, body, world—are appearances, superimposed (<em>adhyāsa</em>) upon an indivisible conscious ground.</p>

<hr />

<h3 id="3-superimposition-and-the-witness-the-sākṣin-principle">3. Superimposition and the Witness: The Sākṣin Principle</h3>

<p>Central to Advaita’s metaphysics is the doctrine of <em>adhyāsa</em>, or superimposition. Our individuality, perceived separation, and all phenomena of mind and matter are, Advaita claims, projections upon the non-dual consciousness. The classic analogy is that of mistaking a rope for a snake in dim light: the snake is superimposed upon the rope; when true knowledge dawns, the illusion vanishes.</p>

<p>Advaita distinguishes between changeful phenomenal consciousness and the unchanging <em>witness consciousness</em>, termed <em>Sākṣin</em>. The Sākṣin is not an object to be observed; rather, it is that which makes observation—and all experience—possible. As the <em>Bṛhadāraṇyaka Upaniṣad</em> declares: “It is the seer, but not seen; the hearer, but not heard; the thinker, but not thought.”</p>

<p>This witness is said to be ever-present, unchanging, self-shining. Mind and brain are transient instruments; awareness is the constant, “like a screen behind the play of images.” In contrast, physicalist accounts seek always to trace awareness to objective patterns, missing its intrinsic <em>first-personality</em>.</p>

<hr />

<h3 id="4-dissolving-the-hard-problem-advaitas-reversal">4. Dissolving the Hard Problem: Advaita’s Reversal</h3>

<p>With these premises, Advaita Vedanta does not so much “solve” the hard problem as dissolve it. The problem only arises, Advaita suggests, because of a mistaken foundational assumption: that matter is primary, and consciousness a puzzling by-product. By reversing the assumption, Advaita claims that what we call “matter,” and all empirical phenomena, are dependent appearances within consciousness.</p>

<p>As summarized on contemporary fora: “We make an assumption that matter exists and try to figure out how consciousness is derived from matter. But, it’s the other way round for Advaita Vedanta.”</p>

<p>This move redefines the philosophical landscape. If consciousness is fundamental and irreducible, then it is not consciousness but <em>matter</em>—with its apparent independence, multiplicity, and causal interactions—that becomes philosophically mysterious.</p>

<p>Advaita, then, invites a radical perspective shift: cease trying to explain <em>consciousness</em> as an add-on to matter, and instead begin to ask: “How does the One appear as the many? How does infinite awareness take on the forms of finitude?”</p>

<hr />

<h3 id="5-implications-and-provocations-comparing-philosophical-paradigms">5. Implications and Provocations: Comparing Philosophical Paradigms</h3>

<p>The confrontation between Western physicalism and Advaita’s non-dualism is more than a technical quarrel; it strikes at the heart of how we think reality is structured.</p>

<ul>
  <li>In the West, explanations trend toward reductive materialism: if only we understood the neurons deeply enough, consciousness would emerge as “the steam from the engine.”</li>
  <li>Advaita, echoing insights from mystics and seers across cultures, asks if our insistence on material primacy is itself a limitation—an effect, perhaps, of “avidyā,” or ignorance.</li>
  <li>In this view, the hard problem is not a technical puzzle but a pointer to a deeper truth: that consciousness is not an emergent property but the universal constant, the <em>ātman</em> behind all masks, “the light by which we see even darkness.”</li>
</ul>

<p>It is no accident, perhaps, that both traditions resort to paradox and poetry at the boundaries. As the <em>Kena Upaniṣad</em> warns: “That which is not thought by the mind, but by which the mind thinks, know that alone to be Brahman, and not what people here adore.”</p>

<hr />

<h3 id="conclusion">Conclusion</h3>

<p>The hard problem of consciousness remains one of humanity’s most enduring riddles. Western philosophy frames it as an explanatory gap between third-person science and first-person subjectivity. Advaita Vedanta, boldly turning the tables, dissolves the enigma by reaffirming consciousness as ontological ground, not emergent effect.</p>

<p>This dialogue is not mere speculation; it is an invitation to rethink our own nature. Are we sums of matter, engines of computation, or awakenings within an infinite light? As the sage Ashtavakra counseled, “You are not the body nor the mind. You are the clear, unbounded awareness within which all things arise.” In such questions, the hard problem of consciousness persists—as challenge, as koan, as call to inquire more deeply into the mystery that is our very Self.</p>]]></content><author><name>rakshay</name></author><category term="vendata" /><summary type="html"><![CDATA[I experimented the use of ChatGPT to research and create an article about a very complex topic - the Hard Problme of Consciousness.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://akshayranganath.github.io/images/blog/hard-problem-of-consciousness.png" /><media:content medium="image" url="https://akshayranganath.github.io/images/blog/hard-problem-of-consciousness.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>