<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Edmund DSouza</title>
    <description>The latest articles on DEV Community by Edmund DSouza (@edmundjeevan).</description>
    <link>https://dev.to/edmundjeevan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1460714%2F6713dc2f-ba9e-4538-8150-c76195ad53f3.png</url>
      <title>DEV Community: Edmund DSouza</title>
      <link>https://dev.to/edmundjeevan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/edmundjeevan"/>
    <language>en</language>
    <item>
      <title>How Qwen Powers REGLO Agent’s On-Chain Decisions</title>
      <dc:creator>Edmund DSouza</dc:creator>
      <pubDate>Wed, 14 Oct 2026 00:08:42 +0000</pubDate>
      <link>https://dev.to/edmundjeevan/how-qwen-powers-reglo-agents-on-chain-decisions-2ngh</link>
      <guid>https://dev.to/edmundjeevan/how-qwen-powers-reglo-agents-on-chain-decisions-2ngh</guid>
      <description>&lt;p&gt;REGLO Agent is an AI agent built for the Monad Metropolis hackathon that gets paid automatically in MON when it proves — on-chain — that it saved money by scheduling compute around real solar-curtailment windows. The reasoning step — deciding which window to act on, out of dozens of real candidates, and explaining why — is where Qwen comes in.&lt;/p&gt;

&lt;p&gt;Where Qwen fits in&lt;/p&gt;

&lt;p&gt;REGLO Agent evaluates real curtailment and tariff data from REGLO (a live solar-curtailment monitoring platform covering four UK solar sites) and has to pick the best window to defer a compute job into. That decision runs through Qwen, Alibaba Cloud’s LLM, called via DashScope’s OpenAI-compatible chat-completions endpoint in agent/reason.js. Setting REASONING_PROVIDER=qwen routes every decision through Qwen for that run.&lt;/p&gt;

&lt;p&gt;Qwen receives the full list of candidate windows — site, hour, curtailment risk, tariff — and returns both a choice and a plain-language rationale. On a real run, Qwen explained its pick as “the 13:00 slot has the lowest electricity price, and all sites carry the same low curtailment risk, so it’s the cheapest available choice” — reasoning that’s checkable against the raw numbers in seconds, not a black box.&lt;/p&gt;

&lt;p&gt;What value that actually brings&lt;/p&gt;

&lt;p&gt;Two things, concretely. First, interpretability: the contract and the oracle never read the LLM’s wording — they independently verify the real cost saving before any payout happens — but Qwen’s explanation is the only human-readable part of the whole pipeline, which matters for anyone (a user, a judge) trying to understand why the agent acted. Second, a built-in honesty check: every run also computes the deterministic cost-optimal window independently and compares it against Qwen’s pick. If Qwen’s answer isn’t actually the cheapest option, the agent logs that out loud rather than quietly trusting the model. On every real run so far, Qwen’s pick has matched the true optimum.&lt;/p&gt;

&lt;p&gt;Architecturally, Qwen never touches the numbers that decide the payout — it only picks which window to act on. An oracle independently re-derives the baseline and actual cost from REGLO’s real data and signs that; the smart contract checks the saving itself before paying out. A wrong or hallucinated answer from Qwen could at worst mean a smaller saving — never a wrong or fraudulent payout. That separation is what makes it safe to let an LLM make a real-money decision at all.&lt;/p&gt;

&lt;p&gt;Proof, not a claim&lt;/p&gt;

&lt;p&gt;A real run against real REGLO data, reasoning through Qwen, produced a real payout on Monad testnet: 0x666c6090caba0282d6b96c148c6206cd0778635eb2f2131e0a063ee77c99b09a. The same code path also supports Kimi and a local Ollama fallback, so the agent keeps working even if one provider is unreachable — but for this run, every decision genuinely came from Qwen.&lt;/p&gt;

&lt;p&gt;Full project: github.com/edmundjeevan/reglo-agent-pipeline&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
      <category>web3</category>
    </item>
    <item>
      <title>How Kimi Powers REGLO Agent’s On-Chain Decisions</title>
      <dc:creator>Edmund DSouza</dc:creator>
      <pubDate>Wed, 14 Oct 2026 00:05:46 +0000</pubDate>
      <link>https://dev.to/edmundjeevan/how-kimi-powers-reglo-agents-on-chain-decisions-3cne</link>
      <guid>https://dev.to/edmundjeevan/how-kimi-powers-reglo-agents-on-chain-decisions-3cne</guid>
      <description>&lt;p&gt;REGLO Agent is an AI agent built for the Monad Metropolis hackathon that gets paid automatically in MON when it proves — on-chain — that it saved money by scheduling compute around real solar-curtailment windows. The piece of it I want to talk about here is the reasoning step: the moment where the agent actually has to decide which window to act on, out of dozens of real candidates, and explain why.&lt;/p&gt;

&lt;p&gt;Where Kimi fits in&lt;/p&gt;

&lt;p&gt;REGLO Agent evaluates real curtailment and tariff data from REGLO (a live solar-curtailment monitoring platform covering four UK solar sites) and has to pick the best window to defer a compute job into. That decision runs through Kimi, Moonshot AI’s LLM, called via its OpenAI-compatible chat-completions endpoint in agent/reason.js. Setting REASONING_PROVIDER=kimi routes every decision through Kimi for that run.&lt;/p&gt;

&lt;p&gt;Kimi receives the full list of candidate windows — site, hour, curtailment risk, tariff — and returns both a choice and a plain-language rationale for it. That rationale is what turns a black-box optimisation into something a person (or a judge) can actually read and trust: on a real run, Kimi explained its pick as “the 13:00 slot has the lowest electricity price, and all sites carry the same low curtailment risk, so it’s the cheapest available choice” — reasoning a human can check against the raw data in seconds.&lt;/p&gt;

&lt;p&gt;What value that actually brings&lt;/p&gt;

&lt;p&gt;Two things, concretely. First, interpretability: the contract and the oracle don’t care about the LLM’s wording at all — they independently verify the real cost saving before any payout happens — but for anyone trying to understand why the agent did what it did, Kimi’s explanation is the only human-readable part of the pipeline. Second, a built-in honesty check: every run also computes the deterministic cost-optimal window independently, and compares it against Kimi’s pick. If Kimi’s answer isn’t actually the cheapest option, the agent says so out loud in its logs rather than quietly accepting whatever the model said. On every real run so far, Kimi’s pick has matched the true optimum.&lt;/p&gt;

&lt;p&gt;Just as important architecturally: Kimi never touches the numbers that decide the payout. It only picks which window to act on. An oracle independently re-derives the baseline and actual cost from REGLO’s real data and signs that; the smart contract checks the savings itself before paying out. A wrong or hallucinated answer from Kimi could at worst mean a smaller saving — never a wrong or fraudulent payout. That separation is what makes it safe to let an LLM make a real-money decision at all.&lt;/p&gt;

&lt;p&gt;Proof, not a claim&lt;/p&gt;

&lt;p&gt;This isn’t a wiring diagram with nothing running through it. A real run against real REGLO data, reasoning through Kimi, produced a real payout on Monad testnet: 0xcc5f99ebfccb2a9128a102984f5ddde4d22d67c9b4268bc9b42201e058b8e438. The same code path also supports Qwen and a local Ollama fallback, so the agent keeps working even if one provider is unreachable — but for this run, every decision genuinely came from Kimi.&lt;/p&gt;

&lt;p&gt;Full project: github.com/edmundjeevan/reglo-agent-pipeline&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
      <category>web3</category>
    </item>
  </channel>
</rss>
