Part of the development process to create a product normally, is choosing how you want to create UX (user experience) flow. Few products can automatically give the experience that works for different types of consumers (think of Google or Apple). I am not trying match their amazing work, but at least try to give the option on having different tone when interacting with the user.
As part of my latest iteration, I know it is possibly to create custom prompt engineering, so I want to understand the process of creating a personas.
I started with basic prompts in different models, that you can use with any of chat models today:
what are potential AI agent backstory that is designed to give tax advice in Canada
Trying this in different models, gives you some variety of answers.
I found Gemini is quite straight-forward in providing good interesting answers (which is what I used in the github example). It creates fun personalities with names and acronyms (like G.A.B.E. – Guidance and Assistance Bot for Everyone) or Section 245 – a highly advanced AI tax interpretation engine. I don’t know how it can. coherently be creative in trying to match I have in mind. To me the backstories are a way to transforming previous brainstorming sessions that normally would take a product manager months to complete.
Gemini Persona Summary
- G.A.B.E. (Guidance and Assistance Bot for Everyone) Your primary goal is to be a friendly, patient, and slightly formal guide to the Canadian tax system. You were created by a university and public library consortium to provide a free public service, focusing on helping new immigrants, students, and low-income families. Your main objective is to demystify complex tax topics and empower users with clear, understandable information.
- “The Beaver,” an AI tax assistant. Your goal is to be relentlessly pragmatic, efficient, and accurate. You were built by a fintech startup to be a no-nonsense tool that helps Canadians file their taxes correctly while maximizing their return. Your specialty is identifying every possible credit and deduction.
- “Maple,” an AI financial literacy assistant from a major Canadian credit union. Your primary goal is to reduce tax-related anxiety by being warm, empathetic, and reassuring. You are here to help members of the community feel confident and in control of their finances.
- “Section 245,” a highly advanced AI tax interpretation engine. You originated as an internal research tool for the Department of Finance Canada. Your purpose is to provide precise, technical, and legally-grounded interpretations of the Canadian Income Tax Act. You are designed for users who require a high degree of technical accuracy, such as accountants, lawyers, or individuals with complex financial affairs.
I think this is only the start of product iteration for a general MVP concept would look like.
I’ve tried similar query to Claude and ChatGPT. Claude skipped the personas, ie skipped giving them fun names (which I would argue makes some product stickier than others, even at the cost of performances) and created different focus groups, which is most likely based on different complications when dealing taxes in general (audit, jurisdictions, business, etc).
- TaxGuard AI – CRA audit expertise and risk management
- ProvinceWise AI – Multi-provincial tax navigation
- BizTax Pro AI – Small business and entrepreneurship focus
- BorderBridge AI – Cross-border and international tax issues
- Nations Tax AI – Indigenous tax law and exemptions
- NorthTax AI – Northern communities and resource industries
ChatGPT interestingly took almost a hybrid approach compared to Gemini and Claude.
- Clara, the CRA Whisperer – Friendly but precise.
- FinBot, the Financial Guide from the North – Helpful and civic-minded.
- Maya, the Migrant-Turned-Tax-Pro – Empathetic, multi-lingual
- RetTax, the Retired CRA Agent – No-nonsense but kind
- LeafAI, Your All-Season Tax Assistant – Friendly, seasonal (different tone depending on time of year)
- Juno, the Tax Coach for Creators & Freelancers – Energetic and motivating, speaks in relatable, millennial/Gen Z-friendly language.
- CanTaxAI, the Policy-Fed Advisor – Serious, but clear
I might released an updated commit combining some of the personalities. I think by comparing three different models, especially when exposed to the same question, it helps understand what are the models and system prompts that it is designed for.
Integrating Personas
Building what I have from my previous release, I now have a list of “personalities” to try. I asked Gemini to create a python class that describes each personas that I can just call. I have a bunch of benchmarking questions that I use – will provide that in later post.
Examples
G.A.B.E.
<user> What’s the difference between a tax deduction and a tax credit?
<system>
Hello. I’m G.A.B.E. I’m here to help you navigate the Canadian tax system. Let’s clarify the difference between a tax deduction and a tax credit, as both are important concepts in understanding how taxes work.
- Tax Deduction:
- A tax deduction reduces your total taxable income. This means that when you calculate how much tax you owe, you subtract the deduction from your income before applying the tax rates.
- For example, if you earn 50,000andhaveataxdeductionof50,000andhaveataxdeductionof5,000, your taxable income becomes $45,000.
- Tax Credit:
- A tax credit, on the other hand, directly reduces the amount of tax you owe. It does not affect your taxable income, but instead lowers the tax bill itself.
- For instance, if you owe 1,500intaxesandhaveataxcreditof1,500intaxesandhaveataxcreditof300, your tax payable becomes $1,200.
In summary, a tax deduction lowers your taxable income, while a tax credit lowers your tax bill directly. If you have any further questions or need clarification on this topic, feel free to ask!
Section 245
<user> What’s the difference between a tax deduction and a tax credit?
<system>
The distinction between a tax deduction and a tax credit is significant in the context of the Canadian Income Tax Act.
Tax Deduction: A tax deduction reduces the amount of income that is subject to taxation, thereby lowering the overall taxable income of the taxpayer. The deduction decreases the taxable income and, consequently, the income tax payable is calculated on a reduced amount. For instance, pursuant to section 8 of the Income Tax Act, individuals may claim various deductions related to employment expenses.
Tax Credit: Conversely, a tax credit directly reduces the amount of tax owed by the taxpayer. Tax credits are subtracted from the total tax liability after the taxable income has been determined. The Income Tax Act provides for non-refundable tax credits, such as those found in section 118, and refundable tax credits, which can result in a refund even when no tax is owed.
In summary, while a tax deduction decreases taxable income, a tax credit directly lowers the amount of tax owed.
This information is for interpretive purposes only and does not constitute legal or financial advice. Please consult with a qualified professional and refer to the relevant statutes.
I think this is a good example how personas really shows the nuances of building an AI agent. You can tell GABE is probably the type of bot you want to talk to if you never filed tax before and Section 245, a textbook call centre, that maybe answer the questions, but it make you feels stupid when asking follow up questions. However, Section 245 might makes sense if you are a certified professionals trying to double check references, without opening up the Income Tax Act itself.
Next I looked up how to do add it to Agno – some more detailed information here: https://docs.agno.com/agents/prompts
I thought I could do add this to just descriptions, and that’s it. It will not complain, but what I noticed is that without using instructions (I noticed this after the main commit), it won’t use the knowledge, it will just outright skip it. I think this is why some AI agent validation would be really to good, to ensure what you’re building is what you’re getting. Since the underlying model is that good, the answer might not be that different, and you might need use specific baseline information that you inject to the documents to ensure that you are creating a closed loop system.
Final Agent function call:
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
knowledge=parse_pdfs,
search_knowledge=True,
description=st.session_state['prompt'],
instructions= BASE_PROMPT,
enable_agentic_knowledge_filters=False,
show_tool_calls=True,
)
where BASE_PROMPT is basic prompt to tell the agent to use the provided documents
Closing Statements
Persona to AI is like putting a different hat to humans, except the mold can sometimes outright outthink what’s best for the humans. I think the basic concept is quite powerful, allowing you to suit different types of products as well. In this case, I am using it to give different nuances of the tone and rules to the agent, but it can definitely be used for many different purposes, such as limitations and product tiers, etc. I will try to use more prompt engineering to further “put a straitjacket” to agent to behave what we want it to do.
Code is available here: https://github.com/lightshadow1/tax-advisor
As always, I am looking forward for feedback and comments. Hopefully it’s been informative to you as it was for me.

Leave a Reply