I am posting content here that will help you get idea on building agentic software systems.
Before you proceed, you need to remember…
Machines don’t learn or think like humans do! It’s all math.
In my opinion, crafting agentic software depends mainly on five maturity areas…
1️⃣ Understanding the complexity of the problem and how agents can help (will it really benefit with such a solution?)
2️⃣ Understanding the level of accuracy and human intervention required (beware, LLMs are probabilistic software!)
3️⃣ Defining agent personas with clear objectives: Writing clever prompts and using different prompt engineering techniques
4️⃣ Thinking simple workflows: Restrospecting the output at every step, understand what can improve accuracy
5️⃣ Understanding implications on security, privacy and compliance
To build capabilities in agentic AI, you could use this three step process.
I followed this three step process myself.
✨ Step 1: Be an efficient software craftsman
✅ Stop thinking that AI is the answer to all your problems
✅ Be part of, or develop an excellent engineering culture
✅ Collaborate, experiment and learn; understand what others are doing
✅ Learn Python, async programming, API development and a database with vector support (pgvector is an excellent choice)
Why Python? You can develop agentic software using Java, JS or any programming language, but Python’s community support and strong-establishment in the AI/ML and now in GenAI and Agentic AI space is tremendous. Even the libraries and frameworks used in GenAI/Agentic AI usually come for Python first.
Python perhaps is easier to learn, but you need to know how to do async programming, multiprocessing, create modular and manageable systems, clean coding, unit/integration testing, logging, monitoring, etc, (like any other programming language) in order to build usable and maintainable software systems.
✅ Read why LLMs are called probabilistic systems, use ChatGPT or Gemini and experiment with prompts
✨ Step 2: Understand the building blocks
✅ Start small; build a simple chatbot and experiment with different prompt techniques like, one-shot, few-shot, and advanced techniques like ReAct, CoT, etc
✅ Learn vector databases, tokens, text embedding, chunks, etc - Learn how an embedding model works, why text is converted into a vector of numbers and how it helps
✅ Build a RAG workflow, connect it with the chatbot, add memory - Try Agentic RAG!
✅ Learn different RAG techniques and simple tool usage with LLMs - Try advanced RAG techniqies like Corrective and Adaptive RAG
✅ Understand the economics of cloud computing (there is no free lunch - There are many open source tools available in this space to build things, but when you run things, it costs money, and it’s very easy to overspend!)
✨ Step 3: Develop agents
✅ Build a system with two agents that interact with each other, define agent goals, criteria, expected results, etc
✅ Optimize token usage by engineering agent context!
✅ Learn structured inputs, structured outputs and guardrails
✅ Learn agentic workflow patterns (like supervisor-worker, chaining, parallelising, evaluator-optimizer, etc), add multiple agents
✅ Provide more tools to the agent, learn how agent picks the best tool. Also, take a look at Model Context Protocol
✅ Logging, monitoring, LLMOps and deployment (Check tools like LangSmith, Arize, etc)
✅ Dive deep into evals (Evaluation of how the agents are performing!) - LLM as judge is a popular technique done using the evaluator-optimizer pattern,.