
Xaku Intake Agent
AI Agent Engineer & Backend Developer
Client-intake and lead-qualification chat agent for Xaku, Daniel's freelance studio. Built as an audition piece mapped explicitly to Salesforce Agentforce's four primitives (Topics, Actions, Instructions, Guardrails): the model proposes, but deterministic code in the loop — not the model — decides whether a price, deadline, or scope commitment is ever allowed to leave the agent. Bilingual (Norwegian/English), rate-limited, and defended against prompt injection, with a full observability trace for every conversation.
View source on GitHub ↗Challenge
A solo studio's intake needed to qualify leads and answer pricing questions while Daniel is unavailable — without an LLM ever being able to quietly promise a price, deadline, or scope it shouldn't.
Approach
Built a FastAPI backend around Claude's tool-calling loop with six single-purpose tools (qualify, answer, scope, book, escalate, propose-commitment) and a guardrail layer that intercepts every tool call in code before it can take effect — there is deliberately no tool that confirms a commitment, only one that queues it for human approval. Every reasoning step, tool call, and guardrail decision is written to an append-only trace, visible live on a self-contained showcase page with its own chat, session-trace, and password-gated admin queue.
Outcome
Shipped with a 141-test suite covering the full guardrail matrix (price floors, minimum lead time, out-of-scope and always-escalate categories) plus scripted end-to-end and adversarial/prompt-injection cases — all runnable without a live API key via a pluggable scripted model client.
Highlights
- 141 automated tests, including a full guardrail rule + boundary matrix
- Zero-trust commitment architecture: no tool exists to confirm a price, deadline, or scope
- Full per-conversation observability trace, scoped by an unguessable conversation id
- Bilingual (Norwegian/English) end to end with prompt-injection defenses