mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-04-25 00:16:29 +02:00
Update docs to include managed service
This commit is contained in:
parent
7df6d6e6f3
commit
206c807a6f
13 changed files with 251 additions and 10 deletions
23
apps/docs/docs/agents.md
Normal file
23
apps/docs/docs/agents.md
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# Agents
|
||||
|
||||
## Overview
|
||||
- Agents carry out a specific part of the conversation and / or perform tasks like orchestrating between other agents, triggering internal processes and fetching information.
|
||||
- Agents carry out tasks through tools provided to them.
|
||||
- Agents are connected to each other in a Directed Acyclic Graph (DAG). Hence, every agent has a parent agent and children agents, to which they can pass control of the conversation to.
|
||||
|
||||
## Agent Configurations
|
||||
|
||||
### Description
|
||||
The description conveys the agent's role in the multi-agent system. Writing a good description is important for other agents to know when to pass control of the conversation to an agent.
|
||||
|
||||
### Instructions
|
||||
Agent instructions are the backbone of an agent, defining its behavior. RowBoat Studio's copilot produces a good framework for agent instructions, involving Role, Steps to Follow, Scope and Guidelines. Since agents are powered by LLMs, general best practices while writing prompts apply.
|
||||
|
||||
### Examples
|
||||
Coming soon.
|
||||
|
||||
### Model
|
||||
Coming soon.
|
||||
|
||||
### Control
|
||||
Coming soon.
|
||||
|
|
@ -1,9 +1,13 @@
|
|||
# Building Assistants in Studio
|
||||
This is a guide to building your first assistant on RowBoat Studio, with examples.<br>
|
||||
**Prerequisite:** Complete the [installation steps](/installation/) to set up RowBoat Studio.
|
||||
|
||||
Prerequisite:
|
||||
|
||||
1. **Open Source Users:** Complete the [open-source installation steps](/oss_installation/) to set up RowBoat Studio.
|
||||
2. **Hosted App Users:** Sign in to [https://app.rowboatlabs.com/](https://app.rowboatlabs.com/)
|
||||
|
||||
## Create the set of initial agents
|
||||
Copilot can sets up agents for you from scratch.
|
||||
Copilot can set up agents for you from scratch.
|
||||
|
||||
### Instruct copilot
|
||||
First, tell it about the initial set of agents that make up your assistant.
|
||||
|
|
|
|||
1
apps/docs/docs/data_sources.md
Normal file
1
apps/docs/docs/data_sources.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Coming soon.
|
||||
23
apps/docs/docs/graph.md
Normal file
23
apps/docs/docs/graph.md
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# Graph-based Framework
|
||||
|
||||
## Overview
|
||||
|
||||
- Multi-agent systems are popularly represented as graphs, where each agent is a node in the graph.
|
||||
- In RowBoat, agents are connected to each other as Directed Acyclic Graphs (DAG).
|
||||
- The graph is also called a workflow, which defines agents, tools, and their connections.
|
||||
- Since the graph is directed, the control of conversation flows from "parent" agents to their "children" agents
|
||||
- Every agent is responsible for carrying out a specific part of the workflow, which can involve conversing with the user and / or carrying out tasks such as directing the conversation to other agents.
|
||||
- [Langgraph](https://www.langchain.com/langgraph) and [Swarm](https://github.com/openai/swarm) are examples of open-source frameworks used to define multi-agent graphs. RowBoat currently supports a Swarm implementation and will extend to Langgraph too in the future.
|
||||
|
||||
## Control Passing
|
||||
|
||||
- While defining the workflow, an agent is designated as the Start agent, to which the first turn of chat will be directed. Typically the Start agent is responsible for triaging the user's query at a high-level and passing control to relevant specific agents which can address the user's needs.
|
||||
- In any turn of chat, the agent currently in control of the chat has one of 3 options: a) respond to the user (or put out tool calls), b) transfer the chat to any of its children agents or c) transfer the chat back to its parent agent.
|
||||
- Agents use internal tool calls to transfer the chat to other agents.
|
||||
- Thus, control passing is achieved by allowing agents to decide flow of control autonomously.
|
||||
- To the user, the assistant will appear as a unified system, while agents work under the hood.
|
||||
|
||||
## Pipelines
|
||||
|
||||
- RowBoat also has the concept of pipelines, which are agents invoked sequentially after an agent in the graph has produced a user-facing response.
|
||||
- E.g. a pipeline with a post processing agent and a guardrail agent will ensure that every response is post processed and guardrailed for appropriateness before presenting it to the user.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Installation
|
||||
# Using the Hosted App
|
||||
|
||||
- This is the developers guide to self-hosting the open-source version of RowBoat. If you are looking to use our managed offering, getting in touch at [founders@rowboatlabs.com](mailto:founders@rowboatlabs.com).
|
||||
- This is the developers guide to self-hosting the open-source version of RowBoat.
|
||||
- Please see our [Introduction](/) page before referring to this guide.
|
||||
- For direct installation steps, please head to the README of RowBoat's Github repo: [@rowboatlabs/rowboat](https://github.com/rowboatlabs/rowboat/). This page provides more context about the installation process and the different components involved.
|
||||
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
# Welcome to Rowboat
|
||||
|
||||
Rowboat is an open-source project that helps you build, test, and deploy multi-agent AI customer support assistants.
|
||||
Rowboat is an open-source project that helps you build, test, and deploy multi-agent AI customer support assistants.
|
||||
|
||||
**Note:** These docs are intended for both developers who would like to self-host our [open-source code](https://github.com/rowboatlabs/rowboat/) as well as users of our [hosted (managed) app](https://app.rowboatlabs.com/).
|
||||
|
||||
- Our source code is on GitHub at [@rowboatlabs/rowboat](https://github.com/rowboatlabs/rowboat/)
|
||||
- Join us on [discord](https://discord.gg/jHhUKkKHn8)
|
||||
|
|
|
|||
33
apps/docs/docs/oss_installation.md
Normal file
33
apps/docs/docs/oss_installation.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# Open Source Installation
|
||||
|
||||
- This is the developers guide to self-hosting the open-source version of RowBoat. To get started with the hosted app, please see [Using the Hosted App](/hosted_setup)
|
||||
- Please see our [Introduction](/) page before referring to this guide.
|
||||
- For direct installation steps, please head to the README of RowBoat's Github repo: [@rowboatlabs/rowboat](https://github.com/rowboatlabs/rowboat/). This page provides more context about the installation process and the different components involved.
|
||||
|
||||
## Overview
|
||||
|
||||
RowBoat's codebase has three main components:
|
||||
|
||||
| Component | Description |
|
||||
|--------------|---------------|
|
||||
| **Agents** | Python framework responsible for carrying out multi-agent conversations |
|
||||
| **Copilot** | Python framework powering the copilot in RowBoat Studio |
|
||||
| **RowBoat** | Frontend and backend services to power RowBoat Studio and Chat APIs |
|
||||
|
||||
These components are structured as separate services, each containerized with Docker. Running `docker-compose up --build` enables you to use the Studio in your browser, as well as stands up the APIs and SDK.
|
||||
|
||||
## Prerequisites
|
||||
All of these prerequistes have open-source or free versions.
|
||||
|
||||
| Prerequisite | Description |
|
||||
|--------------|---------------|
|
||||
| **Docker** | Bundles and builds all services |
|
||||
| **OpenAI API Key** | Agents and Copilot services are powered by OpenAI LLMs |
|
||||
| **MongoDB** | Stores workflow versions, chats and RAG embeddings |
|
||||
| **Auth0 Account** | Handles user authentication and identity management for Studio |
|
||||
|
||||
Refer to our [Github Readme for Prerequisites](https://github.com/rowboatlabs/rowboat/?tab=readme-ov-file#prerequisites) to set up prerequisites.
|
||||
|
||||
## Setting up
|
||||
|
||||
Refer to our [Github Readme for Local Development](https://github.com/rowboatlabs/rowboat/?tab=readme-ov-file#local-development-setup) to set up Studio, Chat API and SDK via `docker-compose`.
|
||||
1
apps/docs/docs/prompts.md
Normal file
1
apps/docs/docs/prompts.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Coming soon.
|
||||
132
apps/docs/docs/testing.md
Normal file
132
apps/docs/docs/testing.md
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
# Testing Your Setup
|
||||
|
||||
## Testing Studio
|
||||
|
||||
1. Once you are set up, you should be able to login to the Studio via Auth0's login options (Gmail, Github etc.).
|
||||
- For the open source installation, the URL for Studio is [http://localhost:3000](http://localhost:3000)
|
||||
- To use our hosted app, the URL for Studio is [https://app.rowboatlabs.com](https://app.rowboatlabs.com/)
|
||||
<br>
|
||||
|
||||
2. Once in Studio, create a new blank project or use one of the example templates:
|
||||

|
||||
<br>
|
||||
|
||||
3. Use the copilot to help you build agents:
|
||||

|
||||
<br>
|
||||
|
||||
4. Ensure that the correct agent is set as the "start agent":
|
||||

|
||||
<br>
|
||||
|
||||
5. Test out a chat in the playground to verify the agents' behavior:
|
||||

|
||||
<br>
|
||||
|
||||
### Testing the Chat API
|
||||
|
||||
- For the open source installation, the `<HOST>` is [http://localhost:3000](http://localhost:3000)
|
||||
- When using the hosted app, the `<HOST>` is [https://app.rowboatlabs.com](https://app.rowboatlabs.com)
|
||||
- `<PROJECT_ID>` is available in the URL of the project page
|
||||
- API Key can be generated from the project config page at `<HOST>/projects/<PROJECT_ID>/config`
|
||||
|
||||
Below is an example request and response. Modify the user message in the request, based on your example project.
|
||||
|
||||
**Request:**
|
||||
|
||||
```bash
|
||||
curl --location 'http://<HOST>/api/v1/<PROJECT_ID>/chat' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--header 'Authorization: Bearer <API_KEY>' \
|
||||
--data '{
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "What is my pending payment amount?"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
**Response:**
|
||||
The last message in `messages` is either a user-facing response or a tool call by the assistant.
|
||||
|
||||
```json
|
||||
{
|
||||
"messages": [
|
||||
{
|
||||
"sender": "Credit Card Hub",
|
||||
"role": "assistant",
|
||||
"response_type": "internal",
|
||||
"content": null,
|
||||
"created_at": "2025-02-01T06:55:47.843909",
|
||||
"current_turn": true,
|
||||
"tool_calls": [
|
||||
{
|
||||
"function": {
|
||||
"arguments": "{\"args\":\"\",\"kwargs\":\"\"}",
|
||||
// Internal tool calls are used to transfer between agents
|
||||
"name": "transfer_to_outstanding_payment"
|
||||
},
|
||||
"id": "call_7jGpwpVvzhZFOyRgxHFkdOdU",
|
||||
"type": "function"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tool_name": "transfer_to_outstanding_payment",
|
||||
"role": "tool",
|
||||
"content": "{\"assistant\": \"Outstanding Payment\"}",
|
||||
"tool_call_id": "call_7jGpwpVvzhZFOyRgxHFkdOdU"
|
||||
},
|
||||
{
|
||||
"sender": "Outstanding Payment",
|
||||
"role": "assistant",
|
||||
// Response is not user-facing, to enable further post processing
|
||||
"response_type": "internal",
|
||||
"content": "Sure, could you provide the last four digits of your card or your registered mobile number so I can look up your pending payment amount?",
|
||||
"created_at": "2025-02-01T06:55:49.648008",
|
||||
"current_turn": true
|
||||
},
|
||||
{
|
||||
"sender": "Outstanding Payment >> Post process",
|
||||
"role": "assistant",
|
||||
// Response is user-facing
|
||||
"response_type": "external",
|
||||
"content": "Sure, please provide the last four digits of your card or your registered mobile number so I can check your pending payment amount.",
|
||||
"created_at": "2025-02-01T06:55:49.648008",
|
||||
"current_turn": true
|
||||
}
|
||||
],
|
||||
"state": {
|
||||
// .. state data
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Testing the Python Chat SDK
|
||||
|
||||
- For the open source installation, the `<HOST>` is [http://localhost:3000](http://localhost:3000)
|
||||
- When using the hosted app, the `<HOST>` is [https://app.rowboatlabs.com](https://app.rowboatlabs.com)
|
||||
- `<PROJECT_ID>` is available in the URL of the project page
|
||||
- API Key can be generated from the project config page at `<HOST>/projects/<PROJECT_ID>/config`
|
||||
|
||||
```bash
|
||||
pip install rowboat
|
||||
```
|
||||
|
||||
Modify the user message in `messages`, based on your example project.
|
||||
|
||||
```python
|
||||
from rowboat import Client
|
||||
|
||||
client = Client(
|
||||
host="<HOST>",
|
||||
project_id="<PROJECT_ID>",
|
||||
api_key="<API_KEY>" # Generate this from /projects/<PROJECT_ID>/config
|
||||
)
|
||||
|
||||
# Simple chat interaction
|
||||
messages = [{"role": "user", "content": "What is my pending payment amount?"}]
|
||||
response_messages, state = client.chat(messages=messages)
|
||||
```
|
||||
The last message in `response_messages` is either a user-facing response or a tool call by the assistant.
|
||||
1
apps/docs/docs/tools.md
Normal file
1
apps/docs/docs/tools.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Coming soon.
|
||||
|
|
@ -24,12 +24,16 @@ When you provide your Project ID in the API call, RowBoat uses the version of yo
|
|||
- `messages`: assistant responses for the current turn (the last message in `messages` is either the user-facing response or a tool call by the assistant)
|
||||
- `state`: to be passed to the next turn
|
||||
|
||||
### API Host
|
||||
- For the open source installation, the `<HOST>` is [http://localhost:3000](http://localhost:3000)
|
||||
- When using the hosted app, the `<HOST>` is [https://app.rowboatlabs.com](https://app.rowboatlabs.com)
|
||||
|
||||
### Example first turn of a chat
|
||||
|
||||
#### Request
|
||||
|
||||
```bash
|
||||
curl --location 'http://localhost:3000/api/v1/<PROJECT_ID>/chat' \
|
||||
curl --location '<HOST>/api/v1/<PROJECT_ID>/chat' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--header 'Authorization: Bearer <API_KEY>' \
|
||||
--data '{
|
||||
|
|
|
|||
|
|
@ -3,8 +3,13 @@
|
|||
This is a guide on using the RowBoat Python SDK as an alternative to the [RowBoat HTTP API](/using_the_api) to power conversations with the assistant created in Studio.
|
||||
|
||||
## Prerequisites
|
||||
- [Deploy your assistant to production](/using_the_api/#deploy-your-assistant-to-production-on-studio) and [obtain your API key and Project ID](/using_the_api/#obtain-api-key-and-project-id)
|
||||
- ``` pip install rowboat ```
|
||||
- [Deploy your assistant to production](/using_the_api/#deploy-your-assistant-to-production-on-studio)
|
||||
- [Obtain your `<API_KEY>` and `<PROJECT_ID>`](/using_the_api/#obtain-api-key-and-project-id)
|
||||
|
||||
### API Host
|
||||
- For the open source installation, the `<HOST>` is [http://localhost:3000](http://localhost:3000)
|
||||
- When using the hosted app, the `<HOST>` is [https://app.rowboatlabs.com](https://app.rowboatlabs.com)
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
|
|||
|
|
@ -7,8 +7,20 @@ nav:
|
|||
- Overview:
|
||||
- Introduction: index.md
|
||||
- Open Source License: license.md
|
||||
- Getting started:
|
||||
- Installation: installation.md
|
||||
|
||||
- Getting Started:
|
||||
- Option 1 - Open Source: oss_installation.md
|
||||
- Option 2 - Hosted App: hosted_setup.md
|
||||
- Testing Your Setup: testing.md
|
||||
|
||||
- Building With RowBoat:
|
||||
- Building in Studio: building_in_studio.md
|
||||
- Using the API: using_the_api.md
|
||||
- Using the SDK: using_the_sdk.md
|
||||
- Using the SDK: using_the_sdk.md
|
||||
|
||||
- Concepts:
|
||||
- Agents: agents.md
|
||||
- Graph: graph.md
|
||||
- Tools: tools.md
|
||||
- Prompts: prompts.md
|
||||
- Data Sources: data_sources.md
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue