Skip to main content

How to build an AI agent that plans and acts

Build an autonomous LLM agent: define goals and tools, run a perceive-plan-act loop with memory, enforce stopping conditions, and add observability and guardrails for safety.

Difficulty
Advanced
Duration
70 minutes
Steps
6

What an AI agent is

An AI agent is an LLM placed in a loop with tools. Rather than answering once, it observes the situation, decides on a next action, executes it through a tool, observes the result, and repeats until the task is done. This pattern handles multi-step work such as researching a topic, fixing a bug, or filling a form.

Agents are powerful but can loop forever or take unsafe actions, so limits and guardrails are essential.

Prerequisites

  • An LLM that supports tool calling
  • A set of tools the agent may use
  • A runtime such as Python 3.10+ or Node.js

Steps

1. Define the agent's goal and tools

Write a system prompt stating the objective and the rules. Register the tools the agent may use, each with a schema and description.

2. Build the perceive-plan-act loop

The core is a loop: send the conversation and tools to the model, read its decision, act, append the result, repeat.

while not done and steps < max_steps:
    resp = llm(messages, tools)
    if resp.tool_calls:
        result = run_tool(resp.tool_calls[0])
        messages.append(tool_result(result))
    else:
        done = True

3. Add short-term memory

The message list is the agent's working memory. For long tasks, summarize older turns so you stay within the context window.

4. Let the agent call tools

Execute requested tools, validate arguments, and return clear results, including failures, so the agent can adapt.

5. Set stopping conditions and limits

Cap the number of steps, set a wall-clock timeout, and stop when the goal is met. Without limits an agent can spin indefinitely and burn budget.

6. Add observability and guardrails

Log every step, every tool call, and every result. Require confirmation before destructive actions, and block tools the agent should never use for a given task.

Verification

Give the agent a task that needs two or three tool calls in sequence, such as look up a record then update it. Confirm it chains the steps, stops when finished, and respects the step limit on an impossible task instead of looping forever.

Next Steps

Add long-term memory with a vector store, support parallel tool calls, introduce a planning step before acting, and build an evaluation suite for agent trajectories.

Prerequisites

  • Comfort with function calling
  • An LLM that supports tool use
  • Basic async programming

Steps

  • 1
    Define the agent's goal and tools
  • 2
    Build the perceive-plan-act loop
  • 3
    Add short-term memory
  • 4
    Let the agent call tools
  • 5
    Set stopping conditions and limits
  • 6
    Add observability and guardrails

Category

AI ML