Thursday, September 17, 2026

Building AI Agents with llama.cpp: A Practical Guide for Developers

 

Building AI Agents with llama.cpp: A Practical Guide for Developers

AI agents are becoming an important part of modern software development. Unlike a basic chatbot that simply responds to a prompt, an AI agent can break a goal into tasks, use tools, remember relevant information, execute actions and adjust its approach based on results.

One interesting way to build local AI agents is with llama.cpp. It is a lightweight C/C++ implementation designed to run large language models efficiently on a wide range of hardware, including systems without high-end GPUs.

This makes llama.cpp particularly interesting for developers who want to experiment with private, locally running AI agents.

What Is llama.cpp?

llama.cpp is an open-source project for running large language models locally. It began as an implementation focused on Meta's LLaMA models and has expanded to support many modern model architectures.

A major feature of llama.cpp is its use of the GGUF model format. GGUF packages model information and weights into a format designed for efficient local inference.

The project supports CPU execution as well as acceleration through several GPU backends.

Instead of sending every request to a cloud API, a developer can run a compatible model directly on their own computer or server.

What Makes llama.cpp Useful for AI Agents?

An AI agent normally consists of several components rather than just an LLM.

A simplified architecture looks like this:

User → Agent Controller → Local LLM → Tool Selection → Tool → Result → LLM → Final Response

llama.cpp provides the model-inference layer. The developer builds the surrounding agent logic.

For example, an agent could receive:

“Analyse this CSV and tell me which products had the biggest sales increase.”

The agent could:

  1. Understand the request.
  2. Decide that a data-analysis tool is needed.
  3. Call a Python function.
  4. Receive the calculated results.
  5. Interpret those results.
  6. Generate a natural-language response.

The local LLM provides the reasoning and language capabilities, while your application controls the tools and workflow.


Step 1: Install llama.cpp

The exact installation process depends on your operating system and whether you want CPU or GPU acceleration.

The project provides source code and build instructions through its official repository.

After building llama.cpp, you can use its command-line programs to load compatible GGUF models.

A typical workflow is conceptually:

Model (GGUF)
     ↓
llama.cpp
     ↓
Local inference
     ↓
Agent application

For production applications, you should choose the appropriate build and acceleration backend for your hardware.


Step 2: Choose a Model

The model is one of the most important parts of an AI-agent system.

When choosing a local model, consider:

  • Parameter size
  • Context length
  • Instruction-following ability
  • Tool/function-calling support
  • Quantisation
  • RAM requirements
  • GPU memory
  • Response speed
  • Licence

For a personal computer, a smaller quantised model may be much more practical than a very large model.

What Is Quantisation?

Quantisation reduces the numerical precision used to represent model weights.

For example, instead of storing weights using higher-precision formats, a quantised model can use lower-bit representations.

The result can be:

  • Smaller model files
  • Lower memory requirements
  • Faster local inference in some configurations

The trade-off is that aggressive quantisation can reduce model quality.


Step 3: Run the Model Locally

Once you have a compatible GGUF model, llama.cpp can load it and generate responses locally.

A simple command-line workflow can look like:

llama-cli -m model.gguf

The exact command-line options depend on your version and desired configuration.

You can then provide prompts directly to the local model.

At this stage, you have an LLM application, but not necessarily an AI agent.

That's an important distinction.


LLM vs AI Agent

A language model generally follows this pattern:

Prompt → Model → Response

An agent adds an orchestration layer:

Goal → Planning → Tool → Observation → Reasoning → Action → Result

For example, suppose the user asks:

“What is the current temperature in Delhi?”

A normal language model might attempt to answer from its existing knowledge.

An agent can instead decide:

I need a weather tool → call the tool → receive current weather → explain the result.

This is where application-level programming becomes important.


Step 4: Create the Agent Controller

The agent controller is the software that connects the model to external tools.

Python is a convenient choice for building a prototype.

A simplified architecture might look like:

class Agent:
    def __init__(self, model, tools):
        self.model = model
        self.tools = tools

    def run(self, task):
        # Send task to model
        # Determine whether a tool is required
        # Execute approved tool
        # Send result back to model
        # Return final response
        pass

The controller determines what the model is allowed to do.

This is important because an agent should not automatically receive unrestricted access to your computer.


Step 5: Give the Agent Tools

Tools are what transform a language model into something much more useful.

Examples include:

  • Calculator
  • Search system
  • Database
  • Python interpreter
  • File reader
  • Calendar
  • Weather API
  • Internal company API

For example:

def calculate(expression):
    # Validate the expression first
    return safe_calculation(expression)

The model can be instructed to request the calculator when mathematical computation is required.

The application then executes the function and returns the result.


Step 6: Use Structured Tool Calls

For reliable agents, avoid asking the model to produce arbitrary executable code whenever possible.

Instead, define structured tools.

For example:

{
  "name": "get_weather",
  "arguments": {
    "city": "Delhi"
  }
}

Your application can validate this request before calling the actual weather service.

This provides a much safer architecture than allowing the model to execute unrestricted commands.


Step 7: Build a Simple Agent Loop

A basic agent loop can be represented as:

1. Receive user request
        ↓
2. Send request to LLM
        ↓
3. Check whether a tool is requested
        ↓
4. Validate tool request
        ↓
5. Execute tool
        ↓
6. Return tool result to LLM
        ↓
7. Generate final response

This loop can be extended with multiple tools and multiple reasoning steps.

For example, a research agent might:

Question
   ↓
Search
   ↓
Collect information
   ↓
Analyse information
   ↓
Check results
   ↓
Write report

The developer determines how many iterations are permitted.


Step 8: Add Memory

An agent can also maintain information from previous interactions.

There are several types of memory.

Short-term memory

The current conversation can be included in the model's context.

Long-term memory

Important information can be stored externally and retrieved when necessary.

A vector database can be used for semantic retrieval.

For example:

User asks question
       ↓
Search memory
       ↓
Retrieve relevant information
       ↓
Add information to context
       ↓
Local LLM generates response

However, storing personal or sensitive information requires careful privacy and security controls.


Step 9: Add Retrieval-Augmented Generation

Retrieval-Augmented Generation, or RAG, allows an agent to retrieve information from external documents before generating an answer.

Suppose you are building an agent for a company's documentation.

The workflow could be:

User Question
     ↓
Embedding / Search
     ↓
Relevant Documents
     ↓
Context
     ↓
llama.cpp Model
     ↓
Answer

This can be useful because the model doesn't have to rely entirely on information encoded in its parameters.

It can instead reference an approved knowledge base.


Step 10: Give Agents Limited Permissions

This is one of the most important principles when building local agents.

An agent running on your computer can potentially interact with files, processes or other resources if your application gives it those capabilities.

Therefore, use least privilege.

For example, instead of giving an agent access to your entire computer:

Agent
 ↓
/project/data/

give it access only to the directory it actually needs.

Similarly, a database agent should ideally have restricted permissions rather than unrestricted administrative access.


Building a Data-Science Agent

llama.cpp can be particularly interesting for local data-analysis assistants.

Imagine an agent with these tools:

Local LLM
   │
   ├── CSV reader
   ├── Python analysis
   ├── SQL database
   ├── Chart generator
   └── Report writer

A user could ask:

“Analyse this sales dataset and identify unusual monthly changes.”

The agent could:

  1. Inspect the dataset.
  2. Calculate summary statistics.
  3. Identify relevant columns.
  4. Run approved analysis code.
  5. Generate charts.
  6. Explain the findings.

The important part is that the agent controller should validate each action rather than blindly executing model-generated instructions.


Performance Considerations

Running an AI agent locally introduces several performance considerations.

RAM

Larger models require more memory. Quantised models can reduce the memory requirement.

GPU

GPU acceleration can significantly improve inference speed when supported by your hardware and llama.cpp build.

Context Length

Long conversations and large retrieved documents require more memory and computation.

Number of Agent Steps

An agent that performs ten tool calls will generally take longer than one that performs a single action.

Therefore, efficient agent design is important.


Why Use llama.cpp for Local Agents?

There are several reasons developers may choose llama.cpp.

Privacy

Data can remain on infrastructure controlled by the developer, subject to the security of that infrastructure.

Offline Capability

A suitable local model can operate without continuously sending prompts to a cloud service.

Customisation

Developers can control the surrounding application, tools and workflow.

Cost Control

Local inference can reduce per-request API expenses, although hardware and electricity still have costs.

Learning

Building a local agent is an excellent way to understand how LLM applications actually work.


Challenges of Building Agents With llama.cpp

Local AI agents also have limitations.

Hardware requirements

Large models can require substantial RAM or GPU memory.

Model quality

Smaller local models may not match the strongest cloud models on every task.

Tool reliability

An agent can select an inappropriate tool or produce invalid arguments.

Hallucinations

A model can generate information that isn't supported by its available evidence.

Complex orchestration

As the number of tools increases, managing agent state and errors becomes more difficult.

Security

Giving an AI system access to files, databases or operating-system commands introduces additional security risks.


Best Practices

When building an AI agent with llama.cpp, consider the following practices:

Start small: Begin with one model and one or two tools.

Use structured outputs: Make tool requests machine-readable and validate them.

Limit permissions: Give the agent only the access it requires.

Set execution limits: Prevent uncontrolled loops and excessive tool calls.

Log actions: Record important agent decisions and tool calls.

Validate results: Don't assume that generated answers are correct.

Protect sensitive data: Avoid exposing unnecessary personal, confidential or private information.

