Skip to main content

Tools

Understand the tools available for agents to use when processing emails.

Overview​

Tools are capabilities that agents can use to interact with external systems and take actions. When an agent decides it needs to perform an action (like sending an email or searching for information), it calls a tool.

How Tools Work​

Tool Calling Process​

  1. Agent receives an email to process
  2. Agent analyzes the email and decides what actions to take
  3. Agent calls appropriate tools (e.g., search, reply)
  4. Tools execute and return results
  5. Agent uses results to complete the task

Tool Architecture​

Agent
├── Receives email
├── Reasons about needed actions
├── Calls tools as needed
│ ├── knowledge_base.search → Results
│ ├── employees.search → Employee data
│ └── mailbox_messages.reply:me → Email sent
└── Completes execution

Built-in Tools​

ExecAssist includes the following built-in tools:

Required Tools​

complete​

Mark execution as complete. Use this when the task has been finished or when no action is required for this email. This tool is automatically available to all agents and cannot be removed.

Parameters:

  • reason (required) - Brief explanation of why the execution is complete or why no action is needed

Use cases:

  • Task has been completed successfully
  • Informational emails that require no response
  • Acknowledgments or confirmations
  • Spam that passed filters
  • Newsletters or automated notifications

Communication Tools​

mailbox_messages.reply:me​

Send an email response to the sender.

Parameters:

  • body - Email content (supports HTML)
  • cc - Optional CC recipients
  • attachments - Optional file attachments

Use cases:

  • Responding to customer inquiries
  • Acknowledging receipt of messages
  • Sending automated updates

mailbox_messages.reply_all:me​

Send a reply to all recipients of the original email.

Parameters:

  • body - Email content (supports HTML)
  • cc - Optional additional CC recipients

Use cases:

  • Group discussions requiring all-party responses
  • Team-wide acknowledgments

mailbox_messages.forward:me​

Forward the email to another recipient.

Parameters:

  • to - Recipient email address
  • body - Optional message to include with the forward

Use cases:

  • Routing emails to appropriate team members
  • Escalating to specialists

mailbox_messages.create_draft:me​

Create a draft response without sending.

Parameters:

  • body - Email content for the draft
  • cc - Optional CC recipients

Use cases:

  • Creating responses for human review before sending
  • Preparing complex responses

request_human_input​

Request input, approval, or information from a human. The agent will pause and wait for a response.

Parameters:

  • message - Detailed message explaining what you need and why (required)
  • subject - Brief subject line for the request
  • recipient - Email address of the person to ask (required unless agent is an SME with a configured manager)
  • request_type - Type of request: approval_required, clarification_needed, exception_request, compliance_concern, deadline_risk, resource_needed, information_request, other
  • urgency - Urgency level: low, normal, high, critical
  • required_by - When you need a response by (ISO 8601 datetime)
  • context_for_resume - Note to yourself about what to do when you resume

Use cases:

  • Getting approval for actions above agent authority
  • Asking questions that require human judgment
  • Multi-step workflows requiring external input
  • Approval processes

messages.send:user​

Send a notification to a user (via Teams, email, or SMS).

Parameters:

  • user_email - User to notify
  • message - Notification content
  • channel - Notification method (teams, email, sms)

Use cases:

  • Alerting team members about urgent matters
  • Sending status updates

messages.send:person (SMS channel)​

Send an SMS message.

Parameters:

  • phone_number - Recipient phone number
  • message - SMS content (limited length)

Use cases:

  • Urgent notifications
  • Follow-up reminders

Email Management Tools​

mailbox_messages.update:me, mailbox_messages.move:me, mailbox_folders.create:me, mailbox_rules.list/create/delete:me​

Manage emails in the agent's own mailbox: assign categories, move to folders, create folders, mark as read/unread, move a message between the Outlook Focused and Other tabs, or manage durable per-sender Focused/Other rules. By default operates on the current email; supply message_ids to act on up to 20 specific emails in bulk.

