Bird
Raised Fist0
Agentic AIml~20 mins

Logging tool calls and results in Agentic AI - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Logging Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the output of this logging command?
Given the following command to log a tool call and its result, what will be the output in the log file?
Agentic AI
log_tool_call('deploy', {'version': '1.2.3'})
log_tool_result('deploy', 'success')
A[ERROR] Tool deploy called with args: {'version': '1.2.3'}\n[INFO] Tool deploy finished with result: success
B[INFO] Tool deploy called with args: version=1.2.3\n[INFO] Tool deploy finished with result: success
C[INFO] Tool deploy called with args: {'version': '1.2.3'}\n[INFO] Tool deploy finished with result: success
D[INFO] Tool deploy called with args: {'version': '1.2.3'}\n[ERROR] Tool deploy finished with result: failure
Attempts:
2 left
💡 Hint
Look carefully at the log levels and exact argument formatting.
Troubleshoot
intermediate
2:00remaining
Which option causes a logging failure?
Which of the following code snippets will cause a runtime error when logging tool calls and results?
A
log_tool_call('deploy', {'version': '2.0'})
log_tool_result('deploy')
B
log_tool_call('test', None)
log_tool_result('test', 'passed')
C
log_tool_call('build', {'target': 'release'})
log_tool_result('build', 'success')
D
log_tool_call('lint', {'files': ['a.py', 'b.py']})
log_tool_result('lint', 'completed')
Attempts:
2 left
💡 Hint
Check if all required arguments are provided to the logging functions.
Configuration
advanced
2:00remaining
Which logging configuration enables detailed tool call tracing?
You want to configure logging to capture detailed tool call arguments and results with timestamps. Which configuration snippet achieves this?
Alogging.basicConfig(level=logging.WARNING, format='%(asctime)s - %(message)s')
Blogging.basicConfig(level=logging.ERROR, format='%(message)s')
Clogging.basicConfig(level=logging.DEBUG, format='%(levelname)s: %(message)s')
Dlogging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
Attempts:
2 left
💡 Hint
Detailed tracing needs info level and timestamps in the format.
🔀 Workflow
advanced
2:00remaining
What is the correct sequence to log a tool call and its result?
Arrange the steps in the correct order to properly log a tool call and its result.
A1,3,2,4
B2,1,3,4
C2,3,1,4
D1,2,3,4
Attempts:
2 left
💡 Hint
Logging the call happens before the tool runs, logging the result after it finishes.
Best Practice
expert
3:00remaining
Which practice ensures reliable logging of tool calls and results in concurrent environments?
In a system where multiple tool calls happen concurrently, which practice best ensures logs are accurate and not mixed up?
AUse thread-safe logging libraries and include unique request IDs in each log entry
BWrite logs to a shared file without synchronization to improve speed
CDisable logging during concurrent tool calls to avoid conflicts
DLog only the start of tool calls and ignore results to reduce log volume
Attempts:
2 left
💡 Hint
Think about how to keep logs clear and traceable when many things happen at once.

Practice

(1/5)
1. What is the main purpose of logging tool calls and results in DevOps?
easy
A. To make the tools run faster
B. To hide errors from users
C. To track what tools do and their outputs for debugging and monitoring
D. To reduce the size of log files

Solution

  1. Step 1: Understand the role of logging

    Logging records actions and results of tools to help understand their behavior.
  2. Step 2: Identify the benefits of logging

    Logging helps with debugging, monitoring, and auditing by showing what happened and when.
  3. Final Answer:

    To track what tools do and their outputs for debugging and monitoring -> Option C
  4. Quick Check:

    Logging = Track tool actions and outputs [OK]
Hint: Logging means recording tool actions and outputs clearly [OK]
Common Mistakes:
  • Thinking logging speeds up tools
  • Believing logging hides errors
  • Assuming logging reduces log file size