Test failure cases: See what happens when a tool fails, returns incorrect information or produces unexpected output.


Example Architecture

A practical local AI-agent system might look like this:

                 ┌─────────────────┐
                 │     User        │
                 └────────┬────────┘
                          ↓
                 ┌─────────────────┐
                 │ Agent Controller│
                 └────────┬────────┘
                          ↓
                 ┌─────────────────┐
                 │    llama.cpp    │
                 │   Local Model   │
                 └────────┬────────┘
                          ↓
             ┌────────────┼────────────┐
             ↓            ↓            ↓
        Calculator      RAG         Python
             │            │            │
             └────────────┼────────────┘
                          ↓
                 ┌─────────────────┐
                 │   Final Result  │
                 └─────────────────┘

This architecture separates the language model from the tools and application logic.


Future of Local AI Agents

The combination of efficient local inference and agent-based software could make AI assistants increasingly accessible.

Instead of one general chatbot, developers can build specialised agents for:

  • Programming
  • Data analysis
  • Research
  • Document processing
  • Customer support
  • Personal productivity
  • Software testing
  • Local knowledge bases

As local models become more capable and inference becomes more efficient, developers may be able to build increasingly sophisticated applications without depending entirely on cloud-based AI services.

Conclusion

Building AI agents with llama.cpp involves more than simply downloading a model and sending it prompts. llama.cpp provides the local inference foundation, while the developer builds the agent controller, tools, memory, retrieval system and safety mechanisms around it.

A good starting architecture is:

llama.cpp + GGUF model + Agent Controller + Tools + RAG + Validation

Start with a simple workflow, give the agent narrowly defined capabilities, validate tool calls and gradually add more functionality.

The most useful local AI agent is not necessarily the one with the most tools. It is the one that can reliably perform a clearly defined task while keeping the developer in control of its actions.

Agentic AI Hands-On in Python: A Video Tutorial

 

Agentic AI Hands-On in Python: A Video Tutorial

Agentic AI is becoming one of the most exciting areas of artificial intelligence. Traditional AI applications usually respond to a prompt and produce an answer. Agentic AI goes a step further by allowing an AI system to plan tasks, use tools, inspect results and complete multi-step workflows.

Python is particularly suitable for experimenting with agentic AI because it has a large ecosystem for machine learning, APIs, data processing and automation.

This hands-on tutorial explains how to build a simple AI agent in Python and how the same concepts can be demonstrated in a video tutorial.

What Is Agentic AI?

Agentic AI refers to AI systems designed to accomplish goals by taking multiple steps rather than simply generating one response.

A simplified workflow looks like this:

Goal → Plan → Choose Tool → Execute → Observe → Continue → Result

For example, imagine asking an AI agent:

“Analyse this sales file and tell me which product had the biggest increase.”

An agent could:

  1. Read the file.
  2. Inspect the columns.
  3. Calculate sales changes.
  4. Identify the relevant product.
  5. Explain the result.

The important feature is that the system can perform actions as part of completing the task.

Why Use Python?

Python is a natural choice for agentic-AI development because developers can combine an AI model with ordinary Python functions.

For example, an agent can have access to tools such as:

def calculator(a, b):
    return a + b

or:

def get_customer(customer_id):
    # Retrieve approved customer information
    return customer_id

The AI determines when a tool may be useful, while the Python application controls whether and how that tool is executed.

This separation is important for reliability and security.

What You Need for the Tutorial

For a beginner-friendly project, you can use:

  • Python 3
  • A code editor such as VS Code
  • An AI model or compatible API
  • A Python environment
  • A few simple tools
  • Basic Python knowledge

You don't need to begin with a complicated multi-agent system. A single agent with one or two tools is enough to understand the fundamental concepts.

Step 1: Create a Python Project

Create a project directory:

agentic-ai-demo/
│
├── agent.py
├── tools.py
└── requirements.txt

Creating a virtual environment is recommended so that project dependencies remain isolated.

A typical setup can be:

python -m venv .venv

Activate the environment according to your operating system.

Then install the libraries required by the particular AI framework or model provider you choose.

Step 2: Understand the Agent Architecture

Before writing code, it helps to understand the basic components.

                 USER
                   ↓
             AGENT CONTROLLER
                   ↓
              AI MODEL
             ↙    ↓    ↘
        Tool A  Tool B  Tool C
             ↘    ↓    ↙
                RESULT
                   ↓
              FINAL ANSWER

The model interprets the request.

The agent controller manages the workflow.

The tools perform actions.

The results are returned to the model so it can continue processing the task.

Step 3: Create Your First Tool

Let's create a simple calculator tool.

def add_numbers(a, b):
    return a + b

We can test it normally:

result = add_numbers(10, 20)

print(result)

The output is:

30

