<?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: Josh Smith</title>
    <description>The latest articles on DEV Community by Josh Smith (@josh_smith_215553019f1670).</description>
    <link>https://dev.to/josh_smith_215553019f1670</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%2F2447976%2F83fb7066-c9fc-455f-9823-96dbd6efe787.png</url>
      <title>DEV Community: Josh Smith</title>
      <link>https://dev.to/josh_smith_215553019f1670</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/josh_smith_215553019f1670"/>
    <language>en</language>
    <item>
      <title>A Practical Checklist for Choosing a Dentist in Narre Warren VIC</title>
      <dc:creator>Josh Smith</dc:creator>
      <pubDate>Fri, 21 Aug 2026 10:21:50 +0000</pubDate>
      <link>https://dev.to/josh_smith_215553019f1670/a-practical-checklist-for-choosing-a-dentist-in-narre-warren-vic-367d</link>
      <guid>https://dev.to/josh_smith_215553019f1670/a-practical-checklist-for-choosing-a-dentist-in-narre-warren-vic-367d</guid>
      <description>&lt;p&gt;Finding the &lt;strong&gt;best dentist in Narre Warren VIC&lt;/strong&gt; for your circumstances means comparing the factors that affect safe, convenient and sustainable care. A single review score cannot tell every patient whether a clinic is the right fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define the care you need
&lt;/h2&gt;

&lt;p&gt;Routine examinations, cleaning, emergency care, restorative dentistry, orthodontics, children’s dentistry and cosmetic treatments each require different planning. Ask whether the clinic provides the service you need and how it assesses suitability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check registration and communication
&lt;/h2&gt;

&lt;p&gt;Australian patients can confirm practitioner registration through the appropriate national register. During a consultation, you should receive a clear explanation of the proposed treatment, alternatives, likely fees and relevant risks before deciding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Consider practical access
&lt;/h2&gt;

&lt;p&gt;Location, opening hours and emergency arrangements matter. A conveniently located clinic can make preventive visits easier and may reduce delays when a problem develops. Ask about payment methods, health-fund claiming and appointment availability.&lt;/p&gt;

&lt;p&gt;Glowing Smiles Dental lists a Narre Warren clinic at 103–109 Prospect Hill Road, Narre Warren VIC 3805. Its website includes information about preventive, restorative, emergency, cosmetic, orthodontic and children’s dental services. See the &lt;a href="https://glowingsmilesdental.com.au/clinics-2/" rel="noopener noreferrer"&gt;Glowing Smiles Dental clinic page&lt;/a&gt; for current details.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is general information and is not a substitute for personalised dental advice.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Practical Architecture for Private Autonomous AI Agents</title>
      <dc:creator>Josh Smith</dc:creator>
      <pubDate>Fri, 21 Aug 2026 09:05:38 +0000</pubDate>
      <link>https://dev.to/josh_smith_215553019f1670/a-practical-architecture-for-private-autonomous-ai-agents-26nh</link>
      <guid>https://dev.to/josh_smith_215553019f1670/a-practical-architecture-for-private-autonomous-ai-agents-26nh</guid>
      <description>&lt;p&gt;Autonomous AI agents become useful when they can do more than generate text. A production agent may interpret an objective, retrieve approved context, choose tools, execute several steps, and return evidence of what it changed.&lt;/p&gt;

&lt;p&gt;That capability also expands the security boundary. The question is no longer only, “Which model should we use?” It is also, “What can the agent access, which actions can it perform, where is data processed, and how do we stop it safely?”&lt;/p&gt;

&lt;p&gt;This article outlines a practical architecture for teams building private, business-focused agent workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Separate reasoning from authority
&lt;/h2&gt;

&lt;p&gt;An agent may be capable of proposing many actions without being authorised to perform all of them.&lt;/p&gt;

&lt;p&gt;Treat model output as a request to an enforcement layer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User objective
      ↓
Agent planner
      ↓
Policy and permission check
      ↓
Approved tool execution
      ↓
Audit event + result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The planner decides what it wants to do. A deterministic policy layer decides whether that action is permitted. This separation makes permissions testable and prevents a prompt from becoming authority.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Give every agent a narrow role
&lt;/h2&gt;

&lt;p&gt;A general-purpose agent with broad access is difficult to test. Start with a bounded role such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;summarising a defined document collection;&lt;/li&gt;
&lt;li&gt;preparing a support response for human approval;&lt;/li&gt;
&lt;li&gt;generating a report from an approved dataset;&lt;/li&gt;
&lt;li&gt;monitoring a workflow and escalating exceptions; or&lt;/li&gt;
&lt;li&gt;assisting with code inside a specific repository.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Define its allowed inputs, tools, output schema, and escalation conditions. A narrow contract makes failure modes easier to discover.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Use least-privilege tool access
&lt;/h2&gt;

&lt;p&gt;Tool credentials should be scoped to the agent’s actual job.&lt;/p&gt;

