From 1d7791e1da1a6e29f2595fd7b7a79c8529ce013a Mon Sep 17 00:00:00 2001 From: siddharthmenon-7 Date: Tue, 14 Jul 2026 10:59:43 +0530 Subject: [PATCH 1/8] v1.19.0 release --- .../administration/user-management.mdx | 10 + ai-for-work/assistant-configurations.mdx | 64 ++-- ai-for-work/custom-agents.mdx | 290 +++++++++--------- .../custom-agents/agent-management.mdx | 70 ++++- ai-for-work/getting-started/how-to-use.mdx | 37 ++- ai-for-work/llm-configuration.mdx | 43 ++- ai-for-work/release-notes/release-updates.mdx | 48 +++ 7 files changed, 375 insertions(+), 187 deletions(-) diff --git a/ai-for-work/administration/user-management.mdx b/ai-for-work/administration/user-management.mdx index dd4254731..7f564bf41 100644 --- a/ai-for-work/administration/user-management.mdx +++ b/ai-for-work/administration/user-management.mdx @@ -291,6 +291,16 @@ The default frequency is **Never**. You must set a schedule to enable automatic **Filter settings** — Select single-select fields (for example, Department, Designation, Location) to expose as search filters for end users. Only fields with discrete values can be used as filters. +**Organization chart root user**: Control which employee appears at the top of the organization chart: + +* **Auto-selection**: On the first sync, the platform automatically selects the user with the highest number of direct and indirect reportees as the root user. The selection persists across all subsequent syncs. +* **Manual override**: Select a different root user at any time from the list of users without an assigned manager. The manual selection persists across subsequent syncs. +* **Reassignment on manager assignment**: If the root user is assigned a reporting manager, that manager automatically becomes the new root user. If the new root user also has a manager, the platform traverses up the reporting chain until it finds the topmost user without a manager. +* **Reassignment on deletion**: If the root user is deleted, the platform automatically reassigns the root to the user with the next highest number of direct and indirect reportees. +* **Notification**: After any automatic reassignment, the platform notifies administrators so they can review or override the new root user. + +Manually selected root users follow the same reassignment rules: deletion or manager assignment triggers automatic reassignment. + **Step 5: Publish the Directory** Publishing requires at least one record in the directory. Only directories that are ready to publish (not in draft state or empty) can be published. diff --git a/ai-for-work/assistant-configurations.mdx b/ai-for-work/assistant-configurations.mdx index 1d8c298ce..38eb0ee0c 100644 --- a/ai-for-work/assistant-configurations.mdx +++ b/ai-for-work/assistant-configurations.mdx @@ -55,8 +55,8 @@ Automatically applies security policies from your [Guardrails](#guardrails) conf ![Guardrail Enforcement](/ai-for-work/assist-configuration/images/guardrails-enforcement.png) - **Enabled**: Security policies enforce across all pipeline queries. -- **Disabled**: Enforcement is removed from the pipeline. -- Cannot be toggled here — controlled exclusively through the [Guardrails](#guardrails) interface. +- **Disabled**: The pipeline skips enforcement. +- You cannot toggle this setting here; the [Guardrails](#guardrails) interface controls it exclusively. ### Small Talk Handling @@ -74,7 +74,7 @@ Analyzes incoming queries and directs them to the most appropriate AI agent. ![Intelligent Agent Routing](/ai-for-work/assist-configuration/images/intelligent-agent.png) - Uses predefined routing algorithms optimized for accuracy and efficiency. -- Routing logic is locked to ensure consistent performance and scalability. +- The platform locks the routing logic to ensure consistent performance and scalability. ### Enterprise Knowledge Lookup @@ -84,9 +84,9 @@ Integrates your organization's knowledge base into the AI query pipeline so resp | State | Behavior | |-------|----------| -| **Configured and Enabled** | Knowledge base is queried automatically for all pipeline requests | +| **Configured and Enabled** | The pipeline queries the knowledge base automatically for all requests | | **Configured but Disabled** | Knowledge base is accessible only through the compose bar's agent selector | -| **Not Configured** | Component remains inactive until Enterprise Knowledge is set up | +| **Not Configured** | The component remains inactive until you set up Enterprise Knowledge | Enterprise Knowledge remains accessible through the compose bar's agent selector even when disabled in the query pipeline. @@ -153,7 +153,7 @@ Enterprise Search lets administrators enable a dedicated search experience for e Turn on the **Enable** toggle to make the **Search** option available to end users in the application. -When Enterprise Search is enabled, select one enterprise knowledge source from the configured sources. The platform uses the selected source for all search results shown to end users. You can change the selected source at any time. +When you enable Enterprise Search, select one enterprise knowledge source from the configured sources. The platform uses the selected source for all search results that end users see. You can change the selected source at any time. --- @@ -175,10 +175,12 @@ The Announcements feature lets administrators create, manage, and publish organi | **Name** | Up to 80 characters | | **Description** | Up to 800 characters; supports bold, italic, underline, hyperlinks, colors, bullets, and numbered lists | | **Announcement Type** | Banner (currently the only option) | - | **Publish To** | Everyone in the account, or specific agents/users | + | **Publish To** | **Everyone in Account**, **Selected User Groups**, or **Agent Specific** | ![Announcement editor](/ai-for-work/assist-configuration/images/announcement_2.png) +3. If you select **Selected User Groups**, the platform displays all available user groups. Select one or more groups from the list; the interface displays the number of selected groups. The published announcement is visible to every user who belongs to the selected groups. + ### Actions | Action | Description | @@ -208,7 +210,7 @@ Editing a published announcement prompts you to either **Discard changes** or ** ## Email Templates -Email Templates let you customize the invitation emails sent when users are added to the account, a workspace, or specific applications. +Email Templates let you customize the invitation emails that the platform sends when you add users to the account, a workspace, or specific applications. **Navigation**: Account Hub → Assistant Configurations → Email Templates @@ -218,13 +220,13 @@ Email Templates let you customize the invitation emails sent when users are adde | Template | Sent When | |----------|-----------| -| **Admin Invitation** | A user is added as an Admin | -| **Custom Admin Invitation** | A user is assigned a custom admin role | -| **Workspace Invitation** | A user is invited to a specific workspace | +| **Admin Invitation** | You add a user as an Admin | +| **Custom Admin Invitation** | You assign a custom admin role to a user | +| **Workspace Invitation** | You invite a user to a specific workspace | #### Application Templates -Each provisioned application has a **Member Invitation** template sent when a user is added as a member. Each application maintains its own separate template. +Each provisioned application has a **Member Invitation** template that the platform sends when you add a user as a member. Each application maintains its own separate template. ### Customize a Template @@ -236,8 +238,8 @@ Each provisioned application has a **Member Invitation** template sent when a us ### Template Management -- Templates are organized by application; all provisioned applications appear in the list. -- Default subject and body text are provided and can be modified. +- The platform organizes templates by application; all provisioned applications appear in the list. +- The platform provides default subject and body text, which you can modify. - Changes apply to all future invitations of that type. - Admins and Custom Admins can review and adjust templates before the system sends invitations. @@ -340,6 +342,8 @@ The page includes a pre-provisioned **Default MCP Server** that the platform mar Every account includes a **Default MCP Server** that requires no setup and is ready on first access. The Default MCP Server exposes the account's prebuilt agents and enterprise knowledge sources as MCP tools. +The platform provides the server name, "Default MCP Server", and the description, "Access your organization's tools, agents, and knowledge sources directly from your AI assistant." You cannot edit either field or delete the Default MCP Server. + ### Create a Server Select **Create** to open the server creation wizard. The wizard guides you through four steps: **Details**, **Tools**, **Auth settings**, and **Access limits**. @@ -392,6 +396,10 @@ Set which users in the account can access the server: | **Limited users** | Only the selected users or user groups can access the server. Use the directory picker to search for and select users and groups. | | **None** | No users can access the server, which makes the server inaccessible. | +**Manage a server** + +You can edit or delete any server after you create it. Open a server to modify its details, tools, authentication method, or access limits. The edit and delete actions are not available for the **Default MCP Server**. + --- ## Rate Limits @@ -420,7 +428,7 @@ Admins can add users to, remove users from, or clear the entire Power User list. ### Time Windows -Select the duration over which points are tracked: +Select the duration over which the platform tracks points: - 1 hour - 3 hours @@ -429,7 +437,7 @@ Select the duration over which points are tracked: View point consumption per query in the **Logs** tab of the dashboard. -All queries — including small talk and interrupted queries — consume points. Points are not counted if an error occurs while answering a query. +All queries — including small talk and interrupted queries — consume points. The platform does not count points if an error occurs while answering a query. --- @@ -446,7 +454,7 @@ Control whether users can access scheduling functionality for agents. | State | Effect | |-------|--------| | **On** | Users can create and manage schedulers for their agents | -| **Off** | Scheduling is disabled for all users | +| **Off** | The platform disables scheduling for all users | ### Scheduling Limit per User @@ -476,7 +484,7 @@ For agent-level scheduler configuration, see [Schedule Trigger](/ai-for-work/cus ## Language Settings -The following languages are supported: +The platform supports the following languages: | Language | Code | |----------|------| @@ -507,7 +515,7 @@ Use the **Enable Uploading Attachments in Compose Bar** toggle to control whethe | **On** | End users see the attachment option in the compose bar and can upload files alongside their queries | | **Off** | The platform hides the attachment option from the compose bar for all end users | -You can enable attachment uploads only if at least one LLM model is configured in the platform. If no LLM model is available, the toggle remains disabled and the platform displays a banner prompting you to configure an LLM model first. +You can enable attachment uploads only if the platform has at least one configured LLM model. If no LLM model is available, the toggle remains disabled and the platform displays a banner prompting you to configure an LLM model first. ### LLM Model Selection @@ -530,7 +538,7 @@ When enabled, select one of the following RAG processing options: | Option | Description | |--------|-------------| -| **Platform Built-in RAG** | Uses the platform's built-in RAG capability to process and retrieve content from large attachments. Displays a **Select Embedding Model** dropdown; the Kore embedding model is selected by default. Only embedding-capable models appear in the list. | +| **Platform Built-in RAG** | Uses the platform's built-in RAG capability to process and retrieve content from large attachments. Displays a **Select Embedding Model** dropdown; the platform selects the Kore embedding model by default. Only embedding-capable models appear in the list. | | **LLM-Provided RAG** | Uses the selected LLM's native RAG or file-handling capabilities. Available only if the chosen LLM model supports the required APIs. | Switching between RAG options or changing the embedding model removes all currently uploaded files across the account. The platform prompts you to confirm before applying the change. @@ -553,10 +561,20 @@ The page provides three account-wide toggles: | **Capture Memory?** | The assistant remembers information the user shares across conversations | | **Mine Data from Business Systems?** | The assistant fetches details from connected business applications | -When an administrator turns on **Capture Memory**, all existing end users see a one-time pop-up notification in the AI for Work app confirming that memory is active. Any new user who receives access while memory is enabled also sees this notification on first login. +When an administrator turns on **Capture Memory**, all existing end users see a one-time pop-up notification in the AI for Work app confirming that memory is active. Any new user who receives access while memory is active also sees this notification on first login. Turning off Capture Memory stops new memory generation but does not delete existing memories. Users can manage their stored memories from the Personalisation and Memory widget on their profile page. +### Model Selection + +The page displays a model selector that determines which LLM connection powers memory and personalization: + +* The selector starts disabled and becomes available only after you turn on at least one memory setting. +* The selector lists all LLM connections configured in the account. +* The platform uses the selected model to generate memory chunks and to power personalization features. + +If all memory settings are off, the selector remains disabled regardless of available LLM connections. If the account has no configured LLM connections, the selector displays an empty placeholder state. + --- ## Projects Settings @@ -572,11 +590,11 @@ Use the **Enable Projects** toggle to control whether users can create and manag | State | Effect | |-------|--------| | **On** | Users can create projects, upload files, and use project content as a source for queries | -| **Off** | The Projects feature is hidden from all users | +| **Off** | The platform hides the Projects feature from all users | ### Model Selection -When Projects is enabled, the platform displays a **Model Selection** dropdown. +When you enable Projects, the platform displays a **Model Selection** dropdown. - The platform selects the default configured LLM model automatically. - You can change the model used for processing project-based queries at any time. diff --git a/ai-for-work/custom-agents.mdx b/ai-for-work/custom-agents.mdx index a3d8bda8d..abe7994a5 100644 --- a/ai-for-work/custom-agents.mdx +++ b/ai-for-work/custom-agents.mdx @@ -32,80 +32,136 @@ Custom agents let you create AI-powered assistants with: Autonomous Agents are AI-powered agents that leverage Agent Platform to autonomously manage complex business tasks and workflows. They use adaptive algorithms for dynamic decision-making, responding to evolving business requirements in real time. +Workspace settings control which autonomous agent types are available. When an administrator selects **Autonomous Agent** during workspace creation or update, the platform enables and selects the sub-options **Agent Version V1**, **Agent Version V2**, and **Skills** by default. Administrators can enable or disable each sub-option individually, and the selection persists with the workspace configuration. + ### Create an Autonomous Agent -Navigate to **Admin Console** > **AI Agents** > **Autonomous Agents**, then click **+Create Agent**. +Navigate to **Admin Console** > **AI Agents** > **Autonomous Agents**, then click **+Create Agent**. The creation flow has four steps: define the agent identity, connect an app or skill, configure the agent's appearance and behavior, and publish. -![Admin Console - Autonomous Agents](/ai-for-work/custom-agents/images/Advance_Agentic_App_1.png) +#### Step 1: Details and Purpose -**Step 1: Details and Purpose** +Define the agent identity: -- **Icon**: Choose from the predefined library or upload a custom icon. -- **Agent Name**: Enter a unique, meaningful name. -- **Purpose of Agent**: Define the intended functionality for query routing and training. +| Field | Description | +|-------|-------------| +| **Icon** | Choose from the predefined library or upload a custom icon. | +| **Agent Name** | Enter a unique, meaningful name. | +| **Purpose of Agent** | Define the intended functionality for query routing and training. | -**Step 2: Configure Agentic App** +#### Step 2: Configure Agentic App -Connect an app from the Agent Platform. The configuration panel displays three options: +Connect an app from the Agent Platform or attach a skill. Click the add agent option to open the **Link Projects** popup, which supports four linking methods: -| Option | Description | +| Method | Use It When | |--------|-------------| -| **Link App (V1)** | Browse and select from all apps you can access in the Agent Platform (V1 protocol) | -| **Link App (V2)** | Browse and select from all apps you can access in the Agent Platform (V2 protocol) | -| **Link App with URL** | Connect through an endpoint URL and connection secret | +| **Browse and link** | The app already exists in an Agent Platform workspace you can access. | +| **Add using credentials** | You have the agent's endpoint URL and connection secret. | +| **Link version-1 App** | The app runs on the V1 protocol and you define its API directly. | +| **Link Skill** | You run packaged agent logic on a configured LLM connection. | + +From the credentials, version-1, and skill screens, click **Browse and Link Projects** to return to the app list. -**Browse and link an app** +##### Link an Agent Platform App -1. Click **Link App (V1)** or **Link App (V2)**. -![v2](/ai-for-work/custom-agents/images/agent-v2.png) -2. In the popup, select a workspace from the **Workspace** dropdown. The list displays all apps you can access in that workspace, with descriptions and agent counts. -3. Select an app. The first app in the list is selected by default. -4. Hover over an app to see the **Go to App** button. Click it to open the app in the Agent Platform in a new browser tab. -5. Click **Done**. +1. In the **Link Projects** popup, select a workspace from the **Workspace** dropdown. The list displays all apps you can access in that workspace, with descriptions and agent counts. +2. Select an app. The platform selects the first app in the list by default. Use the **Search** box to find a specific app. +3. To change the environment for an app, select an option from the **Environment** dropdown on the app entry. +4. Click **Done**. -**Link an app with URL** +##### Add Using Credentials -1. Click **Link App with URL**. +1. Click **Add using credentials**. 2. Enter the **Endpoint URL** of the agent. 3. Enter the **Connection Secret**. 4. Click **Run and Save**. -**Linked app banner** +##### Link a Version-1 App + +1. Click **Link version-1 App**. +2. Define the API for the agent: enter the **URL**, select the **Method**, and configure the **Headers**, **Query string**, **Body type**, **Content type**, and **Request content** as required. +3. To prefill the fields from a cURL command, click **cURL import**. +4. Click **Run and Save**. + +##### Link a Skill + +Skills package agent logic as files that run on a configured LLM connection. `OpenAI`, `Azure OpenAI`, and `Anthropic` models support skills. + +You must configure a general purpose LLM connection before you attach a skill. If no key exists, the popup displays the message "No key is configured. Configure LLM in admin console." Go to **Admin Console** > **Assist Configuration** > **General Purpose** to add a connection, then retry. + +1. Click **Link Skill**. +2. Select an LLM connection from the **Select Model** dropdown. The dropdown lists each configured connection with its model name. +3. The popup lists the skills already linked to the selected key. Select a skill from the list, or upload a new one: drag and drop a folder or .zip file, or click **Browse** to select it from your file system. The upload supports agent .zip files, skill files, or folders up to 25 MB. The platform adds an uploaded skill to the list, where it appears in the selected state by default. +4. Click **Import**. + +##### Manage an Attached Skill + +After you attach a skill, the configuration displays the skill with three actions: + +| Action | Description | +|--------|-------------| +| **Unlink** | Removes the skill association and returns the configuration to the empty state. | +| **Edit** | Reopens the skill selection popup so you can choose a different skill. | +| **Update Skill** | Opens the Update Skill popup to upload a new version. | + +**Update a skill** + +1. Click **Update Skill**. +2. Enter a **Version Name** and a **Version Description**. +3. Upload the new version as a folder or .zip file. + +Each successful upload adds the new version as the latest entry in the **Version Logs** list. Each entry displays the version name, version description, and created date. The platform records the original skill automatically as "Version 1", with an empty description and the date of the initial upload. + +**Streaming for skills** + +A **Streaming** toggle appears below the version logs. Turn it on to allow streaming responses for the configured skill, or turn it off to disable them. The toggle state persists with the agent configuration. + +**Expired or revoked keys** + +If the API key linked to a skill expires or becomes invalid, revoked, or deleted: + +- The linked skill remains visible in the agent configuration, marked with an error state indicator and the reason for the failure. +- End users see the message "This agent is currently unavailable. Please contact the agent creator." +- Deleting the skill is the only available action. + +To recover, remove the invalid key association from the agent configuration, configure a new key, and attach a new skill linked to the new key. + +##### Linked App Details -After you link an app, a banner displays the app details. You can change the environment directly from the banner. Changing the environment dynamically updates the agent count and tool count. The banner also displays the App Version and Last Deployed Timestamp for each environment. +After you link an app, an **App Details** card displays the app name, agent count, creator, and creation time. From the card, you can change the **Environment**, open the app in the Agent Platform with **Go to projects**, edit the link with **Edit**, view **Meta Data**, or remove the association with **Delete Link**. Changing the environment dynamically updates the agent count and tool count. The card also displays the App Version and Last Deployed Timestamp for each environment. -**Execution mode** +##### Execution Mode Select the execution mode for the linked agent: | Mode | Behavior | |------|----------| -| **Sync** | The agent returns immediate responses with a 60-second timeout. No POST URL or access token is required. | -| **Async** | The agent handles tasks that take longer than 60 seconds. A redirect URL displays automatically. For V1 connections, an access token also displays, which you can regenerate and copy. | +| **Sync** | The agent returns immediate responses with a 60-second timeout. Sync mode requires no POST URL or access token. | +| **Async** | The agent handles tasks that take longer than 60 seconds. A POST URL displays automatically, which you can copy. For V1 connections, an access token also displays, which you can regenerate and copy. | -When you select Async mode, a **Test** button appears. Click it to verify the async connection. If the POST URL is configured correctly in the agent, the test displays "Async connection verified." If the POST URL is not configured correctly, the test displays "Async connection verification failed." +When you select Async mode, a **Test** button appears. Click it to verify the async connection. If the agent has a correctly configured POST URL, the test displays "Async connection verified." If the POST URL configuration is incorrect, the test displays "Async connection verification failed." -**Streaming configuration** +##### Streaming Configuration -For Sync connections, you can enable or disable **Streaming** (Yes / No). Streaming is disabled automatically when you select Async mode without a linked agent or when the async connection verification fails. +For Sync connections, you can enable or disable **Streaming** (Yes / No). The platform disables streaming automatically when you select Async mode without a linked agent or when the async connection verification fails. -**Publishing behavior** +##### Publishing Behavior -Publishing is disabled when async connection verification fails. The platform displays one of the following error statuses: +The platform disables publishing when async connection verification fails. The platform displays one of the following error statuses: -- "Agent configuration pending (No agent configured)" if no agent is linked. +- "Agent configuration pending (No agent configured)" if you have not linked an agent. - "Agent configuration pending (Agent Async connection failed)" if the async connection verification failed. -**Step 3: Appearance and Behavior** - -1. Click **+Add Query** to add test queries. -2. Enable **Allow End User Notification** to enable notification configuration and agent trigger setup. See [Notifications](/ai-for-work/custom-agents/agent-management#notify-api). -3. Enable **Clear End-User Chat History** to delete chat history after a specified period. -4. Click **Publish** to proceed. +#### Step 3: Appearance and Behavior -![Appearance and Behavior](/ai-for-work/custom-agents/images/Advance_Agentic_App_3.png) +1. Enter a **Short Description** of up to 56 characters. The platform shows it on agent cards and in @ mentions to help users identify the agent. +2. Enter a **Description** of up to 250 characters. It explains the agent's capabilities, scope, and behavior, and appears in the agent's full detail view. +3. Manage **Sample queries**: click **Add query** to add a query, hover over a query and click the delete icon to remove it, or click **Delete all** to remove every query. +4. Enable **Allow End User Notification** to enable notification configuration and agent trigger setup. The platform displays a **Notification token**, which you can regenerate and copy, and a **Sample Request** that shows how to call the agent's notify endpoint. See [Notifications](/ai-for-work/custom-agents/agent-management#notify-api). +5. Enable **Clear End User Chat History** to automatically delete the agent's chat history for end users after a specified period. +6. Add **Memory Instructions**. Thread conversations are auto-summarized into memory; provide any additional information this agent should capture. Click **Regenerate** to regenerate the instruction. +7. Click **Publish** to proceed. -**Step 4: Publish** +#### Step 4: Publish See [Publishing Your Agent](#publishing-your-agent). After publishing, the agent appears in the **Autonomous Agent List** on the Admin Console. @@ -115,13 +171,11 @@ See [Publishing Your Agent](#publishing-your-agent). After publishing, the agent 2. Select the `.ZIP` file of the existing agent. 3. Click **Import**. The agent appears on the Autonomous Agents page. -You cannot directly import agents exported from Agent Platform. Only Autonomous Agents originally created and exported from the application can be imported using this feature. +You cannot directly import agents exported from Agent Platform. You can import only Autonomous Agents that the application originally created and exported. ### Usage -Trigger an Autonomous Agent from the **Compose bar** > **Agents** > **agent tab**. Users engage in natural conversations — the agent understands context, processes requests, and provides relevant responses based on its configured capabilities. - -![Agent in use](/ai-for-work/custom-agents/images/Advance_Agentic_App_5.png) +Trigger an Autonomous Agent from the **Compose bar** > **Agents** > **agent tab**. Users engage in natural conversations: the agent understands context, processes requests, and provides relevant responses based on its configured capabilities. --- @@ -150,8 +204,8 @@ Prompt Agents collect specific user inputs as variables to customize prompts, en Prompt agents operate using two components: -- **User-Collected Inputs**: User inputs are incorporated into the prompt as variables to generate the required response. For example, a job description (JD) is created using user inputs about experience, responsibilities, and required skills. -- **Administrator-Uploaded Knowledge**: Administrators upload a file used as a template. For example, a JD is generated based on user-provided inputs and a pre-uploaded template that ensures consistency and formatting. +- **User-Collected Inputs**: The prompt incorporates user inputs as variables to generate the required response. For example, the agent creates a job description (JD) using user inputs about experience, responsibilities, and required skills. +- **Administrator-Uploaded Knowledge**: Administrators upload a file used as a template. For example, the agent generates a JD based on user-provided inputs and a pre-uploaded template that ensures consistency and formatting. ### Import an Existing Prompt Agent @@ -193,7 +247,7 @@ Configure the following sections in the Sources step. ![Field type selection](/ai-for-work/custom-agents/images/content_field_type_gpt.png) -4. Toggle **Mandatory** if the field is required, then click **Done**. +4. Toggle **Mandatory** if users must complete the field, then click **Done**. 5. In the **Parameters** section, fields are pre-populated based on the agent's purpose. Click **+Add field** to add more. 6. For each parameter field, enter a name, placeholder text, and a **Description** that explains the field's purpose in detail — this helps the LLM identify and pre-populate the field from natural language queries. For example, if you need a field for organizational departments, name it and describe that it accepts internal department names so the LLM can match it from queries. 7. Select the **Field type**: single-line, multiline, single-select, multi-select, number, or file upload. @@ -209,7 +263,7 @@ Configure the following sections in the Sources step. ![Knowledge upload](/ai-for-work/custom-agents/images/Knowledge_gpt.png) - If the file size exceeds the model's context limit, an error is displayed listing affected models. When the limit is exceeded, all uploaded knowledge files are referenced for answering but not for generation. + If the file size exceeds the model's context limit, the platform displays an error listing affected models. When the file size exceeds the limit, the agent references all uploaded knowledge files for answering but not for generation. 2. Select the model from the **Model selection** drop-down. To learn more, see [LLM Configuration](/ai-for-work/llm-configuration). @@ -231,7 +285,7 @@ Code Interpreter is available only for models that support code interpretation. ##### Prompts -A default prompt is auto-generated based on the purpose defined earlier and can be customized using variables. For example, a "Job Finder" purpose generates a prompt with fields like Company Name, Job Title, and Responsibilities. +The platform auto-generates a default prompt based on the purpose defined earlier, and you can customize it using variables. For example, a "Job Finder" purpose generates a prompt with fields like Company Name, Job Title, and Responsibilities. Enable **Show to users** to display the prompt to end users. Select **Read-only** or **Editable**. @@ -242,7 +296,7 @@ For agents that offer multiple prompt options, click **+ Add another prompt** to When multiple prompts exist, a **Prompt Selector** field appears for end users: 1. Click the edit option or anywhere in the prompt area to expand available options. -2. Edit the prompt selector's field name and optional placeholder text. The Mandatory toggle is enabled by default and cannot be modified. +2. Edit the prompt selector's field name and optional placeholder text. The Mandatory toggle is on by default, and you cannot modify it. 3. The **Prompt Options** list shows all created prompts — drag and drop to reorder. 4. Click **Done**. @@ -259,22 +313,22 @@ To allow users to generate multiple responses: #### Step 3: Business Rules -Set rules to fill entities automatically when specific keywords are detected, controlling entity selection and response behavior. Configure either: +Set rules to fill entities automatically when the agent detects specific keywords, controlling entity selection and response behavior. Configure either: - **Entity Rule**: Automatically adds entities to queries based on detected keywords, even if the user doesn't mention them explicitly. -- **Answering Rule**: Controls and customizes responses when specific conditions or keywords are met. +- **Answering Rule**: Controls and customizes responses when a query meets specific conditions or keywords. ![Business Rules](/ai-for-work/custom-agents/images/Business_Rule.png) #### Step 4: Appearance and Behavior -A list of sample queries is displayed. Click **+ Add Query** to add more. Enable **Clear End-User Chat History** to automatically delete the agent's chat history after a specified period. Click **Publish** to proceed. +The platform displays a list of sample queries. Click **+ Add Query** to add more. Enable **Clear End-User Chat History** to automatically delete the agent's chat history after a specified period. Click **Publish** to proceed. ![Appearance and Behavior](/ai-for-work/custom-agents/images/preview.png) ##### Memory Instruction -When Personalisation and Memory is enabled for the account, a **Memory Instruction** section appears in the Appearance and Behavior step. +When an administrator enables Personalisation and Memory for the account, a **Memory Instruction** section appears in the Appearance and Behavior step. The platform generates a default memory instruction based on the agent description and variables (for prompt agents). This instruction controls what context the agent retains across conversation threads. @@ -282,7 +336,7 @@ The platform generates a default memory instruction based on the agent descripti - Add variables to the instruction for dynamic memory capture. - Click **Regenerate** to generate a new instruction based on the current agent description and variables. -If no memory instruction is defined, the platform saves a default summary for all threads associated with this agent. +If no memory instruction exists, the platform saves a default summary for all threads associated with this agent. #### Step 5: Publish @@ -292,7 +346,7 @@ See [Publishing Your Agent](#publishing-your-agent). Users submit queries to initiate interaction. The agent processes inputs and provides contextually relevant responses. Users can upload files (.pdf, .docx, .csv, .xls) or provide URLs — the system processes content and generates summaries, reports, or insights. -When multi-response is enabled, users select **Additional Response** to generate additional outputs. Each response can use the **initial input** or the **output from a previous response** as its input source, enabling chained workflows for multiple perspectives or output formats. +When you enable multi-response, users select **Additional Response** to generate additional outputs. Each response can use the **initial input** or the **output from a previous response** as its input source, enabling chained workflows for multiple perspectives or output formats. --- @@ -344,7 +398,7 @@ Provide the following details (available in the Search AI app under **Manage** > | Field | Description | |-------|-------------| -| **URL** | Search AI instance URL where the application is hosted | +| **URL** | Search AI instance URL that hosts the application | | **App ID** | Application ID of the Search AI app | | **Client ID** | Client credentials generated for interaction with the RAG Agent | | **Client Secret ID** | Secret key generated for secure interaction | @@ -352,7 +406,7 @@ Provide the following details (available in the Search AI app under **Manage** > ##### Scoping Sources -After successful authentication, the platform displays all available sources from the linked Search AI app across three tabs: **Websites**, **File Uploads**, and **Connectors**. By default, all sources are selected. +After successful authentication, the platform displays all available sources from the linked Search AI app across three tabs: **Websites**, **File Uploads**, and **Connectors**. By default, the platform selects all sources. Deselect specific sources within each tab to limit the Search Agent to only the content relevant to this agent's purpose. Click **Done** to confirm. The configuration screen then reflects the linked Search AI app with only the scoped sources applied. @@ -375,8 +429,8 @@ Use the **Tenant ID** shown in the configuration screen during AWS data accessor | **Application ID** | Unique identifier of your Amazon Q Business application | | **Retriever ID** | Unique identifier of your Amazon Q Business retriever | | **Access Resource Name** | ARN for secure access to Amazon Q resources | -| **Application Location** | AWS region where your Amazon Q Business application is deployed | -| **IDC Location** | AWS region where your AWS Identity Center instance is located | +| **Application Location** | AWS region that hosts your Amazon Q Business application | +| **IDC Location** | AWS region that contains your AWS Identity Center instance | ![Amazon Q fields](/ai-for-work/custom-agents/images/search_agents_3.png) @@ -413,7 +467,7 @@ API Agents integrate with legacy systems and external REST APIs using a no-code - Maximum 500 records per API call - Stable API endpoints with consistent data schema -**Systems of Records**: API Agents are designed for structured business data systems, including: +**Systems of Records**: API Agents target structured business data systems, including: - Customer Relationship Management (CRM) platforms - Enterprise Resource Planning (ERP) systems - Human Resources Information Systems (HRIS) @@ -480,7 +534,7 @@ The Schema API provides essential data structure information: field definitions, 1. On the **Schema API** tab, define the API manually or click **CURL Import**. 2. In the import pop-up, paste the URL and click **Import**. -3. Click **Run**. On success, click **Continue**. If an error occurs, an appropriate message is displayed. +3. Click **Run**. On success, click **Continue**. If an error occurs, the platform displays an appropriate message. Authorization in the CURL URL overrides the previous user auth selection. @@ -525,7 +579,7 @@ Configure each selected field: 1. Click **+** in the Field Options column. 2. Enter **Map Value** (sent to the API) and **Map Label** (displayed to users) for each option. - - If the schema API is mapped: click **Map Value** and **Map Label** to select JSON fields; remaining choices auto-populate. + - If you mapped the schema API: click **Map Value** and **Map Label** to select JSON fields; remaining choices auto-populate. - If not mapped: enter values manually for each choice. 3. Close the pop-up. @@ -544,7 +598,7 @@ Configure each selected field: ![Sample Input](/ai-for-work/custom-agents/images/agent(29).png) -5. Output Fields are displayed. Close the pop-up. The ID resolver is now displayed. +5. The platform displays the output fields. Close the pop-up. The ID resolver now appears. ![ID Resolver](/ai-for-work/custom-agents/images/agent(26).png) @@ -552,9 +606,9 @@ Configure each selected field: **Dictionary** -If API support is unavailable, use a Dictionary as a local data store to map and resolve IDs or metadata. Dictionaries cache API-fetched data for fast local queries, reduce repeated API calls, support scheduled updates, and can be shared across agents in the same account. +If API support is unavailable, use a Dictionary as a local data store to map and resolve IDs or metadata. Dictionaries cache API-fetched data for fast local queries, reduce repeated API calls, support scheduled updates, and work across agents in the same account. -To use an existing dictionary: toggle **Use Dictionary**, select the dictionary, and click **Run**. Output fields are displayed. +To use an existing dictionary: toggle **Use Dictionary**, select the dictionary, and click **Run**. The platform displays the output fields. ![Use Dictionary toggle](/ai-for-work/custom-agents/images/agent(21).png) @@ -569,13 +623,13 @@ To create a new Dictionary: ![Name and API tab](/ai-for-work/custom-agents/images/agent(9).png) -4. Click **Run API**. The Field Selection tab is displayed. -5. Select the fields to be searched, the **ID resolver field**, the **Schedule to Pool data** frequency, and the **meta resolver field**. +4. Click **Run API**. The Field Selection tab appears. +5. Select the searchable fields, the **ID resolver field**, the **Schedule to Pool data** frequency, and the **meta resolver field**. ![Field Selection tab](/ai-for-work/custom-agents/images/agent(17).png) 6. Click **Pool data into the dictionary**. The Preview tab displays the pooled data. -7. Click **Done**. The dictionary is saved. +7. Click **Done**. The platform saves the dictionary. **Preview** @@ -597,10 +651,10 @@ Displays the first five processed records with an option to load more. Optionall Define which fields are available for querying and filtering: -1. In the **Allow Query** column, select queryable fields (all are selected by default). +1. In the **Allow Query** column, select queryable fields (the platform selects all by default). 2. Check **Allow multiple values** for fields that support multi-value queries. -3. Check **Mandatory** for fields that users must specify before data is returned. This option is disabled if the corresponding Allow Query field is not selected. -4. Edit **Field_Filter_Key** if the key differs between push and retrieval operations. Keys are generated based on the API response. +3. Check **Mandatory** for fields that users must specify before the API returns data. This option remains unavailable unless you select the corresponding Allow Query field. +4. Edit **Field_Filter_Key** if the key differs between push and retrieval operations. The platform generates keys based on the API response. 5. Click **Configure** to generate sample queries based on the field filter settings. 6. Click **Upload API documentation**, paste the API documentation, and click **Save**. Query parameters are auto-populated. 7. Click **Sample Query** to extract variables. @@ -608,10 +662,10 @@ Define which fields are available for querying and filtering: - **GET**: Configure the query parameters section (editable inline). Add additional parameters as needed. - **POST**: Configure the body payload. - Ensure the configuration includes only variables in place of entities. This allows APIs to be dynamically generated at runtime. + Ensure the configuration includes only variables in place of entities. This allows the platform to generate APIs dynamically at runtime. 9. Click **Run** to generate the configuration builder script. The script runs on the sample query and displays the API response. -10. Click **Run Queries** to test all generated queries. Success or error messages are displayed per query. +10. Click **Run Queries** to test all generated queries. The platform displays a success or error message per query. 11. Optionally, click **Script** to view and edit failed queries. You can proceed without fixing — only successful and similar queries works after publishing. 12. Click **Continue**. @@ -619,8 +673,8 @@ Define which fields are available for querying and filtering: Enhance the agent's response behavior with keyword-based rules: -- **Entity Rule**: Automatically adds entities to queries when specific keywords are detected. *Example*: Interpreting "active deals" as deals in stages "presentation," "working progress," or "contract in progress." -- **Answering Rule**: Controls and customizes responses when specific conditions are met. *Example*: Responding with "contact sales" for any pricing-related questions. +- **Entity Rule**: Automatically adds entities to queries when the agent detects specific keywords. *Example*: Interpreting "active deals" as deals in stages "presentation," "working progress," or "contract in progress." +- **Answering Rule**: Controls and customizes responses when a query meets specific conditions. *Example*: Responding with "contact sales" for any pricing-related questions. Click the rule type, enter the rule, click **Activate**, then **Continue**. @@ -651,7 +705,7 @@ The configuration script is an [IIFE](https://developer.mozilla.org/en-US/docs/G **Parameter structures**: -- **queryParams**: Array of objects — `{ key: 'jql', value: '...', enabled: true }`. Elements with `enabled: false` are ignored. +- **queryParams**: Array of objects — `{ key: 'jql', value: '...', enabled: true }`. The platform ignores elements with `enabled: false`. - **headers**: Same structure as `queryParams` — `{ key: 'Content-Type', value: 'application/json', enabled: true }`. - **body**: The JSON payload expected by the API. @@ -773,9 +827,9 @@ The Finance Advisor demonstrates a four-step Agentic Flow: | 3. Client Information and Risk | Prompt Agent | Performs risk evaluation and develops hold/sell recommendations based on consolidated data from previous steps | | 4. Compose an Email | Prompt Agent | Generates a professional email synthesizing all analyses and recommendations | -To access: search for the agent name on the Home page. Each step can be added, edited, deleted, or reordered. Click **Start** to execute the sequence. +To access: search for the agent name on the Home page. You can add, edit, delete, or reorder each step. Click **Start** to execute the sequence. -The generated email can be edited and customized before sending to meet specific communication requirements and organizational standards. +You can edit and customize the generated email before sending to meet specific communication requirements and organizational standards. --- @@ -951,7 +1005,7 @@ Agent Flows use input and output variables to control data flow: - **Input Variables**: Provide initial data to the agent flow. - **Output Variables**: Store and return derived values from the flow. Define output variables to capture the results you want the agent to return. -Variables defined in the Workflow Flow are automatically displayed in AI for Work, enabling transparent data exchange between the agent and the connected platform. +AI for Work automatically displays variables defined in the Workflow Flow, enabling transparent data exchange between the agent and the connected platform. ### User Interaction @@ -1041,7 +1095,7 @@ Values handled at runtime in two ways: Toggle the **Enable** switch on a tool to activate or deactivate it without removing the configuration. This allows temporary deactivation while preserving settings. - **Enabled**: The agent can invoke the tool during interactions. -- **Disabled**: The agent cannot use the tool, but the configuration is retained. +- **Disabled**: The agent cannot use the tool, but the platform retains the configuration. ### End-User Experience @@ -1052,7 +1106,7 @@ When a user triggers an MCP Agent: 3. Values extracted from the user's query via entity extraction are pre-filled. 4. The **Continue** button remains disabled until all mandatory fields are complete. 5. When the user clicks **Continue**, the agent executes the corresponding MCP action. -6. Results are displayed as a natural language response. +6. The platform displays results as a natural language response. **Example — Sending an Email via MCP Agent**: @@ -1087,7 +1141,7 @@ When a user triggers an MCP Agent: **Handling Connection Updates**: -When an MCP connection is refreshed with new tools or modified schemas, manually update affected agents: +When you refresh an MCP connection with new tools or modified schemas, manually update affected agents: 1. Refresh the MCP connection. 2. Navigate to the affected agent and click **Edit**. @@ -1104,7 +1158,7 @@ When an MCP connection is refreshed with new tools or modified schemas, manually The Model Context Protocol (MCP) is an open standard that enables AI Agents to interact with external tools, data, and services through a standardized interface. - **Without MCP**: Each tool integration requires separate, custom logic per system. -- **With MCP**: All systems are accessed through a single, consistent interface — dramatically simplifying development and reducing complexity. +- **With MCP**: You access all systems through a single, consistent interface, which dramatically simplifies development and reduces complexity. ### Key Features @@ -1129,7 +1183,7 @@ The Model Context Protocol (MCP) is an open standard that enables AI Agents to i - Created under **Connections** in the **Account Hub**. - Accessible across all workspaces, including personal workspaces. -- When viewed from within a workspace: displayed in read-only mode; authentication profiles and URLs are hidden for security. +- When you view them from within a workspace: they appear in read-only mode, and the platform hides authentication profiles and URLs for security. ![Account-level connections](/ai-for-work/custom-agents/images/mcp-connections-account-level.png) @@ -1161,7 +1215,7 @@ MCP servers may update tools or schemas over time. To retrieve updates: The system fetches the updated tool list and displays any schema changes. -Dynamic MCP server updates are not reflected automatically. Manually reconfigure the MCP connection and reselect tools in affected agents to apply updates. +The platform does not reflect dynamic MCP server updates automatically. Manually reconfigure the MCP connection and reselect tools in affected agents to apply updates. **Viewing Tool Details**: @@ -1182,7 +1236,7 @@ Each tool in a connection displays: 2. Update server endpoints, authentication credentials, or custom headers. 3. Click **Save**. The system validates the updated configuration and retrieves the current tool list. -Account-level connections cannot be edited from the workspace view. Access them from the account-level Connections section. +You cannot edit account-level connections from the workspace view. Access them from the account-level Connections section. **Deleting a Connection**: @@ -1240,69 +1294,11 @@ All agent types share the same publishing options, configured in the final step - **Limited Users**: Grant access to specific workspace users or groups defined in workspace publish settings. **Enablement Type** — Configure how users interact with the agent: -- **Always Enabled**: The agent remains active and cannot be disabled by users. +- **Always Enabled**: The agent remains active, and users cannot disable it. - **Users Choice**: Users can enable or disable the agent as needed. Click **Publish** to make the agent available. It appears in the corresponding agent list on the Admin Console. -Publishing options are defined in Workspace settings. See [Workspace](/ai-for-work/administration/account-and-workspace#workspaces) for additional information. - ---- - -## Agent Management - -### Versioning - -Track changes to agent configurations: - -- View version history -- Compare versions -- Roll back to previous versions -- Tag versions for releases - -### Access Control - -Configure who can access and modify agents: - -| Role | Permissions | -|------|-------------| -| **Owner** | Full control, delete | -| **Editor** | Modify configuration | -| **Viewer** | View only | -| **User** | Interact with deployed agent | - -### Monitoring - -Track agent performance: - -- Conversation volume -- Response quality metrics -- Error rates -- User satisfaction - ---- - -## Best Practices - -### Instructions - -- Be specific about agent scope and limitations. -- Include examples of good responses. -- Define escalation paths for edge cases. -- Specify tone and communication style. - -### Knowledge - -- Keep knowledge sources up to date. -- Use specific source filtering for accuracy. -- Test retrieval quality regularly. -- Monitor for outdated information. - -### Testing - -- Test edge cases and error scenarios. -- Validate tool integrations. -- Check guardrail effectiveness. -- Get feedback from target users. +Workspace settings define the publishing options. See [Workspace](/ai-for-work/administration/account-and-workspace#workspaces) for additional information. --- \ No newline at end of file diff --git a/ai-for-work/custom-agents/agent-management.mdx b/ai-for-work/custom-agents/agent-management.mdx index bb08939f6..ece38f6a7 100644 --- a/ai-for-work/custom-agents/agent-management.mdx +++ b/ai-for-work/custom-agents/agent-management.mdx @@ -53,20 +53,21 @@ The panel includes utility features for response management, including copy func ## Version Control -The Agent Version Control system allows you to safely develop and test agent configurations without affecting your live, published agents. This dual-version approach ensures production stability while enabling continuous improvement and experimentation. +The Agent Version Control system allows you to safely develop and test agent configurations without affecting your live, published agents. Each agent maintains a complete version history, so you can publish named versions, preview earlier configurations, and restore any version as a new draft. ![Details and Purpose](/ai-for-work/custom-agents/images/agent_version_1.png "Details and Purpose") -### Two-Version System +### Version Types -Every agent maintains two distinct versions: +Every agent maintains one draft version and one published version at a time, along with a history of earlier versions: | Version | Description | |---|---| -| **Draft Version** | Contains your latest edits and modifications. | +| **Draft Version** | Contains your latest edits and modifications. Only one draft version can exist at a time. | | **Published Version** | The live version accessible to end users. | +| **Earlier Versions** | Previously published versions preserved in Version History. | -This separation ensures that experimental changes do not impact the production environment until you are ready to deploy them. +This separation ensures that experimental changes do not impact the production environment until you are ready to deploy them. An agent can contain a maximum of 50 versions, including the draft and published versions. ### Making Changes @@ -98,14 +99,62 @@ To abandon draft modifications: To deploy your draft modifications: -1. Click **Publish** in the banner. -2. You are redirected to the **Publish** screen. -3. Review the **Include unpublished changes for publishing** checkbox: - * **Checked (Default)** — Publishes your draft version with all modifications. - * **Unchecked** — Only applies user list updates, keeping draft changes separate. +1. Click **Publish** in the banner. You are redirected to the **Publish** screen. The button label depends on your changes: + * **Publish**: Appears when you change the agent configuration. Clicking it opens a popup that requests version details. + * **Update**: Appears when you change only the members or publish list. Clicking it updates the publish list without creating a new version or showing the version popup. +2. In the version popup, review the version details: + * **Version Name**: Auto-filled as "Version ". You can edit the name. + * **Description**: Optional. +3. Click **Publish** to create the new version and deploy it to end users. ![Details and Purpose](/ai-for-work/custom-agents/images/agent_version_2.png "Details and Purpose") +### Version History + +Version History lists every version of an agent so you can review, restore, or preview earlier configurations. + +To open Version History: + +1. Open the agent options menu. +2. Select **Version History**. + +Each version card displays the version name, description, the user who created it, and the creation time. The published version carries a **Published** tag, and the draft version carries a **Draft** tag. + +Any change you make on top of the published version is autosaved as a draft. The platform names the auto-created draft "Draft" with no description. + +### Version Actions + +Every version supports the following actions: + +| Action | Description | Exceptions | +|---|---|---| +| **Edit** | Modify the version name and description. | None | +| **Delete** | Remove the version from Version History. | The published version cannot be deleted. | +| **Restore** | Recreate the version as a new draft. | Draft and published versions do not show the Restore option. | + +### Restoring a Version + +Restoring a version creates a new draft from that version's configuration: + +* The platform names the restored draft "Copy ". If the restored version is itself a copy, the name chains. For example, restoring "Copy Version 3" creates "Copy Copy Version 3". +* The draft description reads "This is a copy of ", followed by the original version's description. +* If a draft already exists, a confirmation popup warns that the restore overrides the existing draft. If no draft exists, a standard confirmation popup appears before the restore. +* A restored version remains a draft. You must publish it explicitly to make it the published version. + +### Version Limit + +An agent can contain a maximum of 50 versions, including the published and draft versions. When an agent reaches the limit, publishing or restoring a version displays a popup stating that you must delete an existing version before the action can proceed. Delete at least one version, then retry the action. The published version cannot be deleted. + +### Previewing a Version + +Clicking **Version History** opens the agent in preview mode. A visual indicator confirms that you are previewing and not editing. + +* The agent loads in a read-only state. You cannot edit the configuration while previewing a version. +* Click any version in the panel to load that version's configuration into the left panel. +* You can navigate to any page within the agent, and each page loads the selected version's configuration. +* While you preview a version that is neither the draft nor the published version, a **Restore** button appears at the top. Clicking **Restore** restores the previewed version as a draft and follows the same confirmation rules. +* Exiting preview mode without taking an action returns you to the normal editing view in your current draft state, or the published state if no draft exists. Preview mode is non-destructive; nothing changes unless you explicitly restore a version. + --- ## Agent Options @@ -119,6 +168,7 @@ Manage your agent's deployment, data, and availability post-publication. Agent o | Action | Description | |---|---| | **Export Agent** | Download agent configuration and associated data. | +| **Version History** | View, preview, and restore earlier versions of the agent. | | **Delete Agent** | Permanently remove the application. | | **Share** | Grant workspace members access to collaborate on and manage the agent. | diff --git a/ai-for-work/getting-started/how-to-use.mdx b/ai-for-work/getting-started/how-to-use.mdx index 26ed1ec7a..47aeb8734 100644 --- a/ai-for-work/getting-started/how-to-use.mdx +++ b/ai-for-work/getting-started/how-to-use.mdx @@ -15,6 +15,8 @@ This document covers the key features available to end users in the AI for Work |-----------------------------------------------|-------------------------------------------------------------------------------------------| | [Enterprise Search](#enterprise-search) | Dedicated enterprise search experience alongside Chat. | | [Agents and Flows](#agents-and-flows) | Connect with existing agents, create custom agents, and build automated flows | +| [Reasoning Thoughts](#reasoning-thoughts) | Follow the assistant's tool calls and reasoning while it works on your request | +| [Image Generation](#image-generation) | Generate images directly in assistant responses | | [Schedulers](#schedulers) | Create and manage automated schedules for agents and flows | | [Language Settings](#language-settings) | Set a preferred language for the platform interface | | [Enterprise Directory](#enterprise-directory) | Search employee contacts, view profiles, and explore the organization chart | @@ -119,6 +121,25 @@ Once you publish a flow, it appears in the Agents and Flows list and you can tri --- +## Reasoning Thoughts + +When a reasoning model processes your request, the assistant displays its work in real time and lets you review the full reasoning trace on demand. + +**While the assistant reasons** + +* Each tool call appears as a label on the left side in a loading state, and the labels update in real time as the assistant makes new tool calls. +* Click any tool call label to open a right-side panel that displays the complete execution flow, including every tool execution label with its description and current status. +* The panel renders details based on the tool type: code execution shows the input and output, web search shows the fetched website results, and other tools display their respective execution details and responses. + +**After the response completes** + +* A collapsed accordion appears, summarizing the total reasoning time. +* Click the accordion to reopen the right-side panel and review the entire reasoning effort and tool execution flow. + +The full reasoning trace is available only on demand, keeping the main chat view clean by default. + +--- + ## Schedulers The Schedulers feature provides a centralized location to create, manage, and monitor automated schedules for agents, flows, and platform modes. @@ -244,6 +265,14 @@ Filters you apply on the Organization Chart highlight only the cards matching th | **Collapse** | Collapses the entire chart to show only the top-level card | | **Full View** | Opens the chart in full-screen mode with all interactions available | +**Unassigned Employees** + +When at least one employee without a reporting manager exists in the directory, the chart displays a **Show unassigned employees** checkbox. If every employee has a reporting manager, the checkbox does not appear. + +* Select the checkbox to navigate to the **Unassigned Employees** section, regardless of your current position in the chart. The section appears visually distinct when first revealed. +* The section lists every employee without a reporting manager. Employees with reportees display an expandable indicator; select the indicator to show their direct reports inline. The layout adjusts dynamically to accommodate expanded lists. Employees without reportees are not expandable. +* To dismiss the section, select the close button within the section or clear the checkbox. Both actions remove the section from view and clear the checkbox. + --- ## Personalisation and Memory @@ -278,7 +307,7 @@ For new users, the context section displays: "Your context is being generated an The platform periodically identifies people you work with from connected business applications and displays them with a colored border. These may change when the platform repopulates the list. -You can also manually add people. Manually added people are never removed and display with a black border. Add internal people by selecting from the directory, or add external people by entering an email address. +You can also manually add people. The platform never removes manually added people, and they display with a black border. Add internal people by selecting from the directory, or add external people by entering an email address. **Custom Instructions** @@ -302,17 +331,17 @@ Each conversation thread generates a memory entry. The platform captures memory - **Key Insights Captured**: Important insights from the conversation and what they imply about you. - **Actions & Decisions**: Key actions performed and decisions you made. -If a memory instruction was defined during agent creation, the platform considers it when generating thread-level memory for threads where that agent was used. +If the agent creator defined a memory instruction during agent creation, the platform considers it when generating thread-level memory for threads that used that agent. **View and manage memory** - View memory entries in a timeline view. - Filter memory entries by agent (filter options include all agent names, as well as Work, Web, and AI Model). - Search across all stored memories. -- Delete individual memory entries. Deleted memories are not referenced in future chats. +- Delete individual memory entries. The assistant does not reference deleted memories in future chats. - Clear all memory from the overflow menu. -If you delete a conversation thread, the associated memory entry is also deleted. +If you delete a conversation thread, the platform also deletes the associated memory entry. **Referencing past interactions** diff --git a/ai-for-work/llm-configuration.mdx b/ai-for-work/llm-configuration.mdx index fc0fbaf72..c6e7f81a4 100644 --- a/ai-for-work/llm-configuration.mdx +++ b/ai-for-work/llm-configuration.mdx @@ -21,7 +21,7 @@ AI for Work integrates with OpenAI, Azure OpenAI, Google Gemini, Amazon Bedrock, | **Azure OpenAI** | `gpt-5.5`, `gpt-5.2`, `gpt-5.1`, `gpt-5`, `gpt-5-mini`, `gpt-5-nano`, `gpt-4.1`, `gpt-4.1-mini`, `gpt-4o`, `o3`, `o3-mini`, `o4-mini` | Azure Portal / Azure OpenAI Service | Enterprise deployments requiring Azure infrastructure, compliance, and enhanced security | | **Google Gemini** | `gemini-3.5-flash`, `gemini-3.1-flash-lite`, `gemini-3-pro` (preview), `gemini-3-flash` (preview), `gemini-2.5-pro` (recommended), `gemini-2.5-flash` (recommended), `gemini-2.5-flash-lite` | Google Vertex AI / Gemini Studio | Multi-modal tasks, fast responses, Google Cloud deployments | | **Amazon Bedrock** | `anthropic.claude-3-5-sonnet-20241022-v2:0`, `anthropic.claude-opus-4-20250514-v1:0`, `amazon.nova-pro-v1:0`, `meta.llama4-maverick-17b-instruct-v1:0`, `deepseek.r1-v1:0` | AWS IAM Role ARN / Access Key | Organizations on AWS infrastructure requiring access to a broad catalog of third-party models through a unified API | -| **Anthropic** | `claude-opus-4-7`, `claude-opus-4-6`, `claude-opus-4-5-20251101`, `claude-opus-4-1-20250805`, `claude-opus-4-20250514`, `claude-sonnet-4-6`, `claude-sonnet-4-5-20250929`, `claude-sonnet-4-20250514`, `claude-haiku-4-5-20251001` | Anthropic API key | Advanced reasoning, long-context workflows, coding agents, agentic tasks | +| **Anthropic** | `claude-fable-5`, `claude-opus-4-8`, `claude-opus-4-7`, `claude-opus-4-6`, `claude-opus-4-5-20251101`, `claude-opus-4-1-20250805`, `claude-opus-4-20250514`, `claude-sonnet-5`, `claude-sonnet-4-6`, `claude-sonnet-4-5-20250929`, `claude-sonnet-4-20250514`, `claude-haiku-4-5-20251001` | Anthropic API key | Advanced reasoning, long-context workflows, coding agents, agentic tasks | Legacy OpenAI models (`gpt-4-turbo`, `gpt-4`, `gpt-3.5-turbo` variants) support basic function calling only and do not support native tools such as RAG, web search, or code execution. `gemini-2.0-flash` and `gemini-2.0-flash-lite` are deprecating; migrate to `gemini-2.5` or later models. @@ -34,8 +34,8 @@ Select a tier based on task complexity and cost requirements. | Tier | Best For | Example Models | |------|----------|----------------| | **Basic** | High-volume, straightforward tasks: classification, simple Q&A, routine inquiries | `gpt-4o-mini`, `gemini-2.5-flash`, `gemini-2.5-flash-lite`, `gemini-3.1-flash-lite`, `amazon.nova-lite-v1:0`, `claude-haiku-4-5-20251001` | -| **Standard** | Complex reasoning, multi-step workflows, deeper contextual understanding (recommended default for all system prompts and orchestrators) | `gpt-4.1`, `gpt-4o`, `gemini-2.5-pro`, `gemini-3.5-flash`, `anthropic.claude-3-5-sonnet-20241022-v2:0`, `amazon.nova-pro-v1:0`, `claude-sonnet-4-6`, `claude-sonnet-4-5-20250929`, `claude-sonnet-4-20250514` | -| **Premium** | Advanced reasoning and complex problem-solving requiring maximum AI capability | `gpt-5`, `gpt-5.1`, `gpt-5.2`, `gpt-5.5`, `o3`, `o4-mini`, `gemini-3-pro`, `anthropic.claude-opus-4-20250514-v1:0`, `claude-opus-4-7`, `claude-opus-4-6`, `claude-opus-4-5-20251101`, `claude-opus-4-1-20250805`, `claude-opus-4-20250514` | +| **Standard** | Complex reasoning, multi-step workflows, deeper contextual understanding (recommended default for all system prompts and orchestrators) | `gpt-4.1`, `gpt-4o`, `gemini-2.5-pro`, `gemini-3.5-flash`, `anthropic.claude-3-5-sonnet-20241022-v2:0`, `amazon.nova-pro-v1:0`, `claude-sonnet-5`, `claude-sonnet-4-6`, `claude-sonnet-4-5-20250929`, `claude-sonnet-4-20250514` | +| **Premium** | Advanced reasoning and complex problem-solving requiring maximum AI capability | `gpt-5`, `gpt-5.1`, `gpt-5.2`, `gpt-5.5`, `o3`, `o4-mini`, `gemini-3-pro`, `anthropic.claude-opus-4-20250514-v1:0`, `claude-fable-5`, `claude-opus-4-8`, `claude-opus-4-7`, `claude-opus-4-6`, `claude-opus-4-5-20251101`, `claude-opus-4-1-20250805`, `claude-opus-4-20250514` | ### Tool Support by Provider @@ -122,6 +122,43 @@ Use this option for proprietary or self-hosted models exposed via API. 8. Accept the **Policy Guidelines** and click **Save**. 9. Confirm the integration appears as active in the **General LLM Integrations** list. +### Model Parameters + +Each LLM connection exposes a parameter configuration section, so you can tune model behavior per connection. The section applies to **OpenAI**, **Azure OpenAI**, **Google Gemini**, and **Anthropic** connections. + +The interface matches each parameter to an appropriate control: + +| Control | Used For | Behavior | +|---------|----------|----------| +| **Slider** | Continuous numeric parameters | Displays the current value next to the control. Minimum, maximum, and step values are set per parameter and per provider. For example, Temperature ranges from 0 to 2 for OpenAI and from 0 to 1 for Anthropic and Gemini. | +| **Dropdown** | Discrete or enumerated parameters | Lists the valid options for the selected model. | +| **Toggle** | Boolean parameters | Switches the parameter on or off. | + +The following parameters are configurable where the selected provider and model support them: + +| Parameter | Control | Availability | +|-----------|---------|--------------| +| **Temperature** | Slider | All providers | +| **Top P** | Slider | All providers | +| **Top K** | Slider | Anthropic, Gemini | +| **Max Tokens** | Slider or numeric input | All providers | +| **Frequency Penalty** | Slider | OpenAI, Azure OpenAI | +| **Presence Penalty** | Slider | OpenAI, Azure OpenAI | +| **Reasoning Effort** | Dropdown | Models that support reasoning, such as OpenAI reasoning models and Anthropic extended thinking | +| **Response Format** | Dropdown | Models that support text, JSON, or JSON schema output | +| **Stop Sequences** | Tag input | All providers | +| **Streaming** | Toggle | All providers | +| **System Prompt** | Text area | All providers | + +**Behavior** + +* The interface shows only the parameters that the selected provider and model support. Unsupported parameters are hidden or disabled, with a tooltip explaining why. +* When you switch the model within a connection, the parameter section updates to reflect the new model's supported parameters and valid ranges. +* Each parameter includes a tooltip that explains its purpose and effect. +* **Reset to Default** restores a parameter, or all parameters, to the provider's recommended defaults. +* The platform pre-populates default values based on the selected provider and model when you create a new connection. +* The platform persists parameter values on save and loads them when you edit an existing connection. Existing connections without explicit parameter values continue to work with provider defaults. + ### Embedding Models Embedding models convert text into vector representations, enabling semantic search, similarity matching, and other AI-powered features. Unlike keyword search, embeddings capture meaning and context, producing more intelligent results. diff --git a/ai-for-work/release-notes/release-updates.mdx b/ai-for-work/release-notes/release-updates.mdx index f5b642907..9da87d1fe 100644 --- a/ai-for-work/release-notes/release-updates.mdx +++ b/ai-for-work/release-notes/release-updates.mdx @@ -5,6 +5,54 @@ sidebarTitle: Release Notes This document provides information about the latest feature updates and enhancements introduced in the recent release of the Platform. For previous updates, see release notes of [2025](/ai-for-work/release-notes/release-updates-2025). +## v1.19.0 July 13, 2026 + +This update includes new features and feature enhancements summarized below. + +

Run Skills in AI for Work

+ +AI for Work now brings **Skills** to autonomous agents. Add an agent, then upload a skill as a folder or .zip file to extend what the agent can do. Manage skill versions through version logs, and control streaming responses with a dedicated toggle. [Learn more→](/ai-for-work/custom-agents#autonomous-agent) + +

Agents as MCP Tools

+ +Administrators can now expose AI for Work agents as tools on MCP servers, making them available to Claude, ChatGPT, and other MCP-compatible clients. A new multi-step creation wizard configures the server identity, tools, authentication (API token or OAuth), and access limits. Add prebuilt agents, or search across workspaces to add custom agents with editable tool descriptions. End users can view every connected app on OAuth servers, revoke individual app access, and regenerate auth token URLs when needed. [Learn more→](/ai-for-work/assistant-configurations) + +

Organization Chart Enhancements

+ +The org chart now surfaces employees without a reporting manager. Select the **Show unassigned employees** checkbox to jump to a dedicated section listing them, and expand any employee with reportees to view direct reports inline. Administrators can also control the chart root and administrators can override this selection at any time. [Learn more→](/ai-for-work/administration/user-management#organization-chart) + +

Manage multiple versions of your agents

+ +Agents now support version history. Publish a version with a custom name and description, and the platform autosaves your ongoing changes as a single draft. Preview any version in read-only mode, restore an older version as a new draft, and manage up to 50 versions per agent. [Learn more→](/ai-for-work/custom-agents/agent-management) + +

Model Parameters for LLM Connections

+ +Each LLM connection now exposes a parameter configuration section. Adjust **Temperature**, **Top P**, **Max Tokens**, **Reasoning Effort**, **Stop Sequences**, and more using sliders, dropdowns, and toggles that match each parameter type. The interface shows only the parameters your selected provider and model support, tooltips explain each parameter, and a **Reset to Default** option restores recommended values. Existing connections continue to work with provider defaults. [Learn more→](/ai-for-work/llm-configuration) + +

Sync employee data with Google Service Accounts

+ +The Enterprise Directory now supports **Google Service Accounts** as a data source, alongside Microsoft, LDAP, and the Push API method. Connect a pre-configured Google service account to sync employee data automatically from your identity provider, keeping the directory and org chart current without manual uploads. [Learn more→](/ai-for-work/administration/user-management#enterprise-directory) + +

Announcements to User Groups

+ +Administrators can now send announcements to selected user groups instead of the entire account. Choose **Selected User Groups** alongside the existing **Everyone in Account** and **Agent Specific** options, then multi-select groups from the list. The interface displays the number of selected groups, and the announcement reaches every member of those groups. + +

Model Selection for Memory and Personalization

+ +Administrators can now select which LLM connection generates memory chunks and drives personalization features. The model selector activates when you enable at least one memory feature and lists all configured LLM connections. [Learn more→](/ai-for-work/getting-started/how-to-use#personalisation-and-memory) + +

Reasoning Thoughts and Tool Visibility

+ +When a reasoning model processes your request, the assistant now displays each tool call as a live label while it works. Click any label to open a side panel showing the complete execution flow, including code inputs and outputs and web search results. [Learn more→](/ai-for-work/getting-started/how-to-use#reasoning-thoughts) + +

New Model Support

+ +AI for Work now supports `Sonnet 5`, `Opus 4.8`, and `Fable 5`, expanding the model options available for your assistant and agents. [Learn more→](/ai-for-work/llm-configuration) + +

Generate images in assistant responses

+ +The assistant can now generate images directly in responses, so you can move from idea to visual without leaving the conversation. + --- ## v1.18.0 June 11, 2026 From c0a08e8fb7be458629d3e04bddd08fef88c8e46b Mon Sep 17 00:00:00 2001 From: siddharthmenon-7 Date: Tue, 14 Jul 2026 11:05:35 +0530 Subject: [PATCH 2/8] Fixed issue --- ai-for-work/custom-agents/agent-management.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ai-for-work/custom-agents/agent-management.mdx b/ai-for-work/custom-agents/agent-management.mdx index ece38f6a7..1702f30dd 100644 --- a/ai-for-work/custom-agents/agent-management.mdx +++ b/ai-for-work/custom-agents/agent-management.mdx @@ -103,7 +103,7 @@ To deploy your draft modifications: * **Publish**: Appears when you change the agent configuration. Clicking it opens a popup that requests version details. * **Update**: Appears when you change only the members or publish list. Clicking it updates the publish list without creating a new version or showing the version popup. 2. In the version popup, review the version details: - * **Version Name**: Auto-filled as "Version ". You can edit the name. + * **Version Name**: Auto-filled as "Version 'number'". You can edit the name. * **Description**: Optional. 3. Click **Publish** to create the new version and deploy it to end users. From 877405723383b838e2d972aacd0ea9ebf21e13b9 Mon Sep 17 00:00:00 2001 From: siddharthmenon-7 Date: Tue, 14 Jul 2026 11:15:10 +0530 Subject: [PATCH 3/8] Minor fixes --- ai-for-work/custom-agents/agent-management.mdx | 10 +++++----- ai-for-work/release-notes/release-updates.mdx | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ai-for-work/custom-agents/agent-management.mdx b/ai-for-work/custom-agents/agent-management.mdx index 1702f30dd..81433ff65 100644 --- a/ai-for-work/custom-agents/agent-management.mdx +++ b/ai-for-work/custom-agents/agent-management.mdx @@ -136,8 +136,8 @@ Every version supports the following actions: Restoring a version creates a new draft from that version's configuration: -* The platform names the restored draft "Copy ". If the restored version is itself a copy, the name chains. For example, restoring "Copy Version 3" creates "Copy Copy Version 3". -* The draft description reads "This is a copy of ", followed by the original version's description. +* The platform names the restored draft "Copy 'restored version name'". If the restored version is itself a copy, the name chains. For example, restoring "Copy Version 3" creates "Copy Copy Version 3". +* The draft description reads "This is a copy of 'restored version name'", followed by the original version's description. * If a draft already exists, a confirmation popup warns that the restore overrides the existing draft. If no draft exists, a standard confirmation popup appears before the restore. * A restored version remains a draft. You must publish it explicitly to make it the published version. @@ -326,7 +326,7 @@ When the bot encounters a situation requiring a pause (for example, awaiting an **Example hold template:** ```js -let sessionId = context.; +let sessionId = context.'uniqConversationId'; let response = { "type": "template", "payload": { @@ -397,7 +397,7 @@ The Notify API enables developers to send interactive notifications to users. Th | **Method** | POST | | **Endpoint** | `https://{{host}}/api/public/agents/{agentId}/notify` | | **Content-Type** | `application/json` | -| **Authorization** | `authorization: ` — The access token obtained from the agent settings page. | +| **Authorization** | `authorization: (authToken)` — The access token obtained from the agent settings page. | | **API Scope** | Notification | ### Path Parameters @@ -411,7 +411,7 @@ The Notify API enables developers to send interactive notifications to users. Th ```bash curl --location --request POST 'https://work.example.ai/api/1.1/public/agents/ag-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/notify' \ ---header 'authorization: ' \ +--header 'authorization: (YOUR_AUTH_TOKEN)' \ --header 'Content-Type: application/json' \ --data-raw '{ "to": "john.doe@example.com", diff --git a/ai-for-work/release-notes/release-updates.mdx b/ai-for-work/release-notes/release-updates.mdx index 9da87d1fe..4041bcf39 100644 --- a/ai-for-work/release-notes/release-updates.mdx +++ b/ai-for-work/release-notes/release-updates.mdx @@ -15,7 +15,7 @@ AI for Work now brings **Skills** to autonomous agents. Add an agent, then uploa

Agents as MCP Tools

-Administrators can now expose AI for Work agents as tools on MCP servers, making them available to Claude, ChatGPT, and other MCP-compatible clients. A new multi-step creation wizard configures the server identity, tools, authentication (API token or OAuth), and access limits. Add prebuilt agents, or search across workspaces to add custom agents with editable tool descriptions. End users can view every connected app on OAuth servers, revoke individual app access, and regenerate auth token URLs when needed. [Learn more→](/ai-for-work/assistant-configurations) +Administrators can now expose AI for Work agents as tools on MCP servers, making them available to Claude, ChatGPT, and other MCP-compatible clients. A new multi-step creation wizard configures the server identity, tools, authentication (API token or OAuth), and access limits. Add prebuilt agents, or search across workspaces to add custom agents with editable tool descriptions. End users can view every connected app on OAuth servers, revoke individual app access, and regenerate auth token URLs when needed. [Learn more→](/ai-for-work/assistant-configurations#mcp-server)

Organization Chart Enhancements

@@ -23,11 +23,11 @@ The org chart now surfaces employees without a reporting manager. Select the **S

Manage multiple versions of your agents

-Agents now support version history. Publish a version with a custom name and description, and the platform autosaves your ongoing changes as a single draft. Preview any version in read-only mode, restore an older version as a new draft, and manage up to 50 versions per agent. [Learn more→](/ai-for-work/custom-agents/agent-management) +Agents now support version history. Publish a version with a custom name and description, and the platform autosaves your ongoing changes as a single draft. Preview any version in read-only mode, restore an older version as a new draft, and manage up to 50 versions per agent. [Learn more→](/ai-for-work/custom-agents/agent-management#version-control)

Model Parameters for LLM Connections

-Each LLM connection now exposes a parameter configuration section. Adjust **Temperature**, **Top P**, **Max Tokens**, **Reasoning Effort**, **Stop Sequences**, and more using sliders, dropdowns, and toggles that match each parameter type. The interface shows only the parameters your selected provider and model support, tooltips explain each parameter, and a **Reset to Default** option restores recommended values. Existing connections continue to work with provider defaults. [Learn more→](/ai-for-work/llm-configuration) +Each LLM connection now exposes a parameter configuration section. Adjust **Temperature**, **Top P**, **Max Tokens**, **Reasoning Effort**, **Stop Sequences**, and more using sliders, dropdowns, and toggles that match each parameter type. The interface shows only the parameters your selected provider and model support, tooltips explain each parameter, and a **Reset to Default** option restores recommended values. Existing connections continue to work with provider defaults. [Learn more→](/ai-for-work/llm-configuration#model-parameters)

Sync employee data with Google Service Accounts

@@ -35,11 +35,11 @@ The Enterprise Directory now supports **Google Service Accounts** as a data sour

Announcements to User Groups

-Administrators can now send announcements to selected user groups instead of the entire account. Choose **Selected User Groups** alongside the existing **Everyone in Account** and **Agent Specific** options, then multi-select groups from the list. The interface displays the number of selected groups, and the announcement reaches every member of those groups. +Administrators can now send announcements to selected user groups instead of the entire account. Choose **Selected User Groups** alongside the existing **Everyone in Account** and **Agent Specific** options, then multi-select groups from the list. The interface displays the number of selected groups, and the announcement reaches every member of those groups. [Learn more→](/ai-for-work/assistant-configurations#announcements)

Model Selection for Memory and Personalization

-Administrators can now select which LLM connection generates memory chunks and drives personalization features. The model selector activates when you enable at least one memory feature and lists all configured LLM connections. [Learn more→](/ai-for-work/getting-started/how-to-use#personalisation-and-memory) +Administrators can now select the LLM connection that generates memory chunks and drives personalization features. The model selector activates when you enable at least one memory feature and lists all configured LLM connections. [Learn more→](/ai-for-work/getting-started/how-to-use#personalisation-and-memory)

Reasoning Thoughts and Tool Visibility

From 9502651bc11a5ab3cee7f3a43539b126f7da0ebf Mon Sep 17 00:00:00 2001 From: siddharthmenon-7 Date: Tue, 14 Jul 2026 12:27:29 +0530 Subject: [PATCH 4/8] RN changes --- ai-for-work/release-notes/release-updates.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ai-for-work/release-notes/release-updates.mdx b/ai-for-work/release-notes/release-updates.mdx index 4041bcf39..f7739c141 100644 --- a/ai-for-work/release-notes/release-updates.mdx +++ b/ai-for-work/release-notes/release-updates.mdx @@ -19,7 +19,7 @@ Administrators can now expose AI for Work agents as tools on MCP servers, making

Organization Chart Enhancements

-The org chart now surfaces employees without a reporting manager. Select the **Show unassigned employees** checkbox to jump to a dedicated section listing them, and expand any employee with reportees to view direct reports inline. Administrators can also control the chart root and administrators can override this selection at any time. [Learn more→](/ai-for-work/administration/user-management#organization-chart) +The org chart now surfaces employees without a reporting manager. Select the **Show unassigned employees** checkbox to jump to a dedicated section listing them, and expand any employee with reportees to view direct reports inline. Administrators can also control the chart root and administrators can override this selection at any time. [Learn more→](/ai-for-work/getting-started/how-to-use#organization-chart)

Manage multiple versions of your agents

@@ -27,7 +27,7 @@ Agents now support version history. Publish a version with a custom name and des

Model Parameters for LLM Connections

-Each LLM connection now exposes a parameter configuration section. Adjust **Temperature**, **Top P**, **Max Tokens**, **Reasoning Effort**, **Stop Sequences**, and more using sliders, dropdowns, and toggles that match each parameter type. The interface shows only the parameters your selected provider and model support, tooltips explain each parameter, and a **Reset to Default** option restores recommended values. Existing connections continue to work with provider defaults. [Learn more→](/ai-for-work/llm-configuration#model-parameters) +Each LLM connection now exposes a parameter configuration section. Adjust **Temperature**, **Top P**, **Max Tokens**, **Reasoning Effort**, **Stop Sequences**, and more using sliders, dropdowns, and toggles that match each parameter type. The interface shows only the parameters your selected provider and model support, tooltips explain each parameter, and a **Reset to Default** option restores recommended values. [Learn more→](/ai-for-work/llm-configuration#model-parameters)

Sync employee data with Google Service Accounts

From 7c2eb0bab6486d090978129cb2ef78e2eacb8ae4 Mon Sep 17 00:00:00 2001 From: siddharthmenon-7 Date: Tue, 14 Jul 2026 14:05:35 +0530 Subject: [PATCH 5/8] More updates --- ai-for-work/assistant-configurations.mdx | 12 +--------- ai-for-work/custom-agents.mdx | 11 +++------ .../images/autonomous-agent-v1-v2.png | Bin 0 -> 132555 bytes ai-for-work/release-notes/release-updates.mdx | 22 +++++++++--------- 4 files changed, 15 insertions(+), 30 deletions(-) create mode 100644 ai-for-work/custom-agents/images/autonomous-agent-v1-v2.png diff --git a/ai-for-work/assistant-configurations.mdx b/ai-for-work/assistant-configurations.mdx index 38eb0ee0c..410ae27bb 100644 --- a/ai-for-work/assistant-configurations.mdx +++ b/ai-for-work/assistant-configurations.mdx @@ -176,9 +176,6 @@ The Announcements feature lets administrators create, manage, and publish organi | **Description** | Up to 800 characters; supports bold, italic, underline, hyperlinks, colors, bullets, and numbered lists | | **Announcement Type** | Banner (currently the only option) | | **Publish To** | **Everyone in Account**, **Selected User Groups**, or **Agent Specific** | - - ![Announcement editor](/ai-for-work/assist-configuration/images/announcement_2.png) - 3. If you select **Selected User Groups**, the platform displays all available user groups. Select one or more groups from the list; the interface displays the number of selected groups. The published announcement is visible to every user who belongs to the selected groups. ### Actions @@ -377,14 +374,7 @@ To edit a tool description, hover over a custom tool and select **Edit descripti To remove a custom tool, hover over the tool and select the remove option. To add a removed tool again, select **+ Tool** and select it from the **Add agents** panel. -**Auth settings** - -Select the authentication method that clients use to connect to the server: - -| Method | Description | -|--------|-------------| -| **OAuth** | Clients authenticate through an OAuth-based flow. | -| **Auth Tokens** | Clients authenticate with an authentication or API token. | +**OAuth** Clients authenticate through an OAuth-based flow. **Access limits** diff --git a/ai-for-work/custom-agents.mdx b/ai-for-work/custom-agents.mdx index abe7994a5..de4fa8853 100644 --- a/ai-for-work/custom-agents.mdx +++ b/ai-for-work/custom-agents.mdx @@ -59,6 +59,8 @@ Connect an app from the Agent Platform or attach a skill. Click the add agent op | **Link version-1 App** | The app runs on the V1 protocol and you define its API directly. | | **Link Skill** | You run packaged agent logic on a configured LLM connection. | +![Autonomous Agent](/ai-for-work/custom-agents/images/autonomous-agent-v1-v2.png) + From the credentials, version-1, and skill screens, click **Browse and Link Projects** to return to the app list. ##### Link an Agent Platform App @@ -109,7 +111,7 @@ After you attach a skill, the configuration displays the skill with three action 2. Enter a **Version Name** and a **Version Description**. 3. Upload the new version as a folder or .zip file. -Each successful upload adds the new version as the latest entry in the **Version Logs** list. Each entry displays the version name, version description, and created date. The platform records the original skill automatically as "Version 1", with an empty description and the date of the initial upload. +Each successful upload adds the new version as the latest entry in the **Version Logs** list. Each entry displays the version name, version description, and created date. The platform records the original skill automatically as 'Version 1', with an empty description and the date of the initial upload. **Streaming for skills** @@ -144,13 +146,6 @@ When you select Async mode, a **Test** button appears. Click it to verify the as For Sync connections, you can enable or disable **Streaming** (Yes / No). The platform disables streaming automatically when you select Async mode without a linked agent or when the async connection verification fails. -##### Publishing Behavior - -The platform disables publishing when async connection verification fails. The platform displays one of the following error statuses: - -- "Agent configuration pending (No agent configured)" if you have not linked an agent. -- "Agent configuration pending (Agent Async connection failed)" if the async connection verification failed. - #### Step 3: Appearance and Behavior 1. Enter a **Short Description** of up to 56 characters. The platform shows it on agent cards and in @ mentions to help users identify the agent. diff --git a/ai-for-work/custom-agents/images/autonomous-agent-v1-v2.png b/ai-for-work/custom-agents/images/autonomous-agent-v1-v2.png new file mode 100644 index 0000000000000000000000000000000000000000..f3b8ddab0e08cadc48ea85e68772f3918319c7c2 GIT binary patch literal 132555 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%0AXP#Q!H^KwLxEz0n&?lF?t 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

+amPdltZs&1)-~0L|^QM=b^-Wh;ZpV^%vc?BOqN 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 literal 0 HcmV?d00001 diff --git a/ai-for-work/release-notes/release-updates.mdx b/ai-for-work/release-notes/release-updates.mdx index f7739c141..ffc84c4ae 100644 --- a/ai-for-work/release-notes/release-updates.mdx +++ b/ai-for-work/release-notes/release-updates.mdx @@ -11,35 +11,35 @@ This update includes new features and feature enhancements summarized below.

Run Skills in AI for Work

-AI for Work now brings **Skills** to autonomous agents. Add an agent, then upload a skill as a folder or .zip file to extend what the agent can do. Manage skill versions through version logs, and control streaming responses with a dedicated toggle. [Learn more→](/ai-for-work/custom-agents#autonomous-agent) +Autonomous agents now support skills. When you add an agent, upload a skill as a folder or .zip file to extend what the agent can do. End users work with the agent directly and don't need to build or manage skills themselves. [Learn more→](/ai-for-work/custom-agents#autonomous-agent)

Agents as MCP Tools

-Administrators can now expose AI for Work agents as tools on MCP servers, making them available to Claude, ChatGPT, and other MCP-compatible clients. A new multi-step creation wizard configures the server identity, tools, authentication (API token or OAuth), and access limits. Add prebuilt agents, or search across workspaces to add custom agents with editable tool descriptions. End users can view every connected app on OAuth servers, revoke individual app access, and regenerate auth token URLs when needed. [Learn more→](/ai-for-work/assistant-configurations#mcp-server) +Administrators can now publish AI for Work agents as tools on MCP servers, making them available to MCP-compatible clients such as Claude and ChatGPT. A guided wizard configures the server, its tools, OAuth authentication, and access limits. [Learn more→](/ai-for-work/assistant-configurations#mcp-server) -

Organization Chart Enhancements

+

Model Parameters for LLM Connections

-The org chart now surfaces employees without a reporting manager. Select the **Show unassigned employees** checkbox to jump to a dedicated section listing them, and expand any employee with reportees to view direct reports inline. Administrators can also control the chart root and administrators can override this selection at any time. [Learn more→](/ai-for-work/getting-started/how-to-use#organization-chart) +Each LLM connection now includes a parameter configuration section, so you can tune model behavior per connection. Adjust parameters such as temperature, max tokens, and reasoning effort, with controls suited to each parameter and a reset to recommended defaults. [Learn more→](/ai-for-work/llm-configuration#model-parameters)

Manage multiple versions of your agents

Agents now support version history. Publish a version with a custom name and description, and the platform autosaves your ongoing changes as a single draft. Preview any version in read-only mode, restore an older version as a new draft, and manage up to 50 versions per agent. [Learn more→](/ai-for-work/custom-agents/agent-management#version-control) -

Model Parameters for LLM Connections

+

Sync employee data with Google Service Accounts

-Each LLM connection now exposes a parameter configuration section. Adjust **Temperature**, **Top P**, **Max Tokens**, **Reasoning Effort**, **Stop Sequences**, and more using sliders, dropdowns, and toggles that match each parameter type. The interface shows only the parameters your selected provider and model support, tooltips explain each parameter, and a **Reset to Default** option restores recommended values. [Learn more→](/ai-for-work/llm-configuration#model-parameters) +The Enterprise Directory now supports Google service accounts as a data source, alongside Microsoft, LDAP, and the Push API method. Connect a configured Google service account to sync employee data from your identity provider. [Learn more→](/ai-for-work/administration/user-management#enterprise-directory) -

Sync employee data with Google Service Accounts

+

Model Selection for Memory and Personalization

-The Enterprise Directory now supports **Google Service Accounts** as a data source, alongside Microsoft, LDAP, and the Push API method. Connect a pre-configured Google service account to sync employee data automatically from your identity provider, keeping the directory and org chart current without manual uploads. [Learn more→](/ai-for-work/administration/user-management#enterprise-directory) +Administrators can now choose which LLM connection powers memory and personalization. The selector becomes available on enabling at least one memory feature and lists the account's configured LLM connections. [Learn more→](/ai-for-work/getting-started/how-to-use#personalisation-and-memory)

Announcements to User Groups

-Administrators can now send announcements to selected user groups instead of the entire account. Choose **Selected User Groups** alongside the existing **Everyone in Account** and **Agent Specific** options, then multi-select groups from the list. The interface displays the number of selected groups, and the announcement reaches every member of those groups. [Learn more→](/ai-for-work/assistant-configurations#announcements) +Administrators can now target announcements to selected user groups instead of the entire account. Choose the user groups option, select one or more groups, and the announcement reaches every member of those groups. [Learn more→](/ai-for-work/assistant-configurations#announcements) -

Model Selection for Memory and Personalization

+

Organization Chart Enhancements

-Administrators can now select the LLM connection that generates memory chunks and drives personalization features. The model selector activates when you enable at least one memory feature and lists all configured LLM connections. [Learn more→](/ai-for-work/getting-started/how-to-use#personalisation-and-memory) +The organization chart now surfaces employees without a reporting manager. Select the unassigned employees option to list them, and expand any employee to view direct reports inline. Administrators can also set the chart root user and override that selection at any time [Learn more→](/ai-for-work/getting-started/how-to-use#organization-chart)

Reasoning Thoughts and Tool Visibility

From f89b14e9fcc89406e4ac32120e9463802b336f95 Mon Sep 17 00:00:00 2001 From: siddharthmenon-7 Date: Tue, 14 Jul 2026 15:12:30 +0530 Subject: [PATCH 6/8] Quick fixes --- ai-for-work/administration/user-management.mdx | 2 -- ai-for-work/release-notes/release-updates.mdx | 14 +++++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/ai-for-work/administration/user-management.mdx b/ai-for-work/administration/user-management.mdx index 7f564bf41..3d36fa15b 100644 --- a/ai-for-work/administration/user-management.mdx +++ b/ai-for-work/administration/user-management.mdx @@ -222,8 +222,6 @@ If no employee directory is configured, the Employee Directory option is disable ### Directory Configuration -#### Admin Setup - Go to **Admin Hub > Employees > Directory Configuration**, then click **Add Directory Source** to launch the Configuration Wizard. **Step 1: Source Configuration** diff --git a/ai-for-work/release-notes/release-updates.mdx b/ai-for-work/release-notes/release-updates.mdx index ffc84c4ae..59e5e7bfb 100644 --- a/ai-for-work/release-notes/release-updates.mdx +++ b/ai-for-work/release-notes/release-updates.mdx @@ -11,11 +11,11 @@ This update includes new features and feature enhancements summarized below.

Run Skills in AI for Work

-Autonomous agents now support skills. When you add an agent, upload a skill as a folder or .zip file to extend what the agent can do. End users work with the agent directly and don't need to build or manage skills themselves. [Learn more→](/ai-for-work/custom-agents#autonomous-agent) +Autonomous agents now support skills. When you add an agent, upload a skill as a folder or .zip file to extend what the agent can do. End users work with the agent directly and don't need to build or manage skills themselves. [Learn more→](/ai-for-work/custom-agents#step-2-configure-agentic-app)

Agents as MCP Tools

-Administrators can now publish AI for Work agents as tools on MCP servers, making them available to MCP-compatible clients such as Claude and ChatGPT. A guided wizard configures the server, its tools, OAuth authentication, and access limits. [Learn more→](/ai-for-work/assistant-configurations#mcp-server) +Administrators can now publish AI for Work agents as tools on MCP servers, making them available to MCP-compatible clients such as Claude and ChatGPT. A guided wizard configures the server, its tools, OAuth authentication, and access limits. [Learn more→](/ai-for-work/assistant-configurations#tools)

Model Parameters for LLM Connections

@@ -27,19 +27,19 @@ Agents now support version history. Publish a version with a custom name and des

Sync employee data with Google Service Accounts

-The Enterprise Directory now supports Google service accounts as a data source, alongside Microsoft, LDAP, and the Push API method. Connect a configured Google service account to sync employee data from your identity provider. [Learn more→](/ai-for-work/administration/user-management#enterprise-directory) +The Enterprise Directory now supports Google service accounts as a data source, alongside Microsoft, LDAP, and the Push API method. Connect a configured Google service account to sync employee data from your identity provider. [Learn more→](/ai-for-work/administration/user-management#directory-configuration)

Model Selection for Memory and Personalization

-Administrators can now choose which LLM connection powers memory and personalization. The selector becomes available on enabling at least one memory feature and lists the account's configured LLM connections. [Learn more→](/ai-for-work/getting-started/how-to-use#personalisation-and-memory) +Administrators can now choose which LLM connection powers memory and personalization. The selector becomes available on enabling at least one memory feature and lists the account's configured LLM connections. [Learn more→](/ai-for-work/assistant-configurations#model-selection)

Announcements to User Groups

-Administrators can now target announcements to selected user groups instead of the entire account. Choose the user groups option, select one or more groups, and the announcement reaches every member of those groups. [Learn more→](/ai-for-work/assistant-configurations#announcements) +Administrators can now target announcements to selected user groups instead of the entire account. Choose the user groups option, select one or more groups, and the announcement reaches every member of those groups. [Learn more→](/ai-for-work/assistant-configurations#create-an-announcement)

Organization Chart Enhancements

-The organization chart now surfaces employees without a reporting manager. Select the unassigned employees option to list them, and expand any employee to view direct reports inline. Administrators can also set the chart root user and override that selection at any time [Learn more→](/ai-for-work/getting-started/how-to-use#organization-chart) +The organization chart now surfaces employees without a reporting manager. Select the unassigned employees option to list them, and expand any employee to view direct reports inline. Administrators can also set the chart root user and override that selection at any time. [Learn more→](/ai-for-work/getting-started/how-to-use#organization-chart)

Reasoning Thoughts and Tool Visibility

@@ -47,7 +47,7 @@ When a reasoning model processes your request, the assistant now displays each t

New Model Support

-AI for Work now supports `Sonnet 5`, `Opus 4.8`, and `Fable 5`, expanding the model options available for your assistant and agents. [Learn more→](/ai-for-work/llm-configuration) +AI for Work now supports `Sonnet 5`, `Opus 4.8`, and `Fable 5`, expanding the model options available for your assistant and agents. [Learn more→](/ai-for-work/llm-configuration#model-tiers)

Generate images in assistant responses

From 456611656cca35ea938171da0fa55999070abfc0 Mon Sep 17 00:00:00 2001 From: siddharthmenon-7 Date: Wed, 15 Jul 2026 14:02:40 +0530 Subject: [PATCH 7/8] Applied PM's comments --- ai-for-work/assistant-configurations.mdx | 10 ------- ai-for-work/custom-agents.mdx | 6 +---- ai-for-work/getting-started/how-to-use.mdx | 21 --------------- ai-for-work/llm-configuration.mdx | 27 ------------------- ai-for-work/release-notes/release-updates.mdx | 16 +++++------ 5 files changed, 9 insertions(+), 71 deletions(-) diff --git a/ai-for-work/assistant-configurations.mdx b/ai-for-work/assistant-configurations.mdx index 410ae27bb..5e002540e 100644 --- a/ai-for-work/assistant-configurations.mdx +++ b/ai-for-work/assistant-configurations.mdx @@ -555,16 +555,6 @@ When an administrator turns on **Capture Memory**, all existing end users see a Turning off Capture Memory stops new memory generation but does not delete existing memories. Users can manage their stored memories from the Personalisation and Memory widget on their profile page. -### Model Selection - -The page displays a model selector that determines which LLM connection powers memory and personalization: - -* The selector starts disabled and becomes available only after you turn on at least one memory setting. -* The selector lists all LLM connections configured in the account. -* The platform uses the selected model to generate memory chunks and to power personalization features. - -If all memory settings are off, the selector remains disabled regardless of available LLM connections. If the account has no configured LLM connections, the selector displays an empty placeholder state. - --- ## Projects Settings diff --git a/ai-for-work/custom-agents.mdx b/ai-for-work/custom-agents.mdx index de4fa8853..1281c68dc 100644 --- a/ai-for-work/custom-agents.mdx +++ b/ai-for-work/custom-agents.mdx @@ -57,7 +57,7 @@ Connect an app from the Agent Platform or attach a skill. Click the add agent op | **Browse and link** | The app already exists in an Agent Platform workspace you can access. | | **Add using credentials** | You have the agent's endpoint URL and connection secret. | | **Link version-1 App** | The app runs on the V1 protocol and you define its API directly. | -| **Link Skill** | You run packaged agent logic on a configured LLM connection. | +| **Link Skill** | You run packaged agent logic on a configured LLM connection. [Learn More](https://agentskills.io/home)| ![Autonomous Agent](/ai-for-work/custom-agents/images/autonomous-agent-v1-v2.png) @@ -113,10 +113,6 @@ After you attach a skill, the configuration displays the skill with three action Each successful upload adds the new version as the latest entry in the **Version Logs** list. Each entry displays the version name, version description, and created date. The platform records the original skill automatically as 'Version 1', with an empty description and the date of the initial upload. -**Streaming for skills** - -A **Streaming** toggle appears below the version logs. Turn it on to allow streaming responses for the configured skill, or turn it off to disable them. The toggle state persists with the agent configuration. - **Expired or revoked keys** If the API key linked to a skill expires or becomes invalid, revoked, or deleted: diff --git a/ai-for-work/getting-started/how-to-use.mdx b/ai-for-work/getting-started/how-to-use.mdx index 47aeb8734..ea77b43d7 100644 --- a/ai-for-work/getting-started/how-to-use.mdx +++ b/ai-for-work/getting-started/how-to-use.mdx @@ -15,8 +15,6 @@ This document covers the key features available to end users in the AI for Work |-----------------------------------------------|-------------------------------------------------------------------------------------------| | [Enterprise Search](#enterprise-search) | Dedicated enterprise search experience alongside Chat. | | [Agents and Flows](#agents-and-flows) | Connect with existing agents, create custom agents, and build automated flows | -| [Reasoning Thoughts](#reasoning-thoughts) | Follow the assistant's tool calls and reasoning while it works on your request | -| [Image Generation](#image-generation) | Generate images directly in assistant responses | | [Schedulers](#schedulers) | Create and manage automated schedules for agents and flows | | [Language Settings](#language-settings) | Set a preferred language for the platform interface | | [Enterprise Directory](#enterprise-directory) | Search employee contacts, view profiles, and explore the organization chart | @@ -121,25 +119,6 @@ Once you publish a flow, it appears in the Agents and Flows list and you can tri --- -## Reasoning Thoughts - -When a reasoning model processes your request, the assistant displays its work in real time and lets you review the full reasoning trace on demand. - -**While the assistant reasons** - -* Each tool call appears as a label on the left side in a loading state, and the labels update in real time as the assistant makes new tool calls. -* Click any tool call label to open a right-side panel that displays the complete execution flow, including every tool execution label with its description and current status. -* The panel renders details based on the tool type: code execution shows the input and output, web search shows the fetched website results, and other tools display their respective execution details and responses. - -**After the response completes** - -* A collapsed accordion appears, summarizing the total reasoning time. -* Click the accordion to reopen the right-side panel and review the entire reasoning effort and tool execution flow. - -The full reasoning trace is available only on demand, keeping the main chat view clean by default. - ---- - ## Schedulers The Schedulers feature provides a centralized location to create, manage, and monitor automated schedules for agents, flows, and platform modes. diff --git a/ai-for-work/llm-configuration.mdx b/ai-for-work/llm-configuration.mdx index c6e7f81a4..560c6b822 100644 --- a/ai-for-work/llm-configuration.mdx +++ b/ai-for-work/llm-configuration.mdx @@ -126,38 +126,11 @@ Use this option for proprietary or self-hosted models exposed via API. Each LLM connection exposes a parameter configuration section, so you can tune model behavior per connection. The section applies to **OpenAI**, **Azure OpenAI**, **Google Gemini**, and **Anthropic** connections. -The interface matches each parameter to an appropriate control: - -| Control | Used For | Behavior | -|---------|----------|----------| -| **Slider** | Continuous numeric parameters | Displays the current value next to the control. Minimum, maximum, and step values are set per parameter and per provider. For example, Temperature ranges from 0 to 2 for OpenAI and from 0 to 1 for Anthropic and Gemini. | -| **Dropdown** | Discrete or enumerated parameters | Lists the valid options for the selected model. | -| **Toggle** | Boolean parameters | Switches the parameter on or off. | - -The following parameters are configurable where the selected provider and model support them: - -| Parameter | Control | Availability | -|-----------|---------|--------------| -| **Temperature** | Slider | All providers | -| **Top P** | Slider | All providers | -| **Top K** | Slider | Anthropic, Gemini | -| **Max Tokens** | Slider or numeric input | All providers | -| **Frequency Penalty** | Slider | OpenAI, Azure OpenAI | -| **Presence Penalty** | Slider | OpenAI, Azure OpenAI | -| **Reasoning Effort** | Dropdown | Models that support reasoning, such as OpenAI reasoning models and Anthropic extended thinking | -| **Response Format** | Dropdown | Models that support text, JSON, or JSON schema output | -| **Stop Sequences** | Tag input | All providers | -| **Streaming** | Toggle | All providers | -| **System Prompt** | Text area | All providers | - **Behavior** -* The interface shows only the parameters that the selected provider and model support. Unsupported parameters are hidden or disabled, with a tooltip explaining why. * When you switch the model within a connection, the parameter section updates to reflect the new model's supported parameters and valid ranges. -* Each parameter includes a tooltip that explains its purpose and effect. * **Reset to Default** restores a parameter, or all parameters, to the provider's recommended defaults. * The platform pre-populates default values based on the selected provider and model when you create a new connection. -* The platform persists parameter values on save and loads them when you edit an existing connection. Existing connections without explicit parameter values continue to work with provider defaults. ### Embedding Models diff --git a/ai-for-work/release-notes/release-updates.mdx b/ai-for-work/release-notes/release-updates.mdx index 59e5e7bfb..0a44327b0 100644 --- a/ai-for-work/release-notes/release-updates.mdx +++ b/ai-for-work/release-notes/release-updates.mdx @@ -17,10 +17,6 @@ Autonomous agents now support skills. When you add an agent, upload a skill as a Administrators can now publish AI for Work agents as tools on MCP servers, making them available to MCP-compatible clients such as Claude and ChatGPT. A guided wizard configures the server, its tools, OAuth authentication, and access limits. [Learn more→](/ai-for-work/assistant-configurations#tools) -

Model Parameters for LLM Connections

- -Each LLM connection now includes a parameter configuration section, so you can tune model behavior per connection. Adjust parameters such as temperature, max tokens, and reasoning effort, with controls suited to each parameter and a reset to recommended defaults. [Learn more→](/ai-for-work/llm-configuration#model-parameters) -

Manage multiple versions of your agents

Agents now support version history. Publish a version with a custom name and description, and the platform autosaves your ongoing changes as a single draft. Preview any version in read-only mode, restore an older version as a new draft, and manage up to 50 versions per agent. [Learn more→](/ai-for-work/custom-agents/agent-management#version-control) @@ -41,14 +37,18 @@ Administrators can now target announcements to selected user groups instead of t The organization chart now surfaces employees without a reporting manager. Select the unassigned employees option to list them, and expand any employee to view direct reports inline. Administrators can also set the chart root user and override that selection at any time. [Learn more→](/ai-for-work/getting-started/how-to-use#organization-chart) -

Reasoning Thoughts and Tool Visibility

- -When a reasoning model processes your request, the assistant now displays each tool call as a live label while it works. Click any label to open a side panel showing the complete execution flow, including code inputs and outputs and web search results. [Learn more→](/ai-for-work/getting-started/how-to-use#reasoning-thoughts) -

New Model Support

AI for Work now supports `Sonnet 5`, `Opus 4.8`, and `Fable 5`, expanding the model options available for your assistant and agents. [Learn more→](/ai-for-work/llm-configuration#model-tiers) +

Model Parameters for LLM Connections

+ +Each LLM connection now includes a parameter configuration section, so you can tune model behavior per connection. Adjust parameters such as temperature, max tokens, and reasoning effort, with controls suited to each parameter and a reset to recommended defaults. + +

Reasoning Thoughts and Tool Visibility

+ +When a reasoning model processes your request, the assistant now displays each tool call as a live label while it works. Click any label to open a side panel showing the complete execution flow, including code inputs and outputs and web search results. +

Generate images in assistant responses

The assistant can now generate images directly in responses, so you can move from idea to visual without leaving the conversation. From e0918a57c59a2cb7c7c816508cc424aab3ac2531 Mon Sep 17 00:00:00 2001 From: siddharthmenon-7 Date: Thu, 16 Jul 2026 12:40:26 +0530 Subject: [PATCH 8/8] Updated RN --- ai-for-work/release-notes/release-updates.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ai-for-work/release-notes/release-updates.mdx b/ai-for-work/release-notes/release-updates.mdx index 0a44327b0..706f89771 100644 --- a/ai-for-work/release-notes/release-updates.mdx +++ b/ai-for-work/release-notes/release-updates.mdx @@ -43,7 +43,7 @@ AI for Work now supports `Sonnet 5`, `Opus 4.8`, and `Fable 5`, expanding the mo

Model Parameters for LLM Connections

-Each LLM connection now includes a parameter configuration section, so you can tune model behavior per connection. Adjust parameters such as temperature, max tokens, and reasoning effort, with controls suited to each parameter and a reset to recommended defaults. +Each LLM connection now includes a parameter configuration section, so you can tune model behavior per connection. Adjust parameters such as temperature, max tokens, and reasoning effort, with controls suited to each parameter and a reset to recommended defaults. [Learn more→](/ai-for-work/llm-configuration#model-parameters)

Reasoning Thoughts and Tool Visibility