Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: rebrand to obot #958

Merged
merged 2 commits into from
Dec 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions docs/docs/01-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,28 @@ slug: /
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

Otto8 is an open source enterprise agent platform. Key features include:
Obot is an open source enterprise agent platform. Key features include:
- Ability to build agents to support a variety of usecases including copilots, assistants, and autonomous agentic workflows.
- Integration with leading LLM providers
- Built-in RAG for your data
- Easy integration with custom or private web services and APIs
- OAuth 2.0 authentication

### Getting Started
Launch Otto8 via docker:

Launch Obot via Docker:

```bash
docker run -d -p 8080:8080 -e "OPENAI_API_KEY=<OPEN AI KEY>" ghcr.io/otto8-ai/otto8:latest
docker run -d -p 8080:8080 -e "OPENAI_API_KEY=<OPENAI KEY>" ghcr.io/obot-platform/obot:main
```

Then visit http://localhost:8080.

The `otto8` CLI can be installed via brew on MacOS or Linux:
The `Obot` CLI can be installed via brew on macOS or Linux:

```bash
brew tap otto8-ai/tap
brew install otto8
brew tap obot-platform/tap
brew install obot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like we haven't update the homebrew formula..

Warning: No available formula with the name "obot". Did you mean boost?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but I think we are going to after we release. Please correct me if I am wrong - @cjellick

```
or by downloading the binary for your platform from our [latest release](https://github.com/otto8-ai/otto8/releases/latest).

or by downloading the binary for your platform from our [latest release](https://github.com/obot-platform/obot/releases/latest).
42 changes: 30 additions & 12 deletions docs/docs/02-concepts/01-agents.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,60 @@
# Agents

An agent is a program that combines AI, a set of instructions, and access to your services and data to perform tasks, answer questions, and interact with its environment. Administrators create agents for end-users to interact with. Below are the key concepts and fields you need to understand to build an agent.
An agent is a program that combines AI, a set of instructions, and access to your services and data to perform tasks, answer questions, and interact with its environment.
Administrators create agents for end-users to interact with. Below are the key concepts and fields you need to understand to build an agent.

### Name and Description
These fields will be shown to your end-users to help them identify and understand your agents.

### Instructions
Instructions let you guide your agent's behavior. You should use this field to specify things like the agent's objectives, goals, personality, and anything special it should know about its users or use cases. Here is an example set of instructions for a HR Assistant designed to answer employee's HR-related questions and requests:
Instructions let you guide your agent's behavior.
You should use this field to specify things like the agent's objectives, goals, personality, and anything special it should know about its users or use cases.
Here is an example set of instructions for a HR Assistant designed to answer employee's HR-related questions and requests:

> You are an HR assistant for Acme Corporation. Employees of Acme Corporation will chat with you to get answers to HR related questions. If an employee seems unsatisfied with your answers, you can direct them to email [email protected].

### Model
You can specify the model each agent will use. If you make no selection, the system default will be used. For more on models, see our [Models concept](models).

### Tools
Tools dictate what an agent can do and how it can interact with the rest of the world. The tools shipped with Otto8 help make their purpose clear. A few examples include:
Tools dictate what an agent can do and how it can interact with the rest of the world. The tools shipped with Obot help make their purpose clear. A few examples include:
- Creating an email draft
- Sending a Slack message
- Getting the contents of a web page

You can configure an agent with **Agent Tools** and **User Tools**, described below:
- **Agent Tools** will always be enabled on an agent. The agent will always be able to call them.
- **User Tools** are optional. They are available for a user to add to their chat with the agent. Users can add and remove these tools at will.
- **User Tools** are optional. They are available for a user to add to their chat with the agent. Users can add and remove these tools at will.

### Knowledge
Knowledge lets you supply your agent with information unique to its use case. You can upload files directly or pull in data from Notion, OneDrive, or a website. If you've configured your agent with knowledge, it will make queries to its knowledge database to help respond to the users' requests.
Knowledge lets you supply your agent with information unique to its use case.
You can upload files directly or pull in data from Notion, OneDrive, or a website.
If you've configured your agent with knowledge, it will make queries to its knowledge database to help respond to the users' requests.

You should supply a useful **Knowledge Description** to help the agent determine when it should make a query. Here is an example knowledge description for an HR Assistant that has documents regarding a companies HR policies and procedures:
You should supply a useful **Knowledge Description** to help the agent determine when it should make a query.
Here is an example knowledge description for an HR Assistant that has documents regarding a companies HR policies and procedures:

> Detailed documentation about the human resource policies and procedures for Acme Corporation.

### Preview Chat and Threads
When creating an agent, you can chat with it to see how it behaves based on how you've configured it. You can even create access past preview threads to compare behavior as your iterate on it.
When creating an agent, you can chat with it to see how it behaves based on how you've configured it.
You can even create access past preview threads to compare behavior as your iterate on it.


### Publishing
When you publish an agent, you make it available for end-users to chat with. You'll first be asked to specify an alias for the agent. This alias will be used to generate a unique URL for the agent. Only alphanumeric characters and hyphens are allowed. Once you've picked an alias and hit the publish button, the agent will immediately be available for users to discover and chat with.

The end-user chat interface is available at the root of the domain on which otto8 is running. For example, if you accessed the admin UI at `https://otto8.acmecorp.com/admin`, the end-user chat UI is available at `https://otto8.acmecorp.com/`. A publish agent will be available in the agent dropdown on this page as well as at its own dedicated page based on its alias. For example, if you gave your agent the alias `hr-assistant`, it would be available at https://otto8.acmecorp.com/hr-assistant`.

It is possible to request the same alias for two agents. This is to allow you to seamlessly swap agents out without your users noticing. For example, suppose you've published your first agent with the alias `hr-assistant` and it's available at `https://otto8.acmecorp.com/hr-assistant`. If you want to experiment with a new version of your agent, you can create a brand new one, refine its behavior, and when you're ready, set its alias to `hr-assistant` as well. When you're ready to switch your users to the new agent, just unpublish your first agent. Users will be swapped over to the new agent without losing any of their chat history.
When you publish an agent, you make it available for end-users to chat with.
You'll first be asked to specify an alias for the agent. This alias will be used to generate a unique URL for the agent.
Only alphanumeric characters and hyphens are allowed.
Once you've picked an alias and hit the publish button, the agent will immediately be available for users to discover and chat with.

The end-user chat interface is available at the root of the domain on which Obot is running.
For example, if you accessed the admin UI at `https://obot.acmecorp.com/admin`, the end-user chat UI is available at `https://obot.acmecorp.com/`.
A published agent will be available in the agent dropdown on this page as well as at its own dedicated page based on its alias.
For example, if you gave your agent the alias `hr-assistant`, it would be available at https://obot.acmecorp.com/hr-assistant`.

It is possible to request the same alias for two agents.
This is to allow you to seamlessly swap agents out without your users noticing.
For example, suppose you've published your first agent with the alias `hr-assistant` and it's available at `https://obot.acmecorp.com/hr-assistant`.
If you want to experiment with a new version of your agent, you can create a brand new one, refine its behavior, and when you're ready, set its alias to `hr-assistant` as well.
When you're ready to switch your users to the new agent, just unpublish your first agent.
Users will be swapped over to the new agent without losing any of their chat history.
7 changes: 5 additions & 2 deletions docs/docs/02-concepts/02-threads.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Threads

A thread represents each chat conversation between an agent and a user or the execution of a workflow. On the Threads page, you'll find a list of all threads within your system. Clicking on a thread will display all related messages and metadata, such as files created or uploaded by the user.
A thread represents each chat conversation between an agent and a user or the execution of a workflow.
On the Threads page, you'll find a list of all threads within your system.
Clicking on a thread will display all related messages and metadata, such as files created or uploaded by the user.

Deleting a thread will permanently remove it from the system. If a deleted thread was associated with an agent, the user's chat history with that agent will be lost, and any new conversation will start afresh.
Deleting a thread will permanently remove it from the system.
If a deleted thread was associated with an agent, the user's chat history with that agent will be lost, and any new conversation will start afresh.
4 changes: 2 additions & 2 deletions docs/docs/02-concepts/03-tools.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Tools

Tools define an agent's capabilities and determine how it interacts with the world. Otto8 includes a wide range of built-in tools. To help illustrate what tools can do, here are a few examples:
Tools define an agent's capabilities and determine how it interacts with the world. Obot includes a wide range of built-in tools. To help illustrate what tools can do, here are a few examples:
- Creating email drafts
- Sending Slack messages
- Retrieving the contents of a web page

The **Tools** page displays all built-in tools available in Otto8, along with any custom tools you've added. The built-in tools are open source and can be accessed [here](https://github.com/otto8-ai/tools).
The **Tools** page displays all built-in tools available in Obot, along with any custom tools you've added. The built-in tools are open source and can be accessed [here](https://github.com/obot-platform/tools).

For instructions on creating your own tools, refer to our [Tool Authoring Guide](/tools/first-tool).
4 changes: 3 additions & 1 deletion docs/docs/02-concepts/04-users.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Users

The **Users** page displays all the users in your system. Users can be configured as admins by following our [configuration guide](/configuration/general). Non-admin users, referred to as "end-users" in this documentation, only have access to the chat interface available at the root of the domain where Otto8 is running. For example, if the admin interface is accessed at `https://otto8.acmecorp.com/admin`, the end-user chat interface would be available at `https://otto8.acmecorp.com/`.
The **Users** page displays all the users in your system. Users can be configured as admins by following our [configuration guide](/configuration/general).
Non-admin users, referred to as "end-users" in this documentation, only have access to the chat interface available at the root of the domain where Obot is running.
For example, if the admin interface is accessed at `https://obot.acmecorp.com/admin`, the end-user chat interface would be available at `https://obot.acmecorp.com/`.
18 changes: 13 additions & 5 deletions docs/docs/02-concepts/05-oauth-apps.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
# OAuth Apps

OAuth 2.0 (hereon referred to as simply OAuth) is an open standard for authorization, designed to allow applications to access a user’s resources on another service without sharing their password. It enables a secure and standardized way for apps to connect to external services.
OAuth 2.0 (hereafter referred to as simply OAuth) is an open standard for authorization, designed to allow applications to access a user’s resources on another service without sharing their password.
It enables a secure and standardized way for apps to connect to external services.

Otto8 makes use of OAuth to allow agents to interact with systems and services on behalf of the user. For example, through OAuth, an agent can check a user's Slack messages or even send a message as the user.
Obot makes use of OAuth to allow agents to interact with systems and services on behalf of the user.
For example, through OAuth, an agent can check a user's Slack messages or even send a message as the user.

If an Otto8 tool needs to talk to an external service and wants to use Oauth to do so, it will need a corresponding Oauth App. The built-in OAuth Apps corresponding to our built-in tools.
If an Obot tool needs to talk to an external service and wants to use Oauth to do so, it will need a corresponding Oauth App.
The built-in OAuth Apps corresponding to our built-in tools.

Because configuring an OAuth integration can be complicated, Otto8's built-in Oauth Apps are pre-configured to use a public gateway and ran by Acorn Labs. We've configured a corresponding OAuth application in each service provider (ie, GitHub, Google, and Microsoft) so that you can start using the tools without any additional configuration. Any of these integrations can be overridden to use your own custom integration. Each service provider is different, but you just need to follow the in-app instructions to configure them properly.
Because configuring an OAuth integration can be complicated, Obot's built-in OAuth Apps are pre-configured to use a public gateway and ran by Acorn Labs.
We've configured a corresponding OAuth application in each service provider (i.e., GitHub, Google, and Microsoft) so that you can start using the tools without any additional configuration.
Any of these integrations can be overridden to use your own custom integration.
Each service provider is different, but you just need to follow the in-app instructions to configure them properly.

### Custom OAuth Apps
You can configure a custom OAuth app to integrate with any service provider that supports OAuth. You can then use this when authoring your own custom tools that call that service. For more details, see our [Tool Authoring Guide](/tools/integrating-oauth).
You can configure a custom OAuth app to integrate with any service provider that supports OAuth.
You can then use this when authoring your own custom tools that call that service.
For more details, see our [Tool Authoring Guide](/tools/integrating-oauth).

When configuring a custom OAuth App, you'll first be asked to provide the following values:
- **Name** - This is just the friendly name you'll use to identify your app
Expand Down
15 changes: 7 additions & 8 deletions docs/docs/02-concepts/06-workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,24 @@ A workflow is a series of steps that can be easily expressed through natural lan

**Parameters** are optional and allow you to specify inputs to your workflow. This is particularly useful when another workflow or an agent is calling your workflow.

**Steps** represent instructions to be carried out by the workflow. A step can have it's own set of tools and can even call out to other workflows or agents. Otto8 supports two special types of steps: **If Statements** and **While Loops**.
**Steps** represent instructions to be carried out by the workflow. A step can have it's own set of tools and can even call out to other workflows or agents. Obot supports two special types of steps: **If Statements** and **While Loops**.

**If Statements** allow you to specify a condition and different actions to take based on whether that condition is true or false.

**While Loops** allow you to specify a condition and set of steps. As long as the condition evaluates to true, the steps will be continuously executed in a loop.

### Triggering Workflows

You can trigger a workflow in a few ways. The firest is via the **invoke** cli command. Here's an example that invokes a workflow that has two parameters:
You can trigger a workflow in a few ways. The first is via the **invoke** cli command. Here's an example that invokes a workflow that has two parameters:
```
otto8 --debug invoke w1km9xw "name='John Doe', address='123 Main Street'"
obot --debug invoke w1km9xw "name='John Doe', address='123 Main Street'"
```
You can find the workflow id by listing workflows:
```
otto8 workflows
obot workflows
```

Another way to trigger a workflow is via a **webhook**. This feature is still under development and doesn't yet have a corresponding CLI commmand, but you can create a webhook via **curl**. Here's an example:
Another way to trigger a workflow is via a **webhook**. This feature is still under development and doesn't yet have a corresponding CLI command, but you can create a webhook via **curl**. Here's an example:
```
curl -X POST 'http://127.0.0.1:8080/api/webhooks' -d '{ \
"description": "Webhook to respond to pagerduty events", \
Expand All @@ -47,11 +47,10 @@ If any of these headers are seen in the webhook request, they'll be passed to th
}
```

Services that offer webhook integration typically supply a shared secret used to compute a signature for the request and expect the webhook receiver to verify the signature, which otto8 does. Two such services are GitHub and PagerDuty. To understand how to set these fields, you can find their webhook documentation here:
Services that offer webhook integration typically supply a shared secret used to compute a signature for the request and expect the webhook receiver to verify the signature, which Obot does.
Two such services are GitHub and PagerDuty. To understand how to set these fields, you can find their webhook documentation here:

- https://docs.github.com/en/webhooks/using-webhooks/validating-webhook-deliveries
- https://developer.pagerduty.com/docs/28e906a0e4f36-verifying-signatures

Refer to your service's webhook documentation to find the values to set for these fields.


7 changes: 4 additions & 3 deletions docs/docs/02-concepts/07-models.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@

A model is an AI program that has been trained on data to perform tasks, recognize patterns, and make decisions. Popular examples include OpenAI's GPT-4o and Anthropic's Claude 3.5 Sonnet.

Otto8 comes with popular models for OpenAI preconfigured, but admins can modify them or create new ones. Agents, workflows, and tools can specify what model they should use. If they do not specify one, the system's default model is used.
Obot comes with popular models for OpenAI preconfigured, but admins can modify them or create new ones.
Agents, workflows, and tools can specify what model they should use. If they do not specify one, the system's default model is used.

To create a model for a provider other than OpenAI, you must first enable the corresponding **Model Provider**. Otto8 currently supports four model providers:
To create a model for a provider other than OpenAI, you must first enable the corresponding **Model Provider**. Obot currently supports four model providers:
- OpenAI
- Azure OpenAI
- Anthropic
- Ollama

You can learn more about how to configure Model providers in our [Model Provider Configuration Guide](/configuration/model-providers)
You can learn more about how to configure Model providers in our [Model Provider Configuration Guide](/configuration/model-providers)
Loading