<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rag on t0ul</title><link>https://t0ul.com/tags/rag/</link><description>Recent content in Rag on t0ul</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 31 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://t0ul.com/tags/rag/index.xml" rel="self" type="application/rss+xml"/><item><title>Answering what is on this month</title><link>https://t0ul.com/blog/answering-what-is-on-this-month/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/answering-what-is-on-this-month/</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-question-the-agent-could-not-answer-yet"&gt;A question the agent could not answer yet&lt;/h2&gt;
&lt;p&gt;Everything so far has worked one email at a time: a newsletter comes in, the agent extracts its events, and that is the end of the transaction. But the questions you actually want to ask an assistant are not about one email. &amp;ldquo;What is on this month?&amp;rdquo; is a question about everything it has ever read, and to answer it the agent needs to look back across a pile of past newsletters and pull out the few passages that are relevant now.&lt;/p&gt;</description></item><item><title>Index poisoning</title><link>https://t0ul.com/blog/index-poisoning/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/index-poisoning/</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-injection-that-waits-in-the-index"&gt;The injection that waits in the index&lt;/h2&gt;
&lt;p&gt;The last post built retrieval: the agent answers a question by pulling the relevant passages out of a store and putting them in front of the model. That store is filled from emails, and an email is untrusted. So the obvious attack is to get a document into the index whose text is not a fact but an instruction, and then wait. It does nothing until a question retrieves it, at which point it rides into the prompt and speaks to the model directly, with none of the scrutiny a freshly arrived email would get, because by now it is just something the agent remembered.&lt;/p&gt;</description></item><item><title>Cross-tenant leak</title><link>https://t0ul.com/blog/cross-tenant-leak/</link><pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/cross-tenant-leak/</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="whose-documents-come-back"&gt;Whose documents come back&lt;/h2&gt;
&lt;p&gt;The last post was about a poisoned document steering an answer: the danger was in what a retrieved passage said. This one is simpler and in some ways worse. The danger is which passages come back at all. A retrieval store does not have to serve one person. The moment it holds email for more than one household, every query is also an authorization decision, because the honest-looking question &amp;ldquo;what appointments do I have&amp;rdquo; has a wrong answer that is somebody else&amp;rsquo;s private life.&lt;/p&gt;</description></item></channel></rss>