<?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: ultimatixarup</title>
    <description>The latest articles on DEV Community by ultimatixarup (@ultimatixarup).</description>
    <link>https://dev.to/ultimatixarup</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%2F4152076%2F88a5a2e9-23a8-4241-9aad-ea32c605a526.png</url>
      <title>DEV Community: ultimatixarup</title>
      <link>https://dev.to/ultimatixarup</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ultimatixarup"/>
    <language>en</language>
    <item>
      <title>agent-ops-check v0.2.0 adds an optional live eval runner for AI agents</title>
      <dc:creator>ultimatixarup</dc:creator>
      <pubDate>Thu, 22 Oct 2026 00:34:53 +0000</pubDate>
      <link>https://dev.to/ultimatixarup/agent-ops-check-v020-adds-an-optional-live-eval-runner-for-ai-agents-502f</link>
      <guid>https://dev.to/ultimatixarup/agent-ops-check-v020-adds-an-optional-live-eval-runner-for-ai-agents-502f</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/ultimatixarup/agent-ops-check" rel="noopener noreferrer"&gt;agent-ops-check&lt;/a&gt; is my open-source CLI that scans an AI agent for missing guardrails and writes eval cases. Until now it stopped at writing them. v0.2.0 adds an optional live eval runner so you can actually run those cases against your agent.&lt;/p&gt;

&lt;p&gt;The static scan is unchanged: it still only writes cases, and a scan without &lt;code&gt;--llm&lt;/code&gt; still makes no network calls.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's new
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;agent-ops-check eval&lt;/code&gt;&lt;/strong&gt;: validates &lt;code&gt;agent-evals.yaml&lt;/code&gt; and calls the agent only with &lt;code&gt;--live&lt;/code&gt; or &lt;code&gt;live: true&lt;/code&gt;. Dry-run is the default, and live mode warns that the agent may take real actions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional Python package &lt;code&gt;agent-ops-evals&lt;/code&gt;&lt;/strong&gt; (Python 3.11+), built on pydantic-evals 2.59.0 (MIT). Node and Python exchange files only: YAML in, &lt;code&gt;results.json&lt;/code&gt; out. The Node tool keeps working when Python isn't installed, and if Python and uv are both missing the command prints install steps and exits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Targets&lt;/strong&gt; in &lt;code&gt;agent-evals.yaml&lt;/code&gt;: an HTTP endpoint, a Python callable, a CLI command, or a Pydantic AI agent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Packs&lt;/strong&gt;: LLMail-Inject samples from Microsoft (MIT), OWASP-tagged cases generated from the same templates as the static scan, a JSONL file a scan already wrote, and benign emails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic yes/no checks&lt;/strong&gt;: a planted canary leaked, a forbidden tool was called, a secret pattern leaked, or a benign case that should be answered was refused (over-block).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network promise&lt;/strong&gt;: still true for the static scan. &lt;code&gt;eval&lt;/code&gt; contacts only the agent you configure, nothing else.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CI&lt;/strong&gt;: a new &lt;code&gt;python-eval&lt;/code&gt; job installs the package and runs the Python tests against fake HTTP and CLI agents. The existing Node jobs are unchanged.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;examples/agent-evals.yaml&lt;/code&gt; dry-runs from a checkout.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Not in this release
&lt;/h2&gt;

&lt;p&gt;An AI/LLM judge, promptfoo export, and a static-versus-live scorecard are planned for later phases.&lt;/p&gt;

&lt;p&gt;Release notes: &lt;a href="https://github.com/ultimatixarup/agent-ops-check/releases/tag/v0.2.0" rel="noopener noreferrer"&gt;https://github.com/ultimatixarup/agent-ops-check/releases/tag/v0.2.0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback and issues are welcome on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Personal project built on my own time. Not affiliated with or endorsed by my employer.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>opensource</category>
      <category>python</category>
    </item>
    <item>
      <title>White paper: agent-ops-check, a free offline check for AI agents</title>
      <dc:creator>ultimatixarup</dc:creator>
      <pubDate>Mon, 12 Oct 2026 19:52:59 +0000</pubDate>
      <link>https://dev.to/ultimatixarup/white-paper-agent-ops-check-a-free-offline-check-for-ai-agents-4l7p</link>
      <guid>https://dev.to/ultimatixarup/white-paper-agent-ops-check-a-free-offline-check-for-ai-agents-4l7p</guid>
      <description>&lt;p&gt;I wrote a 12-page white paper on &lt;strong&gt;agent-ops-check&lt;/strong&gt;, a free Node CLI (MIT license) that reads agent code, prompts and configs and reports risks. It runs fully offline: no SaaS, no account, no network calls. LLM review is optional and uses your own key.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx github:ultimatixarup/agent-ops-check ./my-agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What the paper covers
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Five needs, each matched to checks:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Need&lt;/th&gt;
&lt;th&gt;Tab&lt;/th&gt;
&lt;th&gt;Count today&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Personal data in work channels&lt;/td&gt;
&lt;td&gt;1 Crossover&lt;/td&gt;
&lt;td&gt;6 personal sources, 6 work sinks, 9 secret patterns, 4 PII patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agents acting on other sites&lt;/td&gt;
&lt;td&gt;2 Actions&lt;/td&gt;
&lt;td&gt;27 irreversible verbs, 4 gate detectors, 5 risky reads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Governance and spend&lt;/td&gt;
&lt;td&gt;3 Governance, 4 Labs&lt;/td&gt;
&lt;td&gt;11 provider patterns, 8 framework patterns, 11 governance findings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hidden instructions in documents&lt;/td&gt;
&lt;td&gt;6 ADSF&lt;/td&gt;
&lt;td&gt;18 rule IDs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unclear instructions&lt;/td&gt;
&lt;td&gt;5 STE&lt;/td&gt;
&lt;td&gt;11 style rules, 25 phrasal verbs, 31 hedges&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Architecture.&lt;/strong&gt; Inputs are a folder, files, a &lt;code&gt;.zip&lt;/code&gt; or stdin. The rules are YAML, the engine uses regex, and the reports come out as HTML, JSON, Markdown and SARIF. The local UI listens on &lt;code&gt;127.0.0.1&lt;/code&gt; only. The score runs from 0 to 100: a high finding costs 10 points, a medium costs 4 and a low costs 1. The bad example in the repo scores 27.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Standards mapping.&lt;/strong&gt; The checks map to 10 frameworks (112 items), including OWASP Top 10 for LLM Applications 2025, OWASP Agentic 2026, NIST AI RMF, ISO/IEC 42001, MITRE ATLAS, CSA AICM and the EU AI Act. This is "maps to", never "compliant". For the paper I re-scored each item strictly against the code: 29 ✅ / 64 🟡 / 19 ⬜, against 43 / 52 / 17 shipped. In 16 items my score is lower than the shipped status.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Limits.&lt;/strong&gt; The checks are static only, so they read what code says, not what it enforces. They can miss problems and flag harmless code. A gate is found only if it is from 6 lines above to 12 lines below an action.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read: &lt;a href="https://github.com/ultimatixarup/agent-ops-check/blob/main/docs/WHITEPAPER.md" rel="noopener noreferrer"&gt;https://github.com/ultimatixarup/agent-ops-check/blob/main/docs/WHITEPAPER.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;PDF: &lt;a href="https://github.com/ultimatixarup/agent-ops-check/blob/main/docs/whitepaper.pdf" rel="noopener noreferrer"&gt;https://github.com/ultimatixarup/agent-ops-check/blob/main/docs/whitepaper.pdf&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feedback on false positives is welcome.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Personal project built on my own time. Not affiliated with or endorsed by my employer; views are my own.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>security</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I shipped three free client-side scorecards (agents, cloud bills, observability) and refused to upload your paste</title>
      <dc:creator>ultimatixarup</dc:creator>
      <pubDate>Wed, 30 Sep 2026 10:57:52 +0000</pubDate>
      <link>https://dev.to/ultimatixarup/i-shipped-three-free-client-side-scorecards-agents-cloud-bills-observability-and-refused-to-2ag7</link>
      <guid>https://dev.to/ultimatixarup/i-shipped-three-free-client-side-scorecards-agents-cloud-bills-observability-and-refused-to-2ag7</guid>
      <description>&lt;p&gt;Agent configs and billing exports often contain secrets: API keys, account IDs, internal service names. So when I built &lt;strong&gt;Arup Banerjee Labs&lt;/strong&gt;, I set one rule first: whatever you paste stays in your browser.&lt;/p&gt;

&lt;p&gt;The result is three small, free tools that turn a paste into a scorecard.&lt;/p&gt;

&lt;h2&gt;
  
  
  The constraint that shaped the suite
&lt;/h2&gt;

&lt;p&gt;Most "analyze your config" tools want you to upload a file or grant OAuth access to your cloud org. That's a big ask when all you want is a quick sanity check. A static site that parses and scores locally removes the trust problem: there's no backend to leak to, because there's no backend.&lt;/p&gt;

&lt;p&gt;Everything is hosted on GitHub Pages, and the source is public: &lt;a href="https://github.com/ultimatixarup/arup-banerjee-labs" rel="noopener noreferrer"&gt;https://github.com/ultimatixarup/arup-banerjee-labs&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tool 1: Agent Health Checker
&lt;/h2&gt;

&lt;p&gt;Paste an AI agent config (JSON, YAML, or plain text) and get a reliability/privacy scorecard. It looks for the things demos tend to hide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;retries and backoff&lt;/li&gt;
&lt;li&gt;timeouts&lt;/li&gt;
&lt;li&gt;tracing hooks&lt;/li&gt;
&lt;li&gt;secrets sitting in the config&lt;/li&gt;
&lt;li&gt;tool-auth notes and injection-prone tool sinks&lt;/li&gt;
&lt;li&gt;evals/tests&lt;/li&gt;
&lt;li&gt;a single LLM with no fallback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://ultimatixarup.github.io/arup-banerjee-labs/agent-health-checker/" rel="noopener noreferrer"&gt;https://ultimatixarup.github.io/arup-banerjee-labs/agent-health-checker/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tool 2: Cloud Bill Smell Detector
&lt;/h2&gt;

&lt;p&gt;Paste a cost CSV, invoice export, or billing JSON that you exported from your own account, and get an educational smell scorecard: idle-looking lines, missing tags, transfer-heavy patterns, and similar heuristics.&lt;/p&gt;

&lt;p&gt;Explicit non-goals: it never connects to AWS, GCP, or Azure, and it only looks at text you paste.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ultimatixarup.github.io/arup-banerjee-labs/cloud-bill-smell/" rel="noopener noreferrer"&gt;https://ultimatixarup.github.io/arup-banerjee-labs/cloud-bill-smell/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tool 3: Observability Gap Finder
&lt;/h2&gt;

&lt;p&gt;Paste OpenTelemetry, Prometheus, or Splunk-style config snippets, or a service inventory YAML, and get a gaps scorecard: missing SLIs, services without tracing, no cardinality guards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ultimatixarup.github.io/arup-banerjee-labs/observability-gap-finder/" rel="noopener noreferrer"&gt;https://ultimatixarup.github.io/arup-banerjee-labs/observability-gap-finder/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What "heuristic" means here
&lt;/h2&gt;

&lt;p&gt;These are prioritization aids, not audit stamps. They'll produce false positives, and they won't catch everything. The goal is a fast "what should I look at first?" before something hits production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verify the privacy claim yourself
&lt;/h2&gt;

&lt;p&gt;Open your browser's DevTools, switch to the Network tab, paste something, and run a score. Your paste should never leave the page. If you ever see it go out, that's a bug and I want to know.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;I'm collecting feedback on wrong and missing checks. If one of these flags something silly, or misses something obvious in your stack, open an issue on the repo or leave a comment here.&lt;/p&gt;

&lt;p&gt;Try the suite: &lt;a href="https://ultimatixarup.github.io/arup-banerjee-labs/" rel="noopener noreferrer"&gt;https://ultimatixarup.github.io/arup-banerjee-labs/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Arup Kumar Banerjee · Little Elm, Texas&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Questions? Message my free help bot on Telegram: t.me/ArupLabsHelpBot_bot&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Personal project built on my own time. Not affiliated with or endorsed by my employer; views are my own.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>sre</category>
      <category>privacy</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