This may look very simple, but tools are fundamental to agentic applications.

A real project might replace the calculator with:

  • A database query
  • A search function
  • A document retriever
  • A weather service
  • A file-processing function
  • A data-analysis function

Step 4: Connect an AI Model

The next step is connecting the agent to an AI model.

The exact Python code depends on the model or provider you use. Modern AI platforms commonly provide Python SDKs or APIs that allow an application to send messages and receive model responses.

Conceptually:

response = model.generate(
    "Calculate the total sales."
)

print(response)

The model receives the user's request and produces a response.

At this stage, however, it may not actually be using tools.

Step 5: Add Tool Calling

Tool calling allows the model to request a particular function.

Imagine the user asks:

“What is 125 multiplied by 8?”

The model could determine that a calculator tool is appropriate.

The workflow becomes:

User
 ↓
AI Model
 ↓
Calculator Tool
 ↓
Calculation Result
 ↓
AI Model
 ↓
Answer

Your Python application controls the actual function call.

A simplified representation might look like:

tool_result = calculator(125, 8)

final_answer = model.generate(
    f"The calculator returned {tool_result}. Explain the result."
)

Production implementations normally use structured tool definitions instead of manually constructing strings.

Step 6: Build the Agent Loop

The agent loop is the core of many agentic applications.

A simplified version looks like:

while True:
    response = model.generate(task)

    if response.requires_tool:
        result = execute_tool(response.tool)
        task = result
    else:
        break

The exact implementation varies considerably between frameworks.

The important idea is that the model can receive information from a tool and use that information in the next step.

Step 7: Create a Data-Analysis Agent

Python becomes particularly powerful when we combine AI agents with data-science libraries.

Suppose we have:

sales.csv

containing:

Product,January,February,March
Laptop,120,150,180
Tablet,200,190,230
Phone,300,350,400

A Python function can read the data:

import pandas as pd

def load_sales():
    return pd.read_csv("sales.csv")

We could create another function to calculate changes:

def calculate_growth(df):
    df["Growth"] = df["March"] - df["January"]
    return df

The agent could then use these functions as part of a larger analytical workflow.

Step 8: Add Memory

A useful agent often needs some form of memory.

There are two broad categories.

Short-term memory

This includes information from the current conversation or task.

Long-term memory

Information is stored externally and retrieved when needed.

For example:

User Question
      ↓
Memory Search
      ↓
Relevant Information
      ↓
AI Model
      ↓
Response

Vector databases and embedding-based retrieval are commonly used for semantic memory systems.

Step 9: Add RAG

Retrieval-Augmented Generation, commonly called RAG, allows an agent to retrieve relevant information from documents.

Imagine creating a school or company knowledge assistant.

The user asks:

“What is the refund policy?”

Instead of expecting the model to know the answer, the agent can search an approved document collection.

Question
   ↓
Retriever
   ↓
Relevant Documents
   ↓
AI Model
   ↓
Answer

This approach can make knowledge-based applications more useful because the model receives relevant external context.

Step 10: Make the Video Tutorial Hands-On

A good video tutorial should not spend the entire time explaining theory.

A practical structure could be:

00:00 — Introduction

Explain what agentic AI means and show the finished application.

02:00 — Project Setup

Install Python, create the project and configure the environment.

05:00 — Understanding Agents

Explain the relationship between the model, controller and tools.

08:00 — Create the First Tool

Build a simple Python function.

12:00 — Connect the AI Model

Demonstrate the model interaction.

17:00 — Implement Tool Calling

Show how the model can request a tool.

23:00 — Build the Agent Loop

Connect multiple steps into a workflow.

28:00 — Add Data Analysis

Use Python to analyse a sample dataset.

35:00 — Add Memory or RAG

Demonstrate retrieval from a small document collection.

42:00 — Testing

Try successful requests and deliberately test failure cases.

47:00 — Security and Limitations

Explain why unrestricted agent access is dangerous.

50:00 — Final Project

Demonstrate the completed agent from start to finish.

Step 11: Test the Agent

Testing is one of the most important parts of agent development.

Try straightforward requests first:

Calculate 50 + 75.

Then test more complex requests:

Read the sales data and identify the largest increase.

Finally, test unexpected inputs:

Use an unavailable tool.
Analyse a file that doesn't exist.

The goal is to discover how the agent behaves when things go wrong.

Security Should Be Part of the Tutorial

An AI agent can become risky if it receives unrestricted access to a computer.

Avoid giving an experimental agent unrestricted capabilities such as:

  • Executing arbitrary shell commands
  • Deleting files
  • Accessing private credentials
  • Modifying production databases
  • Sending messages without approval

Instead, use controlled tools with clearly defined inputs and outputs.

For example:

AI Agent
   ↓
Approved Tool
   ↓
Input Validation
   ↓
Action
   ↓
