Merge pull request #7 from rowboatlabs/dev

Dev --> Main
This commit is contained in:
Akhilesh Sudhakar 2025-02-01 12:39:30 +05:30 committed by GitHub
commit 0b4048b61b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 64 additions and 19 deletions

View file

@ -164,3 +164,6 @@ Before running RowBoat, ensure you have:
3. **Sign-in Button Not Appearing** 3. **Sign-in Button Not Appearing**
- If the sign-in button does not appear in the UI, ensure the Auth0 domain in your `.env` file is prefixed with `https://`. - If the sign-in button does not appear in the UI, ensure the Auth0 domain in your `.env` file is prefixed with `https://`.
## Attribution
Our agents framework is built on top of [OpenAI Swarm](https://github.com/openai/swarm) with custom enhancements and improvements. Check the [NOTICE](https://github.com/rowboatlabs/rowboat/blob/main/apps/agents/NOTICE.md) for attribution and license.

View file

@ -2,14 +2,14 @@
## 📝 Overview ## 📝 Overview
- RowBoat Agents is a multi-agent framework that powers conversations using agentic workflows. - RowBoat Agents is a multi-agent framework that powers conversations using agentic workflows.
- Built on top of [OpenAI Swarm](https://github.com/openai/swarm) with custom enhancements and improvements. Check the `NOTICE.md` for attribution and licensing details (MIT license). - Built on top of [OpenAI Swarm](https://github.com/openai/swarm) with custom enhancements and improvements. Check the [NOTICE](https://github.com/rowboatlabs/rowboat/blob/main/apps/agents/NOTICE.md) for attribution and licensing details (MIT license).
--- ---
## 🕸️ Graph-based Framework ## 🕸️ Graph-based Framework
- Multi-agent systems are represented as graphs, where each agent is a node in the graph. - Multi-agent systems are represented as graphs, where each agent is a node in the graph.
- RowBoat Agents accepts Directed Acyclic Graph (DAG) workflows, which define agents, tools, and their connections. - RowBoat Agents accepts Directed Acyclic Graph (DAG) workflows, which define agents, tools, and their connections.
- Configure workflows using the RowBoat Studio (UI) with the help of an AI copilot. Setup instructions can be found in the [main README](https://github.com/rowboatlabs/rowboat/tree/dev). - Configure workflows using the RowBoat Studio (UI) with the help of an AI copilot. Setup instructions can be found in the [main README](https://github.com/rowboatlabs/rowboat).
- The framework is stateless, meaning that it requires the upstream service to pass in the current `state` and `messages` in every turn. - The framework is stateless, meaning that it requires the upstream service to pass in the current `state` and `messages` in every turn.
- At each conversation turn: - At each conversation turn:
- The agents are initialized using the current `state`. - The agents are initialized using the current `state`.

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

View file

@ -35,11 +35,31 @@ Refer to our [Github Readme for Local Development](https://github.com/rowboatlab
### Testing Studio ### Testing Studio
1. Once you are set up, you should be able to login to the Studio (default local URL: [http://localhost:3000](http://localhost:8000)) via Auth0's login options (Gmail, Github etc.) 1. Once you are set up, you should be able to login to the Studio (default local URL: [http://localhost:3000](http://localhost:8000)) via Auth0's login options (Gmail, Github etc.)
2. Once in Studio, create a new blank project or use one of the example templates <br>
3. Ensure that the correct agent is set as the "start agent"
4. Test out a chat in the playground to verify the agents' behavior 2. Once in Studio, create a new blank project or use one of the example templates:
5. Ask copilot to make minor modifications to one of the agents and apply the changes ![Create Project](img/project-page.png)
6. Test out another chat in the playground to verify the changes <br>
3. Use the copilot to help you build agents:
![Use Copilot](img/use-copilot.png)
<br>
4. Ensure that the correct agent is set as the "start agent":
![Set Start Agent](img/start-agent.png)
<br>
5. Test out a chat in the playground to verify the agents' behavior:
![Testing Chat](img/testing-chat.png)
<br>
6. Ask copilot to make minor modifications to one of the agents and apply the changes:
![Update Agent](img/update-agent.png)
<br>
7. Test out another chat in the playground to verify the changes:
![Re-Test Chat](img/re-test-chat.png)
<br>
### Testing the Chat API ### Testing the Chat API
@ -59,7 +79,7 @@ curl --location 'http://localhost:3000/api/v1/<PROJECT_ID>/chat' \
"messages": [ "messages": [
{ {
"role": "user", "role": "user",
"content": "tell me the weather in london in metric units" "content": "What is my pending payment amount?"
} }
] ]
}' }'
@ -69,19 +89,44 @@ curl --location 'http://localhost:3000/api/v1/<PROJECT_ID>/chat' \
{ {
"messages": [ "messages": [
{ {
"content": "Hello! It seems you want to check or settle an outstanding payment. Let me connect you to the right department for assistance.",
"created_at": "2025-02-01T06:55:47.843909",
"current_turn": true,
"response_type": "internal",
"role": "assistant", "role": "assistant",
"sender": "Credit Card Hub",
"tool_calls": [ "tool_calls": [
{ {
"function": { "function": {
"arguments": "{\"location\":\"London\",\"units\":\"metric\"}", "arguments": "{\"args\":\"\",\"kwargs\":\"\"}",
"name": "weather_lookup_tool" "name": "transfer_to_outstanding_payment"
}, },
"id": "call_r6XKuVxmGRogofkyFZIacdL0", "id": "call_7jGpwpVvzhZFOyRgxHFkdOdU",
"type": "function" "type": "function"
} }
], ]
"agenticSender": "Example Agent", },
"agenticResponseType": "internal" {
"content": "{\"assistant\": \"Outstanding Payment\"}",
"role": "tool",
"tool_call_id": "call_7jGpwpVvzhZFOyRgxHFkdOdU",
"tool_name": "transfer_to_outstanding_payment"
},
{
"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,
"response_type": "internal",
"role": "assistant",
"sender": "Outstanding Payment"
},
{
"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,
"response_type": "external",
"role": "assistant",
"sender": "Outstanding Payment >> Post process"
} }
], ],
"state": { "state": {
@ -108,7 +153,7 @@ client = Client(
) )
# Simple chat interaction # Simple chat interaction
messages = [{"role": "user", "content": "Tell me the weather in London"}] messages = [{"role": "user", "content": "What is my pending payment amount?"}]
response_messages, state = client.chat(messages=messages) response_messages, state = client.chat(messages=messages)
``` ```

View file

@ -3,7 +3,4 @@ Follow the [installation steps](/installation/) to set up RowBoat Studio, API an
## Building your first assistant ## Building your first assistant
Coming soon. Coming soon.