set_focus is retroactive and per-message: it moves mail that has already arrived, and Outlook's own classifier learns nothing from it. The three *_sender_focus actions are the durable equivalent - they set a per-sender rule on the mailbox itself, so future mail from that sender arrives on the right tab even when no agent is running. Use set_focus to fix messages already in the inbox and set_sender_focus to stop the problem recurring.

Parameters:

  • action - Action to perform: assign_category, move_to_folder, create_folder, mark_read, mark_unread, set_focus, list_sender_focus, set_sender_focus, clear_sender_focus
  • category - Category name (for assign_category). Common categories: "Spam", "Response Requested", "Urgent"
  • folder - For move_to_folder, the destination: a well-known name ("inbox", "drafts", "sentitems", "deleteditems", "junkemail", "archive"), a folder's display name, a "Parent > Child" path, or a folder ID. For create_folder, the display name of the new folder.
  • parent_folder - Optional parent for create_folder (well-known name, display name, "Parent > Child" path, or folder ID). Omit to create the folder at the top level.
  • focus - Outlook Focused Inbox classification (for set_focus and set_sender_focus): focused or other. For set_focus this is the per-message inferenceClassification property, not a folder, so move_to_folder cannot reach it.
  • sender - Email address of the sender whose durable rule to set or clear (for set_sender_focus and clear_sender_focus). Matching is case-insensitive. Not used by list_sender_focus, which returns every rule on the mailbox.
  • message_ids - Optional array of message IDs (max 20) to act on; if omitted, operates on the current email. Not used by create_folder or the three *_sender_focus actions, which act on the mailbox rather than on a message.
  • complete_after_execution - If true, end agent execution after this action

Use cases:

  • Categorizing emails for later review
  • Moving spam to junk folder
  • Organizing emails by topic
  • Creating a folder structure (for example a "Chief of Staff" folder under "Management Company") and filing emails into it
  • Promoting an important message from the Outlook Other tab to Focused
  • Teaching the mailbox that a key contact's mail should always be Focused, so it stops landing in Other
  • Reviewing which per-sender rules are already in place, and removing one that is no longer wanted

If the folder name cannot be resolved, the tool lists the folders that do exist instead of returning Microsoft Graph's "Id is malformed" error. A name that matches more than one folder is refused, so send the full "Parent > Child" path in that case.

mailbox_messages.get_thread:me​

Retrieve the full email thread for context.

Parameters:

  • None (uses current email context)

Use cases:

  • Understanding conversation history
  • Avoiding redundant responses

Information Retrieval Tools​

knowledge_base.search​

Search the tenant's corporate knowledge base for indexed content and return a synthesized answer with references.

Parameters:

  • query - What to search the knowledge base for

Use cases:

  • Looking up product information
  • Finding policy documentation
  • Retrieving technical specifications

employees.search​

Find employee information from the directory.

Parameters:

  • name - Employee name to search
  • email - Employee email address
  • department - Filter by department

Use cases:

  • Finding the right person to contact
  • Verifying employee information
  • Looking up reporting structure

contacts.search​

Search for contacts across the organization.

Parameters:

  • query - Search term (name, email, etc.)

Use cases:

  • Finding contact information
  • Identifying email senders

mailbox_messages.search:other, mailbox_messages.get:other, mailbox_folders.list:other​

Search, read, and browse emails from any mailbox in the organization. Supports full-text KQL search, structured filters (sender, date, attachments), reading full message bodies, and listing folders. Access is controlled by per-agent mailbox scoping configuration.

Parameters:

  • operation (required) - The operation: search, read_message, list_folders
  • mailbox_address (required) - Email address of the mailbox to search
  • keywords - KQL full-text search query (for search operation)
  • from_address - Filter by sender email address
  • date_after / date_before - Filter by date range (ISO date)
  • has_attachments - Filter by attachment presence
  • folder_id - Scope search to a specific folder
  • max_results - Maximum results, 1-50 (default: 10)
  • message_ids - Message IDs to read (for read_message operation, max 5)
  • max_body_length - Maximum body length per message, 500-50,000 (default: 8,000)