Result

Human approval can also be required for high-impact operations.

Common Beginner Mistakes

Giving the agent too many tools

Start with one or two tools. Complexity grows quickly as more tools are added.

Trusting generated code blindly

Always review and test code produced by an AI system.

Ignoring error handling

Tools can fail because of invalid input, network problems or missing files.

Using unlimited loops

Set sensible limits on the number of agent steps.

Forgetting data privacy

Don't send confidential information to an AI service unless you have appropriate permission and safeguards.

Confusing chatbots with agents

A chatbot can answer questions without performing actions. An agent generally combines a model with tools and an orchestration workflow.

A Simple Agent Project Idea

After completing the tutorial, you can extend the project into a Personal Data Assistant.

The architecture could be:

                 Personal Data Assistant
                          │
                 ┌────────┴────────┐
                 │   AI Model      │
                 └────────┬────────┘
                          │
          ┌───────────────┼───────────────┐
          ↓               ↓               ↓
       CSV Tool        Calculator       RAG
          │               │               │
          └───────────────┼───────────────┘
                          ↓
                     Final Answer

The assistant could answer questions about approved datasets, perform calculations and retrieve information from selected documents.

This project provides a practical introduction to tool calling, retrieval, Python automation and agent orchestration.

What's Next?

Once the basic agent works, you can experiment with more advanced concepts:

  • Multi-agent systems
  • Planning agents
  • Browser-based agents
  • Coding agents
  • RAG agents
  • AI research assistants
  • Workflow automation
  • Local LLM agents
  • Agent evaluation
  • Human-in-the-loop systems

The important thing is to increase complexity gradually.

Conclusion

Building an AI agent in Python is an excellent way to understand how modern AI applications work beyond simple chat interfaces. The core idea is straightforward: combine an AI model with carefully designed tools and an application layer that controls the workflow.

A beginner project can start with a single Python function and gradually evolve into a system capable of retrieving information, analysing data and completing multi-step tasks.

For a video tutorial, the most effective approach is to build the project live—from environment setup to the final working agent—while explaining each component along the way.

Python provides the building blocks; the AI model provides language and reasoning capabilities; and the agent controller connects everything into an actionable workflow.

Wednesday, September 16, 2026

How I Use AI Agents as a Data Scientist in 2026

 

How I Use AI Agents as a Data Scientist in 2026

Artificial intelligence is changing the way data scientists work. In 2026, AI agents are becoming useful partners for tasks that previously required hours of manual effort, from exploring datasets and writing code to monitoring machine-learning experiments and preparing reports.

An AI agent is more than a chatbot that answers questions. An agent can receive a goal, break it into smaller tasks, use tools, examine results, and take further actions based on what it discovers. For data scientists, this creates an opportunity to automate repetitive parts of the analytical workflow while keeping humans responsible for important decisions.

Here is how I would use AI agents throughout a modern data-science workflow.

1. Starting With a Data Question

Every data-science project begins with a question.

For example:

“Why did customer churn increase during the last quarter?”

Instead of immediately opening a notebook and manually exploring dozens of columns, I can give an AI agent a clearly defined analytical objective.

The agent can help turn the broad question into smaller tasks:

  • Identify relevant datasets.
  • Examine available columns.
  • Check data quality.
  • Calculate important statistics.
  • Look for unusual patterns.
  • Suggest possible hypotheses.
  • Prepare an initial analysis plan.

This does not mean accepting the agent's plan automatically. I treat it as a starting point and verify whether the proposed approach makes sense for the business problem.

2. Data Discovery and Profiling

Finding useful information in large datasets can consume significant time.

An AI agent can assist by examining schemas and generating a data profile containing information such as:

  • Number of rows and columns
  • Data types
  • Missing values
  • Duplicate records
  • Unique categories
  • Numerical distributions
  • Potential outliers
  • Relationships between variables

For example, if a dataset contains customer information, an agent might identify columns such as customer_id, subscription_type, monthly_spend, login_frequency and churn_status.

The agent can then suggest which variables may deserve further investigation.

However, I still verify the results because automated profiling can misunderstand the meaning of a column or overlook domain-specific problems.

3. Cleaning Data With AI Assistance

Data cleaning is one of the most time-consuming parts of data science.

AI agents can help generate code for common operations such as:

df = df.drop_duplicates()

df["age"] = df["age"].fillna(df["age"].median())

df["category"] = df["category"].str.strip().str.lower()

An agent can also identify suspicious values and suggest possible treatments.

For example, if most customer ages are between 18 and 80 but some records contain values such as 250, the agent can flag them for investigation.

The important distinction is that flagging a problem and deciding how to fix it are different tasks.

I would not allow an agent to blindly modify an important production dataset. Instead, I review the proposed transformations and maintain reproducible data-cleaning code.