2. Which of the following is the correct way to log a tool call and its result in a simple Python function?
easy
A. def log_call(tool_name, result): print(f"Tool {tool_name} result")
B. def log_call(tool_name, result): return f"Tool {tool_name} returned {result}"
C. def log_call(tool_name, result): print("Tool tool_name returned result")
D. def log_call(tool_name, result): print(f"Tool {tool_name} returned {result}")

Solution

  1. Step 1: Check string formatting with variables

    def log_call(tool_name, result): print(f"Tool {tool_name} returned {result}") uses f-string correctly to insert variables tool_name and result.
  2. Step 2: Verify output method

    def log_call(tool_name, result): print(f"Tool {tool_name} returned {result}") prints the message, which is typical for logging in simple scripts.
  3. Final Answer:

    def log_call(tool_name, result): print(f"Tool {tool_name} returned {result}") -> Option D
  4. Quick Check:

    Correct f-string and print used [OK]
Hint: Use f-strings and print() to log calls and results [OK]
Common Mistakes:
  • Not using f-string for variable insertion
  • Printing literal variable names instead of values
  • Returning string instead of printing
3. Given the code below, what will be the output?
def log_call(tool, result):
    print(f"Calling {tool}...")
    print(f"Result: {result}")

log_call('BackupTool', 'Success')
medium
A. Calling BackupTool... Result: Success
B. Calling BackupTool...\nResult: Success
C. Calling tool...\nResult: result
D. Error: Missing parentheses in print

Solution

  1. Step 1: Analyze the function calls

    The function prints two lines: one with tool name, one with result.
  2. Step 2: Substitute arguments and check output

    Calling 'BackupTool' and 'Success' prints exactly two lines with those values.
  3. Final Answer:

    Calling BackupTool...\nResult: Success -> Option B
  4. Quick Check:

    Print lines match arguments [OK]
Hint: Read print lines carefully and substitute variables [OK]
Common Mistakes:
  • Confusing variable names with strings
  • Expecting output on one line
  • Thinking print syntax is wrong
4. What is wrong with this logging function?
def log_call(tool, result):
    print("Calling tool...")
    print("Result: result")
medium
A. It prints the variable names instead of their values
B. It uses print instead of return
C. It has a syntax error in print statements
D. It logs too much information

Solution

  1. Step 1: Check how variables are used in print

    The function prints literal strings "tool" and "result" instead of variable values.
  2. Step 2: Understand correct variable usage

    To print values, variables must be inside f-strings or concatenated properly.
  3. Final Answer:

    It prints the variable names instead of their values -> Option A
  4. Quick Check:

    Variables not interpolated in strings [OK]
Hint: Use f-strings to print variable values, not names [OK]
Common Mistakes:
  • Forgetting f before string
  • Using quotes around variable names
  • Thinking print must be replaced by return
5. You want to log multiple tool calls and their results in a list, showing each call and result clearly. Which code snippet correctly logs all calls from the list calls = [('ToolA', 'OK'), ('ToolB', 'Fail'), ('ToolC', 'OK')]?
hard
A. for tool, result in calls: print(f"Tool {tool} returned {result}")
B. for call in calls: print(f"Tool call[0] returned call[1]")
C. for tool, result in calls: print("Tool tool returned result")
D. for tool, result in calls: print(f"Tool {tool} result")

Solution

  1. Step 1: Understand tuple unpacking in loop

    for tool, result in calls: print(f"Tool {tool} returned {result}") correctly unpacks each tuple into tool and result variables.
  2. Step 2: Check correct f-string usage

    for tool, result in calls: print(f"Tool {tool} returned {result}") uses f-string to insert variables properly in the print statement.
  3. Final Answer:

    for tool, result in calls: print(f"Tool {tool} returned {result}") -> Option A
  4. Quick Check:

    Tuple unpacking and f-string correct [OK]
Hint: Unpack tuples and use f-strings to log each call [OK]
Common Mistakes:
  • Not unpacking tuples correctly
  • Printing variable names as strings
  • Missing f-string for variable insertion