Bird
Raised Fist0
Agentic AIml~5 mins

Error handling in tool calls in Agentic AI

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Errors can happen when tools are used in AI agents. Handling these errors helps the agent keep working smoothly without crashing.
When calling an external API that might fail or return unexpected data.
When using a tool that processes user input which can be incorrect or incomplete.
When a tool depends on network or file system access that might be unavailable.
When you want the AI agent to try again or give a helpful message if a tool call fails.
Syntax
Agentic AI
try:
    result = tool.call(input_data)
except ToolError as e:
    handle_error(e)
    result = fallback_value
Use try-except blocks to catch errors during tool calls.
Define specific error handling to decide what to do when a tool fails.
Examples
If the weather tool fails, the agent returns a friendly message instead of crashing.
Agentic AI
try:
    response = weather_tool.get_forecast('New York')
except ToolError:
    response = 'Sorry, I cannot get the weather now.'
Handles missing file error by using empty data so the agent can continue.
Agentic AI
try:
    data = file_tool.read('data.txt')
except FileNotFoundError:
    data = ''  # Use empty data if file missing
Sample Model
This example shows a tool function that raises an error for bad input. The error is caught and handled by setting a default output.
Agentic AI
class ToolError(Exception):
    pass

def tool_call(x):
    if x < 0:
        raise ToolError('Negative input not allowed')
    return x * 2

try:
    output = tool_call(-1)
except ToolError as e:
    print(f'Error caught: {e}')
    output = 0
print(f'Result: {output}')
OutputSuccess
Important Notes
Always catch specific errors to avoid hiding other bugs.
Provide clear messages or fallback values to keep the AI agent helpful.
Test error handling by simulating tool failures.
Summary
Use try-except blocks to catch errors in tool calls.
Handle errors by giving fallback results or messages.
Good error handling keeps AI agents reliable and user-friendly.

Practice

(1/5)
1. What is the main purpose of using try-except blocks when calling external tools in an AI agent?
easy
A. To make the tool run in parallel
B. To speed up the tool's execution
C. To increase the tool's accuracy
D. To catch errors and prevent the program from crashing

Solution

  1. Step 1: Understand the role of try-except blocks

    Try-except blocks are used to catch errors that happen during code execution, especially when calling external tools that might fail.
  2. Step 2: Identify the benefit in AI agent tool calls

    By catching errors, the program avoids crashing and can handle failures gracefully, improving reliability.
  3. Final Answer:

    To catch errors and prevent the program from crashing -> Option D
  4. Quick Check:

    Error catching = Prevent crash [OK]
Hint: Try-except blocks catch errors to keep programs running [OK]
Common Mistakes:
  • Thinking try-except speeds up code
  • Confusing error handling with improving accuracy
  • Assuming try-except runs code in parallel
2. Which of the following is the correct syntax to catch a general error when calling a tool in Python?
easy
A. try: tool_call() error: handle_error()
B. try: tool_call() catch: handle_error()
C. try: tool_call() except: handle_error()
D. try: tool_call() fail: handle_error()

Solution

  1. Step 1: Recall Python error handling syntax

    Python uses try and except blocks to catch errors.
  2. Step 2: Match the correct keywords

    The correct keywords are try and except, not catch, error, or fail.
  3. Final Answer:

    try: tool_call() except: handle_error() -> Option C
  4. Quick Check:

    Python uses except, not catch [OK]
Hint: Remember Python uses except, not catch, for errors [OK]
Common Mistakes:
  • Using catch instead of except
  • Using error or fail as keywords
  • Missing indentation in try-except blocks
3. Consider this code snippet:
try:
  result = tool_call('data')
except Exception:
  result = 'Fallback result'
print(result)
If tool_call raises an error, what will be printed?
medium
A. 'Fallback result'
B. None
C. Nothing, program crashes
D. The error message from tool_call

Solution

  1. Step 1: Analyze the try-except behavior

    If tool_call raises an error, the except block runs and sets result to 'Fallback result'.
  2. Step 2: Understand the print output

    After the except block, print(result) prints the fallback string.
  3. Final Answer:

    'Fallback result' -> Option A
  4. Quick Check:

    Error caught = fallback printed [OK]
Hint: If error caught, except block runs fallback code [OK]
Common Mistakes:
  • Assuming error message prints automatically
  • Thinking program crashes despite except
  • Expecting None instead of fallback
4. This code tries to call a tool and handle errors:
try:
  output = tool_call()
except Exception as e
  print('Error:', e)
  output = None
print(output)
What is the error in this code?
medium
A. Using print inside except block is not allowed
B. Missing colon after except Exception as e
C. output should be set before try block
D. tool_call() must be inside a function

Solution

  1. Step 1: Check except syntax

    The except line is missing a colon at the end, which is required in Python syntax.
  2. Step 2: Verify other parts

    Printing inside except is allowed, output can be set there, and tool_call can be called anywhere.
  3. Final Answer:

    Missing colon after except Exception as e -> Option B
  4. Quick Check:

    Except line needs colon [OK]
Hint: Except lines always end with a colon ':' [OK]
Common Mistakes:
  • Forgetting colon after except
  • Thinking print is disallowed in except
  • Assuming output must be pre-set
5. You want your AI agent to call two tools in sequence. If the first tool fails, it should use a fallback result and still call the second tool. Which code correctly handles this?
hard
A. try: result1 = tool1() except Exception: result1 = 'fallback' result2 = tool2() print(result1, result2)
B. result1 = tool1() result2 = tool2() if not result1: result1 = 'fallback' print(result1, result2)
C. try: result1 = tool1() result2 = tool2() except Exception: result1 = 'fallback' result2 = 'fallback2' print(result1, result2)
D. try: result1 = tool1() except Exception: result1 = 'fallback' result2 = tool2() print(result1, result2)

Solution

  1. Step 1: Understand the requirement

    If the first tool fails, use fallback for result1 but still call tool2 normally.
  2. Step 2: Analyze each option

    try: result1 = tool1() except Exception: result1 = 'fallback' result2 = tool2() print(result1, result2) tries tool1, catches error to set fallback, then calls tool2 outside except, so tool2 always runs. result1 = tool1() result2 = tool2() if not result1: result1 = 'fallback' print(result1, result2) does not catch exceptions, so failure crashes. try: result1 = tool1() result2 = tool2() except Exception: result1 = 'fallback' result2 = 'fallback2' print(result1, result2) calls both tools inside try, so if tool2 fails, both fallback. try: result1 = tool1() except Exception: result1 = 'fallback' result2 = tool2() print(result1, result2) calls tool2 inside except, so tool2 runs only if tool1 fails.
  3. Final Answer:

    Option A correctly handles fallback and always calls second tool -> Option A
  4. Quick Check:

    Separate try-except for first tool, call second after [OK]
Hint: Put second tool call outside except to always run it [OK]
Common Mistakes:
  • Calling second tool only inside except block
  • Not catching exceptions for first tool
  • Putting both calls inside one try-except