Use cases:

  • Looking up previous correspondence with a customer across team mailboxes
  • Gathering context from other departments before responding
  • Researching email history for investigation or audit tasks
  • Executive assistants searching organizational mailboxes on demand

Note: This tool requires per-agent mailbox access configuration. See Search Mailbox Tool for setup instructions.

Subject Matter Expert (SME) Delegation​

SME delegation is not a tool you assign from a list. When an agent is granted access to a Subject Matter Expert, a dedicated tool for that SME (named sme_<name>) is generated automatically and appears in the agent's own tool list, alongside its other assigned tools.

Use the generated tool to both request help and check on a pending request:

  • Set action to invoke (the default) with a task_prompt to ask the SME for help.
  • Set action to status with the invocation_id returned by the invoke call to check on progress.

Use cases:

  • Getting specialized expertise on a topic
  • Routing complex inquiries to the right SME
  • Following up on a pending expertise request

Calendar Tools​

calendar_events.create​

Schedule a meeting with attendees.

Parameters:

  • title - Event title
  • attendees - List of attendee emails
  • start_time - Event start time
  • end_time - Event end time
  • location - Optional location
  • description - Optional meeting description

Use cases:

  • Booking meetings
  • Scheduling follow-ups
  • Coordinating with teams

Reminder Tools​

scheduled_actions.create​

Set a reminder or timeout to perform an action at a future time. Use this when you need to follow up on something later, wait for a response with a fallback, or check on a pending item.

Parameters:

  • reminder_type (required) - Type of reminder: timeout, reminder, follow_up, or check
  • trigger_in_hours - Number of hours from now when reminder should trigger (alternative to trigger_at)
  • trigger_at - Specific date/time when reminder should trigger in ISO format (alternative to trigger_in_hours)
  • title (required) - Short title for the reminder (e.g., "Follow up on budget approval")
  • description - Detailed description of what to do when reminder triggers
  • action_type (required) - What action to take: send_email, notify, escalate, check_response, execute_agent, or continue_execution
  • action_details - Details for the action (varies by action type)
  • target_email - Email address of person this reminder is about (optional)
  • related_email_id - ID of the email that triggered this reminder (optional)

Action Types:

ActionDescription
send_emailSend an email to specified recipients (requires email_to, email_subject, email_body in action_details)
notifyCreate a notification in the system (requires notification_message in action_details)
check_responseCheck if a response was received in an email thread (requires check_thread_id, check_from in action_details)
escalateEscalate to human review
execute_agentRe-trigger an agent execution (requires agent_id in action_details)
continue_executionResume a paused long-running task (used internally by checkpoint system)

Use cases:

  • Setting follow-up reminders for pending responses
  • Creating timeout-based escalations ("if no response in 4 hours, escalate")
  • Scheduling deadline reminders
  • Automating check-ins at specific intervals

Example: "If Sarah doesn't respond to the budget approval request within 48 hours, send her a reminder email."

scheduled_actions.update​

Cancel an existing reminder that is still pending.

Parameters:

  • reminder_id (required) - ID of the reminder to cancel
  • reason - Reason for cancellation (optional but recommended for audit trail)

Use cases:

  • Removing obsolete reminders when the issue has been resolved
  • Cancelling follow-ups when a response is received early
  • Cleaning up reminders that are no longer needed

Memory Tools​

Memory tools enable agents to store and retrieve information across executions. See Agent Intelligence for detailed documentation.

organization_memory​

Store, update, delete, or search organization-wide information that all agents can access. Global memories are automatically injected into agent prompts based on priority.

Parameters:

  • action - Action: create, update, delete, search, list
  • key - Memory key (descriptive identifier)
  • value - Value to store (for create/update actions)
  • category - Category: policy, guideline, fact, rule, temporary
  • priority - Priority level (1-100, higher = more prominent)
  • query - Search query for memory content (for the search action)

