diff --git a/README.md b/README.md index b24413e9..764968fe 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,29 @@ Coverage +## Table of Conents +- [Table of Conents](#table-of-conents) +- [What is Tribe?](#what-is-tribe) +- [What are some use cases?](#what-are-some-use-cases) +- [Highlights](#highlights) +- [How to get started](#how-to-get-started) + - [Generate Secret Keys](#generate-secret-keys) + - [Deploy Tribe locally with Docker (simplest way)](#deploy-tribe-locally-with-docker-simplest-way) + - [Deploy Tribe on a remote server](#deploy-tribe-on-a-remote-server) +- [Guides and concepts](#guides-and-concepts) + - [Sequential vs Hierarchical workflows](#sequential-vs-hierarchical-workflows) + - [Sequential workflows](#sequential-workflows) + - [Hierarchical workflows](#hierarchical-workflows) + - [Guides](#guides) + - [Creating Your First Hierarchical Team](#creating-your-first-hierarchical-team) + - [Equipping Your Team Member with Skills](#equipping-your-team-member-with-skills) + - [Creating Your First Sequential Team](#creating-your-first-sequential-team) + - [Requiring Human Approval Before Skill Execution in Sequential Workflows](#requiring-human-approval-before-skill-execution-in-sequential-workflows) +- [Contribution](#contribution) +- [Release Notes](#release-notes) +- [License](#license) + + > [!WARNING] > This project is currently under heavy development. Please be aware that significant changes may occur. @@ -21,13 +44,13 @@ By teaming up, agents can take on more complex tasks. Here are a few examples of and many many more! -## Benefits of Tribe -- **Rapid Team Design**: Build your agent teams quickly with an intuitive drag-and-drop interface. No coding experience required! -- **Versatile Model Support**: Tribe works seamlessly with multiple commercial AI models like OpenAI and Anthropic, and is currently enhancing support for local models. -- **Comprehensive Monitoring**: Use LangSmith to continuously monitor and test your agents to ensure peak performance. -- **Tool use**: Empower your agents with web search capabilities and easily craft custom skills using Python and LangChain. -- **Multi-User Support**: Tribe offers multi-user instances, allowing for collaboration and oversight across different teams. -- **Simple Deployment**: Implement Tribe effortlessly in your system using Docker, streamlining the setup process for various environments. +## Highlights +- **Persistent conversations**: Save and maintain chat histories, allowing you to continue conversations. +- **Observability**: Monitor and track your agents’ performance and outputs in real-time using LangSmith to ensure they operate efficiently. +- **Tool Calling**: Enable your agents to utilize external tools and APIs. +- **Human-In-The-Loop**: Enable human approval before tool calling. +- **Easy Deployment**: Deploy Tribe effortlessly using Docker. +- **Multi-Tenancy**: Manage and support multiple users and teams. ## How to get started @@ -60,36 +83,106 @@ Copy the content and use that as password / secret key. And run that again to ge [Deploy Tribe on your remote server.](./deployment.md) -## Creating your first team +## Guides and concepts -Log into Tribe using the email and password you defined during the installation step. +### Sequential vs Hierarchical workflows -[![API docs](./img/tribe-login.png)](https://github.com/StreetLamb/tribe) +#### Sequential workflows -Navigate to the 'Teams' page and click on 'Add Team'. Enter a name for your team and click 'Save'. +In a sequential workflow, your agents are arranged in an orderly sequence and execute tasks one after another. Each task can be dependent on the previous task. This is useful if you want to tasks to be completed one after another in a deterministic sequence. + +Use this if: +- Your project has clear, step-by-step tasks. +- The outcome of one task influences the next. +- You prefer a straightforward and predictable execution order. +- You need to ensure tasks are performed in a specific order. + +#### Hierarchical workflows + +In a hierarchical workflow, your agents are organised into a team-like structure comprising of 'team leader', 'team members' and even other 'sub-team leaders'. The team leader breaks down the task into smaller tasks and delegate them to its team members. After the team members complete these tasks, their responses will be passed to the team leader who then chooses to return the response to the user or delegate more tasks. + +Use this if: +- Your tasks are complex and multifaceted. +- You need specialized agents to handle different subtasks. +- Task delegation and re-evaluation are crucial for your workflow. +- You want flexibility in task management and adaptability to changes. + +### Guides + +#### Creating Your First Hierarchical Team + +Log into Tribe using the email and password you set during the installation step. -[![API docs](./img/tribe-dashboard-team.png)](https://github.com/StreetLamb/tribe) +![login](./img/hierarchical-tutorial/login.png) +Navigate to the 'Teams' page and click on 'Add Team'. Enter a name for your team and click 'Save'. + +![create team](./img/hierarchical-tutorial/create-team.png) Create two additional team members by dragging the handle of the Team Leader node. -[![API docs](./img/tribe-team-members.png)](https://github.com/StreetLamb/tribe) +![create members](./img/hierarchical-tutorial/create-members.png) Update the first team member as shown. -[![API docs](./img/tribe-team-member-1.png)](https://github.com/StreetLamb/tribe) +![update member 1](./img/hierarchical-tutorial/update-member-1.png) Update the second team member as shown. -[![API docs](./img/tribe-team-member-2.png)](https://github.com/StreetLamb/tribe) - +![update member 2](./img/hierarchical-tutorial/update-member-2.png) Go to the 'Chat' tab and send a question to your team to see how they respond. -[![API docs](./img/tribe-team-chat.png)](https://github.com/StreetLamb/tribe) +![chat](./img/hierarchical-tutorial/chat.png) Congratulations! You’ve successfully built and communicated with your first multi-agent team on Tribe. +#### Equipping Your Team Member with Skills + +Your team member can do more by providing it with a set of skills. Add a skill to your Foodie. + +![add skill](./img/skills-tutorial/adding-skill.png) + +Now, when you ask your Foodie a question, it will search the web for more up-to-date information! + +![chat](./img/skills-tutorial/chat.png) + +#### Creating Your First Sequential Team + +Create a new team and select the 'Sequential' workflow. + +![create team](./img/sequential-tutorial/create-team.png) + +Drag and drop to create another team member below 'Worker0'. + +![create members](./img/sequential-tutorial/create-members.png) + +Update the first team member as shown. Provide the 'wikipedia' skill to this team member. + +![update member 1](./img/sequential-tutorial/update-member-1.png) + +Update the second team member as shown. + +![update member 2](./img/sequential-tutorial/update-member-2.png) + +Go to the 'Chat' tab and send a question to your team to see how they respond. Notice that the Researcher will use Wikipedia to do its research. Very cool! + +![chat](./img/sequential-tutorial/chat.png) + +#### Requiring Human Approval Before Skill Execution in Sequential Workflows + +You can require your team members to wait for your approval before executing their skills. Edit your Researcher and select 'Require approval'. + +![enable human approval](./img/human-approval-tutorial/enable-human-approval.png) + +Now, before the Researcher executes its skills, it will ask you to approve or reject. + +![chat before approval](./img/human-approval-tutorial/chat-before-approval.png) + +If you approve, the Researcher will continue to execute its skills. + +![chat after approval](./img/human-approval-tutorial/chat-after-approval.png) + ## Contribution Tribe is open sourced and welcome contributions from the community! Check out our [contribution guide](./CONTRIBUTING.md) to get started. diff --git a/img/hierarchical-tutorial/chat.png b/img/hierarchical-tutorial/chat.png new file mode 100644 index 00000000..83783dfe Binary files /dev/null and b/img/hierarchical-tutorial/chat.png differ diff --git a/img/hierarchical-tutorial/create-members.png b/img/hierarchical-tutorial/create-members.png new file mode 100644 index 00000000..f90e223f Binary files /dev/null and b/img/hierarchical-tutorial/create-members.png differ diff --git a/img/hierarchical-tutorial/create-team.png b/img/hierarchical-tutorial/create-team.png new file mode 100644 index 00000000..074eaa68 Binary files /dev/null and b/img/hierarchical-tutorial/create-team.png differ diff --git a/img/hierarchical-tutorial/login.png b/img/hierarchical-tutorial/login.png new file mode 100644 index 00000000..f36128e6 Binary files /dev/null and b/img/hierarchical-tutorial/login.png differ diff --git a/img/hierarchical-tutorial/update-member-1.png b/img/hierarchical-tutorial/update-member-1.png new file mode 100644 index 00000000..9529c7be Binary files /dev/null and b/img/hierarchical-tutorial/update-member-1.png differ diff --git a/img/hierarchical-tutorial/update-member-2.png b/img/hierarchical-tutorial/update-member-2.png new file mode 100644 index 00000000..86ddf823 Binary files /dev/null and b/img/hierarchical-tutorial/update-member-2.png differ diff --git a/img/human-approval-tutorial/chat-after-approval.png b/img/human-approval-tutorial/chat-after-approval.png new file mode 100644 index 00000000..d6e42490 Binary files /dev/null and b/img/human-approval-tutorial/chat-after-approval.png differ diff --git a/img/human-approval-tutorial/chat-before-approval.png b/img/human-approval-tutorial/chat-before-approval.png new file mode 100644 index 00000000..594446d3 Binary files /dev/null and b/img/human-approval-tutorial/chat-before-approval.png differ diff --git a/img/human-approval-tutorial/enable-human-approval.png b/img/human-approval-tutorial/enable-human-approval.png new file mode 100644 index 00000000..01b58bca Binary files /dev/null and b/img/human-approval-tutorial/enable-human-approval.png differ diff --git a/img/sequential-tutorial/chat.png b/img/sequential-tutorial/chat.png new file mode 100644 index 00000000..97edd0e0 Binary files /dev/null and b/img/sequential-tutorial/chat.png differ diff --git a/img/sequential-tutorial/create-members.png b/img/sequential-tutorial/create-members.png new file mode 100644 index 00000000..626dedd7 Binary files /dev/null and b/img/sequential-tutorial/create-members.png differ diff --git a/img/sequential-tutorial/create-team.png b/img/sequential-tutorial/create-team.png new file mode 100644 index 00000000..507dffca Binary files /dev/null and b/img/sequential-tutorial/create-team.png differ diff --git a/img/sequential-tutorial/update-member-1.png b/img/sequential-tutorial/update-member-1.png new file mode 100644 index 00000000..c852b246 Binary files /dev/null and b/img/sequential-tutorial/update-member-1.png differ diff --git a/img/sequential-tutorial/update-member-2.png b/img/sequential-tutorial/update-member-2.png new file mode 100644 index 00000000..95e89d3e Binary files /dev/null and b/img/sequential-tutorial/update-member-2.png differ diff --git a/img/skills-tutorial/adding-skill.png b/img/skills-tutorial/adding-skill.png new file mode 100644 index 00000000..f5123d70 Binary files /dev/null and b/img/skills-tutorial/adding-skill.png differ diff --git a/img/skills-tutorial/chat.png b/img/skills-tutorial/chat.png new file mode 100644 index 00000000..03279fc1 Binary files /dev/null and b/img/skills-tutorial/chat.png differ diff --git a/img/tribe-dashboard-team.png b/img/tribe-dashboard-team.png deleted file mode 100644 index 9ad8bf6a..00000000 Binary files a/img/tribe-dashboard-team.png and /dev/null differ diff --git a/img/tribe-login.png b/img/tribe-login.png deleted file mode 100644 index b58c8acc..00000000 Binary files a/img/tribe-login.png and /dev/null differ diff --git a/img/tribe-team-chat.png b/img/tribe-team-chat.png deleted file mode 100644 index d3e9bc19..00000000 Binary files a/img/tribe-team-chat.png and /dev/null differ diff --git a/img/tribe-team-member-1.png b/img/tribe-team-member-1.png deleted file mode 100644 index 838f51a1..00000000 Binary files a/img/tribe-team-member-1.png and /dev/null differ diff --git a/img/tribe-team-member-2.png b/img/tribe-team-member-2.png deleted file mode 100644 index 044cb182..00000000 Binary files a/img/tribe-team-member-2.png and /dev/null differ diff --git a/img/tribe-team-members.png b/img/tribe-team-members.png deleted file mode 100644 index a9b24602..00000000 Binary files a/img/tribe-team-members.png and /dev/null differ