Phase 24 of 25 · Topic 24.5

Autonomous AI Agents with Tool Calling & Memory

1Concept

AI Agents combine an LLM with Tools (functions), Memory, and a ReAct (Reason + Act) loop. The agent reasons about user requests, calls external Python tools (calculators, databases, web search), observes outputs, and decides when the task is accomplished.

2Architecture Diagram

[ User Request ] ---> [ Agent LLM: Thought ] ---> [ Tool Call: search_db() ]
                                                          |
[ Observation: DB Result ] <------------------------------+
       |
[ Agent LLM: Final Answer Generated ]

3Code Example

Python 3.12
agent_loop = '''
class SimpleAgent:
    def __init__(self, tools: dict):
        self.tools = tools

    def execute_step(self, tool_name: str, **kwargs):
        if tool_name in self.tools:
            return self.tools[tool_name](**kwargs)
        raise ValueError(f"Unknown tool: {tool_name}")

tools = {"calculator": lambda expr: eval(expr)}
agent = SimpleAgent(tools)
print("Tool result:", agent.execute_step("calculator", expr="15 * 4"))
'''
print("=== Autonomous Agent Tool Execution Loop ===")
print(agent_loop.strip())

4Expected Output

=== Autonomous Agent Tool Execution Loop ===
class SimpleAgent:
    def __init__(self, tools: dict):
        self.tools = tools

    def execute_step(self, tool_name: str, **kwargs):
        if tool_name in self.tools:
            return self.tools[tool_name](**kwargs)
        raise ValueError(f"Unknown tool: {tool_name}")

tools = {"calculator": lambda expr: eval(expr)}
agent = SimpleAgent(tools)
print("Tool result:", agent.execute_step("calculator", expr="15 * 4"))

5Key Takeaways

  • Tool schemas are defined using JSON Schema or Pydantic models.
  • LangGraph and LlamaIndex provide stateful graph coordination for multi-agent workflows.
  • Guard against infinite agent execution loops with max-step limits.