Use cases:

  • Storing organizational policies
  • Maintaining shared knowledge across agents
  • Setting temporary guidelines (e.g., holiday policies)
  • Retrieving stored policies or checking organizational guidelines

Note: Global Memories require the Workforce or Platform plan. See Global Memories for details.

person_memory​

Store, update, delete, or list information about specific contacts. Personal memories are automatically retrieved when processing emails from that contact.

Parameters:

  • action - Action: create, update, delete, list
  • contact_email - Email address of the contact
  • key - Memory key (descriptive identifier)
  • value - Value to store (for create/update actions)
  • category - Category: preference, project, personal, history, other
  • importance - Importance: low, normal, high, critical

Use cases:

  • Remembering customer communication preferences
  • Tracking ongoing projects per contact
  • Storing relevant personal details for personalization

See Personal Memories for detailed usage guidelines.

Artifact Tools​

Artifact tools enable agents to store and reuse large outputs like reports, analyses, and datasets. See Artifacts for detailed documentation.

artifacts.create​

Store agent findings as a reusable artifact that can be retrieved later by other agents. Artifacts are automatically deduplicated using content hashing.

Parameters:

  • artifact_type - Type: report, analysis, dataset, document, data
  • title - Short, descriptive title
  • summary - Brief summary of contents (optional)
  • content - Full artifact content
  • content_format - Format: text, markdown, json, html
  • tags - Comma-separated tags for categorization
  • category - Domain category (e.g., "marketing", "finance")
  • is_reusable - Allow other agents to access (default: true)
  • valid_for_days - Custom validity period

Use cases:

  • Caching expensive research for reuse
  • Storing generated reports
  • Sharing analysis across agents

artifacts.get​

Retrieve the full content of a stored artifact by its ID.

Parameters:

  • artifact_id - UUID of the artifact to retrieve
  • include_content - Include full content (default: true)

Use cases:

  • Accessing previously generated reports
  • Retrieving cached research
  • Referencing saved analysis

artifacts.search​

Search for existing artifacts that might be relevant to the current task. Always search before performing expensive research to avoid redundant work.

Parameters:

  • artifact_type - Filter by type (optional)
  • category - Filter by domain category (optional)
  • tags - Filter by tags, comma-separated (optional)
  • search_text - Search in title and summary
  • limit - Maximum results (default: 20, max: 100)

Use cases:

  • Finding existing research before repeating work
  • Discovering relevant reports
  • Locating cached data

Activity Search Tool​

executions​

Search and retrieve information about past agent activity, via the search and get actions. This tool requires Activity Search to be enabled. It allows agents to search their own execution history, enabling self-reflection and learning from past interactions.

Parameters:

  • query - Natural language search query (e.g., "What happened with Acme Corp?")
  • execution_id - Specific execution ID to retrieve full details
  • time_range - Time period filter with either preset or custom dates:
    • preset - Predefined range: today, yesterday, last_7_days, last_30_days, this_month, last_month
    • start_date / end_date - Custom date range (YYYY-MM-DD format)
  • filters - Optional filters:
    • include_all_agents - Include activity from all agents (default: false, own activity only)
    • source_type - Filter by source: agents, scans, caioo, integrations
    • status - Filter by status: completed, error, escalated
    • topics - Filter by topic tags
  • output_format - How to format results: list (default), summary, detail
  • limit - Maximum results (1-50, default: 10)

Operating Modes:

ModeTriggerReturns
Semantic Searchquery providedList of matching executions with summaries and relevance scores
Execution Detailexecution_id providedFull details for a specific execution
Summaryoutput_format: "summary"Natural language summary with aggregated statistics

Access Control:

Agent TypeDefault Scope
Regular AgentOwn executions only
AICOSAll tenant executions

Regular agents can set include_all_agents: true to search across all tenant executions when needed for coordination.

Use cases:

  • Remembering previous interactions with a contact
  • Finding related past work before processing a new request
  • Explaining why certain actions were taken
  • Providing context about recent activity
  • AICOS gathering intelligence for daily reports