&lt;p&gt;For example, a reporting agent may need read access to analytics data and write access to a report destination. It probably does not need permission to delete records, invite users, or change billing settings.&lt;/p&gt;

&lt;p&gt;Useful controls include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;separate service identities for different agents;&lt;/li&gt;
&lt;li&gt;read-only access by default;&lt;/li&gt;
&lt;li&gt;allow-listed endpoints and commands;&lt;/li&gt;
&lt;li&gt;short-lived credentials;&lt;/li&gt;
&lt;li&gt;network restrictions;&lt;/li&gt;
&lt;li&gt;explicit confirmation for irreversible actions; and&lt;/li&gt;
&lt;li&gt;rate and cost limits.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Keep private context inside a controlled boundary
&lt;/h2&gt;

&lt;p&gt;Business agents often require internal documents, customer records, project files, or operational data. Decide where each stage runs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Where is source data stored?&lt;/li&gt;
&lt;li&gt;Where are embeddings and indexes stored?&lt;/li&gt;
&lt;li&gt;Which model endpoint receives retrieved context?&lt;/li&gt;
&lt;li&gt;Are prompts or outputs retained?&lt;/li&gt;
&lt;li&gt;Which region processes the request?&lt;/li&gt;
&lt;li&gt;Who can inspect logs and traces?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;“Private AI” should describe an architecture and operating policy, not just a marketing label.&lt;/p&gt;

&lt;p&gt;For teams evaluating a managed approach, &lt;a href="https://toothfairyai.com/en" rel="noopener noreferrer"&gt;ToothFairyAI&lt;/a&gt; provides a Melbourne-based private and sovereign AI Studio for building and operating autonomous business agents with region-aware infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Require structured outputs
&lt;/h2&gt;

&lt;p&gt;Free-form text is convenient for people but risky for automation. Ask an agent to return a typed result before any tool runs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"create_report"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"source_ids"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"sales-q2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sales-q3"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"destination"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"reports/draft"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"requires_approval"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reason"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Quarterly comparison requested"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Validate the schema, reject unknown fields, and apply business rules outside the model.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Add human checkpoints where risk changes
&lt;/h2&gt;

&lt;p&gt;Not every step needs approval. Place checkpoints before actions that create meaningful consequences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sending external messages;&lt;/li&gt;
&lt;li&gt;spending money;&lt;/li&gt;
&lt;li&gt;changing production systems;&lt;/li&gt;
&lt;li&gt;publishing content;&lt;/li&gt;
&lt;li&gt;deleting or overwriting data;&lt;/li&gt;
&lt;li&gt;making legal or employment decisions; and&lt;/li&gt;
&lt;li&gt;exposing confidential information.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Low-risk retrieval and drafting can remain automatic while higher-risk actions wait for a person.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Design observability from the start
&lt;/h2&gt;

&lt;p&gt;A useful trace should answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What objective did the agent receive?&lt;/li&gt;
&lt;li&gt;Which context did it retrieve?&lt;/li&gt;
&lt;li&gt;Which tools did it request?&lt;/li&gt;
&lt;li&gt;Which policy allowed or denied each action?&lt;/li&gt;
&lt;li&gt;What changed in an external system?&lt;/li&gt;
&lt;li&gt;How long did each stage take?&lt;/li&gt;
&lt;li&gt;What did the workflow cost?&lt;/li&gt;
&lt;li&gt;When did a human intervene?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Redact secrets and sensitive content, but retain enough metadata to investigate failures.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Test behaviour, not only answers
&lt;/h2&gt;

&lt;p&gt;Agent evaluation should include workflow tests:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing or contradictory context;&lt;/li&gt;
&lt;li&gt;prompt injection inside retrieved documents;&lt;/li&gt;
&lt;li&gt;unavailable tools;&lt;/li&gt;
&lt;li&gt;expired credentials;&lt;/li&gt;
&lt;li&gt;malformed tool results;&lt;/li&gt;
&lt;li&gt;repeated requests;&lt;/li&gt;
&lt;li&gt;excessive cost or runtime;&lt;/li&gt;
&lt;li&gt;attempts to exceed permissions; and&lt;/li&gt;
&lt;li&gt;recovery after partial completion.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A good agent fails clearly, preserves state, and asks for help before causing damage.&lt;/p&gt;

&lt;h2&gt;
  
  
  A sensible rollout
&lt;/h2&gt;

&lt;p&gt;Begin with one workflow that is valuable, measurable, and reversible. Run it in observation mode, then allow drafts, then permit carefully scoped actions. Expand authority only when logs and evaluation results demonstrate reliability.&lt;/p&gt;

&lt;p&gt;The most important architecture decision is not which model tops a benchmark this month. It is how your system controls context, permissions, execution, and accountability around the model.&lt;/p&gt;

&lt;p&gt;That is what turns an impressive demo into dependable infrastructure.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>programming</category>
      <category>help</category>
    </item>
  </channel>
</rss>
