- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
an hour ago
What is the Group Action Framework (GAF)?
Group Action Framework is used as a framework to assist in building workflows that utilize insights derived from sets of related data such as incident and case records. It utilizes generative AI and machine learning features to assist with this process.
To derive these insights, GAF performs 2 primary processes:
- Grouping: Creates clusters of similar data records within a set (e.g. incidents, cases, Knowledge articles). These clusters are then labelled according to their theme and a set of records chosen to act as representatives of that cluster.
- Action: Acts on those clusters to derive some insight or observation on trends using large language model (LLM) prompts. Additional actions include mapping new records to the best cluster for their scenarios and summarizing the contents of a cluster.
An example use case is found in the usage of GAF in the Suggested Steps skill found within ITSM’s Now Assist feature set. This skill outputs a set of recommendations on how to resolve an incident, with the suggestions derived from analyzing existing incident records and their resolution steps.
Do I have to configure anything to use GAF?
We provide a number of GAF implementations OOTB that one can simply activate, but one can also define a unique implementation for custom use cases using the product documentation.
How does GAF work?
GAF operates through two key phases: grouping and action. Each phase involves several distinct skills, each responsible for performing specific functions. The selection of applicable skills varies according to the particular use case. At present, these skills are dedicated solely to GAF activities and cannot be used in non-GAF scenarios.
Grouping occurs when a user is configuring a workflow that utilizes GAF. This might be an AI Agent, Skill, or a custom workflow that requires insights into a dataset to drive further action. The user will first define scope of the grouping and then trigger the initial clustering process.
Once triggered, 3 skills are called: Grouping, which clusters related records together utilizing machine learning techniques, and Topic Labelling, which adds human-readable names to the clusters using an LLM to make the clusters easier to identify. After this, the Action Strategy skill is used to select sample records from the clusters to represent the entire cluster. Once this process has completed, one can conduct actions on the cluster to derive insights on its contents.
The grouping process can be repeated with the same dataset, with a user either triggering it manually, or on a scheduled basis.
Action occurs when a user triggers a workflow that utilizes GAF. The action that takes place depends on what the workflow requires from the cluster
Summary of skills
|
Phase |
Skill |
Description |
Technique used |
|
Grouping |
Grouping skill |
Clusters related records using machine learning techniques. |
Machine Learning |
|
Topic labeling skill |
Adds human-readable names to the clusters using an LLM to make the clusters easier to identify. |
Generative AI |
|
|
Action strategy skill |
Selects representative records from each cluster for the mapper and reducer skills to use. |
|
|
|
Action |
Action mapper skill |
Runs LLM inference calls for the selected representative records, producing a record summary for the selected records. |
Generative AI |
|
Action reducer skill |
Uses the generated summaries created by the mapper skill to produce a single summary for the entire cluster. |
Generative AI |
What are the benefits of using GAF?
GAF allows for one to utilize the information already present within your instance to help drive the creation of insight driven solutions. The act of proactively grouping similar data together means that one can match incoming issues to existing issues which already have resolutions. This mapping process allows for rapid retrieval of these solutions.
The use of sample records to represent clusters is a major benefit. Submitting only a few records to an LLM for analysis makes the process both more efficient, and cheaper, as you no longer need to send entire datasets to your LLM for analysis.
What is the difference between GAF, AI Search, and Predictive Intelligence?
GAF, AI Search, and Predictive Intelligence all seek to package and deliver your data to drive further action or insights, however, they each operate differently, and are useful in different scenarios. This is outlined in the table below:
|
Feature |
Purpose |
Consumes Assists? |
Example use cases |
|
GAF |
Grouping similar data together in clusters, then executes actions on that data to derive insights on trends and commonalities. |
OOTB |
· Trend Analyzer AI Agent · Resolution steps generation · Knowledge Deduplication |
|
AI Search |
Retrieves semantically relevant records using contextual understanding. |
Only if using Now Assist Q&A genius |
· Q&A in Virtual Agent, Employee Center/Service Portal · GAF fallback |
|
Predictive Intelligence |
Uses historical data to predict outcomes like field values or classifications. |
No |
· Field prediction on forms · Automatic assignment group selection · Record categorization |
As noted, there are some overlaps.
Within GAF, it will utilize the machine learning processes of predictive intelligence to cluster the records within the dataset together. When a process searches within those clusters to find a relevant record, but none is found, then GAF uses AI Search as a fallback mechanism (if configured) to search for a relevant record.
When should I use GAF, AI Search, and Predictive Intelligence?
GAF should be used in scenarios where you have large datasets (2,000 – 500,000 records) that you want to run generative AI prompts against – for example summarization, generation of resolution steps, or identification of similar content.
Predictive intelligence is more suited for scenarios where you also have a large dataset (30,000 – 300,000), but you want to focus on detecting specific, repeatable patterns. These patterns can help to route work, estimate wait times and populate form fields amongst others. No generative AI features are utilized in this process, so all results are directly derived from your datasets, so is less subject to hallucinations/incorrect results. It is not able to interpret or take action on the results directly – it simply returns a result for you to then consume in the manner you choose. Predictive intelligence results cannot be used to deliver data directly to AI Agents today.
AI Search is useful in scenarios that you want to return a particular record based on semantics.
How many assists are consumed by GAF?
Usage of GAF does not directly consume assists. Assist consumption will occur dependent on the triggering mechanism for GAF, that is, if you are calling GAF via an AI Agent or custom skill. Please refer to the pricing guide, or contact your account representative for more information.
Installation & Configuration
What do I need to install GAF?
You need to have an instance on at least Washington DC release that has a valid subscription for
We do recommend staying up to date on releases, as the product continues to evolve, and some of the features mentioned in this guide, like optimized predication rely on more modern versions.
For more information on licensing, please reach out to your account representative.
How do I install GAF?
It is automatically installed with certain plugins such as Now Assist for ITSM and Now Assist for Knowledge Management, or one can install it in isolation.
Installing the GAF plugin also installs the following:
- Predictive Intelligence [com.glide.platform_ml]
- Platform AI Agents and Skills [sn_uxc_gen_ai]
- Now Assist Admin Console [sn_nowassist_admin]
What do I need to know before configuring GAF?
Prior to configuring GAF, you need to answer the questions below:
- What problem are you trying to solve?
- What data has the answers to your problem?
- Do you have enough quality data to glean insights from?
- How do you want to interact with the output of GAF?
An example scenario is when a knowledge manager is trying to understand what types of incidents are the most common so that they can focus their efforts on improving those knowledge articles.
They know their data set is the incident table, and they want to use the short description from the incident records as the main identifier for the LLM to group upon.
They then review the number of incident records they have (10,000), and do spot checks on the data to ensure the short description field contains keywords that are useful to index upon. e.g. they contain text similar to “My ASUS laptop isn’t connecting to the internet” rather than “Something is broken”.
They then review the interface they want to use to view the results, and settle in on a custom component in a custom workspace they have built to manage their knowledge systems.
How can I start or redo a grouping?
If you have already configured GAF, then the grouping jobs either can be started manually, or you can wait until the scheduled job performs automatically.
To manually begin the grouping process:
- Navigate to Scheduled Script Executions [sysauto_script]
- Search for the job relating to your cluster – it will be named “GAF – Run Offline Flow”.
- Open the record and click Execute Now.
To check when the grouping process will automatically occur:
- Navigate to Scheduled Script Executions [sysauto_script]
- Search for the job relating to your cluster – it will be named “GAF – Run Offline Flow”.
- Review the field named Repeat Interval to see the frequency of execution.
How can I check the progress of a grouping?
- Navigate to Scheduled Script Executions [sysauto_script]
- Search for the script relating to your cluster – it will be named “GAF – Run Offline Flow”.
- Open the record and scroll to the bottom. You should find a related list named GAF job trackers which will contain the progress of your clustering job.
You can also view the clustering job specifically by navigating to the ml_solutions table.
Where can I see the results of GAF?
The process of configuring and executing actions within GAF will create records in the following tables:
|
|
Contents |
|
GAF record group [sn_gaf_record_group]
|
Stores the output of the Grouping skill - each record represents a cluster of related records. Each cluster has a descriptive name and key words generated by a LLM in the Topic labeller skill.
Contains GAF record group detail and GAF action strategy result records in a related list. |
|
GAF record group detail [sn_gaf_record_group_detail]
|
Contains the individual records that belong to each group in sn_gaf_record_group.
|
|
GAF action strategy result [sn_gaf_action_strategy_result]
|
Holds the results of the Action Strategy skill, which selects representative records from each group for downstream processing |
|
GAF action mapper results [sn_gaf_action_mapper_result] |
Stores the output of the Mapper skill, which maps new records to existing clusters. |
|
GAF action reducer results [sn_gaf_action_reducer_result] |
Stores the result of the Action Reducer skill – that is, insights spanning an entire cluster. E.g. How to resolve incidents similar to those gathered in this cluster. |
|
sn_gaf_skill_config |
Stores configuration metadata for each GAF skill (grouping, topic, action, etc.) |
|
sn_gaf_grouping_job sn_gaf_job_tracker |
Logs the execution of grouping jobs, including clustering pipeline metadata (pulled from ml_solution table) |
|
sn_gaf_action_job |
Logs the execution of action strategy jobs |
|
sn_gaf_topic_job |
Logs the execution of topic generation jobs |
Can a record exist in multiple groupings?
Yes – if you have multiple grouping skills created using the same table, then the same record can be present in multiple groupings.
Can I modify OOTB implementations of GAF such as Knowledge Deduplication or ITSM’s Suggested Steps?
Not at present.
How can I generate an OOTB grouping using a custom field?
Certain OOTB clustering jobs, such as the ones used in ITSM’s “Suggested Steps” cannot be modified at this time.
You can however modify the OOTB generic GAF skills to cluster based on your custom fields.
These generic skills are labeled as GAF [x] grouping in the sn_nowassist_skill_config table, where [x] is the business area label such as HR, ITSM, CSM. To modify, follow the steps outlined in this product documentation.
How can I generate a grouping using a custom table?
To do so, you will have to clone a GAF Grouping skill. These are labeled as GAF [x] grouping in the sn_nowassist_skill_config table, where [x] is the business area label such as HR, ITSM, CSM. Once cloned, you are able to update the table name to your desired table name, select the fields to group on, and determine which records from your table you wish to include using the filters.
How long does GAF take to create data clusters?
The time depends on how many records you are including within the group and the number and complexity of the fields you have specified to be included.
It will generally take around 10-30 minutes in most scenarios.
What data should I include to get the best results from my cluster?
- Choose grouping fields that include key terms related to the topic
The fields you select (found on the sn_nowassist_skill_config_var_set table) should be able to accurately define the trend you are looking to extrapolate across a wider group.
For example: including the incident number isn’t particularity useful, as only applies to a single incident. Utilizing the short description however will contain keywords that help to identify the trends across multiple incidents – Router Issues, I need to reset my password, my laptop isn’t connecting to the internet. These keywords are more digestible by the grouping skills, and thus yield improved results.
- Select only 2-3 grouping fields, and ensure their data is succent
Adding too many fields or selecting fields with significant amounts of data can cause the clustering process to struggle to create cohesive groups due to the sheer volume of data.
- Ensure you have diversity of data
A large dataset that focuses only on one topic isn’t as helpful as a smaller dataset that spans multiple areas. This ensures that clusters are created that span a wide range of topics.
- Exclude stale or overly noisy data
We recommend using data that is no older than a year, as the contents of those records tend to no longer represent the current landscape. This however can be ignored if you are creating a grouping for a dataset that lacks the required number of records.
What are the thresholds for the number of records required to create a grouping?
It is advisable to use a minimum of 500 records, with an upper threshold of approximately 500,000 records, to ensure successful execution of the grouping process.
Where can GAF be deployed?
The primary consumers of GAF outputs are AI Agents. They use the output from GAF to drive action such as generating resolution steps for common scenarios, identifying trends, and determining duplicate records. You can however use GAF wherever you can write a server-side script, such as within a Flow, custom skill (created within Now Assist Skill Kit).
To retrieve results from GAF, you first have to decide which skill you wish to call, and then find the related function within the GAFUtils script include record. For example, if you wish to retrieve the output of the reducer skill (i.e. a summary for the entire cluster), you would call the getReducedSummary function. This function takes in the sys ids of all the skills configured for your use case along with the record, and retrieves a JSON response containing the summary. See below for an example (your sys ids will differ!)
const recordSysId = "b7dff706c3b7ced09c9971dc7a013163";
const groupSkillId = "11fe3ee3770412103f075cea5b5a99ee";
const actionSkillId = "d42f7535775412103f075cea5b5a994f";
const mapperSkillId = "535d2d2877e012103f075cea5b5a9970";
const reducerSkillId = "b53ead6877e012103f075cea5b5a997f";
const result = new sn_gaf.GAFUtils().getReducedSummary(recordSysId, groupSkillId, actionSkillId, mapperSkillId, reducerSkillId);
gs.info("GAF Result: " + JSON.stringify(result));
Do you have to set up GAF for each unique AI Agent?
It depends on your use cases – if your use cases require the same type of information from your data, then they can all call the same GAF cluster. An example of this is the scenario where you can use the same grouping to apply categories to incoming HR cases, and another that looks to retrieve the suggested resolution steps, as they both rely on using the information found in cases addressing similar topics to the target.
If you instead require information that is unique to your use case – for example, you may have a grouping based on the topics of incident records, but your use case is reviewing the geographic trends of incoming incidents, you may need to set up a unique cluster.
How can I improve recall time?
GAF utilizes caching for commonly queried clustered records and queries, which means that over time recall will improve as the system no longer must send every request to the LLM for processing.
For instance, when a user seeks guidance on resolving an incident—such as a password reset—that falls within a frequently accessed cluster, the system maps the record to the relevant cluster and delivers a previously cached response based on prior requests.
In version 3.0.0 of the GAF plugin [sn_gaf], we released the ability to utilise Optimized Prediction. The feature, activated by default, lets GAF use AI Search to recall records more efficiently, increases the number of records able to be grouped to 500,000, and lastly, introduces AI Search as a fallback for when GAF is unable to return a match.
Environment-specific details
How does GAF work in multilingual instances?
GAF isn't officially supported for multilingual use yet, but it can handle multiple languages to some extent. Our underlying processes have been mostly optimized for English, with limited effectiveness for other languages, and we cannot confirm the quality of the results.
How does GAF work in domain separated instances?
Not today. If activated, it will mix data from across separate domains.
What happens if there are ACLs applied on some of the records in my cluster?
The response differs based on what stage of GAF you are operating within.
During grouping/cluster formation:
Grouping uses all records from the dataset that match the filter on the sn_nowassist_skill_config record, regardless of ACLs. As a result, users can initiate grouping for records they may not have permission to view—for instance, developers who cannot access HR cases can still set up GAF for HR purposes.
During retrieval/action:
GAF will operate with the same access rights as the triggering user. Due to this, AI Agents will not receive information from the cluster that the triggering user does not have access to. AI Agents can also have their own ACLs applied that will affect which records are retrieved.
Common troubleshooting approaches
Why am I receiving an error when I submit the background script?
If you are getting a message that reads
Script execution error: Script Identifier: null.null.script, Error Description: Error: GAF: All skills need to be activated in order to set up GAF. Please activate skills with sys id:, (sys_script_include.4ab8bdb9771412103f075cea5b5a99b1.script; line 13), Script ES Level: 0
Root cause of JavaScriptException: org.mozilla.javascript.NativeError
This means that you have not added the groupSkillID and actionSkillId values to their variables. You can follow the steps outlined in this product documentation to find their values.
Why can’t I update the filters in my Now Assist Skill Config Var Set [sn_nowassist_skill_config_var_set] table record?
Ensure that you are in the correct Application – this can mean Group-Action Framework, Now Assist for ITSM, Now Assist in Knowledge Management or others, depending on which application the GAF implementation was found in.
Why is my ML Solution showing “Failed to initialize pipeline : Failed to load message_content dataset. No columns to parse from file”?
This occurs when the clustering job is attempted with too few accessible records. Causes of this may include:
- The Access Control Lists (ACLs) on your record sets are prohibiting access – you may have to get additional roles, or modify the ACLs on the records.
- You set the filter on the sn_nowassist_skill_config_var_set table to retrieve too few records.
- You have insufficient number of records in your table.
Why are my AI Agents returning the error “I couldn’t analyze as I didn’t have the required resources”?
This means that GAF was not properly activated. Please retry the scheduled job (named GAF – Run Offline Flow in the sysauto_script table) to create your cluster. If you cannot find the scheduled job, please follow the configuration steps outlined in the product documentation.
