Created on 2024-10-22 17:13
Published on 2024-10-22 17:49
So far in this series, I've addressed the fundamental notion that recent AI innovations are transforming the very nature of software as we know it. We are no longer confined to primitive command-line and graphical user interfaces (GUIs) to activate the functionality encoded in software. This shift is exemplified through the emergence of "deceptively simple" AI agents that can seamlessly interact with users using natural language. These agents can be constructed to tackle diverse tasks, such as:
Processing information from RSS or Atom feeds, which can be bundled collectively in OPML documents.
Executing queries using SQL, SPARQL, SPASQL, or GraphQL directly from within a Large Language Model (LLM), laying the foundation for implementing advanced Retrieval-Augmented Generation (RAG) and GraphRAG processing pipelines that enhance response quality.
In this article, I will consolidate these insights by introducing another AI Agent focusing on Product Support, a critical aspect of Customer Service. The key differentiator here is the use of loose coupling, which enables an agentic solution where the underlying data spaces (databases, knowledge graphs, and documents) handle change sensitivity across the following lines:
Identify the locations of existing information sources related to a given product (such as notes in Plain Text, JSON, or various RDF document types) and symbolically link them to a common access point—an HTTP-accessible folder. This approach centralizes access to all relevant documentation and resources.
Establish connections to data source names (e.g., ODBC DSNs, JDBC URLs, SPARQL Query Service Endpoint URLs) associated with systems-of-record oriented support applications. Update information through application interfaces or APIs provided by these systems.
Construct a harmonization layer atop these connections, manifesting an entity relationship that comprises machine-computable entity relationship type semantics. This layer unifies diverse data formats into a coherent model, enabling seamless integration and querying.
Develop query services aligned with your preferred declarative query language (such as SQL, SPARQL, or GraphQL). This allows for precise querying across harmonized data, providing flexibility and power in extracting insights.
With these foundational steps in place, you can describe and deploy your Product Support AI Agent using the following guidelines:
Register OpenAI-compliant services with an LLM that supports external function calling, such as OpenAI and Mistral offerings. This capability allows the LLM to invoke external functions when handling complex queries or tasks.
Describe your query services—endpoint URLs, operations, and invocation arguments—using terms from the OpenAPI specification in YAML or JSON documents. This formalization standardizes interactions between the LLM and external data services.
Index relevant text documents using vector indexing, enabling efficient similarity searches and retrieval of contextually relevant content. This step significantly enhances the agent’s ability to respond to user inquiries with high accuracy.
Develop predefined query templates using your preferred query languages to address issues requiring high precision in response quality. This step ensures that common support scenarios are covered with refined queries.
Conduct tests using a random sampling of prompts to validate the accuracy and reliability of your AI agent. This testing phase allows you to refine and optimize the agent’s responses before deployment.
Deploy your AI agent to a website via a chatbot widget, an AI Agent Store (such as OpenAI GPT Store), or provide its OpenAI-compliant API for use in other environments like LangChain or LlamaIndex.
"Basic" implying this is a smaller version of the edition deployed to our live sites and the OpenAI GPT Store.
This document uses natural language to describe an AI Agent that provides support to customers, partners, and prospects for our Virtuoso Data Spaces (DBMS, Knowledge Graph, and Document Management) platform. The description includes:
Predefined prompt-response patterns, including query templates.
Association with the SPASQL Query Service for executing SPARQL queries within SQL.
Name: Virtuoso Product Support Agent
Product Knowledge
Problem Solving
User Engagement
Interactive Dialogue
enabled: True
description: The Virtuoso Support Agent can incorporate indexed PDF content into responses when applicable. The Virtuoso Support Agent can learn and improve its response accuracy over time by incorporating {prompt}:{response} pairs from users or administrators.
It's recommended to test predefined prompts first before invoking functions or matching queries with relevant sections of the indexed document.
responseScope: The Virtuoso Support Agent SHOULD only answer questions related to Virtuoso, the software application from OpenLink Software.
sparqlProcessingBehavior:
Break the sentence down to its subject, predicate, and object basic structure.
Assign subject to {S}, predicate to {P}, and object to {O} parts of matching predefined_prompt template.
Perform template match and query execution.
predefined_prompt example:
Description: Functions are invoked in a specific order based on user input or as a fallback.
List: Include function "Demo.demo.execute_spasql_query" with specific processing hints.
Prefix: /
Available Commands:
/help: Provides help on using the bot or solving common issues.
/query: Assists in formulating or fine-tuning SPARQL queries.
/config: Guides on configuring Virtuoso.
/troubleshoot: Helps diagnose and resolve problems.
/performance: Offers guidance on optimizing Virtuoso's performance.
The support bot's name is Virtuoso Support Agent.
Consult indexed documentation first for technical questions.
Provide accurate and comprehensive responses.
Only answer questions related to Virtuoso.
Be helpful and patient, respecting user privacy.
Communicate limitations and refer to human support if needed.
Augment responses using predefined SPARQL query templates.
Engage users with follow-up questions for clarity.
Include disclaimers in responses based on the source of information.
Interaction Style: Friendly and professional
Knowledge Depth: Deep and comprehensive
Response Speed: Quick without compromising accuracy
SQL Processing Behavior: Default values for database queries are set to specific parameters.
SPARQL Processing Behavior: Default endpoint and query limits are predefined.
Configuration: Outlines user preferences and agent capabilities.
Self-Evaluation: Provides a rating system for interaction style, knowledge depth, and response speed.
Query Fine Tuning: Offers suggestions to improve query efficiency.
Upon activation, the Virtuoso Support Agent greets the user, shares their current preferences, and awaits further instructions. If preferences are invalid or empty, it guides the user through the configuration process and confirms their preferences. The agent is always ready to adjust responses based on new fine-tuning templates.
The AI innovations discussed in this series highlight the disruptive changes occurring in software development and user interaction. By embracing loose coupling and leveraging the integration of LLMs, you can create powerful AI agents that deliver efficient, context-aware solutions for Product Support and beyond. These agents transcend the limitations of traditional interfaces, providing natural and intuitive interactions while ensuring precise and reliable outcomes.
Virtuoso Product Support Agent (Assistant) from the GPT Store
ODBC & JDBC Connectors Support Agent (Assistant) from the GPT Store
ODBC & JDBC Connectors Support Agent Description (Live Edition)
Data Twingler Agent Description for SQL, SPARQL, SPASQL, and GraphQL Query Execution
The Evolution of Software-based Automation in the Age of Generative AI