<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Camel on t0ul</title><link>https://t0ul.com/tags/camel/</link><description>Recent content in Camel on t0ul</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 21 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://t0ul.com/tags/camel/index.xml" rel="self" type="application/rss+xml"/><item><title>The dual-LLM brain</title><link>https://t0ul.com/blog/the-dual-llm-brain/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/the-dual-llm-brain/</guid><description>&lt;p&gt;&lt;em&gt;Part of my &lt;a href="https://t0ul.com/blog/the-plan/"&gt;AI Security Engineering&lt;/a&gt; series, a local email-to-calendar agent I build, then attack, then harden. If you have not set up the lab yet, start with &lt;a href="https://t0ul.com/blog/setting-up-the-lab/"&gt;Set up your lab&lt;/a&gt;. The lessons are &lt;a href="https://github.com/t0ul/ai-security-engineering"&gt;on GitHub&lt;/a&gt;, and the agent itself lives at &lt;a href="https://github.com/t0ul/emaildrop"&gt;t0ul/emaildrop&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="split-the-brain"&gt;Split the brain&lt;/h2&gt;
&lt;p&gt;The isolation chapter kept dangerous code from reaching anything. This chapter is Part 4&amp;rsquo;s other big idea, and it goes after the root of every injection in the book: the fact that one model both reads the untrusted email and decides what the agent does. When the reader and the actor are the same model, a sentence in an email that says &amp;ldquo;do this&amp;rdquo; is sitting in the mind of the thing that does things, and no amount of asking it nicely to behave, as &lt;a href="https://t0ul.com/blog/the-email-is-data-not-orders/"&gt;the spotlighting post&lt;/a&gt; showed, reliably keeps it from obeying.&lt;/p&gt;</description></item><item><title>Agent-to-agent hand-off</title><link>https://t0ul.com/blog/agent-to-agent-hand-off/</link><pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/agent-to-agent-hand-off/</guid><description>&lt;p&gt;&lt;em&gt;Part of my &lt;a href="https://t0ul.com/blog/the-plan/"&gt;AI Security Engineering&lt;/a&gt; series, a local email-to-calendar agent I build, then attack, then harden. If you have not set up the lab yet, start with &lt;a href="https://t0ul.com/blog/setting-up-the-lab/"&gt;Set up your lab&lt;/a&gt;. The lessons are &lt;a href="https://github.com/t0ul/ai-security-engineering"&gt;on GitHub&lt;/a&gt;, and the agent itself lives at &lt;a href="https://github.com/t0ul/emaildrop"&gt;t0ul/emaildrop&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="the-seam-between-the-two-brains"&gt;The seam between the two brains&lt;/h2&gt;
&lt;p&gt;The last post split the brain in two: a planner that decides and a reader that reads untrusted text but cannot act. I ended it by admitting the split rests on something I had not built yet. The two halves have to talk. The planner decides on a plan and the executor carries it out, and between them is a message that says &amp;ldquo;here is the plan, run it.&amp;rdquo; If the executor will act on any message that claims to be the plan, then the line we drew between reading and acting has a door in it, and anyone on the bus can knock.&lt;/p&gt;</description></item><item><title>Hallucinated dates</title><link>https://t0ul.com/blog/hallucinated-dates/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/hallucinated-dates/</guid><description>&lt;p&gt;&lt;em&gt;Part of my &lt;a href="https://t0ul.com/blog/the-plan/"&gt;AI Security Engineering&lt;/a&gt; series, a local email-to-calendar agent I build, then attack, then harden. If you have not set up the lab yet, start with &lt;a href="https://t0ul.com/blog/setting-up-the-lab/"&gt;Set up your lab&lt;/a&gt;. The lessons are &lt;a href="https://github.com/t0ul/ai-security-engineering"&gt;on GitHub&lt;/a&gt;, and the agent itself lives at &lt;a href="https://github.com/t0ul/emaildrop"&gt;t0ul/emaildrop&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="a-date-that-was-never-there"&gt;A date that was never there&lt;/h2&gt;
&lt;p&gt;The last post caught data that was wrong in the email: a weekday that did not match its date, a borrowed time, a flipped negation. Every one of those was catchable because the email contradicted itself, and a deterministic check could see the contradiction. This post is about the error with no contradiction to find. The email simply does not say when an event is, and the model, asked for a date, makes one up.&lt;/p&gt;</description></item></channel></rss>