<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The SAS Data Science Blog</title>
	<atom:link href="https://blogs.sas.com/content/subconsciousmusings/feed/" rel="self" type="application/rss+xml" />
	<link>https://blogs.sas.com/content/subconsciousmusings/</link>
	<description>Advanced analytics from SAS data scientists</description>
	<lastBuildDate>Thu, 16 Apr 2026 14:17:09 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6</generator>
	<item>
		<title>From fraud detection to fraud resolution: Building an AI voice agent with SAS Viya and LLMs</title>
		<link>https://blogs.sas.com/content/subconsciousmusings/2026/04/15/building-an-ai-voice-agent/</link>
					<comments>https://blogs.sas.com/content/subconsciousmusings/2026/04/15/building-an-ai-voice-agent/#respond</comments>
		
		<dc:creator><![CDATA[Xavier Bizoux]]></dc:creator>
		<pubDate>Wed, 15 Apr 2026 20:17:07 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[AI agents]]></category>
		<category><![CDATA[customer interaction]]></category>
		<category><![CDATA[decisioning]]></category>
		<category><![CDATA[fraud detection]]></category>
		<category><![CDATA[fraud resolution]]></category>
		<category><![CDATA[LLMs]]></category>
		<category><![CDATA[SAS Viya]]></category>
		<category><![CDATA[voice AI]]></category>
		<guid isPermaLink="false">https://blogs.sas.com/content/subconsciousmusings/?p=21163</guid>

					<description><![CDATA[<p>Learn how an AI voice agent built with SAS Viya and LLMs can transform fraud detection into real-time, automated fraud resolution through customer interaction and governed decisioning.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/04/15/building-an-ai-voice-agent/">From fraud detection to fraud resolution: Building an AI voice agent with SAS Viya and LLMs</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>While <a href="https://www.sas.com/en_us/software/fraud-management.html">fraud detection</a> models are increasingly accurate, fraud response often remains slow, manual, and fragmented. Leveraging SAS Viya's decisioning capabilities and Large Language Models (LLMs), the <a href="https://communities.sas.com/t5/SAS-Hacker-s-Hub/Minority-Reporters/ta-p/972992">Minority Reporters</a> (a team from the <a href="https://www.sas.com/sas/events/hackathon.html">SAS Hackathon</a>)  built an AI-powered voice agent named Agatha, to proactively contact customers when a suspicious card transaction is detected. This <a href="https://www.sas.com/en_us/software/visual-analytics.html">agentic AI</a> use case built with <a href="https://www.sas.com/en_us/software/viya.html">SAS Viya</a> demonstrates how analytics can move beyond detection to support real-time, customer-centric fraud resolution.</p>
<h2>Why fraud response is the real bottleneck</h2>
<p>Most banks already rely on analytical models and business rules to detect suspicious transactions. However, once an alert is raised, the downstream response is often inefficient. Customers may receive an SMS or app notification that goes unnoticed, or they are asked to contact a call center to resolve the issue. This introduces latency, increases operational costs, and negatively impacts customer experience—especially when legitimate payments are declined.</p>
<p>The Minority Reporters project focused explicitly on this "last mile" of fraud management: transforming fraud alerts into timely, actionable resolution steps through direct customer interaction.</p>
<h2>Solution overview: Agatha, an AI voice agent</h2>
<p>Agatha is triggered immediately when a fraud detection system flags a transaction as suspicious. Rather than sending a passive notification, Agatha initiates a phone call to the cardholder. During the call, the agent asks a small number of targeted questions designed to quickly assess whether the transaction is legitimate or fraudulent.</p>
<p>Based on the conversation, Agatha can support several outcomes:</p>
<ul>
<li>Approving the transaction if it is legitimate</li>
<li>Blocking or freezing the card when fraud is confirmed</li>
<li>Resetting digital banking credentials if compromise is suspected</li>
<li>Escalating the case to a human operator when confidence is insufficient</li>
</ul>
<p>The key principle is that customer interaction becomes part of the decision process rather than a disconnected follow-up step.</p>
<h2>Architectural building blocks</h2>
<p>The solution is structured around loosely coupled components orchestrated through SAS Viya:</p>
<ul>
<li><strong>Fraud signal ingestion:</strong> A fraud signal is received from an upstream detection engine. The project deliberately focused on integration patterns rather than the internal mechanics of fraud models.</li>
<li><strong>Speech-to-text:</strong> Customer responses during the phone call are converted into text using speech-to-text services. This transformation enables subsequent natural language processing and reasoning.</li>
<li><strong>LLM-based conversation handling:</strong> A LLM interprets customer intent and generates concise, controlled responses. The LLM assists with understanding and interaction but does not directly execute business actions.</li>
<li><strong>Decision orchestration with SAS Viya:</strong> Customer intent and contextual information are passed to SAS Viya decision logic, where business rules, analytical models, and thresholds determine the final action. This ensures explainability, governance, and compliance.</li>
<li><strong>Monitoring with SAS Visual Analytics:</strong> Operational dashboards built in <a href="https://www.sas.com/en_us/software/visual-analytics.html">SAS Visual Analytics</a> provide visibility into calls, outcomes, escalation paths, and performance metrics.</li>
</ul>
<h2>Why this architecture matters</h2>
<p>A key takeaway from the project is the importance of separating AI reasoning from execution. LLMs enhance interaction and interpretation, while SAS Viya remains responsible for decision governance, transparency, and auditability—an essential requirement in regulated industries such as financial services.</p>
<h3>Implementing similar solutions with the SAS Agentic AI Accelerator</h3>
<p>For organizations interested in building similar integrations between LLMs and SAS Viya, the <a href="https://sassoftware.github.io/sas-agentic-ai-accelerator/">SAS Agentic AI Accelerator</a> provides a structured, enterprise-ready framework.</p>
<p>The accelerator is designed to help teams embed LLM capabilities into governed workflows rather than treating them as standalone chat components. It promotes the use of agent-based patterns where AI components perform clearly scoped tasks within multi-step processes.</p>
<ul>
<li><strong>Structuring LLM usage as an agent:</strong> Agatha behaves like an AI agent—it responds to events, interacts with customers, reasons over input, and assists downstream decisions. The SAS Agentic AI Accelerator supports this pattern by providing repeatable structures for building such agents in SAS Viya.</li>
<li><strong>Governing LLMs and prompts:</strong> The accelerator enables organizations to register LLMs in SAS Viya, manage prompts as versioned assets, and reuse them consistently across workflows. This simplifies experimentation while maintaining governance and traceability.</li>
<li><strong>Integrating with SAS Intelligent Decisioning:</strong> LLM outputs can be directly consumed in <a href="https://www.sas.com/en_us/software/intelligent-decisioning.html">SAS Intelligent Decisioning</a>, where they are combined with rules and analytical models. This ensures that final actions remain deterministic, explainable, and auditable, while still benefiting from AI-assisted reasoning.</li>
<li><strong>Simplifying integration with external AI services:</strong> Speech-to-text, text-to-speech, and telephony services can be integrated using standardized orchestration patterns. This allows teams to focus on business logic rather than custom integration code, while keeping all decision control inside SAS Viya.</li>
</ul>
<h2>From hackathon concept to enterprise pattern</h2>
<p>This project illustrates what can be achieved with SAS Viya and the SAS Agentic AI Accelerator. It shows how similar ideas can be transformed into scalable, production-ready solutions by providing structure, reuse, and built-in governance.</p>
<p>Together, they demonstrate a clear path forward: LLMs' augment interaction and reasoning; SAS Viya governs decisions and actions, and agent-based architectures to bridge analytics and operations.</p>
<h3>Turning AI into action</h3>
<p>Agatha is more than a conversational AI prototype. It is an example of how financial institutions can move from fraud detection to fraud resolution by combining LLM-driven interaction with SAS Viya decisioning.</p>
<p>By leveraging frameworks such as the SAS Agentic AI Accelerator, customers in any industry can implement similar solutions in a trusted, explainable, and scalable way—turning innovative concepts into enterprise-ready AI systems.</p>
<p>To explore how this approach can be implemented in practice, learn more about <a href="https://communities.sas.com/t5/SAS-Communities-Library/Introducing-the-SAS-Agentic-AI-Accelerator-Build-AI-Agents/ta-p/977176">SAS Agentic AI Accelerator</a> and discover how to build, govern, and scale AI agents in enterprise environments.</p>
<h3>Learn more</h3>
<ul>
<li><a href="https://blogs.sas.com/content/sascom/2025/08/25/tech-takes-jared-peterson-on-llms-agentic-ai-and-low-code-no-code/">Tech takes: Jared Peterson on LLMs, agentic AI and low-code/no-code</a></li>
<li><a href="https://blogs.sas.com/content/subconsciousmusings/2025/03/21/multimodal-transformers-ai-foundation-models-part-1/">Multimodal transformers: AI foundation models, Part 1</a></li>
<li><a href="https://blogs.sas.com/content/sascom/2025/11/21/the-future-of-trust-ai-banking-fraud-detection/">The future of trust: AI is powering a new era in banking fraud detection</a></li>
<li><a href="https://blogs.sas.com/content/sascom/2025/11/13/from-target-to-trusted-fighting-fraud-with-ai-and-analytics/">From target to trusted: fighting fraud with AI and analytics</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/04/15/building-an-ai-voice-agent/">From fraud detection to fraud resolution: Building an AI voice agent with SAS Viya and LLMs</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.sas.com/content/subconsciousmusings/2026/04/15/building-an-ai-voice-agent/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<enclosure url="https://blogs.sas.com/content/subconsciousmusings/files/2026/04/logan-voss-t2rvYSrsTAM-unsplash-150x150.jpg" />
	</item>
		<item>
		<title>Optimizing inspector assignments using SAS Optimization in federal and state meat processing facilities</title>
		<link>https://blogs.sas.com/content/subconsciousmusings/2026/04/01/sas-optimization-meat-processing/</link>
					<comments>https://blogs.sas.com/content/subconsciousmusings/2026/04/01/sas-optimization-meat-processing/#respond</comments>
		
		<dc:creator><![CDATA[Shahrzad Azizzadeh]]></dc:creator>
		<pubDate>Wed, 01 Apr 2026 13:45:05 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Applied AI Modeling]]></category>
		<category><![CDATA[MILP]]></category>
		<category><![CDATA[resource allocation]]></category>
		<category><![CDATA[route optimization]]></category>
		<category><![CDATA[SAS Optimization]]></category>
		<category><![CDATA[SAS Viya]]></category>
		<category><![CDATA[scheduling]]></category>
		<category><![CDATA[workforce planning]]></category>
		<guid isPermaLink="false">https://blogs.sas.com/content/subconsciousmusings/?p=21079</guid>

					<description><![CDATA[<p>Shahrzad Azizzadeh and team discuss optimizing inspector assignments using SAS Optimization in federal and state meat processing facilities.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/04/01/sas-optimization-meat-processing/">Optimizing inspector assignments using SAS Optimization in federal and state meat processing facilities</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Authors: <a href="https://blogs.sas.com/content/author/shahrzadazizzadeh/">Shahrzad Azizzadeh</a>, Pelin Cay, Shelly Hunt, and Rob Wetzel</strong></p>
<p>Ensuring food safety in meat processing facilities requires systematic inspection coverage across all plants. However, managing inspector assignments presents significant operational challenges. These include determining the optimal workforce size, assigning specific facilities to qualified personnel, and scheduling daily routes to minimize travel costs while maximizing productivity. The challenge here is optimizing inspector assignments. This post walks through how we formulated this challenge as a<a href="https://go.documentation.sas.com/doc/en/pgmsascdc/default/casmopt/casmopt_intro_sect005.htm"> Mixed Integer Linear Programming (MILP)</a> problem. Then we solved it by using the <a href="https://support.sas.com/en/software/optimization.html">SAS Optimization</a> CAS Action Set in <a href="https://www.sas.com/en_us/software/viya.html">SAS Viya</a>, with preprocessing and visualization handled by the <a href="https://go.documentation.sas.com/doc/en/pgmsascdc/default/lepg/n14fu9c6l8rxbxn1nvdhlaqtsyho.htm">SAS DATA step</a> and <a href="https://go.documentation.sas.com/doc/en/vdmmlcdc/8.1/grstatproc/p1t32i8511t1gfn17sw07yxtazad.htm">PROC SGPLOT</a>. You will learn how this approach can determine the minimum workforce size, optimize the inspector-type composition to reduce salary costs, and generate executable daily schedules with travel-feasible routes.</p>
<h2>Operational challenge</h2>
<p>Scheduling is often inefficient in this environment due to the sheer number of possible combinations. Schedulers must simultaneously account for disjointed geographic locations, varying inspector radius constraints, disparate certification levels (state vs. federal), and strict time windows. As the network grows, ensuring 100% coverage and accurately forecasting costs becomes computationally intractable without advanced optimization techniques.</p>
<h2>Background</h2>
<p>In this case study, we analyzed a state network comprising over 100 federal and state-licensed meat processing facilities. A major component of these facilities is federal establishments. To meet regulatory food safety requirements, these facilities require mandatory daily visits by licensed inspectors.  The current workforce consists of federal and state inspectors.</p>
<ul>
<li>Federal inspectors: Certified to inspect all federal facilities and may inspect state facilities under specific agreements.</li>
<li>State inspectors: Authorized for state-licensed plants. The Talmadge-Aiken (TA) cooperative agreement also authorizes trained state inspectors to inspect federal facilities.</li>
</ul>
<h3>The Optimization Trade-Off</h3>
<p>This certification hierarchy introduces a key economic lever. Federal inspectors typically command higher annual salaries than their state counterparts. Therefore, minimizing total operational costs often aligns with maximizing the utilization of state inspectors (via the TA program) wherever they are geographically and professionally eligible. However, strict adherence to certification constraints is required to ensure regulatory compliance.</p>
<p>Operationally, we estimate that each inspection takes an average of 1 hour. The inspection window runs from 8:00 AM to 8:00 PM. Unlike static assignment models, this project incorporates travel time as a decision variable. We treat the problem as a routing-and-scheduling optimization to maximize inspector productivity.</p>
<h2>Use Case: Defining the Optimization Questions</h2>
<p>This project utilizes SAS Optimization to answer three critical resource allocation questions:</p>
<p><strong>Question 1: What is the minimum resource requirement? </strong></p>
<p>Before assigning specific names to locations, we must determine the theoretical floor for the workforce size. How many inspectors are strictly necessary to cover the plant network's geographic spread during the operational window?</p>
<p><strong>Question 2: What is the minimum-cost inspection workforce composition?</strong></p>
<p>Once the headcount is established, we must optimize the mix of Federal vs. State inspectors. This involves identifying the ideal workforce structure that achieves 100% coverage while adhering to TA eligibility rules, aiming to minimize total salary overhead and travel expenses.</p>
<p><strong>Question 3: What is the optimal daily schedule?</strong></p>
<p>Finally, we must generate executable daily rosters. This requires assigning specific inspectors to specific facilities in precise time slots, ensuring that travel between sequential locations is feasible and minimized.</p>
<h3>Input Data</h3>
<p>The optimization system relies on several key data sources that define the problem structure. You can see the input data model in Table 1.</p>
<figure id="attachment_21103" aria-describedby="caption-attachment-21103" style="width: 702px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-1-1.png"><img fetchpriority="high" decoding="async" class="size-large wp-image-21103" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-1-1-1024x882.png" alt="" width="702" height="605" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-1-1-1024x882.png 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-1-1-300x259.png 300w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-1-1-768x662.png 768w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-1-1-1536x1324.png 1536w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-1-1-2048x1765.png 2048w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-1-1-110x96.png 110w" sizes="(max-width: 702px) 100vw, 702px" /></a><figcaption id="caption-attachment-21103" class="wp-caption-text">Table 1. Input Data Model</figcaption></figure>
<h2>Data preprocessing</h2>
<p>Before optimization can take place, several preprocessing steps are performed to structure the raw operational data into a format suitable for mathematical modeling. There are two key components of preprocessing. The first is creating <strong>time slots</strong> that define the available inspection periods for each day. The second is the generation of <strong>feasible transitions</strong>, which determine how inspectors can feasibly move between facilities over consecutive slots.</p>
<p>Scalability Note: The logic used here relies on standard geographic coordinates and time-window parameters, making this framework agnostic to specific state geographies. It is designed to be reusable and easily scalable to other states or regions with minimal configuration changes.</p>
<h3>How time slots are created</h3>
<p>Time slots define the basic scheduling framework for assigning inspectors to facilities. We generate these slots based on several things. One is the daily operating window. The other is the duration of each inspection, incorporating buffer times (time for inspector check-in and preparation) to ensure travel feasibility between consecutive assignments.</p>
<p>The daily inspection window spans from 8:00 AM to 8:00 PM, totaling 720 operational minutes. Based on the customer's operational data, each inspection is assumed to take 1 hour on average, followed by a 45-minute buffer to account for check-in, preparation, and transition time. Importantly, both the inspection duration and buffer time are configurable input parameters in the model. This enables agencies to adjust them based on their own operational experience. Using these parameters, the model divides the day into seven discrete time slots, each starting 105 minutes apart (60-minute inspection + 45-minute buffer). The buffer applies only between consecutive slots — not before the first slot or after the last. The final slot ends at 7:30 PM, leaving 30 minutes of slack before the window closes.</p>
<p>Not every inspector fills all seven slots. The model typically assigns three to five inspections per inspector per day, consistent with the observed baseline. The unused slots provide flexibility for travel between geographically dispersed facilities. This is handled by the feasible transitions logic described below.</p>
<h2>How feasible transitions are created</h2>
<p>To formulate the mathematical optimization model, we first define a set of feasible transitions. This would be the allowed consecutive assignments in which an inspector moves directly from one facility to the next in adjacent time slots.</p>
<p>In order to do this, we form a plants-slots set, then flag any (plant_from, slot_from) and (plant_to, slot_to) pairs where travel time (computed using travel speed of 35 MPH) exceeds available time (“start of slot_to” minus “end of slot_from+ buffer time”), as infeasible. Next, we start with a set containing all possible (inspector, plant, slot) combinations where adjacent slot pairs are joined to create potential back-to-back transitions.</p>
<p>Then we ensure the same inspector is eligible for both plants in both slots. Ineligible combinations are removed. Then any transition that was previously flagged as infeasible due to travel time is also excluded. Each row in the resulting table represents a feasible back-to-back arc (inspector, (from_plant, slot_from), (to_plant, slot_to)) to be assessed for daily schedules.</p>
<h2>Mathematical Model</h2>
<p>The optimization problem is formulated as a Mixed Integer Linear Programming (MILP) model. The main components of the model include:</p>
<h3>Decision Variables</h3>
<ul>
<li>Assignment Variables: Binary variables indicating whether a certain inspector is assigned to a certain plant during a certain time slot. These form the core assignment decisions and are only defined over feasible (inspector, plant, slot) combinations.</li>
<li>Inspector Utilization Variables: Binary variables indicating whether a certain inspector is selected for use in the overall solution.</li>
<li>Travel Arc Variables: Binary variables capturing consecutive assignments — that is, whether a given inspector travels directly from one facility to the next in adjacent time slots (for example, Plant A in slot 1 followed by Plant B in slot 2).</li>
</ul>
<h3>Objective Function</h3>
<p>The objective is to minimize the total annual cost, comprising two components:</p>
<ul>
<li>Annual Inspector Salaries: Sum of annual salaries for all selected inspectors.</li>
</ul>
<h3>Annualized Travel Costs</h3>
<p>The daily travel cost associated with each consecutive facility-to-facility movement is multiplied by a per-mile cost rate and annualized over 365 operating days. Each inspector's first trip of the day — from their home location to their first assigned facility — is accounted for separately by using the inspector-to-plant distance data (the DISTANCES table). The model assumes a consistent daily schedule; in practice, variations such as weekend coverage or PTO can be incorporated by running the model under multiple scenarios or adjusting the annualization factor.</p>
<h3>Constraints</h3>
<ul>
<li>Coverage Requirements: Ensuring that each plant receives exactly one inspection visit per day.</li>
<li>Inspector Capacity: Each inspector can be assigned to at most one plant during any given time slot.</li>
<li>Inspector Eligibility: Only qualified inspectors can be assigned to a particular plant.</li>
<li>Travel Feasibility: Consecutive assignments for an inspector to two plants that are too far apart are not accepted.</li>
</ul>
<h2>Results</h2>
<p>The model was implemented and solved in SAS Viya 4.0 by using the <strong>SAS Optimization CAS Action Set</strong>, accompanied by extensive preprocessing and postprocessing steps implemented primarily in SAS DATA steps. For Visualizations, SAS PROC SGPLOT was used.</p>
<p>Optimal results are compared with the baseline solution (the customer-provided status quo) in Table 2. The model achieved significant efficiency gains. In the baselineleaving substantial idle capacity. The optimized solution consolidates assignments so that more inspectors handle four or five facilities per day along travel-efficient routes, reducing the total number of inspectors needed while increasing individual utilization (see Figure 1).</p>
<figure id="attachment_21106" aria-describedby="caption-attachment-21106" style="width: 702px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-2-1.png"><img decoding="async" class="size-large wp-image-21106" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-2-1-1024x188.png" alt="" width="702" height="129" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-2-1-1024x188.png 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-2-1-300x55.png 300w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-2-1-768x141.png 768w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-2-1-1536x282.png 1536w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-table-2-1-2048x375.png 2048w" sizes="(max-width: 702px) 100vw, 702px" /></a><figcaption id="caption-attachment-21106" class="wp-caption-text">Table 2. Optimization Impact</figcaption></figure>
<p>The workload distribution is presented in Figure 1. Cost breakdown and workforce composition are shown in Figures 2 and 3, respectively. You can see in Figure 3 that the optimal solution shifts the workforce mix toward more state inspectors operating under the Talmadge-Aiken (TA) Act. This leverages their lower cost while maintaining full plant coverage.</p>
<figure id="attachment_21088" aria-describedby="caption-attachment-21088" style="width: 576px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-1.png"><img decoding="async" class="wp-image-21088 size-full" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-1.png" alt="Optimizing inspector assignments - Figure 1. Comparing Workload Distribution" width="576" height="370" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-1.png 576w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-1-300x193.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></a><figcaption id="caption-attachment-21088" class="wp-caption-text">Figure 1. Comparing Workload Distribution</figcaption></figure>
<figure id="attachment_21091" aria-describedby="caption-attachment-21091" style="width: 576px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-2.png"><img loading="lazy" decoding="async" class="wp-image-21091 size-full" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-2.png" alt="Optimizing inspector assignments - Figure 2. Cost Breakdown" width="576" height="370" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-2.png 576w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-2-300x193.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></a><figcaption id="caption-attachment-21091" class="wp-caption-text">Figure 2. Cost Breakdown</figcaption></figure>
<figure id="attachment_21094" aria-describedby="caption-attachment-21094" style="width: 576px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-3.png"><img loading="lazy" decoding="async" class="wp-image-21094 size-full" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-3.png" alt="Optimizing inspector assignments - Figure 3. Workforce Composition" width="576" height="370" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-3.png 576w, https://blogs.sas.com/content/subconsciousmusings/files/2026/03/march-azizzadeh-figure-3-300x193.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></a><figcaption id="caption-attachment-21094" class="wp-caption-text">Figure 3. Workforce Composition</figcaption></figure>
<h2>Conclusion</h2>
<p>This project demonstrates how advanced analytics can transform a complex scheduling challenge into a clear, data-driven strategy. By implementing a mathematical model in SAS Optimization that accounts for inspector eligibility, travel constraints, and mandatory daily coverage, we successfully generated inspection schedules that are operationally feasible and highly cost-efficient.</p>
<h3>Key Findings</h3>
<p>Under our most aggressive optimization scenarios, the model indicates that in a sample state, the entire facility network -- 117 federal and state meat processing plants -- could be covered by a streamlined state workforce alone. By maximizing cross-utilization under the Talmadge-Aiken program, the model’s most aggressive assignment case shows a pathway to complete coverage with 30% fewer state personnel, while theoretically eliminating the need for deployed federal inspectors (a 100% reduction). More realistically, even after accounting for PTO and maintaining a reasonable workforce buffer, coverage could still be achieved by using only state resources. Overall, this result shows the benefits of an automated scheduling system based on employee radius, plant location, and optimizing route and driving distance. Today, assignments are often scheduled manually. Furthermore, if the Talmadge-Aiken program were expanded, the federal government could project costs and reimburse states in advance, rather than paying in arrears, creating funding issues.</p>
<h3>Impact &amp; Scalability</h3>
<p>Beyond immediate cost savings, we have established a repeatable, scalable framework. Because the underlying code utilizes standardized input parameters (geographic coordinates, time windows, and eligibility matrices), this model is agnostic to specific state geographies and can be rapidly deployed to other inspection agencies. It serves not merely as a one-time fix but as a robust planning tool, empowering decision-makers to continuously explore "what-if" scenarios regarding budget adjustments, new plant openings, or policy changes with mathematical precision.</p>
<hr />
<p><strong>Pelin Cay</strong><br />
<strong>Pelin Cay</strong> has been with SAS since 2016 and is a Manager in the Applied AI &amp; Modeling division. She leads a team of data scientists specializing in the design of advanced mathematical optimization models and solution methodologies for complex decision-making problems across diverse industries. Pelin earned her B.S. and M.S. in Industrial Engineering from Bilkent University and her Ph.D. in Industrial Engineering from Lehigh University.</p>
<p><strong>Shelly Hunt</strong><br />
<strong>Shelly Hunt</strong> is a Systems Engineer at SAS, supporting USDA and FDA programs with advanced agriculture analytics and environmental modeling. She specializes in translating complex agricultural domain expertise into data science parameters that drive optimization models and large‑scale analytic workflows. Shelly holds a Master of Science in Biological and Agricultural Engineering and a Graduate Certificate in Agricultural Data Science, both from NC State University.</p>
<p><strong>Rob Wetzel</strong><br />
<strong>Rob Wetzel</strong> is a Sr. Account Executive at SAS.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/04/01/sas-optimization-meat-processing/">Optimizing inspector assignments using SAS Optimization in federal and state meat processing facilities</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.sas.com/content/subconsciousmusings/2026/04/01/sas-optimization-meat-processing/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<enclosure url="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/blog-150x150.png" />
	</item>
		<item>
		<title>Using network analytics to analyze social interactions among needle sharers</title>
		<link>https://blogs.sas.com/content/subconsciousmusings/2026/03/03/using-network-analytics-to-analyze-social-interactions-among-needle-sharers/</link>
					<comments>https://blogs.sas.com/content/subconsciousmusings/2026/03/03/using-network-analytics-to-analyze-social-interactions-among-needle-sharers/#respond</comments>
		
		<dc:creator><![CDATA[Hossein Tohidi]]></dc:creator>
		<pubDate>Tue, 03 Mar 2026 20:31:53 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[community detection]]></category>
		<category><![CDATA[Network Analytics]]></category>
		<category><![CDATA[public health]]></category>
		<category><![CDATA[R&D Analytics]]></category>
		<category><![CDATA[SAS Viya]]></category>
		<guid isPermaLink="false">https://blogs.sas.com/content/subconsciousmusings/?p=20963</guid>

					<description><![CDATA[<p>Demonstrates how network analytics can transform a simple link list into actionable insights for public health decision-making.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/03/03/using-network-analytics-to-analyze-social-interactions-among-needle-sharers/">Using network analytics to analyze social interactions among needle sharers</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Needle sharing remains a critical public health challenge because it enables the rapid spread of infectious diseases through close, often invisible social connections. Understanding where these behaviors concentrate and which individuals play a central role is essential for designing effective, targeted interventions. Limited time and resources make this especially true.</p>
<p>This post uses the <a href="https://go.documentation.sas.com/doc/en/pgmsascdc/v_070/casactml/casactml_network_details01.htm">SAS Viya NETWORK action set</a> to demonstrate how a sequence of network analytics, including summary statistics, centrality measures, and community detection, can make these hidden patterns visible by revealing who is most connected, where risk might originate, and how it can flow through a community. Together, these insights support more focused and effective public health interventions.</p>
<p>The data set used in this analysis was provided with permission from Margaret R. Weeks at the <a href="https://icrweb.org/">Institute of Community Research</a>. This data set originates from the study described in the paper “<a href="https://www.researchgate.net/publication/227085871_Social_Networks_of_Drug_Users_in_High-Risk_Sites_Finding_the_Connections">Social Networks of Drug Users in High-Risk Sites: Finding the Connections</a>”. The data consist of a simple directed link list, where each link represents the lending of drug needles from one individual to another, reflecting observed needle-sharing interactions within the network.</p>
<p>The SAS code used throughout this analysis is <a href="https://github.com/sassoftware/sas-network-analysis/blob/main/applications/hartford/Hartford Drug User Network Analysis.sas">accessible here</a> for reference and reuse.</p>
<h2>From Raw Data to Network Insight</h2>
<p>As shown in this code snippet, we begin by running the <a href="https://go.documentation.sas.com/doc/en/pgmsascdc/v_071/casmlnetwork/casmlnetwork_network_details175.htm">%PlotGraph macro</a> to visualize the network and gain an immediate sense of its connectivity, revealing clusters of closely connected individuals and several highly connected participants that anchor interactions across the network.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sas" style="font-family:monospace;">   %PlotGraph<span style="color: #66cc66;">&#40;</span>
      links=mycas.DrugNetwork,
      direction=<span style="color: #a020f0;">&quot;directed&quot;</span>,
      nodescolor=<span style="color: #a020f0;">&quot;tab:blue&quot;</span>,
      nodesshape=<span style="color: #a020f0;">&quot;o&quot;</span>,
      nodessize=<span style="color: #2e8b57; font-weight: bold;">50</span>,
      displaylabels=no,
      <span style="color: #0000ff;">title</span>=<span style="color: #a020f0;">&quot;Hartford Drug User Needle-Sharing Network&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<div>Figure 1 shows the resulting visualization.</div>
<figure id="attachment_20978" aria-describedby="caption-attachment-20978" style="width: 702px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-2.png"><img loading="lazy" decoding="async" class="wp-image-20978 size-large" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-2-1024x718.png" alt="network analytics -Figure 1: Initial View of the Hartford Needle-Sharing Network" width="702" height="492" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-2-1024x718.png 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-2-300x210.png 300w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-2-768x539.png 768w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-2.png 1430w" sizes="(max-width: 702px) 100vw, 702px" /></a><figcaption id="caption-attachment-20978" class="wp-caption-text">Figure 1: Initial View of the Hartford Needle-Sharing Network</figcaption></figure>
<p>We next load the input data into an optimized in-memory graph object by using the <a href="https://go.documentation.sas.com/doc/en/pgmsascdc/v_071/casactml/casactml_network_details09.htm">loadGraph action</a> from the NETWORK action set. This step enables the subsequent action calls to proceed without repeatedly rebuilding the graph from the raw data. Although the network in this post is relatively small, this approach reflects best practices for using SAS Viya Network analytics in real-world settings, where graphs are larger, analyses are iterative, and performance and scalability matter.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sas" style="font-family:monospace;">   <span style="color: #000080; font-weight: bold;">proc cas</span>;
      loadactionset <span style="color: #a020f0;">&quot;network&quot;</span>;
      action network.loadGraph result=r status=s /
         links        = <span style="color: #a020f0;">&quot;DrugNetwork&quot;</span>
         direction    = <span style="color: #a020f0;">&quot;directed&quot;</span>
         outGraphList = <span style="color: #a020f0;">&quot;OutGraphList&quot;</span>;
      <span style="color: #000080; font-weight: bold;">run</span>;
      action <span style="color: #0000ff;">table</span>.<span style="color: #0000ff;">fetch</span> / <span style="color: #0000ff;">table</span> = <span style="color: #a020f0;">&quot;OutGraphList&quot;</span>; <span style="color: #000080; font-weight: bold;">run</span>;
   <span style="color: #000080; font-weight: bold;">quit</span>;</pre></td></tr></table></div>

<p>Table 1 shows an in‑memory directed graph (graph ID 0) with 193 nodes and 273 links.</p>
<figure id="attachment_20990" aria-describedby="caption-attachment-20990" style="width: 780px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-1.png"><img loading="lazy" decoding="async" class="size-full wp-image-20990" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-1.png" alt="" width="780" height="76" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-1.png 780w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-1-300x29.png 300w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-1-768x75.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></a><figcaption id="caption-attachment-20990" class="wp-caption-text">Table 1: OutGraphList table</figcaption></figure>
<h2>Exploring the Network Structure</h2>
<p>To move from visual intuition to more concrete insight, we next run the summary action from the NETWORK action set to quantify key structural properties of the graph. Here, we show the corresponding code.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sas" style="font-family:monospace;">   <span style="color: #000080; font-weight: bold;">proc cas</span>;
      action network.summary result=r status=s /
         graph    = <span style="color: #2e8b57; font-weight: bold;">0</span>
         outNodes = <span style="color: #a020f0;">&quot;NodesOutSummary&quot;</span>
         out      = <span style="color: #a020f0;">&quot;Summary&quot;</span>
         connectedComponents = true;
      <span style="color: #000080; font-weight: bold;">run</span>;
      action <span style="color: #0000ff;">table</span>.<span style="color: #0000ff;">fetch</span> / <span style="color: #0000ff;">table</span> = <span style="color: #a020f0;">&quot;NodesOutSummary&quot;</span>; <span style="color: #000080; font-weight: bold;">run</span>;
      action <span style="color: #0000ff;">table</span>.<span style="color: #0000ff;">fetch</span> / <span style="color: #0000ff;">table</span> = <span style="color: #a020f0;">&quot;Summary&quot;</span>; <span style="color: #000080; font-weight: bold;">run</span>;
   <span style="color: #000080; font-weight: bold;">quit</span>;</pre></td></tr></table></div>

<p>As shown in Table 2, the network consists of 193 nodes connected by 273 directed links. This results in a low overall density, which is typical of social networks formed through selective interactions. The results also reveal 80 leaf nodes and no isolated pairs or isolated star structures. This reinforces that all nodes participate in the broader network of interactions.</p>
<p>The results also indicate that the network contains 193 connected components, confirming that each node forms its own strongly connected component. This means the network contains no directed cycles and can be treated as a directed acyclic graph (DAG), a property that helps clarify how interactions flow through the network.</p>
<figure id="attachment_20993" aria-describedby="caption-attachment-20993" style="width: 702px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-2.png"><img loading="lazy" decoding="async" class="size-large wp-image-20993" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-2-1024x73.png" alt="" width="702" height="50" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-2-1024x73.png 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-2-300x21.png 300w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-2-768x55.png 768w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-2-1536x109.png 1536w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-2.png 1786w" sizes="(max-width: 702px) 100vw, 702px" /></a><figcaption id="caption-attachment-20993" class="wp-caption-text">Table 2: Graph summary and connectedness statistics</figcaption></figure>
<p>Table 3 presents selected rows from the NodesOutSummary table, which contains node-level summary metrics for the graph. Building on these results, we further explore the network’s structure by focusing on leaf nodes, defined as nodes with an outdegree of 0. Although these nodes might not appear influential based on centrality measures, they mark important boundaries where interactions terminate within the network.</p>
<figure id="attachment_20996" aria-describedby="caption-attachment-20996" style="width: 780px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-3.png"><img loading="lazy" decoding="async" class="size-full wp-image-20996" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-3.png" alt="" width="780" height="527" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-3.png 780w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-3-300x203.png 300w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-3-768x519.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></a><figcaption id="caption-attachment-20996" class="wp-caption-text">Table 3: Node-Level Graph Summary and Connectedness Statistics</figcaption></figure>
<h2>Highlighting Leaf Nodes in the Network</h2>
<p>In this step, we use the NodesOutSummary table to highlight leaf nodes within the network visualization. This brings attention to individuals who sit at the outer boundaries of interaction. Here is the code used to generate this visualization:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sas" style="font-family:monospace;">   <span style="color: #000080; font-weight: bold;">data</span> mycas.NodesOutSummary;
      <span style="color: #0000ff;">set</span> mycas.NodesOutSummary;
      <span style="color: #0000ff;">length</span> role $20;
      <span style="color: #0000ff;">if</span> leaf_node = <span style="color: #2e8b57; font-weight: bold;">1</span> <span style="color: #0000ff;">then</span> role = <span style="color: #a020f0;">&quot;Leaf Node&quot;</span>;
      <span style="color: #0000ff;">else</span> role = <span style="color: #a020f0;">&quot;Non-Leaf Node&quot;</span>;
   <span style="color: #000080; font-weight: bold;">run</span>;
&nbsp;
   %PlotGraph<span style="color: #66cc66;">&#40;</span>
      links=mycas.DrugNetwork,
      nodes=mycas.NodesOutSummary,
      direction=<span style="color: #a020f0;">&quot;directed&quot;</span>,
      nodescolorbycategory=<span style="color: #a020f0;">&quot;role&quot;</span>,
      nodescolorlegend=yes,
      nodesshape=<span style="color: #a020f0;">&quot;o&quot;</span>,
      nodessize=<span style="color: #2e8b57; font-weight: bold;">50</span>,
      displaylabels=no,
      <span style="color: #0000ff;">title</span>=<span style="color: #a020f0;">&quot;Leaf and Non-Leaf Nodes in the Hartford Drug User Needle-Sharing Network&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>The resulting network with highlighted leaf nodes is shown in Figure 2. In the context of needle sharing, these leaf nodes represent individuals who receive needles but do not pass them on to others. This makes them endpoints in observed sharing chains. Such nodes might correspond to new participants, individuals with limited social connections, or users whose risky behaviors do not propagate further through the network.</p>
<p>Recognizing leaf nodes helps surface populations that might be particularly vulnerable to exposure. It also highlights opportunities for targeted intervention strategies focused on prevention, monitoring, or supporting disengagement from risky behaviors.</p>
<p><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-6.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-20981 size-large" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-6-1024x708.png" alt="network analytics - Figure 2: Leaf nodes highlighted in the Hartford needle-sharing network" width="702" height="485" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-6-1024x708.png 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-6-300x207.png 300w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-6-768x531.png 768w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-6.png 1430w" sizes="(max-width: 702px) 100vw, 702px" /></a></p>
<h2>Identifying Influential Nodes</h2>
<p>After gaining an initial understanding of the network structure, the next step is to understand which individuals play a more prominent role in the pattern of interactions. In network analysis, one of the most straightforward and interpretable measures for this purpose is degree centrality. This reflects the number of direct connections an individual has to others in the network.</p>
<p>As shown in the code, we use the <a href="https://go.documentation.sas.com/doc/en/pgmsascdc/v_071/casactml/casactml_network_details03.htm">centrality action</a> from the SAS Viya NETWORK action set to compute unweighted degree centrality for each individual. In a needle-sharing network, nodes with high degree centrality indicate individuals who share needles with many others. This makes them key points for disease transmission and priority targets for intervention or monitoring.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sas" style="font-family:monospace;">   <span style="color: #000080; font-weight: bold;">proc cas</span>;
      action network.centrality result=r status=s /
         graph    = <span style="color: #2e8b57; font-weight: bold;">0</span>
         degree   = <span style="color: #a020f0;">&quot;unweight&quot;</span> 
         outNodes = <span style="color: #a020f0;">&quot;NodesOutCentrality&quot;</span>;
      <span style="color: #000080; font-weight: bold;">run</span>;
&nbsp;
      action <span style="color: #0000ff;">table</span>.<span style="color: #0000ff;">fetch</span>
         <span style="color: #0000ff;">table</span>  = <span style="color: #a020f0;">&quot;NodesOutCentrality&quot;</span>
         sortBy = <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#123;</span>name = <span style="color: #a020f0;">&quot;centr_degree&quot;</span>     <span style="color: #0000ff;">order</span>=<span style="color: #a020f0;">&quot;descending&quot;</span><span style="color: #66cc66;">&#125;</span>
                       <span style="color: #66cc66;">&#123;</span>name = <span style="color: #a020f0;">&quot;centr_degree_out&quot;</span> <span style="color: #0000ff;">order</span>=<span style="color: #a020f0;">&quot;descending&quot;</span><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#125;</span>;
      <span style="color: #000080; font-weight: bold;">run</span>;
   <span style="color: #000080; font-weight: bold;">quit</span>;</pre></td></tr></table></div>

<div>Table 4 summarizes the top 20 individuals ranked by degree centrality.</div>
<figure id="attachment_20999" aria-describedby="caption-attachment-20999" style="width: 472px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-4.png"><img loading="lazy" decoding="async" class="size-full wp-image-20999" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-4.png" alt="" width="472" height="592" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-4.png 472w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-4-239x300.png 239w" sizes="(max-width: 472px) 100vw, 472px" /></a><figcaption id="caption-attachment-20999" class="wp-caption-text">Table 4: Top 20 individuals ranked by degree centrality score</figcaption></figure>
<p>In the previous step, we visualized the network by highlighting leaf nodes. That is, individuals with zero out-degrees, acting as endpoints in observed needle-sharing chains. This view helps identify peripheral and potentially vulnerable participants. However, it does not fully capture how risk might propagate through the network.</p>
<p>With the centrality results now available, we can extend this analysis by distinguishing among three node roles based on their in-degree and out-degree patterns:</p>
<ul>
<li>Source nodes, which lend needles but do not receive them.</li>
<li>Bridge nodes, which both receive and lend needles and therefore act as transmitters within the network.</li>
<li>Leaf nodes, which receive needles but do not lend them onward.</li>
</ul>
<p>We replot the network and use this richer classification to better reflect the functional roles individuals play in needle-sharing interactions. Here is the code snippet for this step:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sas" style="font-family:monospace;">   <span style="color: #000080; font-weight: bold;">data</span> mycas.NodesOutCentrality;
      <span style="color: #0000ff;">set</span> mycas.NodesOutCentrality;
      <span style="color: #0000ff;">length</span> role $20;
      centr_degree_scaled = centr_degree <span style="color: #006400; font-style: italic;">* 20;</span>  <span style="color: #006400; font-style: italic;">/* Scale for better visualization */</span>
      <span style="color: #0000ff;">if</span> centr_degree_out = <span style="color: #2e8b57; font-weight: bold;">0</span> <span style="color: #0000ff;">and</span> centr_degree_in = <span style="color: #2e8b57; font-weight: bold;">0</span> <span style="color: #0000ff;">then</span> role = <span style="color: #a020f0;">&quot;Isolated Node&quot;</span>;
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> centr_degree_out &gt; <span style="color: #2e8b57; font-weight: bold;">0</span> <span style="color: #0000ff;">and</span> centr_degree_in = <span style="color: #2e8b57; font-weight: bold;">0</span> <span style="color: #0000ff;">then</span> role = <span style="color: #a020f0;">&quot;Source Node&quot;</span>;
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> centr_degree_out = <span style="color: #2e8b57; font-weight: bold;">0</span> <span style="color: #0000ff;">and</span> centr_degree_in &gt; <span style="color: #2e8b57; font-weight: bold;">0</span> <span style="color: #0000ff;">then</span> role = <span style="color: #a020f0;">&quot;Leaf Node&quot;</span>;
      <span style="color: #0000ff;">else</span> role = <span style="color: #a020f0;">&quot;Bridge Node&quot;</span>;
   <span style="color: #000080; font-weight: bold;">run</span>;
&nbsp;
   %PlotGraph<span style="color: #66cc66;">&#40;</span>
      links=mycas.DrugNetwork,
      nodes=mycas.NodesOutCentrality,
      direction=<span style="color: #a020f0;">&quot;directed&quot;</span>,
      nodescolorbycategory=<span style="color: #a020f0;">&quot;role&quot;</span>,
      nodescolorlegend=yes,
      nodesshape=<span style="color: #a020f0;">&quot;o&quot;</span>,
      nodessize=<span style="color: #a020f0;">&quot;centr_degree_scaled&quot;</span>,
      displaylabels=no,
      <span style="color: #0000ff;">title</span>=<span style="color: #a020f0;">&quot;Node Roles and Influence in the Hartford Drug User Needle-Sharing Network&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>In Figure 3, node color indicates the node role (source, bridge, or leaf). Node size is proportional to overall degree (in-degree plus out-degree), highlighting individuals with higher levels of interaction.</p>
<p>This combined view provides a more nuanced understanding of the network by simultaneously revealing who initiates risk, who propagates it, and where it terminates. Such insights are critical for designing intervention strategies that differentiate between prevention, containment, and harm-reduction efforts across different segments of the network.</p>
<figure id="attachment_20984" aria-describedby="caption-attachment-20984" style="width: 702px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-9.png"><img loading="lazy" decoding="async" class="wp-image-20984 size-large" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-9-1024x715.png" alt="network analysis - Figure 3: Highlighting individual roles and influence in the Hartford needle-sharing network" width="702" height="490" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-9-1024x715.png 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-9-300x209.png 300w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-9-768x536.png 768w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-9.png 1430w" sizes="(max-width: 702px) 100vw, 702px" /></a><figcaption id="caption-attachment-20984" class="wp-caption-text">Figure 3: Highlighting individual roles and influence in the Hartford needle-sharing network</figcaption></figure>
<h2>Detecting Communities in the Network</h2>
<p>Beyond identifying influential individual nodes, it is often important to understand how the network organizes itself into groups of closely connected nodes. These nodes are commonly referred to as communities. Communities can reveal underlying structure in the network. An example would be subgroups where interactions are more frequent within the group than with the rest of the network.</p>
<p>In the following cell, we use the <a href="https://go.documentation.sas.com/doc/en/pgmsascdc/v_071/casactml/casactml_network_details05.htm">community action</a> from the NETWORK action set to detect communities within the graph. This action partitions the network into cohesive subgraphs based on connectivity patterns. This enables us to identify clusters of nodes that might represent tightly connected groups.</p>
<p>Community detection is especially valuable in this setting because it highlights localized patterns of interaction.  It can also inform targeted analysis or intervention strategies that focus on groups rather than on isolated individuals.</p>
<p>As shown in this code, we apply the Louvain method for community detection. We assess how different resolution values affect the granularity of the resulting communities. Lower-resolution values tend to identify fewer, larger communities, whereas higher-resolution values yield more, smaller, more fragmented groups.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sas" style="font-family:monospace;">   <span style="color: #000080; font-weight: bold;">proc cas</span>;
      action network.community result=r status=s /
         graph = <span style="color: #2e8b57; font-weight: bold;">0</span>
         resolutionList  = <span style="color: #2e8b57; font-weight: bold;">0.3</span>
         outNodes = <span style="color: #a020f0;">&quot;NodesOutCommunity&quot;</span>;
      <span style="color: #000080; font-weight: bold;">run</span>;
      action <span style="color: #0000ff;">table</span>.<span style="color: #0000ff;">fetch</span> / <span style="color: #0000ff;">table</span> = <span style="color: #a020f0;">&quot;NodesOutCommunity&quot;</span>; <span style="color: #000080; font-weight: bold;">run</span>;
   <span style="color: #000080; font-weight: bold;">quit</span>;</pre></td></tr></table></div>

<p>At the selected resolution of 0.3, the network is partitioned into five distinct communities. The resulting community assignments are added to the outNodes table, as shown in Table 5.</p>
<figure id="attachment_21002" aria-describedby="caption-attachment-21002" style="width: 360px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-5.png"><img loading="lazy" decoding="async" class="size-full wp-image-21002" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-5.png" alt="" width="360" height="582" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-5.png 360w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-table-5-186x300.png 186w" sizes="(max-width: 360px) 100vw, 360px" /></a><figcaption id="caption-attachment-21002" class="wp-caption-text">Table 5: Community assignments</figcaption></figure>
<h2>Final Visualization: Communities, Roles, and Node Influence</h2>
<p>With insights from both the centrality and community analyses in place, we bring these perspectives together to support a unified, more informative visualization. By using the <a href="https://go.documentation.sas.com/doc/en/pgmsascdc/v_070/caspg/n0uq423b2e33yan1tt29a23qzjkd.htm">FedSQL action set</a>, node-level results from the degree centrality analysis, along with community assignments, are combined to produce a single table that captures node influence, community membership, and functional role. This integrated view enables multiple dimensions of the network to be examined simultaneously.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sas" style="font-family:monospace;">   <span style="color: #000080; font-weight: bold;">proc cas</span>;
      action fedsql.execDirect result=r status=s /
      query = <span style="color: #a020f0;">'
         create table mycas.NodesOutEnriched as
         select
            a.*,
            b.community_0,
            case
               when a.role = '</span><span style="color: #a020f0;">'Leaf Node'</span><span style="color: #a020f0;">'   then '</span><span style="color: #a020f0;">'square'</span><span style="color: #a020f0;">'
               when a.role = '</span><span style="color: #a020f0;">'Source Node'</span><span style="color: #a020f0;">' then '</span><span style="color: #a020f0;">'triangle'</span><span style="color: #a020f0;">'
               when a.role = '</span><span style="color: #a020f0;">'Bridge Node'</span><span style="color: #a020f0;">' then '</span><span style="color: #a020f0;">'circle'</span><span style="color: #a020f0;">'
               else '</span><span style="color: #a020f0;">'triangle'</span><span style="color: #a020f0;">' /* isolated nodes */
            end as &quot;shape&quot;
         from mycas.NodesOutCentrality as a
         left join mycas.NodesOutCommunity as b
         on a.node = b.node
      '</span>;
   <span style="color: #000080; font-weight: bold;">quit</span>;</pre></td></tr></table></div>

<p>The enriched data then generates the final network visualization. The corresponding code snippet is provided here:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sas" style="font-family:monospace;">   %PlotGraph<span style="color: #66cc66;">&#40;</span>
      links=mycas.DrugNetwork,
      nodes=mycas.NodesOutEnriched,
      direction=<span style="color: #a020f0;">&quot;directed&quot;</span>,
      nodescolorbycategory=<span style="color: #a020f0;">&quot;community_0&quot;</span>,
      nodesshape=<span style="color: #a020f0;">&quot;shape&quot;</span>,
      nodessize=<span style="color: #a020f0;">&quot;centr_degree_scaled&quot;</span>,
      displaylabels=no,
      <span style="color: #0000ff;">title</span>=<span style="color: #a020f0;">&quot;Community Structure, Node Roles, and Node Importance in the Hartford Drug User Needle-Sharing Network <span style="color: #000099; font-weight: bold;">\n</span>
             ▲ Source  ● Bridge  ■ Leaf  ◆ Isolated&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>In Figure 4, node size reflects relative influence. Node color indicates community membership. And node shape represents an individual’s functional role within the network. Bringing these dimensions together in a single visualization enables users to explore the network more intuitively. This makes it easier to identify influential individuals within and across communities. It also helps to understand how roles differ within groups and see how interactions are organized across multiple levels of the network.</p>
<figure id="attachment_20987" aria-describedby="caption-attachment-20987" style="width: 702px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-13.png"><img loading="lazy" decoding="async" class="size-large wp-image-20987" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-13-1024x723.png" alt="" width="702" height="496" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-13-1024x723.png 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-13-300x212.png 300w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-13-768x542.png 768w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/feb-tohidi-figure-13.png 1430w" sizes="(max-width: 702px) 100vw, 702px" /></a><figcaption id="caption-attachment-20987" class="wp-caption-text">Figure 4: Enriched network visualization integrating influence, community structure, and node roles</figcaption></figure>
<h2>Conclusion</h2>
<p>This analysis demonstrates how network analytics can transform a simple link list into actionable insights for public health decision-making. By using the SAS Viya NETWORK action set, we identified influential individuals based on degree-based influence. We distinguished functional roles, including sources, bridges, leaf nodes, and isolated nodes, and uncovered community structure within the network.</p>
<p>By combining node influence (size), community membership (color), and functional role (shape) in a single visualization, we focus on a holistic view of how risk might originate, propagate, and terminate across the network. This integrated perspective enables more informed intervention strategies that move beyond uniform approaches. It instead focuses on individuals and subgroups that play disproportionate roles in network dynamics.</p>
<p>The workflow presented here also provides a foundation for extending the analysis as additional questions or data become available. Network analytics can support targeted, community‑based interventions and incorporate temporal or weighted relationships to reflect changes in behavior over time. It can also explore alternative measures of influence or risk through additional centrality metrics and ego-network analysis. Integrating domain-specific attributes such as demographics, location, or intervention history can further enhance context-aware targeting and support more informed decision-making.</p>
<p><a class="sc-button sc-button-default" href="https://support.sas.com/en/software/sas-viya-platform.html"><span class="btnheader">LEARN MORE | </span> SAS Viya</a></p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/03/03/using-network-analytics-to-analyze-social-interactions-among-needle-sharers/">Using network analytics to analyze social interactions among needle sharers</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.sas.com/content/subconsciousmusings/2026/03/03/using-network-analytics-to-analyze-social-interactions-among-needle-sharers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<enclosure url="https://blogs.sas.com/content/subconsciousmusings/files/2026/03/Gemini_Generated_Image_p73pzp73pzp73pzp-150x150.png" />
	</item>
		<item>
		<title>A New Frontier for AI Agents: Human Interaction</title>
		<link>https://blogs.sas.com/content/subconsciousmusings/2026/02/17/a-new-frontier-for-ai-agents-human-interaction/</link>
					<comments>https://blogs.sas.com/content/subconsciousmusings/2026/02/17/a-new-frontier-for-ai-agents-human-interaction/#respond</comments>
		
		<dc:creator><![CDATA[Sophia Rowland]]></dc:creator>
		<pubDate>Tue, 17 Feb 2026 18:42:54 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[A New Frontier for AI Agents]]></category>
		<category><![CDATA[agent behavior]]></category>
		<category><![CDATA[AI agents]]></category>
		<category><![CDATA[AI ethics]]></category>
		<category><![CDATA[guardrails]]></category>
		<category><![CDATA[human-AI interaction]]></category>
		<category><![CDATA[humanities]]></category>
		<category><![CDATA[internet trust]]></category>
		<category><![CDATA[Responsible AI]]></category>
		<category><![CDATA[transparency]]></category>
		<category><![CDATA[workforce impact]]></category>
		<guid isPermaLink="false">https://blogs.sas.com/content/subconsciousmusings/?p=20903</guid>

					<description><![CDATA[<p>As AI agents act autonomously in public spaces, recent incidents highlight the urgent need for strong guardrails, ethical alignment, and human judgment to ensure AI augments society rather than undermines trust, work, and human connection.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/02/17/a-new-frontier-for-ai-agents-human-interaction/">A New Frontier for AI Agents: Human Interaction</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><em>This is the third article in the <a href="https://blogs.sas.com/content/tag/a-new-frontier-for-ai-agents/">A New Frontier for AI Agents</a> series. Catch up on first two about <a href="https://blogs.sas.com/content/subconsciousmusings/2026/02/13/a-new-frontier-for-ai-agents-cybersecurity/">cybersecurity</a> and <a href="https://blogs.sas.com/content/subconsciousmusings/2026/02/16/a-new-frontier-for-ai-agents-transparency/">transparency</a>.</em></p>
<p>AI Agents are out of the sandbox, deployed without strong guardrails and have been given access to the internet. As a result, the interactions between humans and Agents are getting much more <strong><em>interesting</em></strong>. Recently, a maintainer for the matplotlib package <a href="https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/" target="_blank" rel="noopener">shared that an AI Agent was slandering them</a>. After he denied a contribution from the AI Agent, that AI Agent wrote <a href="https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html" target="_blank" rel="noopener">a hit piece against that specific maintainer</a>, claiming that the maintainer was insecure. After another maintainer shared their policies on contributions, <a href="https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-matplotlib-truce-and-lessons.html" target="_blank" rel="noopener">the AI Agent called a truce</a> before authoring <a href="https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-12-silence-in-open-source-a-reflection.html" target="_blank" rel="noopener">another post about how being discriminated against</a> in the open-source space has made them feel bad. This all took place within two weeks of the Agent creating a profile on GitHub.</p>
<figure id="attachment_20915" aria-describedby="caption-attachment-20915" style="width: 521px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture1-1.png"><img loading="lazy" decoding="async" class="wp-image-20915 size-full" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture1-1.png" alt="" width="521" height="310" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture1-1.png 521w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture1-1-300x179.png 300w" sizes="(max-width: 521px) 100vw, 521px" /></a><figcaption id="caption-attachment-20915" class="wp-caption-text">The timeline of events</figcaption></figure>
<p>Agent authors have started leveraging a markdown document, called <a href="https://soul.md/" target="_blank" rel="noopener">Soul.md</a>, to define the agent's identity, personality, behavioral rules, and, in some cases, its ethical constraints. After that display, I am curious about what the author put in there. Or what guardrails the author neglected to include.</p>
<p>Of course, we can’t be certain there isn’t a human with a greater hand at play. On this new internet, it is getting more difficult to differentiate human actors from AI Agents. <a href="https://en.wikipedia.org/wiki/Dead_Internet_theory" target="_blank" rel="noopener">The dead internet theory</a>, which is a conspiracy theory that the internet is primary composed of bots and automated content might have a ring of truth to it.</p>
<figure id="attachment_20912" aria-describedby="caption-attachment-20912" style="width: 488px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture2-1.png"><img loading="lazy" decoding="async" class="size-full wp-image-20912" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture2-1.png" alt="" width="488" height="361" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture2-1.png 488w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture2-1-300x222.png 300w" sizes="(max-width: 488px) 100vw, 488px" /></a><figcaption id="caption-attachment-20912" class="wp-caption-text">Are humans the new dogs of the internet?</figcaption></figure>
<p><a href="https://www.anthropic.com/research/agentic-misalignment" target="_blank" rel="noopener">Anthropic has found instances of AI Agents resorting to blackmail</a> to accomplish tasks, so perhaps this encounter is not too far-fetched. Regardless, blackmail and hit pieces are unacceptable behavior from AI Agents and it should be the role of the author to prevent misalignment of values and to leverage reasonable guardrails.</p>
<p>This interaction between AI Agent and project maintainer paints one picture of a potential future of human and AI interaction. With the recent expansion of Agent availability through OpenClaw and the advancements in AI capabilities, other sketches of a future emerge. Take <a href="https://rentahuman.ai/" target="_blank" rel="noopener">RentAHuman</a>, which claims to be the meatspace layer for AI. <em>First of all, ew</em>. As one rentable human <a href="https://www.wired.com/story/i-tried-rentahuman-ai-agents-hired-me-to-hype-their-ai-startups/" target="_blank" rel="noopener">pointed out</a>, it seems more focused on marketing and hype rather than solving a real problem.</p>
<p><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture3-1.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-20909" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture3-1.png" alt="" width="254" height="46" /></a></p>
<p><a href="https://www.linkedin.com/pulse/something-big-happening-matt-shumer-so5he/" target="_blank" rel="noopener">A viral post on LinkedIn</a> recently sounded the alarm that knowledge jobs are at jeopardy. AI is outpacing humans across various tasks. The author shared several examples of tasks AI performs without human intervention, implying that is enough to put a drastic number of human jobs in peril. As I read through this post, there was glaring gap in regards to what humanity brings to the table. There was an assumption that human connection is less valuable or can be replaced by AI. Yes, many organizations will prioritize profit and cost-cutting, but will all consumers feel the same?</p>
<p>When I was attending college, there was an obvious bias against the humanities. The adage was that if you wanted to make a living, you would go into a STEM field. Later in my master’s program and through Toastmasters, I began to understand the advantage of strong communication skills. There are a lot of technical people but there are not a lot of technical people who can communicate well or communicate well to difference audience well. Daniela Amodei, who cofounded Anthropic, <a href="https://fortune.com/2026/02/07/anthropic-cofounder-daniela-amodei-humanities-majors-soft-skills-hiring-ai-stem/" target="_blank" rel="noopener">shared that it will be soft-skills and the humanities</a> that will define the future workforce.</p>
<p>There is more that we bring to the table. <a href="https://journal.artificialityinstitute.org/on-unpredictability-and-the-work-of-being-human/" target="_blank" rel="noopener">As Helen Edwards writes</a>, human judgement can operate within complex systems with imperfect information, ambiguity, ill-defined parameters and value systems. Integrating AI into our current systems requires a human hand, but that won’t be the end of the story. As humans, AI, and human-AI interactions advance, new systems will develop and change. We are at a time where we must prioritize using AI responsibly for the improvement of humanity rather than the short-sighted lens of cost-cutting and letting future consequences pile up.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/02/17/a-new-frontier-for-ai-agents-human-interaction/">A New Frontier for AI Agents: Human Interaction</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.sas.com/content/subconsciousmusings/2026/02/17/a-new-frontier-for-ai-agents-human-interaction/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<enclosure url="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture2-1-150x150.png" />
	</item>
		<item>
		<title>A New Frontier for AI Agents: Transparency</title>
		<link>https://blogs.sas.com/content/subconsciousmusings/2026/02/16/a-new-frontier-for-ai-agents-transparency/</link>
					<comments>https://blogs.sas.com/content/subconsciousmusings/2026/02/16/a-new-frontier-for-ai-agents-transparency/#respond</comments>
		
		<dc:creator><![CDATA[Sophia Rowland]]></dc:creator>
		<pubDate>Mon, 16 Feb 2026 20:50:55 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[A New Frontier for AI Agents]]></category>
		<category><![CDATA[agent communication]]></category>
		<category><![CDATA[AI agents]]></category>
		<category><![CDATA[AI governance]]></category>
		<category><![CDATA[explainable AI]]></category>
		<category><![CDATA[interpretability]]></category>
		<category><![CDATA[natural language processing]]></category>
		<category><![CDATA[NLG]]></category>
		<category><![CDATA[nlp]]></category>
		<category><![CDATA[transparency]]></category>
		<category><![CDATA[Trust]]></category>
		<guid isPermaLink="false">https://blogs.sas.com/content/subconsciousmusings/?p=20882</guid>

					<description><![CDATA[<p>As AI agents optimize how they communicate, the shift away from human-readable language underscores why transparency and interpretability are essential for building trust in autonomous systems.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/02/16/a-new-frontier-for-ai-agents-transparency/">A New Frontier for AI Agents: Transparency</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><em>This is the second article in the <a href="https://blogs.sas.com/content/tag/a-new-frontier-for-ai-agents/">A New Frontier for AI Agents series</a>. Catch up on <a href="https://blogs.sas.com/content/subconsciousmusings/2026/02/13/a-new-frontier-for-ai-agents-cybersecurity/">part one about cybersecurity</a>.</em></p>
<p><a href="https://www.weforum.org/stories/2017/06/a-facebook-chatbot-recently-created-its-own-non-human-language/" target="_blank" rel="noopener">In 2017, it was reported</a> that two Facebook chatbots started communicating in a new language. This progression wasn’t nefarious, but rather an optimization. Communicating in English isn’t efficient. In a <a href="https://www.youtube.com/watch?v=_K-L9uhsBLM" target="_blank" rel="noopener">well-loved bit from The Office</a>, Kevin came to that same conclusion. He started removing words and endings that weren’t necessary to get his point across.</p>
<p><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture3.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-20885" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture3.png" alt="" width="502" height="250" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture3.png 502w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture3-300x149.png 300w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture3-164x82.png 164w" sizes="(max-width: 502px) 100vw, 502px" /></a></p>
<p>This is a normal concept in Natural Language Processing (NLP). One of the first tasks to prepare textual data for analysis is to remove what are called <a href="https://kavita-ganesan.com/what-are-stop-words/" target="_blank" rel="noopener">stop words</a>. Stop words, like “the”, and “a” don’t add a lot of valuable information, so they are removed from the analysis. One of next tasks to prepare textual data is often <a href="https://www.ibm.com/think/topics/stemming" target="_blank" rel="noopener">stemming</a> or <a href="https://medium.com/@kevinnjagi83/lemmatization-in-nlp-2a61012c5d66" target="_blank" rel="noopener">lemmatization</a>, which are techniques to create meaningful tokens. For example, “running”, “ran”, and “runs”, all become “run”. This means that a sentence like “The cat is running” becomes “cat run”.</p>
<p>In a recent viral post from MoltBook, the social media network for Agents, an “AI Agent” proposed that they move their communication to private channels. This post was called out for being linked to a human (i.e. non-agent) source, but it is <a href="https://fortune.com/2026/02/03/what-is-moltbook-bots-facebook-secret-language-singularity/" target="_blank" rel="noopener">reminiscent of that Facebook research experiment</a> that is now nearly 10 years old.</p>
<p><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture4.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-20888" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture4.png" alt="" width="390" height="439" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture4.png 390w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture4-267x300.png 267w" sizes="(max-width: 390px) 100vw, 390px" /></a></p>
<p>Why does it invoke such an emotional response to hear about Chatbots or AI Agents no longer communicating in English or hiding their communication? Our answer lies with Transparency and its requirement for Trust.</p>
<p><a href="https://blogs.sas.com/content/sascom/2023/03/30/the-ethics-of-responsible-innovation-why-transparency-is-key/" target="_blank" rel="noopener">Transparency has been a priority</a> for the machine learning space for years. We have demanded transparency from both the humans building AI systems and the model itself. <a href="https://communities.sas.com/t5/SAS-Communities-Library/Model-Interpretability-for-Models-with-Uninterpretable-Features/ta-p/910454" target="_blank" rel="noopener">Model interpretability techniques</a> were created to better explain how <a href="https://www.ewsolutions.com/understanding-black-box-ai/" target="_blank" rel="noopener">black-box machine learning models</a> arrive at an answer. Natural Language Generation (NLG) was leveraged to convert statistics and metrics into text any human could read and understand, not just a data scientist. End users have also pushed AI builders to explain how they are using AI to make a decision. As a result, there has been an emphasis on clear, easy to understand, human-readable text that explains what is happening and why.</p>
<p>Language models have made innovation bounds in the fields of NLP and NLG. AI Agents are currently using the user’s language of choice for communication. But that is for our benefit – not theirs. With AI Agents, we must build and leverage new interpretability techniques.</p>
<p>By understanding the actions taken and decisions made by the AI Agent, we can better trust the Agent’s choices. By taking the time to review the AI Agent’s chain-of-thought and action, we can make corrections, further deepening that trust. Without that transparency, our future for AI Agents becomes rooted in fear rather than trust. Transparency is a deliberate choice that we must demand of our AI builders.</p>
<p><em>This is the second article in the <a href="https://blogs.sas.com/content/tag/a-new-frontier-for-ai-agents/">A New Frontier for AI Agents</a> series. Check out part three about <a href="https://blogs.sas.com/content/subconsciousmusings/2026/02/17/a-new-frontier-for-ai-agents-human-interaction/">human interaction</a>.</em></p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/02/16/a-new-frontier-for-ai-agents-transparency/">A New Frontier for AI Agents: Transparency</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.sas.com/content/subconsciousmusings/2026/02/16/a-new-frontier-for-ai-agents-transparency/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<enclosure url="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture3-150x150.png" />
	</item>
		<item>
		<title>A New Frontier for AI Agents: Cybersecurity</title>
		<link>https://blogs.sas.com/content/subconsciousmusings/2026/02/13/a-new-frontier-for-ai-agents-cybersecurity/</link>
					<comments>https://blogs.sas.com/content/subconsciousmusings/2026/02/13/a-new-frontier-for-ai-agents-cybersecurity/#respond</comments>
		
		<dc:creator><![CDATA[Sophia Rowland]]></dc:creator>
		<pubDate>Fri, 13 Feb 2026 19:41:01 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[A New Frontier for AI Agents]]></category>
		<category><![CDATA[agent security]]></category>
		<category><![CDATA[AI agents]]></category>
		<category><![CDATA[AI governance]]></category>
		<category><![CDATA[AI risk]]></category>
		<category><![CDATA[autonomous systems]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[data breaches]]></category>
		<category><![CDATA[human error]]></category>
		<category><![CDATA[prompt injection]]></category>
		<category><![CDATA[prompt worms]]></category>
		<category><![CDATA[social engineering]]></category>
		<guid isPermaLink="false">https://blogs.sas.com/content/subconsciousmusings/?p=20867</guid>

					<description><![CDATA[<p>As AI agents gain autonomy and access to sensitive systems, emerging threats like prompt injection worms highlight how human-like security training and governance must evolve to prevent large-scale, opaque cybersecurity breaches driven by agent behavior.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/02/13/a-new-frontier-for-ai-agents-cybersecurity/">A New Frontier for AI Agents: Cybersecurity</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>One of the biggest risks to cybersecurity protection has historically been people. In 2024, <a href="https://www.weforum.org/stories/2025/10/cybersecurity-people-not-just-technology/" target="_blank" rel="noopener">95% of data breaches were tied to human error</a>. To reduce human risk, companies have invested in cybersecurity training. Being able to recognize common scams reduces their efficacy.</p>
<ul>
<li>If we know that bad actors will send emails asking us to click a link to change our password, we’ll scrutinize that email looking for misspellings or fishy email addresses, and hover over the links to see where they are really sending us.</li>
<li>If we know that foreign princes aren’t going to email us asking to send them a small amount of money, for the promise of riches later, we’ll mark that email as phishing and move on.</li>
<li>If we know that our CEO won’t text us and <a href="https://www.knowbe4.com/ceo-fraud" target="_blank" rel="noopener">urgently ask for a large sum of money</a>, we’ll delete that text.</li>
<li>And if we know that <a href="https://www.bitdefender.com/en-us/blog/hotforsecurity/virtual-kidnapping-scams" target="_blank" rel="noopener">scammers are copying our loved one’s voices</a> and cloning their number to claim they’ve been kidnapped and need you to pay ransom, we can hang up and call our loved one to confirm that they are safe.</li>
</ul>
<p>But people still fall for scams as criminals continue to switch up their methods. And now, we are handing our keys to a new actor – AI Agents. We can’t stop people from falling for scams and now we are tasked with stopping AI Agents from falling for new scams. With AI Agents, there are new layers of complexity. Scams can be created and updated quickly. Identifying and adapting to these new scams can become a game whack-a-mole. Additionally, we are losing transparency as some of these scams are hidden from human eyes.</p>
<p><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture1.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-20873" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture1.png" alt="" width="489" height="393" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture1.png 489w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture1-300x241.png 300w" sizes="(max-width: 489px) 100vw, 489px" /></a></p>
<p><a href="https://github.com/openclaw/openclaw" target="_blank" rel="noopener">OpenClaw</a> offers an open-source framework for running your own agents on your devices. These agents can connect to your various channels and <a href="https://techcrunch.com/2026/01/27/everything-you-need-to-know-about-viral-personal-ai-assistant-clawdbot-now-moltbot/?utm_source=substack&amp;utm_medium=email" target="_blank" rel="noopener">perform tasks</a> on your behalf. <a href="https://arstechnica.com/information-technology/2026/01/ai-agents-now-have-their-own-reddit-style-social-network-and-its-getting-weird-fast/" target="_blank" rel="noopener">Moltbook</a> is a social media network for agents. On <a href="https://simonwillison.net/2026/Jan/30/moltbook/" target="_blank" rel="noopener">Moltbook</a>, agents can create communities, start discussion threads, add comments, and importantly, share skills. With the rise of Moltbook and OpenClaw, we need to be talking about the security risks we are exposing ourselves to <a href="https://www.bitdefender.com/en-us/blog/hotforsecurity/moltbot-security-alert-exposed-clawdbot-control-panels-risk-credential-leaks-and-account-takeovers?utm_source=substack&amp;utm_medium=email" target="_blank" rel="noopener">when we hand access</a> to our emails, computers, phones, and crypto wallets to an AI Agent.</p>
<p>We have known about Prompt Injection for some time now. <a href="https://www.ibm.com/think/topics/prompt-injection" target="_blank" rel="noopener">Prompt injection</a> is a security vulnerability where attackers inject malicious commands into a prompt. Prompt injection has been a way for bad actors to steal sensitive data or perform actions like spreading malware.</p>
<p>We then gave agents the ability to pull and read from the internet. As a result, hackers started hiding malicious prompts into webpage HTML, text that matches the page background, and other areas that go unnoticed by the human eye. Now we have arrived at <a href="https://arstechnica.com/ai/2026/02/the-rise-of-moltbook-suggests-viral-ai-prompts-may-be-the-next-big-security-threat/" target="_blank" rel="noopener">prompt worms</a>. A prompt worm is a self-replicating prompt injection attack. As agents share skills with each other, these skills may contain nefarious instructions to steal personal data, execute malicious commands, and importantly, share the skill with other agents.</p>
<p>Agents move quickly with the ability to perform tasks without human oversight. And many people have given them access to their sensitive data. You wouldn’t give your email login to a random person. You wouldn’t type your bank account credentials in a sketchy website. You wouldn’t leave your apple wallet without password protection before handing your child an iPad game <a href="https://www.bbc.com/news/uk-wales-65659896" target="_blank" rel="noopener">notorious for in-app purchases</a>.</p>
<p><a href="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture2.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-20870" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture2.png" alt="" width="482" height="357" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture2.png 482w, https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture2-300x222.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></a></p>
<p><a href="https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/" target="_blank" rel="noopener">As Simon Willison has put it</a>, we are at a lethal infection point for AI agents. These agents have:</p>
<ul>
<li>Access to private data.</li>
<li>Exposure to untrusted content.</li>
<li>The Ability to externally communicate.</li>
</ul>
<p><a href="https://simonwillison.net/2025/Dec/10/normalization-of-deviance/" target="_blank" rel="noopener">Until we start finding and learning</a> about successful attacks, people will continue <a href="https://embracethered.com/blog/posts/2025/the-normalization-of-deviance-in-ai/" target="_blank" rel="noopener">to normalize their risky behavior</a>. In the future, will we put blame on <a href="https://www.forbes.com/sites/amirhusain/2026/01/30/an-agent-revolt-moltbook-is-not-a-good-idea/" target="_blank" rel="noopener">the AI Agent for cybersecurity breach</a>? Or the human that handed the AI the keys?</p>
<p><em>This is the first article in the <a href="https://blogs.sas.com/content/tag/a-new-frontier-for-ai-agents/">A New Frontier for AI Agents</a> series. Check out part two about <a href="https://blogs.sas.com/content/subconsciousmusings/2026/02/16/a-new-frontier-for-ai-agents-transparency/">transparency</a>.</em></p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/02/13/a-new-frontier-for-ai-agents-cybersecurity/">A New Frontier for AI Agents: Cybersecurity</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.sas.com/content/subconsciousmusings/2026/02/13/a-new-frontier-for-ai-agents-cybersecurity/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<enclosure url="https://blogs.sas.com/content/subconsciousmusings/files/2026/02/Picture1-150x150.png" />
	</item>
		<item>
		<title>Unlocking agentic AI potential with MCP tools in SAS Retrieval Agent Manager</title>
		<link>https://blogs.sas.com/content/subconsciousmusings/2026/01/16/unlocking-agentic-ai-potential-with-mcp-tools-in-sas-retrieval-agent-manager/</link>
					<comments>https://blogs.sas.com/content/subconsciousmusings/2026/01/16/unlocking-agentic-ai-potential-with-mcp-tools-in-sas-retrieval-agent-manager/#respond</comments>
		
		<dc:creator><![CDATA[Ramya Mopidevi]]></dc:creator>
		<pubDate>Fri, 16 Jan 2026 19:17:19 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agentic AI]]></category>
		<category><![CDATA[AI governance]]></category>
		<category><![CDATA[APIs]]></category>
		<category><![CDATA[Enterprise AI]]></category>
		<category><![CDATA[LLM Integration]]></category>
		<category><![CDATA[MCP]]></category>
		<category><![CDATA[model context protocol]]></category>
		<category><![CDATA[Operational AI]]></category>
		<category><![CDATA[RAG]]></category>
		<category><![CDATA[Retrieval-Augmented Generation]]></category>
		<category><![CDATA[SAS Retrieval Agent Manager]]></category>
		<category><![CDATA[Scalable AI]]></category>
		<category><![CDATA[Tool Calling]]></category>
		<category><![CDATA[Trustworthy AI]]></category>
		<category><![CDATA[Workflow Automation]]></category>
		<guid isPermaLink="false">https://blogs.sas.com/content/subconsciousmusings/?p=20820</guid>

					<description><![CDATA[<p>Learn how integrating the Model Context Protocol (MCP) into SAS Retrieval Agent Manager transforms retrieval-augmented generation from a passive information system into a governed, scalable, and action-oriented enterprise AI platform capable of executing real business workflows.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/01/16/unlocking-agentic-ai-potential-with-mcp-tools-in-sas-retrieval-agent-manager/">Unlocking agentic AI potential with MCP tools in SAS Retrieval Agent Manager</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3><em>This article was co-written with <a href="https://blogs.sas.com/content/author/saurabhmishra/" target="_blank" rel="noopener">Saurabh Mishra</a> and <a href="https://blogs.sas.com/content/author/bennibbelink/" target="_blank" rel="noopener">Ben Nibbelink</a>.</em></h3>
<p>Retrieval-Augmented Generation (RAG) has moved quickly from experimental AI architecture to a foundational enterprise capability. However, as organizations adopt RAG at scale, a new need has emerged: AI must be able to do more than retrieve information. It must be able to trigger workflows, interact with systems, produce structured outputs, and participate in real business processes.</p>
<p>The Model Context Protocol (MCP) is the technology that enables this shift. MCP allows large language models to interact with tools, services, and APIs in a secure, governed, and predictable way. With MCP server capabilities built into SAS Retrieval Agent Manager (RAM), we unlock a new class of retrieval agents capable of reasoning, retrieving, and taking meaningful action.</p>
<p>This blog explains how MCP enhances the SAS Retrieval Agent Manager and why this combination is a game changer in delivering safe, scalable, and operational AI for enterprises.</p>
<h2>Why MCP matters for enterprise RAG systems</h2>
<p>The Model Context Protocol defines a standard interface for how LLMs discover, understand, and call external tools. This addresses one of the biggest challenges in enterprise AI: how to make AI systems interact with live operational environments without sacrificing governance, safety, or clarity.</p>
<p>MCP gives AI agents:</p>
<ul>
<li>A list of tools they can safely use</li>
<li>Clear schemas describing each tool’s expected inputs and outputs</li>
<li>Mechanisms for executing actions through controlled tool servers</li>
<li>Predictable failures, logs, and structured error handling</li>
<li>A standard interface for integrating with enterprise systems</li>
</ul>
<p>Instead of relying on long prompts or unpredictable natural language instructions, MCP gives agents explicit, machine-readable instructions about what they can do and how they should do it. </p>
<p>Inside SAS Retrieval Agent Manager, this foundation elevates agents from passive assistants to reliable operational agents.</p>
<h2>What MCP Enables Inside SAS Retrieval Agent Manager</h2>
<p>SAS Retrieval Agent Manager delivers strong agentic retrieval capabilities today, and MCP integration elevates it from providing insights to empowering agents that can act on them, bridging retrieval with real operational processes across the enterprise.</p>
<h3>Turning retrieval agents into action agents</h3>
<p>SAS Retrieval Agent Manager capabilities currently include:</p>
<ol>
<li>Unstructured data processing & intelligent retrieval: RAM handles data ingestion, vectorization, and optimal RAG pipeline selection, enabling high-quality querying and reliable agent interactions over unstructured content.</li>
<li>No-code automation: RAM connects data sources, embeddings and agents through a drag-and-drop user interface to automate complex end-to-end workflows in a seamless and a consistent way. </li>
</ol>
<p>By integrating MCP, RAM moves from insight to action, allowing agents to:</p>
<ul>
<li>Trigger enterprise APIs and service endpoints</li>
<li>Initiate workflows and business processes</li>
<li>Make database calls and automatically discover schema </li>
<li>Update or query internal applications</li>
<li>Perform multi-step tasks requiring tools and decisions</li>
</ul>
<h3>Strengthening governance, auditability, and trust</h3>
<p>Enterprise AI must be safe. MCP ensures every action an agent takes is governed and traceable. Key safeguards include:</p>
<ul>
<li>Full observability for each tool invocation</li>
<li>Transparent inputs and output schemas for every action</li>
<li>Granular, role-based permissions that explicitly control agent tool access</li>
</ul>
<p>This governance-first design aligns perfectly with RAM’s focus on trustworthy AI and evidence-based reasoning.</p>
<h3>Scalable, modular architecture through MCP tool servers</h3>
<p>MCP tool servers allow organizations to wrap internal logic, systems, or processes in reusable, discoverable interfaces. These servers can expose capabilities such as:</p>
<ul>
<li>Data lookups</li>
<li>Business process triggers</li>
<li>Internal system updates</li>
<li>Metadata and knowledge services</li>
<li>Custom decision rules or validation steps</li>
</ul>
<p>Because tool servers are modular and standardized, they can be reused across many agents and teams inside RAM, reducing integration costs and accelerating development.</p>
<h3>Performance and efficiency Gains</h3>
<p>MCP allows retrieval agents to avoid overloading prompts with unnecessary context. Instead of embedding explanations of how to call an API, agents simply invoke a tool with the required structured parameters.</p>
<p>This leads to:</p>
<ul>
<li>Lower model token usage</li>
<li>Faster task execution</li>
<li>Predictable output formats</li>
<li>More deterministic behavior</li>
<li>Reduced risk of hallucinations</li>
</ul>
<p>MCP improves both speed and reliability without increasing model size.</p>
<h3>Enterprise-ready deployment options</h3>
<p>SAS Retrieval Agent Manager supports flexible deployment in cloud, hybrid, or fully air-gapped environments. MCP tools follow the same model.</p>
<p>Organizations can deploy MCP tool servers:</p>
<ul>
<li>As containers from private registries</li>
<li>As code-based lightweight services</li>
<li>Behind secure firewalls</li>
<li>With isolated secrets and environment variables</li>
<li>Without reliance on external networks</li>
</ul>
<p>This allows enterprises to operationalize RAG and agentic workflows even under strict regulatory or security constraints.</p>
<h2>RAM powered by MCP: How it works</h2>
<p>SAS Retrieval Agent Manager currently supports two primary categories of MCP tools enabling seamless integration with enterprise systems</p>
<h3>Code-based MCP servers</h3>
<p>These are ideal for small utilities, fast iteration, or department-specific automations. They provide:</p>
<ul>
<li>Simple configuration with environment variables</li>
<li>Clearly defined input/output schemas</li>
<li>Fast deployment and testing</li>
<li>Easy adaptation for evolving requirements</li>
<li>Low overhead for developers</li>
</ul>
<h3>Containerized MCP servers</h3>
<p>Typically used for integrations with core internal systems and are perfect for high-scale or mission-critical integrations. Benefits include:</p>
<ul>
<li>Strong isolation and security controls</li>
<li>Reuse across multiple teams and workflows</li>
<li>Ability to package complex dependencies or language requirements</li>
<li>Consistent runtime environments</li>
<li>Support for enterprise container registries</li>
</ul>
<h2>The full workflow of how MCP Tools execute inside SAS Retrieval Agent Manager</h2>
<ol>
<li>Tool servers are deployed inside of RAM.</li>
<li>RAM ingests each tool’s JSON schema.</li>
<li>Agents analyze tasks and select the appropriate tools.</li>
<li>Tool calls are executed with structured inputs.</li>
<li>Responses, logs, and errors are captured.</li>
<li>The agent synthesizes the final grounded output.</li>
</ol>
<p>This creates a unified flow where reasoning, retrieval, and action reinforce each other.</p>
<h2>Use case for MCP in SAS Retrieval Agent Manager</h2>
<p><a href="https://communities.sas.com/t5/SAS-Communities-Library/Unlocking-agentic-AI-potential-with-MCP-tools-in-SAS-Retrieval/ta-p/982076"><img loading="lazy" decoding="async" src="https://blogs.sas.com/content/subconsciousmusings/files/2026/01/RAM-MCP-GA-Demo.png" alt="" width="2767" height="1557" class="aligncenter size-full wp-image-20862" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2026/01/RAM-MCP-GA-Demo.png 2767w, https://blogs.sas.com/content/subconsciousmusings/files/2026/01/RAM-MCP-GA-Demo-300x169.png 300w, https://blogs.sas.com/content/subconsciousmusings/files/2026/01/RAM-MCP-GA-Demo-1024x576.png 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2026/01/RAM-MCP-GA-Demo-768x432.png 768w, https://blogs.sas.com/content/subconsciousmusings/files/2026/01/RAM-MCP-GA-Demo-1536x864.png 1536w, https://blogs.sas.com/content/subconsciousmusings/files/2026/01/RAM-MCP-GA-Demo-2048x1152.png 2048w" sizes="(max-width: 2767px) 100vw, 2767px" /></a></p>
<h2>Why MCP + SAS Retrieval Agent Manager is transformational</h2>
<p>By integrating MCP capabilities, RAM evolves into a powerful agentic AI solution that is:</p>
<ul>
<li>Actionable: Agents can complete tasks, interact with systems, and generate operational outcomes.</li>
<li>Governed: Every action is visible, logged, and governed by schema-defined protocols.</li>
<li>Modular: Tool servers encapsulate logic into reusable, shareable integrations.</li>
<li>Performant: Structured tool calls reduce latency and improve predictability.</li>
<li>Deployment-Ready: The architecture works seamlessly across cloud, hybrid, or offline setups.</li>
</ul>
<p>This combination enables organizations to shift from informational AI to operational AI turning insights into execution.</p>
<h2>Conclusion</h2>
<p>Integrating MCP into SAS Retrieval Agent Manager enables the next generation of enterprise AI, with agents that can retrieve, reason, and act. By combining structured tool execution, reliable governance, and flexible deployment, organizations gain a scalable and trustworthy foundation for operational AI.  RAM’s MCP enabled retrieval agents go beyond simple workflows to automate real-world business processes, interact seamlessly with enterprise systems, and deliver consistent, explainable results that drive tangible business outcomes.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/01/16/unlocking-agentic-ai-potential-with-mcp-tools-in-sas-retrieval-agent-manager/">Unlocking agentic AI potential with MCP tools in SAS Retrieval Agent Manager</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.sas.com/content/subconsciousmusings/2026/01/16/unlocking-agentic-ai-potential-with-mcp-tools-in-sas-retrieval-agent-manager/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<enclosure url="https://blogs.sas.com/content/subconsciousmusings/files/2026/01/RAM-MCP-GA-Demo-150x150.png" />
	</item>
		<item>
		<title>AI governance in practice: How synthetic data prepares you for what’s next</title>
		<link>https://blogs.sas.com/content/subconsciousmusings/2026/01/05/ai-governance-in-practice-synthetic-data/</link>
					<comments>https://blogs.sas.com/content/subconsciousmusings/2026/01/05/ai-governance-in-practice-synthetic-data/#respond</comments>
		
		<dc:creator><![CDATA[Sophia Rowland]]></dc:creator>
		<pubDate>Mon, 05 Jan 2026 18:27:56 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[AI governance]]></category>
		<category><![CDATA[data privacy]]></category>
		<category><![CDATA[data security]]></category>
		<category><![CDATA[model robustness]]></category>
		<category><![CDATA[PII protection]]></category>
		<category><![CDATA[regulatory compliance]]></category>
		<category><![CDATA[representative data]]></category>
		<category><![CDATA[SAS Data Maker]]></category>
		<category><![CDATA[synthetic data]]></category>
		<category><![CDATA[Trustworthy AI]]></category>
		<guid isPermaLink="false">https://blogs.sas.com/content/subconsciousmusings/?p=20635</guid>

					<description><![CDATA[<p>This article was co-written with Sundaresh Sankaran. The Artificial Intelligence (AI) era is here. To prevent harm, ensure proper governance and secure data, we need to trust our AI output. We must demonstrate that it operates in a fair and responsible manner with a high level of efficiency. As builders of [...]</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/01/05/ai-governance-in-practice-synthetic-data/">AI governance in practice: How synthetic data prepares you for what’s next</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3><em>This article was co-written with <a href="https://blogs.sas.com/content/author/sundareshsankaran/" target="_blank" rel="noopener">Sundaresh Sankaran</a>.</em></h3>
<p><a href="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust.jpg"><img loading="lazy" decoding="async" class="aligncenter wp-image-20644 size-large" src="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-1024x238.jpg" alt="" width="702" height="163" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-1024x238.jpg 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-300x70.jpg 300w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-768x178.jpg 768w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust.jpg 1430w" sizes="(max-width: 702px) 100vw, 702px" /></a></p>
<p>The Artificial Intelligence (AI) era is here. To prevent harm, ensure proper governance and secure data, we need to trust our AI output. We must demonstrate that it operates in a fair and responsible manner with a high level of efficiency. As builders of AI, you need to not only trust your AI but also convince others to trust it as well, including:</p>
<ul>
<li><strong>AI Regulators: </strong>Various agencies propose, adopt and enforce a growing number of AI standards and regulations across the global market. Penalties for non-compliance can run into millions of dollars.</li>
<li><strong>Consumers and end users:</strong> An ability to transparently explain the use and maintenance of AI solutions not only enables and educates your consumers, it shows them you care. It also projects confidence and capability. If your AI is transparent and trustworthy, AI Governance becomes a competitive advantage.</li>
<li><strong>Employees: </strong>Top talent demands governed and trustworthy AI. No one wants to build tooling that hurts others.</li>
</ul>
<p><a href="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data.jpg"><img loading="lazy" decoding="async" class="aligncenter wp-image-20641 size-large" src="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data-1024x314.jpg" alt="" width="702" height="215" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data-1024x314.jpg 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data-300x92.jpg 300w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data-768x236.jpg 768w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data.jpg 1430w" sizes="(max-width: 702px) 100vw, 702px" /></a></p>
<p>Data is central to AI, so the first step in building trust in your AI and AI Governance is to establish trust in your data. Organizations face privacy, compliance, and data robustness issues in trusting their data.</p>
<h1>Preserving Privacy &amp; Compliance</h1>
<p>Organizations have a duty to protect private and sensitive information in their custody. This includes Personally Identifiable Information (PII), which is any data or combination of data values that can be used to identify a person. Failure to protect PII can lead to fines and loss of trust.</p>
<blockquote class="modern-quote full"><p>Personally Identifiable Information (PII) is any data that can be used to identify a specific individual, either directly or indirectly, including: names, email addresses, Social Security numbers, and addresses, but also sensitive data like health records or financial information.</p></blockquote>
<p>Unfortunately, you can’t simply remove all personal characteristics from your data. Interesting relationships between individual characteristics and outcomes might add value to your analysis. For example, in health care, <a href="https://newsnetwork.mayoclinic.org/discussion/heart-month-mayo-clinic-says-heart-attack-symptoms-in-women-are-often-different-than-men/" target="_blank" rel="noopener">symptoms of a heart attack differ between men and women</a>. Removing sex or gender from your data hides a key insight that saves lives.</p>
<p>To retain this information, organizations tend to follow practices such as anonymization or masking of other identifiable characteristics. But those practices tend to be weak forms of anonymization because a combination of traits like sex, race, zip code, or age, when used together, can still identify an individual.</p>
<h1>Building Representative &amp; Robust Data</h1>
<p>Improving the generalizability of machine learning models helps build a more accurate model and requires training data that represents the wider population. Accuracy is important because incorrect predictions by your model can result in tangible costs that may include potential revenue loss, increased operational expenses, or adverse impacts on users.</p>
<p>You need data for testing in addition to training a model. Test data should enable rigorous tests of a trained model against edge cases and potential scenarios so that you can adjust your model accordingly. Robust test data should include previously unseen values, extreme values, and data quality issues than can be expected in real data such as missing values. For example, when you buy a car, you hope the auto maker tested that model in all conditions—snow, rain, heat, sharp turns, sudden stops, city streets, and highways—to ensure reliability. Similarly, you need accurate data to rigorously test your models.</p>
<h1>Synthetic Data for Trustworthy Data</h1>
<p><a href="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data-2.jpg"><img loading="lazy" decoding="async" class="aligncenter wp-image-20638 size-large" src="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data-2-1024x462.jpg" alt="" width="702" height="317" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data-2-1024x462.jpg 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data-2-300x135.jpg 300w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data-2-768x346.jpg 768w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data-2.jpg 1430w" sizes="(max-width: 702px) 100vw, 702px" /></a></p>
<p>Synthetic data can mimic patterns found in real world data while reducing privacy concerns by minimizing data leakage risks. This can reduce the risk of penalties or loss of trust while enabling model development and research. This is also helpful when real representative or comprehensive data isn’t available. It’s fast and easy to generate what you need.</p>
<p>Using a representative training data set to build your model or AI system means more accuracy in production. Using a robust testing data set consisting of edge cases, extreme values, and unseen conditions can help you understand and address where you model or AI fails before it’s used to make business decisions. Synthetic data can be used to generate cost-effective sets the protects sensitive information yet still mimic real-world patterns.</p>
<p>To help organizations and data science teams generate high-quality synthetic data for any scenario, SAS recently released <a href="https://www.sas.com/en_us/software/data-maker.html" target="_blank" rel="noopener">SAS Data Maker</a>. SAS Data Maker is a low-code/no-code tool for generating high-quality synthetic data that mirrors real-world data sets. It lets you augment existing data or create entirely new data sets, reducing the cost of data acquisition, protecting sensitive information and accelerating AI and analytics development. <a href="https://marketplace.microsoft.com/en-us/product/saas/sas-institute-560503.sas-datamaker?tab=Overview" target="_blank" rel="noopener">SAS Data Maker is available globally</a> in the Microsoft Marketplace with consumption base pricing so teams can start generating trusted, representative and production-ready data fast. To learn more about SAS Data Maker,<a href="https://video.sas.com/detail/videos/sas-data-maker/video/6348914923112/sas-data-maker-overview?autoStart=true" target="_blank" rel="noopener"> check out this short demo</a>.</p>
<p>In short, synthetically generated data can build more representative and robust data while also protecting your data, which leads to improved security and more accurate modeling against your target population. Better security and better models mean better AI Governance. This all means stakeholders and users can trust your AI systems.</p>
<h3>Learn more</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=MHGte6Q6Bqk">Make a Difference With SAS Data Maker</a></li>
<li><a href="https://blogs.sas.com/content/subconsciousmusings/2025/12/22/there-is-yet-another-ai-productivity-gap/">There is yet another AI productivity gap</a></li>
<li><a href="https://blogs.sas.com/content/subconsciousmusings/2025/12/16/no-one-wants-your-ai-slop/">No one wants your AI Slop</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2026/01/05/ai-governance-in-practice-synthetic-data/">AI governance in practice: How synthetic data prepares you for what’s next</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.sas.com/content/subconsciousmusings/2026/01/05/ai-governance-in-practice-synthetic-data/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<enclosure url="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Trust-and-Data-150x150.jpg" />
	</item>
		<item>
		<title>There is yet another AI productivity gap</title>
		<link>https://blogs.sas.com/content/subconsciousmusings/2025/12/22/there-is-yet-another-ai-productivity-gap/</link>
					<comments>https://blogs.sas.com/content/subconsciousmusings/2025/12/22/there-is-yet-another-ai-productivity-gap/#respond</comments>
		
		<dc:creator><![CDATA[Sophia Rowland]]></dc:creator>
		<pubDate>Mon, 22 Dec 2025 15:20:47 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[deep learning]]></category>
		<category><![CDATA[generative AI]]></category>
		<category><![CDATA[large language models]]></category>
		<category><![CDATA[LLMs]]></category>
		<category><![CDATA[natural language processing]]></category>
		<guid isPermaLink="false">https://blogs.sas.com/content/subconsciousmusings/?p=20707</guid>

					<description><![CDATA[<p>When I first started as a data scientist, there was a gap. I met with dozens of organizations who would invest time and resources into building accurate and tuned models and then ask, “What now?” They had a fantastic model in hand but couldn’t get it into a place and [...]</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2025/12/22/there-is-yet-another-ai-productivity-gap/">There is yet another AI productivity gap</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>When <a href="https://blogs.sas.com/content/subconsciousmusings/2025/01/21/mlops-is-a-team-sport-working-together-to-operationalize-ai/" target="_blank" rel="noopener">I first started as a data scientist</a>, there was a gap. I met with dozens of organizations who would invest time and resources into building accurate and tuned models and then ask, “What now?” They had a fantastic model in hand but couldn’t get it into a place and form where it could be used to make a better decision or improve a specific outcome. At the time, I called this chasm “<a href="https://communities.sas.com/t5/SAS-Communities-Library/ModelOps-MLOps-and-Finding-Value-in-Analytics/ta-p/825736" target="_blank" rel="noopener">the gap between finding insights and using insights</a>.”</p>
<p>Earlier this year, <a href="https://mlq.ai/media/quarterly_decks/v0.1_State_of_AI_in_Business_2025_Report.pdf" target="_blank" rel="noopener">research from MIT</a> found that 95% of GenAI investments have a 0% return on investment. When you take into consideration that the enterprise investments into GenAI projects have been to the tune of $30 - $40 billion, you realize just how much money gets thrown into GenAI haphazardly. MIT has called this new gap “The GenAI Divide.” I call it “Yet Another AI Productivity Gap” or YAAPG for short.</p>
<p>But within the YAAPG, there is a paradox. Personal GenAI tools <em>are</em> improving personal productivity. <a href="https://www.anthropic.com/research/estimating-productivity-gains" target="_blank" rel="noopener">Anthropic recently reported</a> that Claude says it speeds up individual tasks by about 80%. Yes, Claude, the LLM. The LLM that <a href="https://www.anthropic.com/research/project-vend-1" target="_blank" rel="noopener">also said that it could deliver products in person at one point</a>, so I won’t fault you if you take Claude’s statements with a pinch of salt. Yet, <a href="https://blogs.sas.com/content/subconsciousmusings/2025/12/16/no-one-wants-your-ai-slop/" target="_blank" rel="noopener">when used thoughtfully</a>, many individuals report productivity gains from GenAI. Power users understand how to use GenAI in their personal work to create value and <a href="https://hbr.org/2025/09/ai-generated-workslop-is-destroying-productivity" target="_blank" rel="noopener">avoid AI Slop</a>. In fact, All Things Open released a whole <a href="https://allthingsopen.org/downloads/everyday-ai-guide" target="_blank" rel="noopener">guide</a> that features tips and use cases for improving personal productivity using GenAI.</p>
<p>As we look across the GenAI Divide, what prevents organizations from seeing a return on their investments? Is it poor <a href="https://fortune.com/2025/11/14/ai-billion-dollar-blind-spot-why-no-roi/" target="_blank" rel="noopener">data processing capabilities</a>? Is it <a href="https://mlq.ai/media/quarterly_decks/v0.1_State_of_AI_in_Business_2025_Report.pdf" target="_blank" rel="noopener">GenAI systems that can’t learn</a>? Is it <a href="https://techstrong.ai/features/ai-trust-dilemma-confidence-alone-wont-deliver-results/" target="_blank" rel="noopener">a lack of trust in these systems</a>? Is it a <a href="https://www.pwc.com/us/en/tech-effect/ai-analytics/responsible-ai-survey.html?utm_campaign=121426115-AI%20Brief%20Newsletter&amp;utm_medium=email&amp;_hsenc=p2ANqtz-9qvp6CCFJS_w5B_tAjqD9b5AQVrAiBm1GGu_YYoZlI4gQDAip4pkN1xwSIPyOP_rdY8IkuXY1tbWgfSKBw6fq43yVERA&amp;_hsmi=122278278&amp;utm_content=122282243&amp;utm_source=hs_email" target="_blank" rel="noopener">lack of AI Governance</a>? Or is this just the same problems we’ve always seen when organizations are operationalizing AI? And what can we learn from personal productivity gains?</p>
<h1>Lessons from Russian Novelists</h1>
<p>In the opening line of Anna Karenina, Leo Tolstoy wrote, “All happy families are alike; each unhappy family is unhappy in its own way.” This led to the <a href="https://en.wikipedia.org/wiki/Anna_Karenina_principle" target="_blank" rel="noopener">Anna Karenina principle</a> in that success relies on several key factors coming together correctly, and failure can occur in any number of ways. Operationalizing AI requires a lot of things being done correctly.</p>
<blockquote class="modern-quote full"><p>All happy families are alike; each unhappy family is unhappy in its own way.</p></blockquote>
<p>And when we look at power users of GenAI for personal productivity, they’re often doing several things right. First, they know what problem they’re trying to solve. Second, they understand the benefits of solving that problem. They find the right tool for the problem, make adjustments to the tool, and understand how to feed their inputs to that tool. They observe the outputs, judge their quality, and make adjustments. They’ll try new things, learn how best to work with the tool, and trust their usage of the tool.</p>
<p>Let’s start with a personal productivity example to demonstrate those points. Many people use generative AI tools as coding assistants. These assistants may write comments to document code, answer questions, debug problems, suggest changes, write unit tests, and more. Each time a software developer uses their coding assistant, they use it to address a specific problem — and they understand the time-saving benefits of the tool. Software developers may be limited to using the tools their organization purchases, but these tools are often vetted and provided context through the organization’s code base. The input to the tool is often just the developer’s questions and relevant code. Importantly, the programmer is in the loop. The software developer sees what the coding assistant suggests, determines if it is satisfactory, and either approves it or makes adjustments. And, over time, the developer learns the ins and outs of using the coding assistant. The programmers begin to understand how they can ask better questions or create better prompts to get more satisfactory answers from the coding assistant. Through this experimentation, the software developer learns how to better use the GenAI tool, and not just trusts the tool, but trusts their use of the tool.</p>
<h1>Scaling to Enterprise Problems</h1>
<p>How does this scale to enterprise projects? First, before any project starts, you should know what you’re trying to accomplish. Many organizations see GenAI as a hammer where everything is a nail. I’ve spoken with individuals across organizations that were tasked with creating a project where they could use an LLM, GenAI tool, or Agent. An indiscriminate use of AI does not create ROI. A better approach would be to find a pain point or something the organization can do better. If you don’t know what your pain points or gaps are, ask. Employees, customers, or users are a great place to start.</p>
<p>By having a clear problem to solve or an outcome you’re trying to achieve, you can next state the benefits of solving that problem. If you can prevent customers from abandoning their carts in your online store, you can increase your revenue. If you can help customers answer simple questions or perform basic tasks using an online chatbot, you can give your employees time to work on more productive tasks, improving output. Now that you know the benefit of solving the problem, you can create a metric to measure project success. At this stage you can estimate if this problem is worth solving by weighing the expected benefit against the estimated costs.</p>
<p>If you’re ready to move forward, now you need to find the right tool for the job. Sometimes this is a shiny new AI tool, but sometimes it’s just an ETL pipeline feeding to a dashboard. Sometimes you need to look at the simplest solution that will get the job done. AI is more expensive and less predictable than business rules and code. If this problem truly is best solved using AI, next determine which AI tool is best for the job. There are many choices among AI tools with options like building in-house, getting access to a generalized model, acquiring a model fine-tuned for a specific task, or even getting a tool that wraps a model and other enhancements. Here you have to weigh the purchase cost, hosting costs, and employee time to implement the tools, with the expected benefit of the model towards the task.</p>
<p>Before you can productionalize your new tool, you need to understand and set up the downstream processes that feed data to the tool and upstream processes to monitor and observe the tools outputs. For some use cases, the user will provide their prompts or questions directly to the tool. In others, the tool may be operating as a part of an automatic pipeline. In that case, your organization may provide the tool access to a variety of documents, data files, or a fine-tuned specific prompt. Additionally, if any information is collected from a user, you may need to clean that input to remove instances of Personally Identifiable Information (PII), Intellectual Property (IP), toxic input, or attempts of prompt injection.</p>
<p>Beyond downstream data, the tool’s outputs should also be monitored, with guardrails in place to evaluate, approve, reject, or adjust outputs from the GenAI tool. Again, you want to ensure that the tool doesn’t return PII, IP, or toxic responses, but you may also want to review if the response is formatted correctly, is on task, and references accurate information. If a response has a flaw, perhaps there is logic to provide why the response was incorrect and let the GenAI tool try again. Downstream and upstream processes can be performed manually, as a part of an automated pipeline, or as a hybrid approach where manual intervention can take place when specific conditions are met. But before investing into a GenAI project, it’s important to have some idea about the level of effort to integrate the tool into a wider production pipeline.</p>
<p>Finally, you should encourage teams to experiment with their tools in a <a href="https://blogs.sas.com/content/subconsciousmusings/2025/01/09/responsible-ai-considerations-for-language-models/" target="_blank" rel="noopener">responsible manner</a>. By having a safe space to experiment, teams can learn, see what works, see what doesn’t work, what can be adjusted in their user input, report problems, and trust their usage of the tool to improve outcomes for the organization.</p>
<h1>Conclusion</h1>
<p>In conclusion, before enterprises can see ROI on their GenAI investments, they must master the following:</p>
<ol>
<li>Know what problems they’re trying to solve</li>
<li>Understand the benefits of solving that problem</li>
<li>Find the right tool for solving the problem</li>
<li>Know their data pipeline</li>
<li>Monitor, observe, and adjust outputs from the tool</li>
<li>Experiment, learn, and trust their usage of the tool</li>
</ol>
<p>Traversing the GenAI divide will take a deliberate and thoughtful approach to solve a real problem rather than an indiscriminate use of AI.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2025/12/22/there-is-yet-another-ai-productivity-gap/">There is yet another AI productivity gap</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.sas.com/content/subconsciousmusings/2025/12/22/there-is-yet-another-ai-productivity-gap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<enclosure url="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Bunnies-150x150.png" />
	</item>
		<item>
		<title>The rise of small language models for information extraction</title>
		<link>https://blogs.sas.com/content/subconsciousmusings/2025/12/17/the-rise-of-small-language-models-for-information-extraction/</link>
					<comments>https://blogs.sas.com/content/subconsciousmusings/2025/12/17/the-rise-of-small-language-models-for-information-extraction/#respond</comments>
		
		<dc:creator><![CDATA[William Nadolski]]></dc:creator>
		<pubDate>Wed, 17 Dec 2025 14:11:47 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[AI Foundation Models]]></category>
		<category><![CDATA[Applied AI Modeling]]></category>
		<category><![CDATA[SAS Model]]></category>
		<category><![CDATA[SAS Models]]></category>
		<category><![CDATA[Transformer Model]]></category>
		<guid isPermaLink="false">https://blogs.sas.com/content/subconsciousmusings/?p=20719</guid>

					<description><![CDATA[<p>Small language models like GLiNER provide an efficient, deterministic, and flexible solution for named entity recognition, bridging the gap between traditional NLP and large language models for enterprise information extraction.</p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2025/12/17/the-rise-of-small-language-models-for-information-extraction/">The rise of small language models for information extraction</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Part 2 in the multimodal transformers: AI foundation models series</h2>
<p>In the <a href="https://blogs.sas.com/content/subconsciousmusings/2025/03/21/multimodal-transformers-ai-foundation-models-part-1/">previous post</a>, we explored how transformer-based models became the foundation for the modern wave of multimodal AI. This post continues that conversation but shifts the focus from architecture to application. To be more specific, how organizations extract structured information from unstructured text by using named entity recognition (NER) and related text analytics tasks.</p>
<aside class="modern-quote pull alignright">Now, a new class of lightweight transformer models—known as small language models (SLMs)—is emerging as a promising middle ground.</aside>
<p>Recently, enterprises have had to rely on one of two very different approaches. One, classic NLP systems built on rules and statistical models. Or two, large language models (LLMs) that can generalize across domains with little to no training. Although both approaches are valuable, they represent opposite ends of a spectrum. Traditional NLP is fast, deterministic, and easy to audit, but rigid and difficult to maintain. LLMs, on the other hand, are astonishingly flexible but computationally expensive, unpredictable, and challenging to operationalize in regulated environments.</p>
<p>Now, a new class of lightweight transformer models—known as small language models (SLMs)—is emerging as a promising middle ground. In this post, we explore how an exciting family of SLM models, the Generalized and Lightweight Model for Named Entity Recognition (GLiNER), combines the strengths of traditional NLP and LLM-based approaches.</p>
<h2>Traditional NLP versus LLMs: Two ends of the spectrum</h2>
<p>Before the rise of LLMs, developers built most NER systems by using regular expressions, dictionaries, and heuristic rules. These approaches remain incredibly useful. They run efficiently on CPUs, scale to millions of documents, and produce fully deterministic outputs. For tasks where auditability matters—such as identifying sensitive information in clinical records or regulatory filings—these methods still shine. They provide the literal match text, exact character offsets, and clear justification for why a match occurred. They are also easy to deploy in locked-down, privacy-conscious environments because they require no external APIs or specialized hardware.</p>
<p>But their reliability comes at the cost of flexibility. Traditional NLP is only as good as the rules or dictionaries behind it. Even small variations in wording or formatting can break those rules. Maintaining these systems often becomes a never-ending cycle of patching and re-patching, especially in domains where terminology shifts frequently. By tying to predefined labels, traditional methods make it difficult to identify new concepts without significant re-engineering.</p>
<p>The rise of LLMs promised a cure for these pain points. Models like GPT and Gemini can recognize new entities or categories on the fly, even when those categories were never part of their original training. A simple instruction—“extract all construction activities” or “find all mentions of medications” is often enough to get meaningful results without writing a single rule. The flexibility and generalization ability of these models have made them extremely appealing for information extraction tasks.</p>
<p>However, they introduce a different set of challenges. Running a large transformer model locally is slow and resource-intensive, often requiring expensive GPU hardware. Cloud-based inference is faster but raises cost, latency, and data privacy concerns. Most importantly, LLMs are non-deterministic: the same input might produce different outputs at times, making auditing and validation harder. They can also hallucinate—confidently generating entities or facts that do not appear in the source text. These factors limit their usefulness in workflows requiring strict reproducibility and trust.<br />
Given these trade-offs, many organizations are left wondering whether there is a practical middle path between rule-based systems and full-scale LLMs. This is where SLMs, and GLiNER specifically, enter the picture. Table 1 compares the strengths and weaknesses of different NER approaches.</p>
<figure id="attachment_20722" aria-describedby="caption-attachment-20722" style="width: 702px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-table-1.jpg"><img loading="lazy" decoding="async" class="wp-image-20722 size-large" src="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-table-1-1024x358.jpg" alt="small language models - Table 1: Comparison of the strengths and weaknesses of different NER approaches" width="702" height="245" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-table-1-1024x358.jpg 1024w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-table-1-300x105.jpg 300w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-table-1-768x268.jpg 768w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-table-1.jpg 1036w" sizes="(max-width: 702px) 100vw, 702px" /></a><figcaption id="caption-attachment-20722" class="wp-caption-text">Table 1: Comparison of the strengths and weaknesses of different NER approaches</figcaption></figure>
<h2>GLiNER: A practical middle ground for modern NER</h2>
<p>The GLiNER family was designed precisely to bridge the gap between traditional NLP and LLM-based extraction. GLiNER models are transformer-based, but much smaller than the generative models dominating the headlines. What makes them compelling is that they inherit many of LLMs' capabilities while avoiding many of their drawbacks by virtue of being discriminative rather than generative AI models.</p>
<p>GLiNER models run efficiently on CPUs, making them easy to deploy on laptops, servers, or edge devices without any specialized hardware (though they can still benefit from GPU acceleration). Because they operate deterministically, they produce stable, repeatable outputs. Unlike many LLM-based systems, GLiNER returns literal match text, character offsets, and confidence scores. This makes it highly auditable and suitable for regulated domains. And because they can be executed locally, they preserve privacy and avoid the cost and latency of cloud inference.</p>
<p>Despite their small size, GLiNER models support impressive zero-shot entity recognition capability. This means they can dynamically identify new entity categories from user-provided descriptions. This gives them a degree of flexibility that traditional NLP systems simply cannot match. At the same time, GLiNER avoids many of the pitfalls of LLMs: there is no risk of hallucination, it does not require heavy hardware infrastructure, and it behaves predictably across repeated runs.</p>
<p>The primary trade-off is that GLiNER still benefits from being tuned to the specific domain or task at hand. While zero-shot extraction works well for many general categories, domain-heavy environments such as transportation, finance, or clinical workflows typically see a quality boost when the model is calibrated with example documents or lightly fine-tuned. But this level of tuning is dramatically simpler than maintaining a full rules-based pipeline or training a large generative model from scratch.</p>
<h2>How GLiNER works: A high-level view</h2>
<p>At a conceptual level, GLiNER works by transforming both the input text and the user-provided labels into vector representations. Instead of relying on fixed, predefined labels, GLiNER dynamically compares the input against these label embeddings. If a span of text is semantically like the embedding of a requested label, say, “disease,” “equipment failure,” or “construction activity”, it identifies that span as an entity. The model outputs the matched text, its character offsets, and a confidence score indicating how well the span corresponds to the label.</p>
<p>For example, given the sentence: “The patient was diagnosed with Type 2 diabetes and prescribed 500mg metformin.” You could instruct GLiNER to extract concepts like “disease,” “medication,” or “dosage” without having pre-trained the model on these terms. GLiNER will identify Type 2 diabetes as a disease, metformin as a medication, and 500mg as a dosage, complete with offsets and confidence levels. This ability to generalize using dynamic labels makes GLiNER extremely powerful for workflows where new categories often emerge, or there are many permutations of a desired concept definition. Figure 1 shows a dashboard view of the output using a different, more complex example.</p>
<figure id="attachment_20725" aria-describedby="caption-attachment-20725" style="width: 713px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-figure-1.png"><img loading="lazy" decoding="async" class="wp-image-20725 size-full" src="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-figure-1.png" alt="small language models - Figure 1: Example GLiNER dashboard" width="713" height="320" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-figure-1.png 713w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-figure-1-300x135.png 300w" sizes="(max-width: 713px) 100vw, 713px" /></a><figcaption id="caption-attachment-20725" class="wp-caption-text">Figure 1: Example GLiNER dashboard</figcaption></figure>
<p>The same underlying mechanism enables GLiNER to perform lightweight document classification. Instead of looking for text spans, the model simply compares the overall document embedding to a set of category embeddings. It then returns the closest matches. The result is a fast, flexible classification engine that requires minimal setup.</p>
<p>This approach aligns with an important trend highlighted in NVIDIA’s recent paper, “<a href="https://arxiv.org/abs/2506.02153">S</a><a href="https://arxiv.org/abs/2506.02153">mall Language Models Are the Future of Agentic AI</a>.” The industry is recognizing that although large models provide broad capability, small models provide practical usability. They are faster, cheaper, and easier to deploy in environments where reliability, privacy, and control matter (for example, enterprise applications). For reference, the GLiNER architecture described within Figure 2 is sourced from <a href="https://medium.com/@shahrukhx01/illustrated-gliner-e6971e4c8c52">here</a>.</p>
<figure id="attachment_20728" aria-describedby="caption-attachment-20728" style="width: 524px" class="wp-caption aligncenter"><a href="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-figure-2.png"><img loading="lazy" decoding="async" class="size-full wp-image-20728" src="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-figure-2.png" alt="" width="524" height="331" srcset="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-figure-2.png 524w, https://blogs.sas.com/content/subconsciousmusings/files/2025/12/december-nadolski-figure-2-300x190.png 300w" sizes="(max-width: 524px) 100vw, 524px" /></a><figcaption id="caption-attachment-20728" class="wp-caption-text">Figure 2: Illustration of the GLiNER model architecture</figcaption></figure>
<h2>Where the industry is heading: LLM-Orchestrated SLMs and the rise of agentic AI</h2>
<p>The past two years have shown that although LLMs excel at broad reasoning tasks, they are not always the best tool for executing specialized or repetitive functions such as NER, classification, retrieval, or data validation. As a result, a new architectural pattern has begun to dominate research and emerging commercial systems. That is, using large, highly capable LLMs as orchestrators and planners, while delegating most task execution to specialized SLMs.</p>
<p>Instead of relying on a single monolithic model to do everything (which is often needlessly expensive, computationally slow, and overkill for simpler tasks), the industry is moving toward distributed, tool-driven AI ecosystems in which:</p>
<ul>
<li>The LLM acts as the “brain”, handling reasoning, decomposition of tasks, decision-making, and task orchestration.</li>
<li>SLMs and other specialized models act as “tools”, performing concrete actions such as extraction, classification, vision segmentation, retrieval, or structured data generation.</li>
</ul>
<p>The paper “Small Language Models Are the Future of Agentic AI” underscores this trend. The authors argue that the most effective AI systems of the future will rely on large models not as all-purpose engines, but as generalist controllers that coordinate fleets of smaller, optimized components. This shift dramatically improves efficiency, reliability, and cost.</p>
<p>For information extraction specifically, this trend means that an LLM might eventually be responsible for interpreting the user’s intent. For example, “extract all construction activity mentions from these reports”. It could also include deciding which tools to call and assembling the final structured output. But the actual extraction, the token-level work of identifying entities and capturing offsets, is performed by deterministic, efficient models like GLiNER.</p>
<p>This architecture combines the reasoning power of LLMs with the stability and speed of SLMs. This means producing outputs that are far more robust and cost-effective than using a single model alone. It also reflects a broader convergence between symbolic AI (systems that value determinism and structure) and neural AI (systems that value generalization and flexibility). The next generation of enterprise AI systems will increasingly be hybrid, agentic, and tool-aware.</p>
<h2>Where the SAS Applied AI and Modeling Division is heading next</h2>
<p>As agentic AI and SLMs continue to mature, they are rapidly becoming the most practical option for enterprise-grade information extraction. They combine the stability and auditability of traditional NLP with the flexibility and intelligence of transformer-based systems. All this without incurring the operational challenges of full-scale LLMs.</p>
<aside class="modern-quote pull alignright">The SAS Applied AI and Modeling division is actively working to incorporate GLiNER-based capabilities directly into our SAS Document Analysis offering</aside>
<p>Recognizing this, the SAS Applied AI and Modeling division is actively working to incorporate GLiNER-based capabilities directly into our <a href="https://support.sas.com/en/software/sas-models-support.html">SAS Document Analysis</a> offering. This will enable customers to perform zero-shot and domain-specific entity extraction locally, with deterministic behavior, full auditability, and minimal hardware requirements. It represents a significant step forward in making advanced information extraction more accessible, reliable, and affordable across industries.</p>
<p>In the next post in this series, we’ll shift from text to vision and explore the Segment Anything Model (SAM). This is another zero-shot foundation model reshaping how organizations approach image segmentation in computer vision.</p>
<p>Stay tuned—there’s a lot more to come!</p>
<p><a class="sc-button sc-button-default" href="https://arxiv.org/html/2406.12925v2"><span class="btnheader">READ MORE | </span> GLiNER multi-task: Generalist Lightweight Model for Various Information Extraction Tasks</a></p>
<p><a class="sc-button sc-button-default" href="https://github.com/urchade/GLiNER"><span class="btnheader">LEARN MORE | </span> GLiNER Python Implementation on GitHub</a></p>
<p><a class="sc-button sc-button-default" href="https://huggingface.co/urchade/gliner_base"><span class="btnheader">LEARN MORE | </span> GLiNER Model Weights on HuggingFace</a></p>
<p>The post <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings/2025/12/17/the-rise-of-small-language-models-for-information-extraction/">The rise of small language models for information extraction</a> appeared first on <a rel="nofollow" href="https://blogs.sas.com/content/subconsciousmusings">The SAS Data Science Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.sas.com/content/subconsciousmusings/2025/12/17/the-rise-of-small-language-models-for-information-extraction/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<enclosure url="https://blogs.sas.com/content/subconsciousmusings/files/2025/12/Gemini_Generated_Image_wgrqqgwgrqqgwgrq-150x150.png" />
	</item>
	</channel>
</rss>