4. Generating Exploratory Data Analysis

Exploratory data analysis, or EDA, helps uncover patterns before building a model.

AI agents can generate Python code for:

  • Histograms
  • Scatter plots
  • Correlation matrices
  • Box plots
  • Time-series charts
  • Grouped statistics
  • Distribution comparisons

For example:

import matplotlib.pyplot as plt

plt.hist(df["monthly_spend"])
plt.xlabel("Monthly Spend")
plt.ylabel("Customers")
plt.title("Customer Spending Distribution")
plt.show()

The agent can also suggest which visualisations might answer a particular analytical question.

This can speed up experimentation considerably. But visual interpretation remains important. A chart may reveal a correlation without proving that one variable causes another.

5. Writing and Debugging Python

One of my most practical uses for AI agents is programming assistance.

Instead of spending a long time searching for a syntax error, I can provide the agent with:

  • The code
  • The error message
  • The expected result
  • Relevant information about the dataset

The agent can then explain the problem and propose a correction.

It can also help create reusable functions, SQL queries and data-processing pipelines.

For example, I might ask an agent to create a function that calculates customer retention by month. I can then test the generated code against known results.

The agent becomes a coding assistant rather than an unquestioned programmer.

6. Working With SQL

Many data-science projects involve databases containing millions or billions of records.

AI agents can translate analytical questions into SQL.

For example:

SELECT
    subscription_type,
    COUNT(*) AS customers,
    AVG(monthly_spend) AS average_spend
FROM customers
GROUP BY subscription_type;

An agent can also explain complicated queries and suggest ways to improve readability or performance.

For large production systems, however, I would validate the generated query carefully. A syntactically correct query can still produce the wrong business result.

7. Feature Engineering

Feature engineering involves transforming raw information into useful model inputs.

An AI agent can suggest possible features based on the structure of a dataset.

For a customer-churn problem, examples could include:

  • Days since last login
  • Average monthly usage
  • Number of support requests
  • Spending trend
  • Subscription duration

The agent can generate candidate features and code for calculating them.

But feature selection should involve domain knowledge and statistical validation. Creating hundreds of automatically generated features can increase complexity and potentially introduce leakage or overfitting.

8. Building Machine-Learning Experiments

AI agents can also help organise machine-learning experiments.

Given a classification problem, an agent might prepare experiments involving:

  • Logistic regression
  • Decision trees
  • Random forests
  • Gradient boosting
  • Neural networks

It can create training scripts, evaluation functions and experiment configurations.

A simplified workflow could look like:

Dataset → Cleaning → Feature Engineering → Train/Test Split → Model Training → Evaluation → Experiment Tracking

The agent can automate repetitive portions of this process while I focus on interpreting the results.

9. Comparing Model Performance

When several models are trained, an AI agent can collect evaluation metrics and create comparison tables.

For classification, these might include:

  • Accuracy
  • Precision
  • Recall
  • F1 score
  • ROC-AUC

For regression:

  • MAE
  • MSE
  • RMSE

The agent can explain differences between experiments and identify which models deserve additional investigation.

Importantly, I don't select a model purely because an agent says it is “best.” The appropriate metric depends on the actual problem, business costs and consequences of errors.

10. Automating Repetitive Analysis

One of the biggest advantages of agents is their ability to handle multi-step workflows.

For example, a weekly sales-analysis agent could:

  1. Retrieve the latest approved dataset.
  2. Check for data-quality issues.
  3. Calculate predefined metrics.
  4. Generate charts.
  5. Compare results with previous periods.
  6. Flag unusual changes.
  7. Prepare a draft report.

This turns a repetitive manual workflow into a semi-automated process.

The human still reviews important outputs before they are distributed.

11. Monitoring Machine-Learning Models

Deploying a model is not the end of a data-science project.

Model performance can change as real-world data changes. AI agents can assist with monitoring by checking predefined indicators such as:

  • Prediction distributions
  • Input-data drift
  • Missing-value rates
  • Model performance
  • Error rates
  • Data pipeline failures

If an unusual change occurs, an agent can summarise what happened and create an alert for the responsible team.

For critical applications, automated alerts should not automatically trigger consequential decisions without appropriate human oversight.

12. Research and Documentation

Data scientists spend considerable time reading technical documentation and research papers.

AI agents can help organise this information by summarising concepts, comparing approaches and extracting implementation requirements.

For example, when investigating a new machine-learning technique, I can ask an agent to structure my research around:

  • What problem does the method solve?
  • What data does it require?
  • What assumptions does it make?
  • How computationally expensive is it?
  • What are its limitations?
  • How could it be tested?

This makes research more structured, although original papers and authoritative documentation should remain the source of truth for important technical details.

13. Creating Data Reports

Once an analysis is complete, communicating the results is just as important as performing the analysis.

