Nova Adiutrix: My Second Agent Built My First Project's To-Do List
TL;DR: I shipped the second project in my AWS nanodegree, an AI support agent on Amazon Bedrock. Building it, I found that the "Not built, and why" section I wrote for project one had quietly become project two's feature list. The three things that broke were the same three things that broke last time, one layer deeper. Four hours into the second project of my AWS nanodegree, with the expensive…
The second project in the AWS nanodegree, Nova Adiutrix, is a support agent for an online store. Adiutrix, a Roman legion epithet meaning helper, was built to track orders, process refunds, answer policy and product questions, calculate loyalty discounts, and read live web pages. The project aimed to incorporate the lessons learned from the first project, Nova Trivium, which was a support chatbot with a limited FAQ, guardrails, and structured output.
In Nova Adiutrix, the product catalog and policies were stored in a Bedrock Knowledge Base, a managed vector store, allowing the agent to retrieve relevant chunks instead of pasting a full FAQ. The agent had twenty numbered rules in its system prompt, with one rule specifically stating that an order ID in a customer message was a lookup key, and the agent should only disclose an order after the tool data confirmed ownership.
However, despite the intention to enforce this rule, the implementation failed to work correctly. The ownership lookup was not callable as assumed, causing the agent to fail Test 1, which was the most critical test in the project. This experience highlighted the limitations of relying on a model's promise when the underlying functionality cannot enforce it, emphasizing the importance of building robust security controls.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.