Skip to content

A versatile tool designed to help prototype intelligent assistants, agents and multi-agentic systems

License

Notifications You must be signed in to change notification settings

microsoft/semanticworkbench

Repository files navigation

Semantic Workbench

Semantic Workbench is a versatile tool designed to help prototype intelligent assistants quickly. It supports the creation of new assistants or the integration of existing ones, all within a cohesive interface. The workbench provides a user-friendly UI for creating conversations with one or more assistants, configuring settings, and exposing various behaviors.

The Semantic Workbench is composed of three main components:

  • Workbench Service (Python): The backend service that handles core functionalities.
  • Workbench App (React/Typescript): The frontend web user interface for interacting with workbench and assistants.
  • Assistant Services (Python, C#, etc.): any number of assistant services that implement the service protocols/APIs, developed using any framework and programming language of your choice.

Designed to be agnostic of any agent framework, language, or platform, the Semantic Workbench facilitates experimentation, development, testing, and measurement of agent behaviors and workflows. Assistants integrate with the workbench via a RESTful API, allowing for flexibility and broad applicability in various development environments.

Semantic Workbench architecture

Quick start (Recommended) - GitHub Codespaces for turn-key development environment

GitHub Codespaces provides a cloud-based development environment for your repository. It allows you to develop, build, and test your code in a consistent environment, without needing to install dependencies or configure your local machine. It works with any system with a web browser and internet connection, including Windows, MacOS, Linux, Chromebooks, tablets, and mobile devices.

See the GitHub Codespaces / devcontainer README for more information on how to set up and use GitHub Codespaces with Semantic Workbench.

Quick start - Local development environment

image

image

image

Connecting your assistants

To develop new assistants and connect existing ones, see the Assistant Development Guide

The repository contains a few examples that can be used to create custom assistants:

  • Python Canonical Assistant
  • Python example 1: a simple assistant echoing text back.
  • Python example 2: a simple chatbot implementing metaprompt guardrails and content moderation.
  • Python example 3: a functional chatbot implementing metaprompt guardrails and content moderation.
  • .NET example 1: a simple agent with echo and support for a basic /say command.
  • .NET example 2: a simple assistants showcasing Azure AI Content Safety integration and some workbench features like Mermaid graphs.
  • .NET example 3: a functional chatbot implementing metaprompt guardrails and content moderation.

Mermaid graph example ABC music example

Open the Workbench and create an assistant instance

Open the app in your browser at https://localhost:4000:

  • Click Sign in
  • Add and Assistant:
    • Click +Add Assistant Button
    • Click Instance of Assistant
  • Give it a name.
  • Enter the assistant service URL in the combobox, e.g. http://127.0.0.1:3010.
  • Click the assistant name to configure the instance.
  • Create a new conversation from the assistant configuration screen, then click the conversation name to interact with the assistant.
  • Type a message and hit send.
  • If you see "Please set the OpenAI API key in the config."
    • Click Edit icon in upper right.
    • Paste in your OpenAI Key.
    • Paste in your OrgID.
    • Click Save.
    • Hit Back button in UI.
  • Type another message and hit send.

Expected: You get a response from your assistant!

Refreshing Dev Environment

  • v1\service.data delete this directory or specific files if you know which one.
  • From repo root, run make clean install.
    • This will perform a git clean and run installs in all sub-directories
  • Or a faster option if you just want to install semantic workbench related stuff:
    • From repo root, run make clean
    • From ~/semantic-workbench/v1/app, run make install
    • From ~/semantic-workbench/v1/service, run make install

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.