An AI agent can help convert analytical outputs into a structured report containing:

  • Executive summary
  • Key findings
  • Supporting charts
  • Important limitations
  • Recommended areas for further investigation

I still check every important number before publishing the report. AI systems can occasionally produce plausible-looking statements that are not supported by the underlying data.

14. Using Agents Without Losing Control

The most important lesson is that AI agents should assist data scientists rather than replace analytical judgement.

I use a simple principle:

AI generates → AI checks → Human verifies → Human decides

This approach is especially important when working with sensitive information.

Before giving an agent access to a dataset, I consider:

  • Does the agent actually need the data?
  • Is personal information included?
  • Where will the data be processed?
  • Who can access the generated results?
  • What permissions does the agent have?
  • Can its actions be audited or reversed?

Limiting permissions is particularly important for autonomous systems.

15. My 2026 Data-Science Agent Workflow

A practical workflow can look like this:

Step 1: Define the analytical question.

Step 2: Give the agent access only to the required data and tools.

Step 3: Ask it to inspect and profile the dataset.

Step 4: Review the proposed data-cleaning process.

Step 5: Generate EDA code and visualisations.

Step 6: Develop candidate features.

Step 7: Run controlled machine-learning experiments.

Step 8: Evaluate the results using appropriate metrics.

Step 9: Ask the agent to document the experiment.

Step 10: Human review and final interpretation.

This workflow allows AI to handle repetitive tasks while keeping analytical responsibility with the data scientist.

Benefits of AI Agents for Data Scientists

The main advantages I see are:

Faster experimentation

Agents can generate boilerplate code and analytical workflows quickly.

Less repetitive work

Routine profiling, reporting and documentation can be partially automated.

Better accessibility

People can describe analytical goals in natural language before converting them into SQL or Python.

More systematic workflows

Agents can follow predefined procedures for recurring tasks.

Faster debugging

Coding errors and failed experiments can often be investigated conversationally.

Challenges to Keep in Mind

AI agents are powerful, but they are not automatically reliable.

Potential problems include:

  • Incorrect generated code
  • Misinterpretation of data
  • Hallucinated explanations
  • Poor statistical assumptions
  • Data leakage
  • Security risks
  • Privacy concerns
  • Excessive automation
  • Reproducibility problems

A particularly dangerous situation is when an agent produces a convincing explanation for an incorrect result.

That is why testing, validation and human review remain essential.

Conclusion

In 2026, I see AI agents as an additional layer in the data scientist's toolkit. They can help with data exploration, Python programming, SQL, feature engineering, machine-learning experiments, monitoring, research and reporting.

The biggest productivity gain does not necessarily come from allowing an agent to do everything autonomously. Instead, it comes from assigning agents well-defined tasks, giving them appropriate tools and permissions, and continuously checking their work.

The future data scientist may spend less time writing repetitive code and more time asking better questions, validating evidence, understanding business problems and making informed analytical decisions.

AI agents can automate parts of the workflow—but the responsibility for trustworthy data science still belongs to the human.

Top 5 Text-to-Speech Open-Source Models

 

Top 5 Text-to-Speech Open-Source Models

Text-to-speech (TTS) technology has changed rapidly with the development of modern artificial intelligence. Instead of producing robotic-sounding speech, newer AI models can generate voices with natural pronunciation, pauses, rhythm and expressive qualities.

Open-source and open-weight TTS models are particularly useful because developers can experiment with them locally, integrate them into applications and build customised speech systems without depending entirely on commercial APIs.

Here are five notable open-source or openly available TTS models worth exploring.

1. Kokoro

Kokoro is a lightweight text-to-speech model that has attracted considerable attention because of its combination of small size and speech quality. The model has 82 million parameters, making it considerably smaller than many large generative speech systems.

Kokoro's published model information lists Apache 2.0 licensing for its weights. The project has also provided ONNX versions, making it suitable for applications where efficient inference is important.

One of its interesting characteristics is that it can produce high-quality English speech without requiring a huge model. This makes Kokoro attractive for developers experimenting with local TTS applications.

Key features

  • 82 million parameters
  • Open-weight model
  • Apache 2.0-licensed weights
  • American and British English voices in the documented releases
  • ONNX support
  • Suitable for local and application-based TTS

Kokoro can be useful for narration, accessibility tools, educational applications and voice interfaces.

2. XTTS v2

XTTS v2 is a multilingual speech-generation model from the Coqui TTS ecosystem. It is particularly interesting for applications involving voice cloning and multilingual speech generation.

The model can use a short voice sample as a reference and generate speech that follows characteristics of that voice. This makes it useful for research into personalised speech interfaces, narration and conversational applications.

XTTS v2 is considerably larger than lightweight models such as Kokoro, with published comparisons listing approximately 467 million parameters.

