From e3a14a85833c4658137fe21b64e5848b4e837c5c Mon Sep 17 00:00:00 2001 From: Markus Date: Fri, 20 Dec 2024 22:26:26 -0800 Subject: [PATCH 01/13] Update README.md deploy links --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a49d24c8..5486a2ee 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Multi-Agent -Custom Automation Engine Solution Accelerator -MENU: [**USER STORY**](#user-story) \| [**SIMPLE DEPLOY**](#simple-deploy) \| [**SUPPORTING DOCUMENTATION**](#supporting-documentation) \| +MENU: [**USER STORY**](#user-story) \| [**SIMPLE DEPLOY**](#quick-deploy) \| [**SUPPORTING DOCUMENTATION**](#supporting-documentation) \|


@@ -71,7 +71,7 @@ This guide provides step-by-step instructions for deploying your application usi There are several ways to deploy the solution. You can deploy to run in Azure in one click, or manually, or you can deploy locally. -## One Click Azure Deployment +## Quick Deploy

From 36e8be3b4386294b79e25e225a558ed029829afc Mon Sep 17 00:00:00 2001 From: Markus Date: Sun, 16 Feb 2025 14:20:42 -0800 Subject: [PATCH 02/13] Update of customize solution doc and images --- documentation/CustomizeSolution.md | 466 ++++++------------ .../images/customize_solution/logic_flow.svg | 4 + .../images/customize_solution/redoc_ui.png | Bin 0 -> 142299 bytes 3 files changed, 154 insertions(+), 316 deletions(-) create mode 100644 documentation/images/customize_solution/logic_flow.svg create mode 100644 documentation/images/customize_solution/redoc_ui.png diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index a867892c..7f681b59 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -1,4 +1,4 @@ -# Accelerating your own Multi-Agent -Custom Automation Engine MVP +# Accelerating your own Multi-Agent - Custom Automation Engine MVP As the name suggests, this project is designed to accelerate development of Multi-Agent solutions in your environment. The example solution presented shows how such a solution would be implemented and provides example agent definitions along with stubs for possible tools those agents could use to accomplish tasks. You will want to implement real functions in your own environment, to be used by agents customized around your own use cases. Users can choose the LLM that is optimized for responsible use. The default LLM is GPT-4o which inherits the existing responsible AI mechanisms and filters from the LLM provider. We encourage developers to review [OpenAI’s Usage policies](https://openai.com/policies/usage-policies/) and [Azure OpenAI’s Code of Conduct](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/code-of-conduct) when using GPT-4o. This document is designed to provide the in-depth technical information to allow you to add these customizations. Once the agents and tools have been developed, you will likely want to implement your own real world front end solution to replace the example in this accelerator. @@ -8,7 +8,7 @@ This application is an AI-driven orchestration system that manages a group of AI - Receive input tasks from users. - Generate a detailed plan to accomplish the task using a Planner agent. -- Execute the plan by delegating steps to specialized agents (e.g., HR, Legal, Marketing). +- Execute the plan by delegating steps to specialized agents (e.g., HR, Procurement, Marketing). - Incorporate human feedback into the workflow. - Maintain state across sessions with persistent storage. @@ -17,319 +17,151 @@ This code has not been tested as an end-to-end, reliable production application- Below, we'll dive into the details of each component, focusing on the endpoints, data types, and the flow of information through the system. # Table of Contents -- [Accelerating your own Multi-Agent - Custom Automation Engine MVP](#accelerating-your-own-multi-agent---custom-automation-engine-mvp) - - [Technical Overview](#technical-overview) - [Table of Contents](#table-of-contents) - - [Endpoints](#endpoints) - - [/input\_task](#input_task) - - [/human\_feedback](#human_feedback) - - [/get\_latest\_plan\_by\_session/{session\_id}](#get_latest_plan_by_session-session_id) - - [/steps/{plan\_id}](#stepsplan_id) - - [/agent\_messages/{session\_id}](#agent_messagessession_id) - - [/messages](#messages) - - [/delete\_all\_messages](#delete_all_messages) - - [/api/agent-tools](#apiagent-tools) - - [Data Types and Models](#data-types-and-models) - - [Messages](#messages) - - [BaseDataModel](#basedatamodel) - - [AgentMessage](#agentmessage) - - [Session](#session) - - [Plan](#plan) - - [Step](#step) - - [PlanWithSteps](#planwithsteps) - - [InputTask](#inputtask) - - [ApprovalRequest](#approvalrequest) - - [HumanFeedback](#humanfeedback) - - [HumanClarification](#humanclarification) - - [ActionRequest](#actionrequest) - - [ActionResponse](#actionresponse) - - [PlanStateUpdate](#planstateupdate) - - [GroupChatMessage](#groupchatmessage) - - [RequestToSpeak](#requesttospeak) - - [Enums](#enums) - - [DataType](#datatype) - - [BAgentType](#bagenttype) - - [StepStatus](#stepstatus) - - [PlanStatus](#planstatus) - - [HumanFeedbackStatus](#humanfeedbackstatus) - - [Application Flow](#application-flow) - - [Initialization](#initialization) - - [Agents Overview](#agents-overview) - - [GroupChatManager](#groupchatmanager) - - [PlannerAgent](#planneragent) - - [HumanAgent](#humanagent) - - [Specialized Agents](#specialized-agents) - - [Persistent Storage with Cosmos DB](#persistent-storage-with-cosmos-db) - - [Utilities](#utilities) - - [`initialize_runtime_and_context` Function](#initialize_runtime_and_context-function) - - [Summary](#summary) - - -## Endpoints - -### /input_task - -**Method:** POST -**Description:** Receives the initial input task from the user. - -**Request Headers:** - -- `user_principal_id`: User ID (`user_id`) extracted from the authentication header. - -**Request Body:** `InputTask` -- `session_id`: Optional string. If not provided, a new UUID will be generated. -- `description`: The description of the task the user wants to accomplish. - - -**Response:** -- `status`: Confirmation message. -- `session_id`: The session ID associated with the task. -- `plan_id`: The ID of the plan generated. -- `description`: The task description. - - -**Flow:** -1. Validates header and extracts `user_principal_id` as `user_id`. -2. Generates a `session_id` if not provided. -3. Initializes agents and context for the session. -4. Sends the `InputTask` message to the `GroupChatManager`. -5. Returns the `status`, `session_id`, `plan_id`, `description`, and `user_id`. - - -### /human_feedback - -**Method:** POST -**Description:** Receives human feedback on a step (e.g., approval, rejection, or modification). - -**Request Headers:** -- `user_principal_id`: User ID (`user_id`) extracted from the authentication header. - -**Request Body:** `HumanFeedback` -- `step_id`: The ID of the step to provide feedback for. -- `plan_id`: The ID of the plan. -- `session_id`: The session ID. -- `approved`: Boolean indicating if the step is approved. -- `human_feedback`: Optional string containing any comments. -- `updated_action`: Optional string if the action was modified. - -**Response:** -- `status`: Confirmation message. -- `session_id`: The session ID. -- `step_id`: The step ID associated with the feedback. - -**Flow:** -1. Validates header and extracts `user_principal_id` as `user_id`. -2. Initializes runtime and context for the session. -3. Sends the `HumanFeedback` message to the `HumanAgent`. -4. Returns the `status`, `session_id`, and `step_id`. - - -### /human_clarification_on_plan - -**Method:** POST -**Description:** Receives human clarification on a plan. - -**Request Headers:** -- `user_principal_id`: User ID (`user_id`) extracted from the authentication header. - -**Request Body:** `HumanClarification` -- `plan_id`: The ID of the plan requiring clarification. -- `session_id`: The session ID associated with the plan. -- `human_clarification`: Clarification details provided by the user. - -**Response:** -- `status`: Confirmation message. -- `session_id`: The session ID associated with the plan. - -**Flow:** -1. Validates header and extracts `user_principal_id` as `user_id`. -2. Initializes runtime and context for the session. -3. Sends the `HumanClarification` message to the `PlannerAgent`. -4. Returns the `status` and `session_id`. - -### /approve_step_or_steps - -**Method:** POST -**Description:** Approves a step or multiple steps in a plan. - -**Request Headers:** - -- `user_principal_id`: User ID (`user_id`) extracted from the authentication header. - -**Request Body:** `HumanFeedback` -- `step_id`: Optional step ID to approve. If not provided, all steps are approved. -- `plan_id`: The ID of the plan. -- `session_id`: The session ID associated with the plan. -- `approved`: Boolean indicating whether the step(s) are approved. -- `human_feedback`: Optional string containing any comments. -- `updated_action`: Optional string if the action was modified. - -**Response:** -- `status`: A confirmation message indicating the approval result. - -**Flow:** -1. Validates header and extracts `user_principal_id` as `user_id`. -2. Initializes runtime and context for the session. -3. Sends the `HumanFeedback` approval message to the `GroupChatManager`. -4. If `step_id` is provided, approves the specific step; otherwise, approves all steps. -5. Returns the `status` message indicating the result of the approval. - -### /plans - -**Method:** GET -**Description:** Retrieves all plans for the current user or the plan for a specific session. - -**Request Headers:** - -- `user_principal_id`: User ID (`user_id`) extracted from the authentication header. - -**Query Parameters:** -- `session_id` (optional): Retrieve the plan for this specific session ID. If not provided, all plans for the user are retrieved. - -**Response:** -- A list of plans with their details: - - `id`: Unique ID of the plan. - - `session_id`: The session ID associated with the plan. - - `initial_goal`: The initial goal derived from the user's input. - - `overall_status`: The status of the plan (e.g., in_progress, completed, failed). - - `steps`: A list of steps associated with the plan, each including: - - `id`: Unique ID of the step. - - `plan_id`: ID of the plan the step belongs to. - - `action`: The action to be performed. - - `agent`: The agent responsible for the step. - - `status`: The status of the step (e.g., planned, approved, completed). - - `agent_reply`: Optional response from the agent after execution. - - `human_feedback`: Optional feedback provided by the user. - - `updated_action`: Optional modified action based on feedback. - -**Flow:** -1. Validates header and extracts `user_principal_id` as `user_id`. -2. If `session_id` is provided: - - Retrieves the plan for the specified session ID. - - Fetches the steps for the plan. -3. If `session_id` is not provided: - - Retrieves all plans for the user. - - Fetches the steps for each plan concurrently. -4. Returns the plan(s) along with their steps. - -### /steps/{plan_id} - -**Method:** GET -**Description:** Retrieves all steps associated with a specific plan. - -**Request Headers:** - -- `user_principal_id`: User ID (`user_id`) extracted from the authentication header. - -**Path Parameters:** -- `plan_id`: The ID of the plan to retrieve steps for. - -**Response:** -- A list of steps with their details: - - `id`: Unique ID of the step. - - `plan_id`: The ID of the plan the step belongs to. - - `action`: The action to be performed. - - `agent`: The agent responsible for the step. - - `status`: The status of the step (e.g., planned, approved, completed). - - `agent_reply`: Optional response from the agent after execution. - - `human_feedback`: Optional feedback provided by the user. - - `updated_action`: Optional modified action based on feedback. - -**Flow:** -1. Validates header and extracts `user_principal_id` as `user_id`. -2. Retrieves the steps for the specified `plan_id`. -3. Returns the list of steps with their details. - -### /agent_messages/{session_id} - -**Method:** GET -**Description:** Retrieves all agent messages for a specific session. - -**Request Headers:** -- `user_principal_id`: User ID (`user_id`) extracted from the authentication header. - -**Path Parameters:** -- `session_id`: The ID of the session to retrieve agent messages for. - -**Response:** -- A list of agent messages with their details: - - `id`: Unique ID of the agent message. - - `session_id`: The session ID associated with the message. - - `plan_id`: The ID of the plan related to the agent message. - - `content`: The content of the message. - - `source`: The source of the message (e.g., agent type). - - `ts`: The timestamp of the message. - - `step_id`: Optional step ID associated with the message. - -**Flow:** -1. Validates header and extracts `user_principal_id` as `user_id`. -2. Retrieves the agent messages for the specified `session_id`. -3. Returns the list of agent messages with their details. - -### /messages - -**Method:** DELETE -**Description:** Deletes all messages across sessions. - -**Request Headers:** - -- `user_principal_id`: User ID (`user_id`) extracted from the authentication header. - -**Response:** -- A confirmation message: - - `status`: A status message indicating all messages were deleted. - -**Flow:** -1. Validates header and extracts `user_principal_id` as `user_id`. -2. Deletes all messages across sessions, including: - - Plans - - Sessions - - Steps - - Agent messages -3. Returns a confirmation `status` message. - -### /messages - -**Method:** GET -**Description:** Retrieves all messages across sessions. - -**Request Headers:** - -- `user_principal_id`: User ID (`user_id`) extracted from the authentication header. - -**Response:** -- A list of all messages with their details: - - `id`: Unique ID of the message. - - `data_type`: The type of the message (e.g., session, step, plan, agent_message). - - `session_id`: The session ID associated with the message. - - `content`: The content of the message. - - `ts`: The timestamp of the message. - -**Flow:** -1. Validates header and extracts `user_principal_id` as `user_id`. -2. Retrieves all messages across sessions. -3. Returns the list of messages with their details. - -### /api/agent-tools - -**Method:** GET -**Description:** Retrieves all available agent tools and their descriptions. - -**Response:** -- A list of agent tools with their details: - - `agent`: The name of the agent associated with the tool. - - `function`: The name of the tool function. - - `description`: A detailed description of what the tool does. - - `arguments`: The arguments required by the tool function. - -**Flow:** -1. Retrieves all agent tools and their metadata. -2. Returns the list of agent tools with their details. - - -## Models and Datatypes -### Models -#### **`BaseDataModel`** + - [Accelerating your own Multi-Agent - Custom Automation Engine MVP](#accelerating-your-own-multi-agent---custom-automation-engine-mvp) + - [Technical Overview](#technical-overview) + - [Adding a New Agent to the Multi-Agent System](#adding-a-new-agent-to-the-multi-agent-system) + - [API Reference](#api-reference) + - [Models and Datatypes](#models-and-datatypes) + - [Application Flow](#application-flow) + - [Agents Overview](#agents-overview) + - [Persistent Storage with Cosmos DB](#persistent-storage-with-cosmos-db) + - [Utilities](#utilities) + - [Summary](#summary) + + +## Adding a New Agent to the Multi-Agent System + +This guide details the steps required to add a new agent to the Multi-Agent Custom Automation Engine. The process includes registering the agent, defining its capabilities through tools, and ensuring the PlannerAgent includes the new agent when generating activity plans. + +### **Step 1: Define the New Agent's Tools** +Every agent is equipped with a set of tools (functions) that it can call to perform specific tasks. These tools need to be defined first. + +1. **Create New Tools**: In a new or existing file, define the tools your agent will use. + + Example (for a `BakerAgent`): + ```python + from autogen_core.components.tools import FunctionTool + + async def bake_cookies(cookie_type: str, quantity: int) -> str: + return f"Baked {quantity} {cookie_type} cookies." + + async def prepare_dough(dough_type: str) -> str: + return f"Prepared {dough_type} dough." + + def get_baker_tools() -> List[Tool]: + return [ + FunctionTool(bake_cookies, description="Bake cookies of a specific type.", name="bake_cookies"), + FunctionTool(prepare_dough, description="Prepare dough of a specific type.", name="prepare_dough"), + ] + ``` + +2. **Add the Tools to the System**: Register the tools with a ToolAgent. + + Example: + ```python + await ToolAgent.register( + runtime, + "baker_tool_agent", + lambda: ToolAgent("Baker tool execution agent", get_baker_tools()), + ) + ``` + +### **Step 2: Implement the Agent Class** +Create a new agent class that inherits from `BaseAgent`. + +Example (for `BakerAgent`): +```python +from agents.base_agent import BaseAgent + +class BakerAgent(BaseAgent): + def __init__(self, model_client, session_id, user_id, memory, tools, agent_id): + super().__init__( + "BakerAgent", + model_client, + session_id, + user_id, + memory, + tools, + agent_id, + system_message="You are an AI Agent specialized in baking tasks.", + ) +``` + +### **Step 3: Register the Agent in the Initialization Process** +Update the `initialize_runtime_and_context` function in `utils.py` to include the new agent. + +1. **Generate Agent IDs**: + ```python + baker_agent_id = AgentId("baker_agent", session_id) + baker_tool_agent_id = AgentId("baker_tool_agent", session_id) + ``` + +2. **Register the Agent and ToolAgent**: + ```python + await BakerAgent.register( + runtime, + baker_agent_id.type, + lambda: BakerAgent( + model_client, + session_id, + user_id, + cosmos_memory, + get_baker_tools(), + baker_tool_agent_id, + ), + ) + ``` + +### **Step 4: Update the Planner Agent** +Modify `PlannerAgent` to recognize and include the new agent when generating plans. + +1. **Update Available Agents**: + ```python + available_agents = [ + hr_agent_id, + marketing_agent_id, + procurement_agent_id, + product_agent_id, + generic_agent_id, + tech_support_agent_id, + baker_agent_id, + ] + ``` + +2. **Update Tool List**: + Ensure the tool list passed to the PlannerAgent includes the new agent's tools. + ```python + tool_list = retrieve_all_agent_tools() + get_baker_tools() + ``` + +### **Step 5: Validate the Integration** +Deploy the updated system and ensure the new agent is properly included in the planning process. For example, if the user requests to bake cookies, the `PlannerAgent` should: + +- Identify the `BakerAgent` as the responsible agent. +- Call `bake_cookies` or `prepare_dough` from the agent's toolset. + +### **Step 6: Update Documentation** +Ensure that the system documentation reflects the addition of the new agent and its capabilities. Update the `README.md` and any related technical documentation to include information about the `BakerAgent`. + +### **Step 7: Testing** +Thoroughly test the agent in both automated and manual scenarios. Verify that: + +- The agent responds correctly to tasks. +- The PlannerAgent includes the new agent in relevant plans. +- The agent's tools are executed as expected. + +Following these steps will successfully integrate a new agent into the Multi-Agent Custom Automation Engine. + +### API Reference +To view the API reference, go to the API endpoint in a browser and add "/docs". This will bring up a full Swagger environment and reference documentation for the REST API included with this accelerator. For example, ```https://macae-backend.eastus2.azurecontainerapps.io/docs```. +If you prefer ReDoc, this is available by appending "/redoc". + +![docs interface](./images/customize_solution/redoc_ui.png) + +### Models and Datatypes +#### Models +##### **`BaseDataModel`** The `BaseDataModel` is a foundational class for creating structured data models using Pydantic. It provides the following attributes: - **`id`**: A unique identifier for the data, generated using `uuid`. @@ -625,7 +457,7 @@ The human can provide feedback on a step via the `/human_feedback` endpoint: If a step is approved: -1. The `GroupChatManager` sends an `ActionRequest` to the appropriate specialized agent (e.g., `HrAgent`, `LegalAgent`). +1. The `GroupChatManager` sends an `ActionRequest` to the appropriate specialized agent (e.g., `HrAgent`, `ProcurementAgent`). 2. The specialized agent executes the action using tools and LLMs. 3. The agent sends an `ActionResponse` back to the `GroupChatManager`. 4. The `GroupChatManager` updates the step status and proceeds to the next step. @@ -692,7 +524,9 @@ If a step is approved: **Common Implementation:** All specialized agents inherit from `BaseAgent`, which handles common functionality. -**Code Reference:** `base_agent.py`, `hr.py`, `legal.py`, etc. +**Code Reference:** `base_agent.py`, `hr.py`, etc. + +![agent flow](./images/customize_solution/logic_flow.svg) ## Persistent Storage with Cosmos DB diff --git a/documentation/images/customize_solution/logic_flow.svg b/documentation/images/customize_solution/logic_flow.svg new file mode 100644 index 00000000..9914ae8a --- /dev/null +++ b/documentation/images/customize_solution/logic_flow.svg @@ -0,0 +1,4 @@ + + + +
/input_task
/input_task
User
User
initialize all the agents
initialize all the ag...
send it to group chat manager
send it to group chat...
Orchestrator
Orchestrator
Planner agent
Planner agent
Interact with LLM model and generate a plan
Interact with LLM mo...
Store plan into cosmos DB
Store plan...
Plan Created
Plan Created
Approve the plan(stages)
Approve the plan(stag...
Human
Human
/approve_step_or_steps
/approve_step_or_steps
initialize all the agents
initialize all the agen...
Group chat manager
Group chat manager
Get the steps/plan from cosmos DB
Get the steps/p...
Human agent for feedback
Human agent for fee...
combine the feedback
combine the feedback
Yes
Yes
Approved/Rejected
Approved/Rejected
execute the step
execute the step
Approved/Accepted
Approved/Accepted
Rejected by human
Rejected by human
Rejected
Rejected
update record into cosmos DB
update reco...
Call the appropriate agent
Call the appropriate a...
Base Agent
Base Agent
HR Agent
HR Agent
Marketing Agent
Marketing Agent
Procurement Agent
Procurement Agent
Product Agent
Product Agent
Tech Support Agent
Tech Support Agent
Generic Agent
Generic Agent
response
response
User
User
response
response
Text is not SVG - cannot display
\ No newline at end of file diff --git a/documentation/images/customize_solution/redoc_ui.png b/documentation/images/customize_solution/redoc_ui.png new file mode 100644 index 0000000000000000000000000000000000000000..cd7e445b4cc8c2caea22ce0096e9945562ed3d60 GIT binary patch literal 142299 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

4E$`;#YU3l%c^|^kl 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

vU#1^>kgv z9$GJHdjFVqne6A7P)7Tl1r&8q$>0}zj*o8I>c3gGWC#p67Vr?KM_B|vM}qQ@|JoI2 z;S%|~;=7E=N24L(Se5Jn4i2TXs=!TOK`d+2#63HCEGL{$`baKQewi;e<C)x+X!0f$495yz!NXX9K~%(FVc#JebegNC z)MY~xDn6H@3|kZi_LMT?mDJzMach@a<5*%(JHABxLwE%L=QxJRc=@Blp0&Cqc7{fcDI?z`MM$>l)d#>)H!u-o_(?&)fDdzn^?EydnGp|rsT z9>IHB2X2;e-UG#wcDVdIu^b&h?h}|y(+HhENg@S~dSu?}*5ZrX5cxVGQT-sVlgeIv zthH|VLB0}-vrU>2+pA3;m+lww9!;+b%qR(h@OYi*-ei~}JsH*Y)TVXHQCfs;q1(1o z98~?}C4%d5M z`Jqgq4xX-oYD;v%7I>-?jf^i+!KyQr`G&S$<&N!b!8mlVr>Xv@PnS%~r^&wj#qqkD zBHcDW;1;t_;@!LoF$EJY`+T?#YH~yjhpM|A4wl%98-HeIVz#t$On5 zoNS}<2t2WPdW`>|GyWdJTLD40A84ukoHN#gw(YR}Uv{D9aGq4Z5*6jH87%Ls&E?xH z@(QGf8l9cXogcT9Bi&o≻tQHMCmT%iv6UV{B5#$xkzd=BSE@Htdknz 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 Date: Thu, 20 Feb 2025 19:57:59 -0500 Subject: [PATCH 03/13] Update CustomizeSolution.md --- documentation/CustomizeSolution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index 7f681b59..bc670b2f 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -41,7 +41,7 @@ Every agent is equipped with a set of tools (functions) that it can call to perf Example (for a `BakerAgent`): ```python - from autogen_core.components.tools import FunctionTool + from autogen_core.components.tools import FunctionTool, Tool async def bake_cookies(cookie_type: str, quantity: int) -> str: return f"Baked {quantity} {cookie_type} cookies." From 05c77883c225603555ee2d1a9c334baabe14534e Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Thu, 20 Feb 2025 20:37:24 -0500 Subject: [PATCH 04/13] Update CustomizeSolution.md --- documentation/CustomizeSolution.md | 70 ++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 19 deletions(-) diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index bc670b2f..140c45e6 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -56,18 +56,8 @@ Every agent is equipped with a set of tools (functions) that it can call to perf ] ``` -2. **Add the Tools to the System**: Register the tools with a ToolAgent. - Example: - ```python - await ToolAgent.register( - runtime, - "baker_tool_agent", - lambda: ToolAgent("Baker tool execution agent", get_baker_tools()), - ) - ``` - -### **Step 2: Implement the Agent Class** +2. **Implement the Agent Class** Create a new agent class that inherits from `BaseAgent`. Example (for `BakerAgent`): @@ -87,17 +77,42 @@ class BakerAgent(BaseAgent): system_message="You are an AI Agent specialized in baking tasks.", ) ``` +### **Step 2: Register the new Agent in the messages** +Update `messages.py` to include the new agent. + + ```python + baker_agent = "BakerAgent" + ``` ### **Step 3: Register the Agent in the Initialization Process** Update the `initialize_runtime_and_context` function in `utils.py` to include the new agent. -1. **Generate Agent IDs**: +1. **Import new agent**: + ```python + from agents.baker_agent import BakerAgent, get_baker_tools + ``` + +2. **Add the bakers tools**: + ```python + baker_tools = get_baker_tools() + ``` + +3. **Generate Agent IDs**: ```python baker_agent_id = AgentId("baker_agent", session_id) baker_tool_agent_id = AgentId("baker_tool_agent", session_id) ``` -2. **Register the Agent and ToolAgent**: +4. **Register to ToolAgent**: + ```python + await ToolAgent.register( + runtime, + "baker_tool_agent", + lambda: ToolAgent("Baker tool execution agent", baker_tools), + ) + ``` + +5. **Register the Agent and ToolAgent**: ```python await BakerAgent.register( runtime, @@ -112,6 +127,29 @@ Update the `initialize_runtime_and_context` function in `utils.py` to include th ), ) ``` +6. **Add to HumanAgent**: + ```python + await HumanAgent.register( + BAgentType.baker_agent: baker_agent_id, + ``` +7. **Add to GroupChatManager**: + ```python + await GroupChatManager.register( + baker_tools: List[Tool] = get_baker_tools() + ``` +8. **Append to baker_tools to functions**: + ```python + for tool in baker_tools: + functions.append( + { + "agent": "BakerAgent", + "function": tool.name, + "description": tool.description, + "arguments": str(tool.schema["parameters"]["properties"]), + } + ) + ``` + ### **Step 4: Update the Planner Agent** Modify `PlannerAgent` to recognize and include the new agent when generating plans. @@ -129,12 +167,6 @@ Modify `PlannerAgent` to recognize and include the new agent when generating pla ] ``` -2. **Update Tool List**: - Ensure the tool list passed to the PlannerAgent includes the new agent's tools. - ```python - tool_list = retrieve_all_agent_tools() + get_baker_tools() - ``` - ### **Step 5: Validate the Integration** Deploy the updated system and ensure the new agent is properly included in the planning process. For example, if the user requests to bake cookies, the `PlannerAgent` should: From 72c2dc93c03ad8121191ab81afc8e0cb4221edcf Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Thu, 20 Feb 2025 20:38:30 -0500 Subject: [PATCH 05/13] Update CustomizeSolution.md --- documentation/CustomizeSolution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index 140c45e6..d9083d92 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -137,7 +137,7 @@ Update the `initialize_runtime_and_context` function in `utils.py` to include th await GroupChatManager.register( baker_tools: List[Tool] = get_baker_tools() ``` -8. **Append to baker_tools to functions**: +8. **Append baker_tools to functions**: ```python for tool in baker_tools: functions.append( From 6210dedeba65b0c883700bbe4bc678f30c2140e1 Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Tue, 25 Feb 2025 08:47:36 -0500 Subject: [PATCH 06/13] Update CustomizeSolution.md --- documentation/CustomizeSolution.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index d9083d92..b14e1442 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -80,9 +80,9 @@ class BakerAgent(BaseAgent): ### **Step 2: Register the new Agent in the messages** Update `messages.py` to include the new agent. - ```python + ```python baker_agent = "BakerAgent" - ``` +``` ### **Step 3: Register the Agent in the Initialization Process** Update the `initialize_runtime_and_context` function in `utils.py` to include the new agent. From 8513efc93904ada693fab754687c6d482cd1ad2a Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Tue, 25 Feb 2025 08:48:44 -0500 Subject: [PATCH 07/13] Update CustomizeSolution.md --- documentation/CustomizeSolution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index b14e1442..67d04b17 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -118,7 +118,7 @@ Update the `initialize_runtime_and_context` function in `utils.py` to include th runtime, baker_agent_id.type, lambda: BakerAgent( - model_client, + aoi_model_client, session_id, user_id, cosmos_memory, From 7cc3e8ea521e8e266aa3164791f19d08e6b846eb Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Tue, 25 Feb 2025 08:51:58 -0500 Subject: [PATCH 08/13] Update CustomizeSolution.md --- documentation/CustomizeSolution.md | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index 67d04b17..297b7c17 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -150,33 +150,16 @@ Update the `initialize_runtime_and_context` function in `utils.py` to include th ) ``` - -### **Step 4: Update the Planner Agent** -Modify `PlannerAgent` to recognize and include the new agent when generating plans. - -1. **Update Available Agents**: - ```python - available_agents = [ - hr_agent_id, - marketing_agent_id, - procurement_agent_id, - product_agent_id, - generic_agent_id, - tech_support_agent_id, - baker_agent_id, - ] - ``` - -### **Step 5: Validate the Integration** +### **Step 4: Validate the Integration** Deploy the updated system and ensure the new agent is properly included in the planning process. For example, if the user requests to bake cookies, the `PlannerAgent` should: - Identify the `BakerAgent` as the responsible agent. - Call `bake_cookies` or `prepare_dough` from the agent's toolset. -### **Step 6: Update Documentation** +### **Step 5: Update Documentation** Ensure that the system documentation reflects the addition of the new agent and its capabilities. Update the `README.md` and any related technical documentation to include information about the `BakerAgent`. -### **Step 7: Testing** +### **Step 6: Testing** Thoroughly test the agent in both automated and manual scenarios. Verify that: - The agent responds correctly to tasks. From 3073b60ade16a227410e2eecb929844118ec9e8b Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Tue, 25 Feb 2025 08:53:28 -0500 Subject: [PATCH 09/13] Update CustomizeSolution.md --- documentation/CustomizeSolution.md | 1 + 1 file changed, 1 insertion(+) diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index 297b7c17..ee34fad5 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -81,6 +81,7 @@ class BakerAgent(BaseAgent): Update `messages.py` to include the new agent. ```python + class BAgentType(str, Enum): baker_agent = "BakerAgent" ``` From b34643051168c3e28c865d47f4c5c7867dd21a40 Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Tue, 25 Feb 2025 08:54:10 -0500 Subject: [PATCH 10/13] Update CustomizeSolution.md --- documentation/CustomizeSolution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index ee34fad5..ec87a235 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -82,7 +82,7 @@ Update `messages.py` to include the new agent. ```python class BAgentType(str, Enum): - baker_agent = "BakerAgent" + baker_agent = "BakerAgent" ``` ### **Step 3: Register the Agent in the Initialization Process** From df69976d00cae57801e49cf2d6fa931b9e07728e Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Tue, 25 Feb 2025 12:33:01 -0500 Subject: [PATCH 11/13] Update CustomizeSolution.md --- documentation/CustomizeSolution.md | 31 ++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index ec87a235..86e1d527 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -150,17 +150,40 @@ Update the `initialize_runtime_and_context` function in `utils.py` to include th } ) ``` - -### **Step 4: Validate the Integration** +### **Step 4: Update home page** +Update `src/frontend/wwwroot/home/home.html` adding new html block + +1. **Add a new UI element was added to allow users to request baking tasks from the BakerAgent** +```html +

+
+
+
+ Bake Cookies +

Please bake 12 chocolate chip cookies for tomorrow's event.

+
+
+
+``` +### **Step 5: Update tasks** +Update `src/frontend/wwwroot/task/task.js` + +1. **Add `BakerAgent` as a recognized agent type in the frontend JavaScript file** +```js + case "BakerAgent": + agentIcon = "manager"; + break; +``` +### **Step 6: Validate the Integration** Deploy the updated system and ensure the new agent is properly included in the planning process. For example, if the user requests to bake cookies, the `PlannerAgent` should: - Identify the `BakerAgent` as the responsible agent. - Call `bake_cookies` or `prepare_dough` from the agent's toolset. -### **Step 5: Update Documentation** +### **Step 7: Update Documentation** Ensure that the system documentation reflects the addition of the new agent and its capabilities. Update the `README.md` and any related technical documentation to include information about the `BakerAgent`. -### **Step 6: Testing** +### **Step 8: Testing** Thoroughly test the agent in both automated and manual scenarios. Verify that: - The agent responds correctly to tasks. From df624b6c45933a72a9c302a5317f26cf17f2ddab Mon Sep 17 00:00:00 2001 From: Roopan-Microsoft <168007406+Roopan-Microsoft@users.noreply.github.com> Date: Thu, 27 Feb 2025 11:12:20 +0530 Subject: [PATCH 12/13] Update CustomizeSolution.md --- documentation/CustomizeSolution.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index 86e1d527..8962af79 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -42,6 +42,7 @@ Every agent is equipped with a set of tools (functions) that it can call to perf Example (for a `BakerAgent`): ```python from autogen_core.components.tools import FunctionTool, Tool + from typing import List async def bake_cookies(cookie_type: str, quantity: int) -> str: return f"Baked {quantity} {cookie_type} cookies." @@ -119,7 +120,7 @@ Update the `initialize_runtime_and_context` function in `utils.py` to include th runtime, baker_agent_id.type, lambda: BakerAgent( - aoi_model_client, + aoai_model_client, session_id, user_id, cosmos_memory, @@ -614,4 +615,4 @@ This application orchestrates a group of AI agents to accomplish user-defined ta Understanding the flow of data through the endpoints, agents, and persistent storage is key to grasping the logic of the application. Each component plays a specific role in ensuring tasks are planned, executed, and adjusted based on feedback, providing a robust and interactive system. -For instructions to setup a local development environment for the solution, please see [local deployment guide](./LocalDeployment.md). \ No newline at end of file +For instructions to setup a local development environment for the solution, please see [local deployment guide](./LocalDeployment.md). From f7ec2c869f46e78717d882b9a5b55c1452f5c4e2 Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Thu, 27 Feb 2025 11:31:37 -0500 Subject: [PATCH 13/13] Update CustomizeSolution.md --- documentation/CustomizeSolution.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/documentation/CustomizeSolution.md b/documentation/CustomizeSolution.md index 8962af79..d07e02d8 100644 --- a/documentation/CustomizeSolution.md +++ b/documentation/CustomizeSolution.md @@ -129,14 +129,14 @@ Update the `initialize_runtime_and_context` function in `utils.py` to include th ), ) ``` -6. **Add to HumanAgent**: +6. **Add to agent_ids**: ```python - await HumanAgent.register( + agent_ids = { BAgentType.baker_agent: baker_agent_id, ``` -7. **Add to GroupChatManager**: +7. **Add to retrieve_all_agent_tools**: ```python - await GroupChatManager.register( + def retrieve_all_agent_tools() -> List[Dict[str, Any]]: baker_tools: List[Tool] = get_baker_tools() ``` 8. **Append baker_tools to functions**: