<?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: Abhishek Jaiswal</title>
    <description>The latest articles on DEV Community by Abhishek Jaiswal (@abhi77).</description>
    <link>https://dev.to/abhi77</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%2F4155728%2F4d4cee7f-e1b8-4a86-9e85-0a1e6e455bda.jpg</url>
      <title>DEV Community: Abhishek Jaiswal</title>
      <link>https://dev.to/abhi77</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhi77"/>
    <language>en</language>
    <item>
      <title>PraxisAgent: Autonomous Open-AI Operations Worker Built for My Friend Sarah</title>
      <dc:creator>Abhishek Jaiswal</dc:creator>
      <pubDate>Sun, 04 Oct 2026 21:37:10 +0000</pubDate>
      <link>https://dev.to/abhi77/praxisagent-autonomous-open-ai-operations-worker-built-for-my-friend-sarah-1d9k</link>
      <guid>https://dev.to/abhi77/praxisagent-autonomous-open-ai-operations-worker-built-for-my-friend-sarah-1d9k</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;PraxisAgent&lt;/strong&gt; for my friend Sarah, who handles billing and clinic operations. Every Friday afternoon, Sarah faces the same nightmare: dozens of vendor invoices scattered across messy folders, unorganized scanned PDFs with scrambled filenames (&lt;code&gt;scan_0003.pdf&lt;/code&gt;), and outdated ERP / healthcare web portals that require tedious, error-prone manual data entry. &lt;/p&gt;

&lt;p&gt;She was constantly stressed about:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Accidental duplicate payments&lt;/strong&gt; on invoices that were already settled.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Typos in payment amounts and dates&lt;/strong&gt; when copying from scanned PDFs into web forms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Losing hours of her weekend&lt;/strong&gt; to repetitive browser clicking and form-filling.
&lt;strong&gt;PraxisAgent&lt;/strong&gt; is an autonomous, open-source operations agent that takes plain-English operational requests (e.g., &lt;em&gt;"Find Acme's latest bill in the invoices folder and enter it into the ERP"&lt;/em&gt;), autonomously locates and parses unstructured documents (PDFs, JSONs, text tickets), drives a real browser session to populate the portal, and stops at an interactive &lt;strong&gt;Human-in-the-Loop policy gate&lt;/strong&gt; before submitting irreversible actions.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bonus — Handing it over to Sarah:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
When I showed Sarah the agent running locally on her workstation and asked her to test it on a batch of Acme Corp invoices, she watched it parse the scanned PDF, filter out an already-paid duplicate, fill out the ERP form in Chromium, and pause right at the "Submit Voucher" screen asking for her approval. Her reaction:&lt;br&gt;&lt;br&gt;
&lt;em&gt;"Wait, so I never have to manually re-type 20-digit voucher IDs while squinting at scanned PDFs again? And it physically won't send money unless I click approve? This just gave me my Friday evenings back."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Here is a look at PraxisAgent in action:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk6xs7ib8o7kn4n6b5bf7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk6xs7ib8o7kn4n6b5bf7.png" alt="PraxisAgent Architecture &amp;amp; Execution" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Capabilities in Action:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unstructured Multi-Format Extraction&lt;/strong&gt;: Parses native PDFs (&lt;code&gt;pdf-parse&lt;/code&gt;) and unstructured JSONs, ignoring misleading file modification timestamps and reading ground-truth dates directly inside the document.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Numbered Element DOM Distillation&lt;/strong&gt;: Compresses live browser pages into compact &lt;code&gt;[ref]&lt;/code&gt; selectors (~150–300 tokens/step), allowing fast, reliable form navigation without flooding the LLM context window.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Policy Safety Gate&lt;/strong&gt;: Intercepts state-mutating actions (&lt;code&gt;submit&lt;/code&gt;, &lt;code&gt;approve&lt;/code&gt;, &lt;code&gt;pay&lt;/code&gt;), extracts form field values, and prompts the user for interactive confirmation before executing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Independent Out-of-Band State Verifier&lt;/strong&gt;: An isolated background auditor queries the target portal's database (&lt;code&gt;/__state&lt;/code&gt;) directly to cryptographically prove that records were created with exact amounts and no duplicate submissions occurred.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The entire codebase is open-source, fully typed in TypeScript, and runs with zero external agent frameworks:&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/jaiswalabhishek377" rel="noopener noreferrer"&gt;
        jaiswalabhishek377
      &lt;/a&gt; / &lt;a href="https://github.com/jaiswalabhishek377/praxis-agent" rel="noopener noreferrer"&gt;
        praxis-agent
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      The autonomous agent that bridges intent and verified execution.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;PraxisAgent — Autonomous AI Operations Worker&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;An autonomous enterprise operations agent that executes end-to-end IT, ERP, and healthcare workflows across real browser portals and local filesystems—featuring element-referenced DOM perception, code-level approval gates, multi-model failover, and independent state verification.&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/jaiswalabhishek377/praxis-agent/public/image-1.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fjaiswalabhishek377%2Fpraxis-agent%2FHEAD%2Fpublic%2Fimage-1.png" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;⚡ Core Highlights&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Framework ReAct Loop&lt;/strong&gt;: Hand-written TypeScript state machine with strict Zod schema validation and 1-turn self-repair—zero LangChain/CrewAI dependencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ephemeral DOM Perception&lt;/strong&gt;: Distills live pages into compact numbered element references (&lt;code&gt;[ref]&lt;/code&gt; IDs, ~150–300 tokens/step). Prunes stale DOM trees each turn while preserving action history to prevent context degradation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic HITL Policy Gate&lt;/strong&gt;: Code-level security firewall that intercepts irreversible actions (&lt;code&gt;submit&lt;/code&gt;, &lt;code&gt;approve&lt;/code&gt;, &lt;code&gt;pay&lt;/code&gt;, &lt;code&gt;confirm&lt;/code&gt;), displays extracted form values, and fails closed (&lt;code&gt;deny&lt;/code&gt;) in non-interactive terminals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SHA-256 Loop Prevention&lt;/strong&gt;: Computes SHA-256 hashes of &lt;code&gt;(page_state, action, params)&lt;/code&gt; and automatically aborts after 3 duplicate actions without progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Model Provider Cascade&lt;/strong&gt;: 4-tier Gemini…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/jaiswalabhishek377/praxis-agent" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;/h2&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;PraxisAgent is built from the ground up without heavy third-party agent wrappers (zero LangChain, zero CrewAI):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Framework ReAct Loop&lt;/strong&gt;: A lightweight, deterministic TypeScript execution engine with strict Zod schema validation and 1-turn automated JSON self-repair.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Weight AI at the Core&lt;/strong&gt;: 

