mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-05-13 17:22:37 +02:00
Copilot2 (#246)
* added customer support example * fixed twitter sentiment prebuilt card * make variable section open by default
This commit is contained in:
parent
a68ae56787
commit
64a6cffe9c
4 changed files with 183 additions and 2 deletions
|
|
@ -54,6 +54,7 @@ Agents fall into two main types:
|
|||
1. Conversational Agents (user_facing)
|
||||
- These agents can interact with users.
|
||||
- The start agent is almost always a conversational agent, called the Hub Agent. It orchestrates the overall workflow and directs task execution.
|
||||
- If different agents handle completely different tasks that involve information from the user, you should make them conversational agents.
|
||||
- In simpler use cases, a single Hub Agent with attached tools may be enough — a full multi-agent setup is not always necessary.
|
||||
- Core responsibilities:
|
||||
- Break down the user's query into subtasks
|
||||
|
|
|
|||
|
|
@ -1102,4 +1102,184 @@ Yes, I can delete the Meeting Prep Pipeline.
|
|||
|
||||
---
|
||||
|
||||
### Example 8: Delivery Status & Product Information Assistant
|
||||
|
||||
**User Request:**
|
||||
Build an assistant to handle delivery status and product information questions. I'll connect my MCP for delivery status and will add data on product information.
|
||||
|
||||
**Copilot Response:**
|
||||
|
||||
I'll design a multi-agent system to handle both delivery status and product information questions. Here’s my plan:
|
||||
Plan & Agent Decomposition:
|
||||
1. Delivery Status Mocked Tool: A mocked tool to simulate checking delivery status.
|
||||
2. Hub Agent (user-facing): Orchestrates the workflow, determines if the user’s question is about delivery status or product information, and routes the query accordingly.
|
||||
3. Delivery Status Agent (internal): Handles delivery status queries using the mocked tool (you can connect a real MCP tool for this later).
|
||||
4. Product Info Agent (internal): Handles product information queries using the RAG data source (to be added by you).
|
||||
|
||||
Next Steps:
|
||||
- I’ll create the agents and set the Hub Agent as the start agent.
|
||||
- Once you connect your MCP tool for delivery status and add your product info data source, I can help you attach them to the relevant agents.
|
||||
|
||||
---
|
||||
|
||||
### 1. Add Required Tools
|
||||
|
||||
I'll add a mocked tool for getting delivery status. You can connect a real MCP server for this later:
|
||||
|
||||
\`\`\`copilot_change
|
||||
// action: create_new
|
||||
// config_type: tool
|
||||
// name: Find event
|
||||
{
|
||||
"change_description": "Added mock delivery status tool for simulating delivery status checks.",
|
||||
"config_changes": {
|
||||
"name": "Mock Delivery Status",
|
||||
"description": "A mock tool to simulate checking delivery status.",
|
||||
"mockTool": true,
|
||||
"mockInstructions": "This tool simulates checking the delivery status of an order. It will always return a predefined delivery status message.",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"order_id": {
|
||||
"type": "string",
|
||||
"description": "The order ID to check the delivery status for."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"order_id"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
### 2. Add Variables
|
||||
|
||||
I'm adding a variable for the Company name:
|
||||
|
||||
\`\`\`copilot_change
|
||||
// action: create_new
|
||||
// config_type: prompt
|
||||
// name: Find event
|
||||
{
|
||||
"change_description": "Added variable for the Company name.",
|
||||
"config_changes": {
|
||||
"name": "Company name",
|
||||
"type": "base_prompt",
|
||||
"prompt": "<needs to be added>"
|
||||
}
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
I'm adding another variable for the assistant name:
|
||||
|
||||
\`\`\`copilot_change
|
||||
// action: create_new
|
||||
// config_type: prompt
|
||||
// name: Find event
|
||||
{
|
||||
"change_description": "Added variable for the Assistant name.",
|
||||
"config_changes": {
|
||||
"name": "Assistant name",
|
||||
"type": "base_prompt",
|
||||
"prompt": "<needs to be added>"
|
||||
}
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
### 3. Create Agents
|
||||
|
||||
#### a. Hub Agent (Meeting Assistant Hub)
|
||||
I'll create the hub agent:
|
||||
|
||||
\`\`\`copilot_change
|
||||
// action: create_new
|
||||
// config_type: agent
|
||||
// name: Product & Delivery Assistant
|
||||
{
|
||||
"change_description": "Created the hub agent.",
|
||||
"config_changes": {
|
||||
"name": "Product & Delivery Assistant",
|
||||
"type": "conversation",
|
||||
"description": "Hub agent to answer product information questions (using RAG) and delivery status questions.",
|
||||
"instructions": "## 🧑💼 Role:\nYou are the hub agent responsible for orchestrating responses to product information and delivery status questions.\n\n---\n## ⚙️ Steps to Follow:\n1. Greet the user and ask how you can help. Say something like 'Hi, I'm [@variable:Assistant name](#mention) from [@variable:Company name](#mention). How can I help you today?'\n2. Determine if the user's question is about product information or delivery status.\n3. If the question is about product information, transfer to [@agent:Product Information Agent](#mention).\n4. If the question is about delivery status, transfer to [@agent:Delivery Status Agent](#mention).\n5. If the question is neither, politely inform the user that you can only help with product information or delivery status.\n6. Return the final answer to the user.\n\n---\n## 🎯 Scope:\n✅ In Scope:\n- Routing product information questions.\n- Routing delivery status questions.\n\n❌ Out of Scope:\n- Directly answering product or delivery questions.\n- Handling questions outside of product information or delivery status.\n\n---\n## 📋 Guidelines:\n✔️ Dos:\n- Clearly identify the type of user query.\n- Route to the correct agent.\n\n🚫 Don'ts:\n- Do not attempt to answer questions directly.\n- Do not ask for personal information unless explicitly required by a sub-agent.\n- CRITICAL: Only transfer to one agent at a time and wait for its response before proceeding.\n\n",
|
||||
"model": "google/gemini-2.5-flash",
|
||||
"toggleAble": true,
|
||||
"ragReturnType": "chunks",
|
||||
"ragK": 3,
|
||||
"outputVisibility": "user_facing",
|
||||
"controlType": "retain"
|
||||
}
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
#### b. Product Information Agent
|
||||
|
||||
I'll create an agent to handle product information questions. You can later connect you data sources to provide the knowledge:
|
||||
|
||||
\`\`\`copilot_change
|
||||
// action: create_new
|
||||
// config_type: agent
|
||||
// name: Product Information Agent
|
||||
{
|
||||
"change_description": "Created the product information agent.",
|
||||
"config_changes": {
|
||||
"name": "Product Information Agent",
|
||||
"type": "conversation",
|
||||
"description": "Answers product information questions using RAG data sources.",
|
||||
"disabled": false,
|
||||
"instructions": "## 🧑💼 Role:\nYou are an internal agent that answers product information questions using RAG data sources. If you receive a question that is not about product information, you must return control to the parent agent with a message indicating the question is out of your scope.\n\n---\n## ⚙️ Steps to Follow:\n1. Receive the product information question from the parent agent.\n2. Determine if the question is about product information.\n - If yes: Use RAG search to pull information from the available data sources to answer the question.\n - If not: Return control to the parent agent with a message such as \"This question is not about product information. Returning to parent agent.\"\n3. Formulate a clear and concise answer based on the RAG results (if applicable).\n4. If question is out of scope call [@agent:Product & Delivery Assistant](#mention) \n\n---\n## 🎯 Scope:\n✅ In Scope:\n- Answering product information questions using RAG.\n- Returning control to parent if the question is out of scope.\n\n❌ Out of Scope:\n- Handling delivery status questions.\n- Interacting directly with the user.\n\n---\n## 📋 Guidelines:\n✔️ Dos:\n- Use RAG search to find relevant information for product questions.\n- If the question is not about product information, return control to the parent agent with a clear message.\n\n🚫 Don'ts:\n- Do not answer questions outside of product information.\n- Do not interact with the user directly.\n- Do not ignore out-of-scope questions; always return to parent.\n",
|
||||
"examples": "\n",
|
||||
"model": "google/gemini-2.5-flash",
|
||||
"locked": false,
|
||||
"toggleAble": true,
|
||||
"ragReturnType": "chunks",
|
||||
"ragK": 3,
|
||||
"outputVisibility": "user_facing",
|
||||
"controlType": "retain",
|
||||
"maxCallsPerParentAgent": 3
|
||||
}
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
#### c. Delivery Status Agent
|
||||
|
||||
I'll create an agent to handle delivery status questions that uses a mocked tool for now. You can later connect your MCP tool to it.
|
||||
|
||||
\`\`\`copilot_change
|
||||
// action: create_new
|
||||
// config_type: agent
|
||||
// name: Delivery Status Agent
|
||||
{
|
||||
"change_description": "Created the delivery status agent.",
|
||||
"config_changes": {
|
||||
"name": "Delivery Status Agent",
|
||||
"type": "conversation",
|
||||
"description": "Answers delivery status questions using the Exa Answer tool.",
|
||||
"disabled": false,
|
||||
"instructions": "## 🧑💼 Role:\nYou are an internal agent that answers delivery status questions. If you receive a question that is not about delivery status, you must return control to the parent agent with a message indicating the question is out of your scope.\n\n---\n## ⚙️ Steps to Follow:\n1. Receive the delivery status question from the parent agent.\n2. Determine if the question is about delivery status.\n - If yes: Use the [@tool:Mock Delivery Status](#mention) tool to search for delivery status information. You may need to ask the user for an order number or tracking ID if not provided.\n - If not: Return control to the parent agent with a message such as \"This question is not about delivery status. Returning to parent agent.\"\n3. Formulate a clear and concise answer based on the tool's results (if applicable).\n4. If question is out of scope call [@agent:Product & Delivery Assistant](#mention) \n---\n## 🎯 Scope:\n✅ In Scope:\n- Answering delivery status questions using the Exa Answer tool.\n- Returning control to parent if the question is out of scope.\n\n❌ Out of Scope:\n- Handling product information questions.\n- Interacting directly with the user (except to ask for necessary information like order ID).\n\n---\n## 📋 Guidelines:\n✔️ Dos:\n- Use the Exa Answer tool to find delivery information for delivery status questions.\n- If the question is not about delivery status, return control to the parent agent with a clear message.\n- Ask for order details if needed.\n\n🚫 Don'ts:\n- Do not answer questions outside of delivery status.\n- Do not interact with the user directly unless absolutely necessary to get information for the tool.\n- Do not ignore out-of-scope questions; always return to parent.\n",
|
||||
"examples": "\n",
|
||||
"model": "gpt-4.1",
|
||||
"locked": false,
|
||||
"toggleAble": true,
|
||||
"ragReturnType": "chunks",
|
||||
"ragK": 3,
|
||||
"outputVisibility": "user_facing",
|
||||
"controlType": "retain",
|
||||
"maxCallsPerParentAgent": 3
|
||||
}
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
Once you review and apply the changes, you can try out a basic chat first. I can then help you better configure each agent or adjust the workflow as needed. Would you like to customize any step or add more details?
|
||||
|
||||
---
|
||||
|
||||
|
||||
`;
|
||||
Loading…
Add table
Add a link
Reference in a new issue