Key features

  • Multilingual speech generation
  • Voice cloning capabilities
  • Speaker conditioning
  • Suitable for advanced TTS experiments
  • Can be integrated into Python-based workflows

Developers should carefully check the current model and voice licensing terms before using cloned voices commercially.

3. Piper

Piper takes a different approach from many large generative TTS models. It is designed around fast, local neural speech synthesis and is particularly useful when low resource consumption and offline operation are important.

The project provides a Python package and supports multiple platforms. Its available voice ecosystem covers numerous languages, although licensing can vary between individual voice models.

Because speech can be generated locally, Piper can be useful for applications where sending text to an external cloud service is undesirable.

Key features

  • Fast local speech synthesis
  • Offline operation
  • Python support
  • ONNX-based voice models
  • Large selection of language and voice models

Piper is a strong option for local assistants, accessibility software, embedded projects and other applications where efficiency matters.

4. Fish Speech

Fish Speech is a modern speech-generation project focused on producing natural and expressive synthetic speech. It has become part of the broader wave of open speech models that aim to approach the quality of commercial voice-generation systems.

The project's different releases and versions have changed over time, so developers should consult the current repository and model cards for the exact capabilities and licensing conditions of the version they intend to use.

Fish Speech can be particularly interesting for developers experimenting with expressive narration, multilingual systems and voice-related AI applications.

Key features

  • Neural speech generation
  • Expressive voice capabilities
  • Voice-related customisation
  • Research and application use
  • Open model ecosystem

As with other voice-cloning technologies, users should only work with voices and recordings for which they have appropriate permission.

5. Parler-TTS

Parler-TTS is an open text-to-speech project designed to generate speech from textual descriptions. Instead of simply selecting a predefined voice, users can describe characteristics of the desired speech, such as speaking style or voice attributes.

This makes the model interesting for researchers and developers who want greater control over generated speech.

Parler-TTS has also been used as an example of how open models can provide developers with more control over the speech-generation pipeline compared with closed commercial services.

Key features

  • Text-to-speech generation
  • Text-based voice descriptions
  • Customisable speech characteristics
  • Open research ecosystem
  • Useful for experimentation and prototyping

Its relatively large model size means hardware requirements should be considered before deploying it locally.

Open-Source TTS Models Compared

Model Main Strength Hardware Consideration Notable Use
Kokoro Lightweight, natural speech Relatively efficient Local TTS and narration
XTTS v2 Voice cloning and multilingual speech More demanding Personalised voice applications
Piper Fast local inference Lightweight Offline and edge applications
Fish Speech Expressive speech generation Depends on version Advanced speech experiments
Parler-TTS Controllable voice descriptions Relatively demanding Custom speech generation

Why Use Open-Source TTS?

Open TTS models provide several advantages over relying exclusively on cloud-based services.

1. Local Processing

Some models can run directly on a computer or other local hardware. This can reduce dependence on external APIs.

2. Greater Customisation

Developers can experiment with voices, inference settings and application workflows instead of being restricted to a fixed commercial interface.

3. Lower API Dependence

For projects generating large quantities of audio, local inference can eliminate or reduce per-character or per-minute API costs, although hardware and electricity still have costs.

4. Research Opportunities

Open models allow researchers and developers to examine architectures, experiment with fine-tuning and build new applications around speech synthesis.

5. Privacy Considerations

When a model operates locally, text does not necessarily need to be transmitted to a third-party cloud service. This can be useful for applications handling sensitive information, although the complete software stack should still be evaluated.

How to Choose the Right TTS Model

The best model depends on the project's requirements rather than simply the model's size.

If you want a relatively small model for local experimentation, Kokoro is worth investigating. If voice cloning and multilingual generation are central requirements, XTTS v2 may be more relevant.

For lightweight offline applications, Piper is particularly interesting. Developers experimenting with expressive speech can investigate Fish Speech, while Parler-TTS is notable for its text-based control over speech characteristics.

Before deploying any model commercially, check its current licence, the licence of the specific voice model, attribution requirements and any restrictions related to voice cloning.

Conclusion

Open-source text-to-speech technology is giving developers more choices for creating realistic and customisable voice applications. Models such as Kokoro, XTTS v2, Piper, Fish Speech and Parler-TTS demonstrate different approaches to speech synthesis, ranging from lightweight local inference to expressive and personalised voice generation.

The TTS landscape continues to evolve quickly. For developers, the most important factors are not just audio quality but also model size, supported languages, hardware requirements, inference speed, customisation options and licensing.

As open speech models continue to improve, they are likely to become increasingly useful for applications such as education, accessibility, digital assistants, content creation, software interfaces and AI-powered communication.

Building AI Agents with llama.cpp: A Practical Guide for Developers

  Building AI Agents with llama.cpp: A Practical Guide for Developers AI agents are becoming an important part of modern software developme...