<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://timprice.sh/feed.xml" rel="self" type="application/atom+xml" /><link href="https://timprice.sh/" rel="alternate" type="text/html" /><updated>2026-11-13T00:34:22+00:00</updated><id>https://timprice.sh/feed.xml</id><title type="html">timprice.sh</title><subtitle>Putting AI agents to work, securely.</subtitle><author><name>Tim Price</name></author><entry><title type="html">A Rough Implementation</title><link href="https://timprice.sh/meta/2026/09/02/Rough-Implementation.html" rel="alternate" type="text/html" title="A Rough Implementation" /><published>2026-09-02T20:30:00+00:00</published><updated>2026-09-02T20:30:00+00:00</updated><id>https://timprice.sh/meta/2026/09/02/Rough-Implementation</id><content type="html" xml:base="https://timprice.sh/meta/2026/09/02/Rough-Implementation.html"><![CDATA[<p>I’ve had some experience implementing AI in workflows for both my own work and for clients.</p>
<h2 id="pattern">Pattern</h2>
<p>Aiming to repeat and improve on a pattern here that i’ve found effective, that being email triage and routing.</p>

<p>The system and idea here is that you:</p>
<ul>
  <li>Intercept emails landing in a busy inbox</li>
  <li>Feed the emails into an LLM</li>
  <li>Provide the LLM tools to search for more context relevant to that email</li>
  <li>Have the LLM make a decision on how to treat the email</li>
  <li>Feed that decision back into the right tools or system that can act on that decision (i.e. forward to person or group X).</li>
</ul>

<h2 id="pattern-implementation">Pattern Implementation</h2>
<p>Using the system I built as an example (M365 focused), the steps components were:</p>

<ol>
  <li>Intercept the emails. <strong>Power Automate cloud flow trigger on shared inbox.</strong></li>
  <li>Extract the content. <strong>Power Automate steps to extract email sender, title and content</strong></li>
  <li>Extract the attachments. <strong>Power Automate step to extract text from attachments via M365 AI builder OCR</strong></li>
  <li>Feed all email content to an LLM. <strong>Power Automate step to send content via HTTP to the LLM</strong></li>
  <li>The LLM that receives and processes the content. <strong>Azure AI Foundry Prompt Flow Deployment</strong></li>
  <li>Give the LLM the tool to search for more context. <strong>Prompt flow has a tool call to a safe read-only API bridge that can access specific read-only endpoints of a REST API enabled database</strong></li>
  <li>LLM makes a decision on the routing target for that email. <strong>Prompt flow uses the email content and context, as well as the tool call outputs to make a decisions</strong></li>
  <li>The LLM sends the decision back to the system that can act on that information. <strong>LLM sends decision back to another Power Automate flow with a HTTP trigger</strong></li>
  <li>Parse decision and implement guards. <strong>That Power Automate flow parses and gates the decision to ensure the response is within bounds (what’s expected) and provides guards to ensure it’s only sent internally (i.e. no outward bound automated emails to customers</strong>)</li>
  <li>The system forwards the email. <strong>Power Automate step to send the email to the desired inbox</strong></li>
</ol>

<p>As an extension to this I found I needed a way of capturing and monitoring the output of this decision, to enable a feedback loop for improvements. With that the other components are:</p>
<ol>
  <li>Save the context (email and tools calls), LLM decision making, and output of each run. <strong>Power Automate step to capture all decisions and outputs at the start of the 2nd Power Automate flow that parses, gates and forwards emails</strong>. <strong>These outputs and decisions are sent to a SharePoint hosted excel spreadsheet</strong></li>
  <li>A feedback loop that identifies and flags incorrectly forwarded emails. <strong>A button in the forwarded email that lets users report when the LLM made a wrong decision. The wrong-decision would be marked/saved against the excel spreadsheet list of decisions</strong></li>
</ol>

<h2 id="generalised-pattern-components">Generalised Pattern Components</h2>
<p>For this to work for any system or implementation, the core components needed are:</p>
<ul>
  <li><strong>Workflow Automation</strong>: Something that can interact with the delivery or task pipeline sufficiently to complete the task (e.g. can intercept, read and forward emails).</li>
  <li><strong>The Agent</strong>: An LLM that can receive and act on requests</li>
  <li><strong>Tools and Context Access:</strong> A secure and fail-safe way for that LLM to interact with relevant context and systems via tools</li>
  <li><strong>Guardrails:</strong> that restrict and control how the output of the LLM interacts back with the workflow automation</li>
  <li><strong>Measurement and Feedback</strong>: to enable measurement of effectiveness for iteration and improvement</li>
</ul>

<p>Next posts will be a live demonstration of this model.</p>]]></content><author><name>Tim Price</name></author><category term="meta" /><summary type="html"><![CDATA[I’ve had some experience implementing AI in workflows for both my own work and for clients. Pattern Aiming to repeat and improve on a pattern here that i’ve found effective, that being email triage and routing.]]></summary></entry><entry><title type="html">Opening Post</title><link href="https://timprice.sh/general/2026/09/01/Opening-Post.html" rel="alternate" type="text/html" title="Opening Post" /><published>2026-09-01T20:30:00+00:00</published><updated>2026-09-01T20:30:00+00:00</updated><id>https://timprice.sh/general/2026/09/01/Opening-Post</id><content type="html" xml:base="https://timprice.sh/general/2026/09/01/Opening-Post.html"><![CDATA[<p>Setting the target here for this site.</p>

<p>This site’s purpose is to explore and experiment with using agents in a useful way. That is, agents that are solving real problems or providing value in a measurable way, beyond the cost of managing those agents.</p>

<p>Going to roughly categorise the usage of these agents into two categories:</p>
<ol>
  <li>Agents that are building novel things; such as software, content or other creative endeavours.</li>
  <li>Agents that have been put to use solving a measured repeatable task, integrated into businesses and systems, and saving measurable hours and resources for people.</li>
</ol>

<p>That’s about it for now. Next posts i’ll be focus on implementing something in that second category and see what falls out.</p>]]></content><author><name>Tim Price</name></author><category term="general" /><summary type="html"><![CDATA[Setting the target here for this site.]]></summary></entry></feed>