Example:

Agent receives: "What did you do with my email from John at Acme?"
Agent calls: executions.search(query: "John Acme email", time_range: {preset: "last_7_days"})
Agent responds with summary of matching past executions

Note: This tool requires Activity Search to be enabled. See Activity Search for setup instructions.

Knowledge Indexing Tools​

knowledge_base.create​

Index valuable knowledge into the Corporate Knowledge Index. This tool allows agents to preserve insights, research findings, and synthesized information for future retrieval by other agents.

Parameters:

  • content (required) - The knowledge content to index (minimum 10 characters, maximum 100 KB)
  • title - Title for the document (auto-generated from content if omitted)
  • summary - Brief summary of the content
  • source - Where the knowledge came from (defaults to agent name)
  • documentType - Type: research, meeting_notes, decision, procedure, reference, other
  • topicId - Topic ID from taxonomy (auto-classified if omitted)
  • topicName - Topic name (auto-classified if omitted)
  • keywords - Array of keywords for search optimization (max 10, auto-extracted if omitted)
  • valueScore - Importance score from 0.0 to 1.0 (default: 0.8)
  • relatedDocumentIds - Array of related document IDs (max 10)

Outcomes:

OutcomeDescription
indexedSuccessfully added to the knowledge base
duplicateContent already exists (blocked by hash check)
quota_exceededRate limit reached (hourly, daily, or total)
errorIndexing failed due to an error

Use cases:

  • Preserving research findings from SME consultations
  • Storing meeting summaries extracted from email threads
  • Recording decisions and their rationale
  • Indexing valuable content discovered during email processing

Example:

Agent finds valuable policy clarification in an email thread.
Agent calls: knowledge_base.create(
content: "Our return policy allows...",
title: "Return Policy Clarification - January 2026",
documentType: "procedure",
source: "Email from Legal Team"
)
Knowledge is now searchable by all authorized agents.

Note: This tool requires the Index Knowledge Tool to be enabled. See Index Knowledge Tool for setup instructions.

knowledge_sources​

Programmatically create knowledge sources, configure email mining parameters, and trigger email scans. This tool allows agents to autonomously build searchable knowledge bases from email archives.

