Skip to main content

Overview

Built-in tools provide essential functionality for agent interactions with users. These tools handle file presentation, user clarification, and image viewing capabilities.

present_files

Make files visible to the user for viewing and rendering in the client interface.

Parameters

list[str]
required
List of absolute file paths to present to the user. Only files in /mnt/user-data/outputs can be presented.

When to Use

  • Making any file available for the user to view, download, or interact with
  • Presenting multiple related files at once
  • After creating files that should be presented to the user

When NOT to Use

  • When you only need to read file contents for your own processing
  • For temporary or intermediate files not meant for user viewing

Example

Notes

  • Call this tool after creating files and moving them to /mnt/user-data/outputs
  • Can be safely called in parallel with other tools
  • State updates are handled by a reducer to prevent conflicts

Return Type

Returns a Command object with:
  • Updated artifacts list
  • Success message via ToolMessage

ask_clarification

Ask the user for clarification when you need more information to proceed.

Parameters

str
required
The clarification question to ask the user. Be specific and clear.
Literal
required
The type of clarification needed. Options:
  • missing_info: Required details not provided
  • ambiguous_requirement: Multiple valid interpretations exist
  • approach_choice: Several valid approaches exist
  • risk_confirmation: Destructive actions need confirmation
  • suggestion: Recommendation needs user approval
str
Optional context explaining why clarification is needed. Helps the user understand the situation.
list[str]
Optional list of choices for approach_choice or suggestion types. Present clear options for the user to choose from.

When to Use

  • You need information that wasn’t provided in the user’s request
  • The requirement can be interpreted in multiple ways
  • Multiple valid implementation approaches exist
  • You’re about to perform a potentially dangerous operation
  • You have a recommendation but need user approval

Best Practices

  • Ask ONE clarification at a time for clarity
  • Be specific and clear in your question
  • Don’t make assumptions when clarification is needed
  • For risky operations, ALWAYS ask for confirmation
  • Execution will be interrupted automatically after calling this tool

Examples

Return Type

Returns a string (placeholder). Actual logic is handled by ClarificationMiddleware which intercepts the tool call and interrupts execution to present the question to the user.

view_image

Read an image file and make it available for display.

Parameters

str
required
Absolute path to the image file. Common formats supported: jpg, jpeg, png, webp.

When to Use

  • When you need to view an image file

When NOT to Use

  • For non-image files (use present_files instead)
  • For multiple files at once (use present_files instead)

Supported Formats

  • JPG/JPEG (.jpg, .jpeg)
  • PNG (.png)
  • WebP (.webp)

Example

Validation

The tool validates:
  • Path is absolute
  • File exists
  • Path points to a file (not a directory)
  • File extension is supported

Error Handling

Returns error messages for:
  • Non-absolute paths
  • Missing files
  • Invalid file types
  • Unsupported image formats
  • Read permissions issues

Return Type

Returns a Command object with:
  • Updated viewed_images state containing base64-encoded image data
  • MIME type information
  • Success/error message via ToolMessage

Technical Details

  • Images are read as binary data
  • Converted to base64 encoding for transport
  • MIME type is detected from file extension
  • Virtual paths (/mnt/user-data/*) are mapped to thread-specific directories
  • The merge_viewed_images reducer handles merging with existing images