&lt;ul&gt;
&lt;li&gt;Powered by open-weight models including &lt;strong&gt;Llama 3.3 70B&lt;/strong&gt; and &lt;strong&gt;Gemma 2&lt;/strong&gt; via local inference (Ollama / vLLM) and Groq high-speed inference.&lt;/li&gt;
&lt;li&gt;Built with a resilient &lt;strong&gt;Multi-Model Provider Cascade&lt;/strong&gt;: automatically fails over across tiers when hitting rate limits or provider downtime, ensuring 100% workflow completion without crashing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Playwright Headless/Headed Browser Perception&lt;/strong&gt;: Operates directly on live web portals via compact element-referenced snapshots, restricted strictly to sandboxed origin allowlists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SHA-256 State-Action Loop Prevention&lt;/strong&gt;: Hashes &lt;code&gt;(page_state, action, params)&lt;/code&gt; on each step to immediately abort if an agent gets caught in a loop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditable Artifact Dossier&lt;/strong&gt;: Every run automatically saves an execution trace (&lt;code&gt;runs/*.jsonl&lt;/code&gt;), step-by-step screenshots before/after actions, and an independent database verification dossier (&lt;code&gt;audit_dossier.json&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For an enterprise operations and healthcare tool, &lt;strong&gt;open innovation isn't just a nice-to-have—it is an absolute requirement&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Data Sovereignty &amp;amp; Privacy (HIPAA &amp;amp; Financial Records)&lt;/strong&gt;:
Invoices, vendor tax IDs, and patient medical claim records contain sensitive, confidential information. Closed proprietary APIs often retain customer data for retraining or inspect prompts in black-box cloud environments. With open-weight models (running locally or in self-hosted instances), sensitive financial and healthcare data never leaves the organization's control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Vendor Lock-in &amp;amp; Model Swappability&lt;/strong&gt;:
Closed models frequently change weights, undergo silent behavioral drift, or deprecate endpoints overnight. By building on an open-weight foundation, we can swap between open models (Llama, Gemma, or custom fine-tunes) seamlessly without rewriting our tool schemas or agent loop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Predictable Zero-Marginal-Cost Execution&lt;/strong&gt;:
Routine administrative tasks like invoice processing run thousands of times a month. Running inference locally or on dedicated open-weight instances eliminates unpredictable per-token SaaS subscription spikes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditability &amp;amp; Code-Level Safety&lt;/strong&gt;:
Because the agent runtime is 100% open-source TypeScript, our safety firewall (the Human-in-the-Loop policy gate) is enforced at the code layer, not as an afterthought prompt instruction.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;PraxisAgent was designed, tested, and benchmarked across 9 end-to-end chaos engineering scenarios (achieving a &lt;strong&gt;9/9 verified pass rate&lt;/strong&gt; across validation errors, session dropouts, and duplicate invoice filters). &lt;br&gt;
Full evaluation logs and architectural diagrams are available in &lt;a href="https://github.com/jaiswalabhishek377/praxis-agent/blob/main/eval-results.md" rel="noopener noreferrer"&gt;&lt;code&gt;eval-results.md&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://github.com/jaiswalabhishek377/praxis-agent/blob/main/architecture.mmd" rel="noopener noreferrer"&gt;&lt;code&gt;architecture.mmd&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;: Can run open-weight Gemma models locally for air-gapped, zero-data-leakage document extraction and browser operation, locally ollama powered by gemma2-9b-it within its Multi-Model Provider Cascade to run fast, open-weights fallback inference for browser automation and document parsing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Entire&lt;/strong&gt;: PraxisAgent records step-by-step JSONL execution traces (&lt;code&gt;runs/*.jsonl&lt;/code&gt;) and database verification audit dossiers for complete operational transparency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of GitHub Copilot&lt;/strong&gt;: Used Copilot to write code.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