Parameters:

  • action (required) - The action to perform: create, update, scan (also used to check a scan's progress), list (also returns the mining quota)
  • mailboxAddress - Email address of the mailbox to mine (required for create)
  • sourceId - ID of existing knowledge source (required for update and scan)
  • scanRequestId - ID of a scan request (to check status via scan)
  • sourceName - Optional friendly name for the knowledge source
  • folderPath - Specific folder path to scan (e.g., 'Inbox/Projects')
  • topicFilters - Topic taxonomy IDs to filter for (array)
  • includeKeywords - Keywords that must appear in emails (array)
  • excludeKeywords - Keywords to exclude (array)
  • minValueThreshold - Minimum value score for indexing (0.5-1.0, default: 0.7)
  • scanStartDate - Only scan emails after this date (YYYY-MM-DD)
  • maxEmails - Maximum emails to process (1-1000)
  • notifyOnComplete - Receive notification when scan completes (default: true)

Use cases:

  • Building targeted knowledge bases when agents identify information gaps
  • Mining mailboxes for domain-specific knowledge to answer queries
  • Setting up knowledge sources for new team members or projects
  • Proactively expanding organizational knowledge during research tasks

Example:

Agent discovers need for historical client communications.
Agent calls: knowledge_sources(
action: "create",
mailboxAddress: "sales@company.com",
sourceName: "Sales Team - Acme Corp",
includeKeywords: ["acme", "acme corp"],
minValueThreshold: 0.7
)
Agent triggers scan and waits for notification when complete.

Note: This tool requires the Mine Mailbox Tool to be enabled. See Mine Mailbox Tool for setup instructions.

Dynamic Tools​

Some tools are created dynamically based on your configuration:

RAG Retriever Tools​

When you create and provision a RAG Retriever, it automatically becomes available as a tool for agents. Each active retriever generates a tool with the name pattern rag_retriever_N.

Parameters:

  • query (required) - Search query to find relevant information

Returns:

  • answer - AI-synthesized answer from the knowledge base
  • references - Source documents used to generate the answer
  • resultCount - Number of relevant references found

Use cases:

  • Answering questions from company documentation
  • Finding relevant email history
  • Retrieving policy and procedure information

Example: If you create a "Product Documentation" RAG retriever, a tool becomes available that agents can use to search product docs.

Search Index Tools (Legacy)​

When you configure legacy search indexes, corresponding search tools are automatically created. Each index becomes a searchable tool.

Example: If you create a "Product Documentation" search index, a tool called search_product_documentation becomes available.

Note: For new implementations, we recommend using RAG Retrievers instead of legacy search indexes.

SQL Query Tools​

Database query tools allow agents to execute secure, parameterized SQL queries against Azure SQL Server databases. Create connections to your databases and define query tools through a guided wizard.

Tool Creation:

  1. Navigate to Capabilities > Connections > SQL Tools
  2. Create a database connection with credentials
  3. Use the wizard to create query tools with parameters
  4. Test queries before deployment
  5. Assign tools to agents

Tool Types:

TypeDescription
SELECT queriesRetrieve data from database tables
INSERT/UPDATE/DELETEModify data (requires write permissions enabled)
Stored proceduresExecute stored procedures with parameters

Parameters:

  • Query parameters use @paramName syntax
  • Parameters are typed (INT, VARCHAR, DATETIME, etc.)
  • Validation rules can constrain input values
  • All queries are parameterized to prevent SQL injection

Use cases:

  • Looking up customer information by email or ID
  • Checking order status and shipping details
  • Retrieving inventory levels and product data
  • Updating customer contact information (with confirmation)
  • Running business reports and statistics

Security:

  • All credentials encrypted at rest using AES-256-CBC
  • Write operations can require confirmation
  • Row limits prevent excessive data retrieval
  • Complete audit trail of all query executions

See SQL Query Tools for the complete setup guide.

QuickBooks Query Tools​

Tools for querying QuickBooks Online accounting data. When you connect a QuickBooks account via OAuth, a default query tool is automatically created. You can create additional specialized tools for specific use cases.

Tool Creation:

  1. Navigate to Capabilities > Connections > QuickBooks
  2. Connect your QuickBooks account via OAuth
  3. A default query tool is automatically created
  4. Optionally create specialized tools in the Tools tab

Tool Types:

TypeDescription
query_allGeneral purpose query tool (default, includes reports)
query_customersList and search customers
query_vendorsList and search vendors
query_invoicesQuery invoices with filters
query_billsQuery bills and payment status
query_paymentsQuery customer and vendor payments
query_reportsRun financial reports (agent selects type)
report_balance_sheetBalance Sheet for a date range
report_profit_and_lossProfit & Loss for a date range
report_cash_flowCash Flow Statement for a date range
update_customer_contactUpdate customer contact info (write)
update_vendor_contactUpdate vendor contact info (write)

Parameters:

  • operation (required) - The query operation to perform
  • entityId - Entity ID for get/update operations
  • filters - Filter criteria for list operations
  • startDate / endDate - Date range for report operations (YYYY-MM-DD)
  • accountingMethod - Cash or Accrual (optional, for reports)
  • maxResults - Maximum results to return (default: 100)

Use cases:

  • Answering questions about customer balances and invoices
  • Looking up vendor payment history and outstanding bills
  • Verifying contract compliance through payment patterns
  • Generating Balance Sheet, Profit & Loss, and Cash Flow reports
  • Updating customer and vendor contact information (with approval)

Security:

  • Read-only by default; write operations require explicit enablement
  • Optional approval workflow for write operations
  • Complete audit trail of all queries
  • Configurable rate limits per connection

See QuickBooks Tools for the complete setup guide.

HTTP API Tools​

Tools created from HTTP API integrations let agents interact with external REST APIs. These tools are configured using an AI-powered wizard that analyzes your API specification and automatically generates tool configurations.

Use cases:

  • CRM integrations (HubSpot)
  • Ticketing systems (Zendesk, ServiceNow)
  • Internal company APIs
  • Third-party data services

See HTTP API Tools for the complete setup guide.

LinkedIn Tools​

Tools for LinkedIn automation, allowing agents to manage your company page or an employee's own profile. Connecting LinkedIn (see LinkedIn Integration) gives agents three tools; Outermind connects through its own LinkedIn app, so there is nothing to register with LinkedIn.

linkedin_posts​

Posts on the connected page or profile.

Actions:

  • list - Read the posts this connection has published, newest first
  • get - Read one post with its comments and reactions (postUrn)
  • create - Publish a post: text (body), an article share (articleUrl), a reshare (reshareOf), or a poll (poll, company pages only). Optional visibility, mentions, and one image (imageUrl, imageBase64 or assetId)
  • update - Rewrite the text of a published post (postUrn, body)
  • delete - Remove a published post (postUrn)
  • react / unreact - Add or take back this connection's reaction (postUrn, reactionType: LIKE, CELEBRATE, SUPPORT, LOVE, INSIGHTFUL, FUNNY). Removing a reaction works on company pages only
linkedin_comments​

Comments under the connection's posts.

Actions:

  • list - Read the comments under one post (postUrn), or sweep recent posts for unanswered comments (company pages only)
  • create - Comment under a post, or reply under a comment (postUrn, body, optional parentCommentUrn)
  • delete - Remove a comment this connection posted (postUrn, commentUrn; company pages only)
linkedin_analytics​

Actions:

  • get - Read one report, chosen by metric: followers, page and shares for a company page, profile for a personal profile, or activity_history for what this workspace has published through LinkedIn

Viewing Tools​

Go to Capabilities > Tool Management > All Tools to see all available tools.

Tool List​

The tools page shows all built-in tools organized by availability:

  • Available tools appear first
  • Upgrade required tools appear at the bottom (these require a higher subscription tier)

Tool Information​

Click on any tool to view its details in a read-only modal. For each tool, you can see:

  • Name - Tool identifier
  • Description - What the tool does
  • Parameters - Required and optional inputs
  • Category - Tool type (communication, search, etc.)

Note: Built-in tools are read-only and cannot be modified. They are managed at the system level.

Assigning Tools to Agents​

During Agent Creation​

  1. Go to Workforce > Agents > Agents & SMEs
  2. Click Add Agent or edit existing
  3. In the Tools section, select desired tools
  4. Click Save

Note: The complete tool is automatically available to all agents and cannot be removed. This ensures agents always have a way to mark execution as complete.

Tool Recommendations​

Consider the agent's purpose:

Agent TypeRecommended Tools
Customer Supportmailbox_messages.reply:me, knowledge_base.search, mailbox_messages.search:other, request_human_input, mailbox_messages.update:me, executions
Scheduling Assistantcalendar_events.create, employees.search, mailbox_messages.reply:me
Information Botknowledge_base.search, employees.search, mailbox_messages.reply:me, executions
Triage Agentrequest_human_input, mailbox_messages.update:me, mailbox_messages.forward:me
Research Agentknowledge_base.search, mailbox_messages.search:other, artifacts.create, executions
Executive Agent (AICOS)executions, mailbox_messages.search:other, organization_memory, artifacts.create
Financial Analystquickbooks_records.query, knowledge_base.search, mailbox_messages.reply:me, artifacts.create

Note: SME delegation isn't picked from this list. If an agent should be able to delegate to a Subject Matter Expert, grant it access to that SME; a matching sme_<name> tool is generated automatically and appears in the agent's tool list.

Security Considerations​

  • Only assign tools the agent actually needs
  • Be cautious with tools that send external communications
  • Review tool permissions for sensitive data access
  • Audit tool usage in execution logs

Microsoft 365 Tools Requiring Authorization​

Some tools reach Microsoft Graph or Exchange on your organization's behalf (SharePoint, Teams, meeting transcripts, mailbox automation, and similar). Each of these tools needs a specific Microsoft Entra application to be authorized for your tenant before it can run.

If the required application has not been authorized yet, the tool still appears in the tool list (it is never hidden), but it is shown disabled, with a badge naming the application it needs and a link to authorize it. This lets you see everything a group of tools could do even before you've connected Microsoft 365 for that capability.

  • You cannot assign a disabled tool to an agent until the badged application is authorized.
  • Authorizing the application (via Console > Microsoft 365 Access, or the authorize link on the badge) immediately unlocks every tool that depends on it, with no separate per-tool step.
  • Revoking an application's authorization does the reverse: tools that depend on it stop working. A tool that was already assigned to an agent is not silently removed from that agent's configuration: it stays listed, but shows as unavailable and fails closed (with an error naming the application) if the agent tries to use it, until the application is re-authorized.

See Your User Profile for the Microsoft 365 Access tab, and Agent 365 Enablement for background on the underlying application model.

Tool Execution Tracking​

Viewing Tool Calls​

In Governance > Activity History > Agent Runs, click on any execution to see:

  1. Which tools were called
  2. Parameters passed to each tool
  3. Results returned
  4. Timing information

Common Patterns​

Search then respond:

1. knowledge_base.search("product warranty policy")
2. mailbox_messages.reply:me(body: [response using search results])

Categorize and ignore:

1. mailbox_messages.update:me(category: "Spam")
2. complete(reason: "Spam email categorized")

Request human input with context:

1. mailbox_messages.get_thread:me()
2. request_human_input(urgency: "high", message: "Complex issue requiring your judgment", context_for_resume: "If approved, proceed with resolution")

Best Practices​

Tool Selection​

  1. Minimum necessary - Only assign tools the agent needs
  2. Match purpose - Tools should align with agent's role
  3. Test combinations - Verify tools work well together
  4. Document expectations - Instructions should guide tool use

Prompt Engineering for Tools​

Help agents use tools effectively:

When responding to customer inquiries:
1. First search the knowledge base for relevant information
2. Use search results to inform your response
3. If you cannot find an answer, escalate to human support
4. Always reply to the customer, even if escalating

For spam or irrelevant emails:
1. Categorize appropriately using mailbox_messages.update:me
2. Use complete with a clear reason

Monitoring Tool Usage​

  1. Review tool call patterns in executions
  2. Identify unnecessary tool calls
  3. Optimize instructions to reduce wasted calls
  4. Track tool errors and failures

Troubleshooting​

Tool Not Available​

Symptoms: Agent cannot call a tool, tool missing from list

Solutions:

  1. Verify the tool is assigned to the agent
  2. Check if the underlying service is configured (e.g., search index exists)
  3. Ensure required permissions are in place

Tool Disabled with an Authorization Badge​

Symptoms: A tool appears in the list but is greyed out with a badge naming a Microsoft application, and cannot be assigned to an agent

Solutions:

  1. Go to Console > Microsoft 365 Access and authorize the application named on the badge
  2. Once authorized, the tool re-enables automatically; no separate per-tool action is needed
  3. If a tool that was previously assigned now shows unavailable, the application's authorization was likely revoked; re-authorize it to restore the tool

Tool Calls Failing​

Symptoms: Tool returns errors, execution fails at tool call

Solutions:

  1. Check tool parameters in execution details
  2. Verify external services are available
  3. Review authentication/permissions
  4. Check for rate limiting

Unexpected Tool Behavior​

Symptoms: Tool returns wrong results, behaves unexpectedly

Solutions:

  1. Review the parameters being passed
  2. Check if tool configuration changed
  3. Test the tool manually
  4. Update agent instructions for clearer guidance