# Semantic Kernel > title: The Semantic Kernel Common Agent API surface ## Pages - [The Semantic Kernel Common Agent API surface](frameworks-agent-agent-api.md): Semantic Kernel agents implement a unified interface for invocation, enabling shared code that operates seamlessly ac... - [Semantic Kernel Agent Architecture](frameworks-agent-agent-architecture.md): This article covers key concepts in the architecture of the Agent Framework, including foundational principles, desig... - [Contextual Function Selection with Semantic Kernel Agents](frameworks-agent-agent-contextual-function-selection.md): ::: zone pivot="programming-language-csharp" - [Configuring Agents with Semantic Kernel Plugins.](frameworks-agent-agent-functions.md): [!IMPORTANT] - [Adding memory to Semantic Kernel Agents](frameworks-agent-agent-memory.md): ::: zone pivot="programming-language-csharp" - [Semantic Kernel Agent Orchestration Advanced Topics](frameworks-agent-agent-orchestration-advanced-topics.md): [!IMPORTANT] - [Concurrent Agent Orchestration](frameworks-agent-agent-orchestration-concurrent.md): [!IMPORTANT] - [Group Chat Agent Orchestration](frameworks-agent-agent-orchestration-group-chat.md): [!IMPORTANT] - [Handoff Agent Orchestration](frameworks-agent-agent-orchestration-handoff.md): [!IMPORTANT] - [Semantic Kernel Agent Orchestration](frameworks-agent-agent-orchestration.md): [!IMPORTANT] - [Magentic Agent Orchestration](frameworks-agent-agent-orchestration-magentic.md): [!IMPORTANT] - [Sequential Agent Orchestration](frameworks-agent-agent-orchestration-sequential.md): [!IMPORTANT] - [Adding Retrieval Augmented Generation (RAG) to Semantic Kernel Agents](frameworks-agent-agent-rag.md): ::: zone pivot="programming-language-csharp" - [How to Stream Agent Responses.](frameworks-agent-agent-streaming.md): A streamed response delivers the message content in small, incremental chunks. This approach enhances the user experi... - [Create an Agent from a Semantic Kernel Template](frameworks-agent-agent-templates.md): An agent's role is primarily shaped by the instructions it receives, which dictate its behavior and actions. Similar ... - [Exploring the Semantic Kernel OpenAI Assistant Agent](frameworks-agent-agent-types-assistant-agent.md): [!IMPORTANT] - [Exploring the Semantic Kernel Azure AI Agent Agent](frameworks-agent-agent-types-azure-ai-agent.md): [!IMPORTANT] - [Exploring the Semantic Kernel Amazon Bedrock Agent](frameworks-agent-agent-types-bedrock-agent.md): [!IMPORTANT] - [Exploring the Semantic Kernel ChatCompletionAgent](frameworks-agent-agent-types-chat-completion-agent.md): ::: zone pivot="programming-language-csharp" - [Exploring the Semantic Kernel Copilot Studio Agent](frameworks-agent-agent-types-copilot-studio-agent.md): [!IMPORTANT] - [Exploring the Semantic Kernel OpenAI Responses Agent](frameworks-agent-agent-types-responses-agent.md): [!IMPORTANT] - [How-To use `OpenAIAssistantAgent` - Code Interpreter](frameworks-agent-examples-example-assistant-code.md): [!IMPORTANT] - [How-To use `OpenAIAssistantAgent` - File Search](frameworks-agent-examples-example-assistant-search.md): [!IMPORTANT] - [How-To use `ChatCompletionAgent`](frameworks-agent-examples-example-chat-agent.md): [!IMPORTANT] - [Semantic Kernel Agent Framework](frameworks-agent.md): The Semantic Kernel Agent Framework provides a platform within the Semantic Kernel eco-system that allow for the crea... - [How-To - Author-Critic Pattern with Cycles](frameworks-process-examples-example-cycles.md): [!WARNING] - [How-To - Create your first Process](frameworks-process-examples-example-first-process.md): [!WARNING] - [How-To - Human-in-the-Loop](frameworks-process-examples-example-human-in-loop.md): [!WARNING] - [Process Framework Best Practices](frameworks-process-process-best-practices.md): Utilizing the Process Framework effectively can significantly enhance your workflow automation. Here are some best pr... - [Process Framework Core Components](frameworks-process-process-core-components.md): The Process Framework is built upon a modular architecture that enables developers to construct sophisticated workflo... - [Process Framework Deployments](frameworks-process-process-deployment.md): Deploying workflows built with the Process Framework can be done seamlessly across local development environments and... - [Process Framework](frameworks-process-process-framework.md): Welcome to the Process Framework within Microsoft's Semantic Kernel—a cutting-edge approach designed to optimize AI i... - [Creating and managing a chat history object](concepts-ai-services-chat-completion-chat-history.md): The chat history object is used to maintain a record of messages in a chat session. It is used to store messages from... - [Function Choice Behaviors](concepts-ai-services-chat-completion-function-calling-function-choice-behaviors.md): --- - [Function Invocation](concepts-ai-services-chat-completion-function-calling-function-invocation.md): When the AI model receives a prompt containing a list of functions, it may choose one or more of them for invocation ... - [Function calling with chat completion](concepts-ai-services-chat-completion-function-calling.md): The most powerful feature of chat completion is the ability to call functions from the model. This allows you to crea... - [Add chat completion services to Semantic Kernel](concepts-ai-services-chat-completion.md): With chat completion, you can simulate a back-and-forth conversation with an AI agent. This is of course useful for c... - [Multi-modal chat completion](concepts-ai-services-chat-completion-multi-modal-chat-completion.md): Many AI services support input using images, text and potentially more at the same time, allowing developers to blend... - [Add embedding generation services to Semantic Kernel](concepts-ai-services-embedding-generation.md): With text embedding generation, you can use an AI model to generate vectors (aka embeddings). These vectors encode th... - [Add AI services to Semantic Kernel](concepts-ai-services.md): One of the main features of Semantic Kernel is its ability to add different AI services to the kernel. This allows yo... - [AI Integrations for Semantic Kernel](concepts-ai-services-integrations.md): Semantic Kernel provides a wide range of AI service integrations to help you build powerful AI agents. Additionally, ... - [Realtime AI Integrations for Semantic Kernel](concepts-ai-services-realtime.md): ::: zone pivot="programming-language-python" - [Semantic Kernel Filters](concepts-enterprise-readiness-filters.md): Filters enhance security by providing control and visibility over how and when functions run. This is needed to insti... - [Observability in Semantic Kernel](concepts-enterprise-readiness-observability.md): When you build AI solutions, you want to be able to observe the behavior of your services. Observability is the abili... - [More advanced scenarios for telemetry](concepts-enterprise-readiness-observability-telemetry-advanced.md): [!NOTE] - [Inspection of telemetry data with Application Insights](concepts-enterprise-readiness-observability-telemetry-with-app-insights.md): [Application Insights](/azure/azure-monitor/app/app-insights-overview) is part of [Azure Monitor](/azure/azure-monito... - [Inspection of telemetry data with Aspire Dashboard](concepts-enterprise-readiness-observability-telemetry-with-aspire-dashboard.md): [Aspire Dashboard](/dotnet/aspire/fundamentals/dashboard/overview?tabs=bash) is part of the [.NET Aspire](/dotnet/asp... - [Visualize traces on Azure AI Foundry Tracing UI](concepts-enterprise-readiness-observability-telemetry-with-azure-ai-foundry-trac.md): [Azure AI Foundry](/azure/ai-studio/) Tracing UI is a web-based user interface that allows you to visualize traces an... - [Inspection of telemetry data with the console](concepts-enterprise-readiness-observability-telemetry-with-console.md): Although the console is not a recommended way to inspect telemetry data, it is a simple and quick way to get started.... - [Understanding the Experimental Attribute in Semantic Kernel](concepts-experimental-attribute.md): Semantic Kernel introduces experimental features to provide early access to new, evolving capabilities. These feature... - [Understanding the kernel in Semantic Kernel](concepts-kernel.md): The kernel is the central component of Semantic Kernel. At its simplest, the kernel is a Dependency Injection contain... - [What are Planners in Semantic Kernel](concepts-planning.md): Once you have multiple plugins, you then need a way for your AI agent to use them together to solve a user’s need. Th... - [Give agents access to Logic Apps via plugins](concepts-plugins-adding-logic-apps-as-plugins.md): Often in an enterprise, you already have a set of workflows that perform real work in Logic Apps. These could be used... - [Give agents access to MCP Servers](concepts-plugins-adding-mcp-plugins.md): MCP is the Model Context Protocol, it is an open protocol that is designed to allow additional capabilities to be add... - [Provide native code to your agents](concepts-plugins-adding-native-plugins.md): The easiest way to provide an AI agent with capabilities that are not natively supported is to wrap native code into ... - [Give agents access to OpenAPI APIs](concepts-plugins-adding-openapi-plugins.md): Often in an enterprise, you already have a set of APIs that perform real work. These could be used by other automatio... - [Plugins in Semantic Kernel](concepts-plugins.md): :::row::: - [Retrieve data from plugins for RAG](concepts-plugins-using-data-retrieval-functions-for-rag.md): Often, your AI agents must retrieve data from external sources to generate grounded responses. Without this additiona... - [Allow agents to automate tasks](concepts-plugins-using-task-automation-functions.md): Most AI agents today simply retrieve data and respond to user queries. AI agents, however, can achieve much more by u... - [Using the Handlebars prompt template language](concepts-prompts-handlebars-prompt-templates.md): Semantic Kernel supports using the [Handlebars](https://handlebarsjs.com/) template syntax for prompts. - [Prompt engineering with Semantic Kernel](concepts-prompts.md): Prompts play a crucial role in communicating and directing the behavior of Large Language Models (LLMs) AI. They serv... - [Using the Jinja2 prompt template language](concepts-prompts-jinja2-prompt-templates.md): ::: zone pivot="programming-language-csharp" - [Using the Liquid prompt template language](concepts-prompts-liquid-prompt-templates.md): Semantic Kernel supports using the [Liquid](https://liquidjs.com/) template syntax for prompts. - [Protecting against Prompt Injection Attacks](concepts-prompts-prompt-injection-attacks.md): Semantic Kernel allows prompts to be automatically converted to ChatHistory instances. - [Using the out-of-the-box prompt template language](concepts-prompts-prompt-template-syntax.md): The Semantic Kernel prompt template language is a simple way to - [YAML Schema Reference for Prompts](concepts-prompts-yaml-schema.md): The YAML schema reference for Semantic Kernel prompts is a detailed reference for YAML prompts that lists all support... - [Semantic Kernel Components](concepts-semantic-kernel-components.md): Semantic Kernel provides many different components, that can be used individually or together. This article gives an ... - [Text Search with Semantic Kernel (Preview)](concepts-text-search.md): [!WARNING] - [Using the Semantic Kernel Bing text search (Preview)](concepts-text-search-out-of-the-box-textsearch-bing-textsearch.md): [!WARNING] - [Using the Semantic Kernel Google text search (Preview)](concepts-text-search-out-of-the-box-textsearch-google-textsearch.md): [!WARNING] - [Out-of-the-box Text Search (Preview)](concepts-text-search-out-of-the-box-textsearch.md): [!WARNING] - [Using the Semantic Kernel Vector Store text search (Preview)](concepts-text-search-out-of-the-box-textsearch-vectorstore-textsearch.md): [!WARNING] - [Semantic Kernel Text Search Abstractions (Preview)](concepts-text-search-text-search-abstractions.md): When dealing with text prompts or text content in chat history a common requirement is to provide additional relevant... - [Semantic Kernel Text Search Function Calling (Preview)](concepts-text-search-text-search-function-calling.md): In the previous Retrieval-Augmented Generation (RAG) based samples the user ask has been used as the search query whe... - [Semantic Kernel Text Search Plugins (Preview)](concepts-text-search-text-search-plugins.md): Semantic Kernel uses [Plugins](../plugins/index.md) to connect existing APIs with AI. - [Semantic Kernel Text Search with Vector Stores (Preview)](concepts-text-search-text-search-vector-stores.md): All of the Vector Store [connectors](../vector-store-connectors/out-of-the-box-connectors/index.md) can be used for t... - [Semantic Kernel Vector Store code samples (Preview)](concepts-vector-store-connectors-code-samples.md): [!WARNING] - [The Semantic Kernel Vector Store data architecture (Preview)](concepts-vector-store-connectors-data-architecture.md): ::: zone pivot="programming-language-csharp" - [Defining your Semantic Kernel Vector Store data model (Preview)](concepts-vector-store-connectors-defining-your-data-model.md): ::: zone pivot="programming-language-csharp" - [Using Vector Store abstractions without defining your own data model (Preview)](concepts-vector-store-connectors-dynamic-data-model.md): ::: zone pivot="programming-language-csharp" - [Generating embeddings for Semantic Kernel Vector Store connectors](concepts-vector-store-connectors-embedding-generation.md): ::: zone pivot="programming-language-csharp" - [How to build your own Vector Store connector (Preview)](concepts-vector-store-connectors-how-to-build-your-own-connector.md): ::: zone pivot="programming-language-csharp" - [How to ingest data into a Semantic Kernel Vector Store (Preview)](concepts-vector-store-connectors-how-to-vector-store-data-ingestion.md): ::: zone pivot="programming-language-csharp" - [Hybrid search using Semantic Kernel Vector Store connectors (Preview)](concepts-vector-store-connectors-hybrid-search.md): ::: zone pivot="programming-language-csharp" - [What are Semantic Kernel Vector Stores? (Preview)](concepts-vector-store-connectors.md): ::: zone pivot="programming-language-csharp" - [Legacy Semantic Kernel Memory Stores](concepts-vector-store-connectors-memory-stores.md): [!TIP] - [Using the Semantic Kernel Azure AI Search Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-azure-ai-search-conne.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel Azure CosmosDB MongoDB (vCore) Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-azure-cosmosdb-mongod.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel Azure CosmosDB NoSQL Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-azure-cosmosdb-nosql-.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel Chroma Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-chroma-connector.md): [!WARNING] - [Using the Semantic Kernel Couchbase Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-couchbase-connector.md): [!WARNING] - [Using the Semantic Kernel Elasticsearch Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-elasticsearch-connect.md): [!WARNING] - [Using the Semantic Kernel Faiss VectorYou can then create a vector store instance using the `FaissStore` class.](concepts-vector-store-connectors-out-of-the-box-connectors-faiss-connector.md): [!WARNING] - [Out-of-the-box Vector Store connectors (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel In-Memory Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-inmemory-connector.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel JDBC Vector Store connector in Java (Experimental)](concepts-vector-store-connectors-out-of-the-box-connectors-jdbc-connector.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel MongoDB Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-mongodb-connector.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel Oracle Database Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-oracle-connector.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel Pinecone Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-pinecone-connector.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel Postgres Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-postgres-connector.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel Qdrant Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-qdrant-connector.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel Redis Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-redis-connector.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel SQL Server Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-sql-connector.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel SQLite Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-sqlite-connector.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel Volatile (In-Memory) Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-volatile-connector.md): ::: zone pivot="programming-language-csharp" - [Using the Semantic Kernel Weaviate Vector Store connector (Preview)](concepts-vector-store-connectors-out-of-the-box-connectors-weaviate-connector.md): ::: zone pivot="programming-language-csharp" - [Defining your Semantic Kernel storage schema using a record definition (Preview)](concepts-vector-store-connectors-schema-with-record-definition.md): ::: zone pivot="programming-language-csharp" - [Serialization of your data model to and from different stores (Preview)](concepts-vector-store-connectors-serialization.md): ::: zone pivot="programming-language-csharp" - [Vector search using Semantic Kernel Vector Store connectors (Preview)](concepts-vector-store-connectors-vector-search.md): ::: zone pivot="programming-language-csharp" - [In-depth Semantic Kernel Demos](get-started-detailed-samples.md): If you want to dive into deeper into Semantic Kernel and learn how to use more advanced functionality not explicitly ... - [How to quickly start with Semantic Kernel](get-started-quick-start-guide.md): In just a few steps, you can build your first AI agent with Semantic Kernel in either Python, .NET, or Java. This gui... - [Supported languages for Semantic Kernel](get-started-supported-languages.md): Semantic Kernel plans on providing support to the following languages: - [Introduction to Semantic Kernel](overview.md): Semantic Kernel is a lightweight, open-source development kit that lets you easily build AI agents and integrate the ... - [Security](support-security.md): Microsoft takes the security of our software products and services seriously, which includes all source code reposito... - [How-To Coordinate Agent Collaboration using Agent Group Chat (Experimental)](support-archive-agent-chat-example.md): [!IMPORTANT] - [Exploring Agent Collaboration in Agent Chat (Experimental)](support-archive-agent-chat.md): [!IMPORTANT] - [Semantic Kernel Documentation Archive](support-archive.md): This is an archive of Semantic Kernel documentation. The content may be outdated or no longer relevant. - [How to contribute to Semantic Kernel](support-contributing.md): You can contribute to Semantic Kernel by submitting issues, starting discussions, and submitting pull requests (PRs).... - [Glossary for Semantic Kernel](support-glossary.md): 👋 Hello! We've included a Glossary below with key terminology. - [Hackathon materials for Semantic Kernel](support-hackathon-materials.md): With these materials you can run your own Semantic Kernel Hackathon, a hands-on event where you can learn and create ... - [Support for Semantic Kernel](support.md): 👋 Welcome! There are a variety of ways to get supported in the Semantic Kernel (SK) world. - [Agent Framework Release Candidate Migration Guide](support-migration-agent-framework-rc-migration-guide.md): As we transition some agents from the experimental stage to the release candidate stage, we have updated the APIs to ... - [AzureAIAgent Foundry GA Migration Guide](support-migration-azureagent-foundry-ga-migration-guide.md): ::: zone pivot="programming-language-csharp" - [Migrating to the new Function Calling capabilities](support-migration-function-calling-migration-guide.md): ::: zone pivot="programming-language-csharp" - [Functions.Markdown to Functions.Yaml Package Migration Guide](support-migration-functions-markdown-migration-guide.md): The Functions.Markdown NuGet package is deprecated and will be removed in a future release as part of the clean-up in... - [Group Chat Orchestration Migration Guide](support-migration-group-chat-orchestration-migration-guide.md): This is a migration guide for developers who have been using the [`AgentGroupChat`](../archive/agent-chat.md) in Sema... - [Kernel Events and Filters Migration](support-migration-kernel-events-and-filters-migration.md): [!NOTE] - [Migrating from Memory Stores to Vector Stores](support-migration-memory-store-migration.md): ::: zone pivot="programming-language-csharp" - [Sessions Python Plugin Migration Guide - May 2025](support-migration-sessions-python-plugin-migration-guide-2025.md): The`SessionsPythonPlugin`has been updated to use the latest version (2024-10-02-preview) of the Azure Code Interpre... - [Migrating from Stepwise Planner to Auto Function Calling](support-migration-stepwise-planner-migration-guide.md): This migration guide shows how to migrate from`FunctionCallingStepwisePlanner`to a new recommended approach for pla... - [Migrating from ITextEmbeddingGenerationService to IEmbeddingGenerator](support-migration-text-embedding-obsolete-migration-guide.md): ::: zone pivot="programming-language-csharp" - [Upgrading to v1+ of the .NET Semantic Kernel SDK](support-migration-v1-migration-guide.md): [!NOTE] - [OpenAI Connector Migration Guide](support-migration-v2-openai-migration-guide.md): Coming as part of the new **1.18** version of Semantic Kernel we migrated our`OpenAI`and`AzureOpenAI`services to ... - [Vector Store changes - April 2025](support-migration-vectorstore-april-2025.md): ::: zone pivot="programming-language-csharp" - [Vector Store changes - March 2025](support-migration-vectorstore-march-2025.md): ::: zone pivot="programming-language-csharp" - [Vector Store changes - May 2025](support-migration-vectorstore-may-2025.md): ::: zone pivot="programming-language-csharp" - [Vector Store changes for Python - June 2025](support-migration-vectorstore-python-june-2025.md): This guide covers the major vector store updates introduced in Semantic Kernel version 1.34, which represents a signi...