
Figure 1: Aza Man icon
Aza Man is a multi-agent AI system developed for the Agentic AI Developer Certification Program (AAIDC) 2025, offered by ReadyTensor. It delivers personalized financial management through budget creation, expense tracking, and savings management. Leveraging LangGraph for workflow orchestration, SQLite for state persistence, and a Streamlit interface, Aza Man ensures a robust, secure, and user-friendly experience. Integrated with cost-efficient SOTA models via OpenRouter, Groq, and TogetherAI, it promotes financial literacy in regions like Nigeria, addressing economic challenges with intelligent automation. This publication details Aza Man’s architecture, production enhancements, testing, safety, resilience, and deployment, showcasing its readiness for real-world use.
Agentic AI systems enable autonomous, goal-driven interactions, surpassing traditional chatbots. Aza Man addresses the need for accessible budgeting tools in economically volatile regions like Nigeria, offering a modular, scalable solution with comprehensive testing, safety guardrails, and a user-friendly interface. Built with LangGraph, SQLite, and Streamlit, Aza Man integrates tool-calling, state persistence, and real-time visualizations to empower users in managing finances. This publication outlines Aza Man’s architecture, production enhancements (testing, safety, resilience, UI, documentation), evaluation, and deployment, demonstrating its alignment with AAIDC2025 requirements.
Aza Man’s design prioritizes production readiness, focusing on modularity, scalability, security, and resilience. LangGraph orchestrates complex workflows, ensuring efficient task delegation and low latency. SQLite, via SqliteSaver, provides lightweight state persistence. The tool-centric architecture uses LangChain’s .bind_tools for structured financial data updates. Security measures include input validation, output filtering, and error handling. The Streamlit interface abstracts technical complexity with a custom-themed dashboard. A .gitattributes file ensures consistent line endings (*.py text eol=lf), resolving Windows-specific LF to CRLF warnings. These choices make Aza Man robust, maintainable, and ready for real-world deployment.
Aza Man is a multi-agent system with a supervisor architecture:
10 messages to prevent context overload.
Figure 2: Dashboard page
Aza Man delivers a cohesive financial management experience. Users log in via a regex-validated interface, setting a username with set_username if unset. The budget tool creates budgets from income and savings goals, while log_expenses logs categorized expenses. The math_tool handles all arithmetic, ensuring precision. The State class persists data across sessions, and the summarizer condenses long conversations. The Streamlit frontend provides a chat interface for real-time interaction and a dashboard with Plotly charts visualizing income, expenses, and savings progress. Error messages and guidance enhance usability.
Aza Man was enhanced to ensure production readiness:
10-message summarization limit prevents context overload. Retry and timeout logic are planned for LLM calls.Aza Man was evaluated with:
Aza Man implements robust guardrails:
Aza Man includes:
10 messages prevents context overload.
Figure 3: Test results
1. Clone the Repository:
git clone https://github.com/Blaqadonis/azaman.git
cd azaman
2. Create and Activate a Conda Environment:
conda create -n azaman python=3.11
conda activate azaman
3. Install Dependencies:
pip install -r requirements.txt
4. Create data Directory:
mkdir -p data
5. Set Up Environment Variables:
touch .env
GROQ_API_KEY=your_groq_api_key
OPENROUTER_API_KEY=your_openrouter_api_key
TOGETHER_API_KEY=your_together_api_key
LANGCHAIN_TRACING_V2=false
LANGCHAIN_API_KEY=your_langchain_api_key
LANGCHAIN_PROJECT=Aza Man_FOR_AAIDC2025
6. Update project_config.py:
PROJECT_CONFIG = {
"project_name": "Aza Man",
"page_icon": "images/azaman2.png",
"backstory": (
"You are Aza Man, an AI-powered personal financial assistant designed to help users manage their budget, ..."
),
"instructions": (
"..."
),
"youtube_url": "https://youtu.be/8CEyOVjqtRI",
"author_linkedin": "https://www.linkedin.com/in/chinonsoodiaka/",
"author_name": "🅱🅻🅰🆀",
"data_path": "data/azaman.db",
"model": "meta-llama/llama-4-maverick-17b-128e-instruct",
"evaluator": "deepseek-ai/DeepSeek-V3",
"provider": "groq",
"currency_default": "NGN",
"state_variables": {
"username": str,
"income": float,
"budget_for_expenses": float,
"expense": float,
"expenses": list,
"savings_goal": float,
"savings": float,
"currency": str,
"summary": str
},
"state_defaults": {
"username": "",
"income": 0.0,
"budget_for_expenses": 0.0,
"expense": 0.0,
"expenses": [],
"savings_goal": 0.0,
"savings": 0.0,
"currency": "",
"summary": ""
},
"tools": ["set_username", "budget", "log_expenses", "math_tool"],
"theme": {
"primary_color": "#FF0000",
"dark_bg": "#0A0A0A",
"card_bg": "#1A1A1A"
}
}
7. Run the Application:
streamlit run app.py
8. Visit http://localhost
.9. Troubleshooting:
10. Deployment:
streamlit run app.py
Access: http://localhost
.11. Maintenance:
Aza Man is licensed under the MIT License.
Thanks to ReadyTensor and AAIDC2025 mentors for guidance.
SOURCE FILES - Github repo
LinkedIn - Blaq
