Skip to content

Added Documenation on Code Samples #48

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Feb 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 65 additions & 15 deletions 02-explore-agentic-frameworks/code_samples/02-autogen.ipynb
Original file line number Diff line number Diff line change
@@ -1,8 +1,26 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# AutoGen Basic Sample \n",
"\n",
"In this code sample, you will use the [AutoGen](https://aka.ms/ai-agents/autogen) AI Framework to create a basic agent. \n",
"\n",
"The goal of this sample is to show you the steps that we will later use in the addtional code samples when implementing the different agentic patterns. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import the Needed Python Packages "
]
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -18,9 +36,22 @@
"from autogen_agentchat.ui import Console\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create the Client \n",
"\n",
"In this sample, we will use [GitHub Models](https://aka.ms/ai-agents-beginners/github-models) for access to the LLM. \n",
"\n",
"The `model` is defined as `gpt-4o-mini`. Try changing the model to another model available on the GitHub Models marketplace to see the different results. \n",
"\n",
"As a quick test, we will just run a simple prompt - `What is the capital of France`. "
]
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 3,
"metadata": {},
"outputs": [
{
Expand Down Expand Up @@ -50,9 +81,24 @@
"print(result)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Defining the Agent \n",
"\n",
"Now that we have set up the `client` and confirmed that it is working, let us create an `AssistantAgent`. Each agent can be assigned a: \n",
"**name** - A short hand name that will be useful in referencing it in multi-agent flows. \n",
"**model_client** - The client that you created in the earlier step. \n",
"**tools** - Available tools that the Agent can use to complete a task.\n",
"**system_message** - The metaprompt that defines the task, behavior and tone of the LLM. \n",
"\n",
"You can change the system message to see how the LLM responds. We will cover `tools` in Lesson #4. \n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -64,20 +110,24 @@
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Run the Agent \n",
"\n",
"The below function will run the agent. We use the the `on_message` method to update the Agent's state with the new message. \n",
"\n",
"In this case, we update the state with a new message from the user which is `\"Plan me a great sunny vacation\"`.\n",
"\n",
"You can change the message content to see how the LLM responds differently. "
]
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[]\n",
"source='assistant' models_usage=RequestUsage(prompt_tokens=26, completion_tokens=646) content=\"Absolutely! Here’s a sunny vacation plan that combines relaxation, adventure, and cultural experiences. Let’s set you up for a week in beautiful Costa Rica!\\n\\n### Destination: Costa Rica\\n\\n#### Duration: 7 Days\\n\\n#### Ideal Travel Time: December to April (dry season)\\n\\n---\\n\\n### Day 1: Arrival in San José\\n- **Flight:** Arrive at Juan Santamaría International Airport (SJO).\\n- **Accommodation:** Check into a trendy hotel in the Escazú or downtown San José.\\n- **Evening:** Enjoy dinner at a local restaurant featuring Costa Rican cuisine. Try “casado” (rice and beans with protein).\\n\\n---\\n\\n### Day 2: Arenal Volcano\\n- **Morning:** Travel to La Fortuna (about 3 hours from San José).\\n- **Accommodation:** Stay in a resort with views of Arenal Volcano.\\n- **Afternoon:** Visit the La Fortuna Waterfall for a refreshing swim.\\n- **Evening:** Relax in the hot springs at Tabacon or Baldi.\\n\\n---\\n\\n### Day 3: Arenal Adventure\\n- **Morning:** Zip-lining through the rainforest canopy at Sky Adventures.\\n- **Afternoon:** Hike in Arenal Volcano National Park for stunning views and rich biodiversity.\\n- **Evening:** Dine at a local restaurant with a view of the volcano.\\n\\n---\\n\\n### Day 4: Monteverde Cloud Forest\\n- **Morning:** Travel to Monteverde (about 3.5 hours).\\n- **Accommodation:** Stay in a charming lodge surrounded by nature.\\n- **Afternoon:** Explore the Monteverde Cloud Forest Reserve, with opportunities for bird watching and spotting wildlife.\\n- **Evening:** Enjoy a guided night walk to see nocturnal creatures.\\n\\n---\\n\\n### Day 5: Relaxation and Beaches\\n- **Morning:** Depart for Manuel Antonio (around 3 hours).\\n- **Accommodation:** Settle into a beach resort with ocean views.\\n- **Afternoon:** Relax on the beach or at the hotel pool.\\n- **Evening:** Dinner at a beachfront restaurant.\\n\\n---\\n\\n### Day 6: Manuel Antonio National Park\\n- **Morning:** Guided tour of Manuel Antonio National Park to see sloths, monkeys, and stunning beaches.\\n- **Afternoon:** Snorkeling or kayaking in the nearby waters.\\n- **Evening:** Take a sunset sailboat tour (with refreshments) for beautiful views of the coastline.\\n\\n---\\n\\n### Day 7: Return to San José\\n- **Morning:** Leisurely breakfast, then head back to San José (about 3 hours).\\n- **Afternoon:** Last-minute shopping at a local artisan market or visit the National Museum.\\n- **Evening:** Departure from Juan Santamaría International Airport.\\n\\n---\\n\\n### Additional Tips:\\n- **Travel Insurance:** Consider purchasing travel insurance for peace of mind.\\n- **Local Currency:** Keep some Costa Rican colones handy for local vendors.\\n- **Transportation:** Renting a car can provide flexibility for exploring, but shuttles are also readily available.\\n\\nThis Costa Rican itinerary has a perfect blend of sun-soaked beach time, lush rainforest adventures, and cultural experiences to make it an unforgettable vacation. Let me know if you'd like to customize any part of this plan!\" type='TextMessage'\n"
]
}
],
"outputs": [],
"source": [
"async def assistant_run() -> None:\n",
" response = await agent.on_messages(\n",
Expand Down Expand Up @@ -109,7 +159,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.11"
"version": "3.13.1"
}
},
"nbformat": 4,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -15,7 +15,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -26,26 +26,9 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": null,
"metadata": {},
"outputs": [
{
"ename": "ResourceNotFoundError",
"evalue": "(UserError) Workspace not found.\nCode: UserError\nMessage: Workspace not found.",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mResourceNotFoundError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[3], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m agent \u001b[38;5;241m=\u001b[39m \u001b[43mproject_client\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43magents\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcreate_agent\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mgpt-4o-mini\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmy-agent\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43minstructions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mYou are helpful Travel Agent\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCreated agent, agent ID: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00magent\u001b[38;5;241m.\u001b[39mid\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n",
"File \u001b[0;32m~/ai-agents-for-beginners/.venv/lib/python3.12/site-packages/azure/core/tracing/decorator.py:105\u001b[0m, in \u001b[0;36mdistributed_trace.<locals>.decorator.<locals>.wrapper_use_tracer\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 103\u001b[0m span_impl_type \u001b[38;5;241m=\u001b[39m settings\u001b[38;5;241m.\u001b[39mtracing_implementation()\n\u001b[1;32m 104\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m span_impl_type \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 105\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;66;03m# Merge span is parameter is set, but only if no explicit parent are passed\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m merge_span \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m passed_in_parent:\n",
"File \u001b[0;32m~/ai-agents-for-beginners/.venv/lib/python3.12/site-packages/azure/ai/projects/operations/_patch.py:1019\u001b[0m, in \u001b[0;36mAgentsOperations.create_agent\u001b[0;34m(self, body, model, name, description, instructions, tools, tool_resources, toolset, temperature, top_p, response_format, metadata, content_type, **kwargs)\u001b[0m\n\u001b[1;32m 1016\u001b[0m tools \u001b[38;5;241m=\u001b[39m toolset\u001b[38;5;241m.\u001b[39mdefinitions\n\u001b[1;32m 1017\u001b[0m tool_resources \u001b[38;5;241m=\u001b[39m toolset\u001b[38;5;241m.\u001b[39mresources\n\u001b[0;32m-> 1019\u001b[0m new_agent \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcreate_agent\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1020\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1021\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1022\u001b[0m \u001b[43m \u001b[49m\u001b[43mdescription\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdescription\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1023\u001b[0m \u001b[43m \u001b[49m\u001b[43minstructions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minstructions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1024\u001b[0m \u001b[43m \u001b[49m\u001b[43mtools\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtools\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1025\u001b[0m \u001b[43m \u001b[49m\u001b[43mtool_resources\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtool_resources\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1026\u001b[0m \u001b[43m \u001b[49m\u001b[43mtemperature\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtemperature\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1027\u001b[0m \u001b[43m \u001b[49m\u001b[43mtop_p\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtop_p\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1028\u001b[0m \u001b[43m \u001b[49m\u001b[43mresponse_format\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresponse_format\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1029\u001b[0m \u001b[43m \u001b[49m\u001b[43mmetadata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmetadata\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1030\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1031\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1033\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m toolset \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1034\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_toolset[new_agent\u001b[38;5;241m.\u001b[39mid] \u001b[38;5;241m=\u001b[39m toolset\n",
"File \u001b[0;32m~/ai-agents-for-beginners/.venv/lib/python3.12/site-packages/azure/core/tracing/decorator.py:105\u001b[0m, in \u001b[0;36mdistributed_trace.<locals>.decorator.<locals>.wrapper_use_tracer\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 103\u001b[0m span_impl_type \u001b[38;5;241m=\u001b[39m settings\u001b[38;5;241m.\u001b[39mtracing_implementation()\n\u001b[1;32m 104\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m span_impl_type \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 105\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;66;03m# Merge span is parameter is set, but only if no explicit parent are passed\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m merge_span \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m passed_in_parent:\n",
"File \u001b[0;32m~/ai-agents-for-beginners/.venv/lib/python3.12/site-packages/azure/ai/projects/operations/_operations.py:1754\u001b[0m, in \u001b[0;36mAgentsOperations.create_agent\u001b[0;34m(self, body, model, name, description, instructions, tools, tool_resources, temperature, top_p, response_format, metadata, **kwargs)\u001b[0m\n\u001b[1;32m 1752\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (StreamConsumedError, StreamClosedError):\n\u001b[1;32m 1753\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n\u001b[0;32m-> 1754\u001b[0m \u001b[43mmap_error\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstatus_code\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresponse\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstatus_code\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mresponse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresponse\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43merror_map\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43merror_map\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1755\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m HttpResponseError(response\u001b[38;5;241m=\u001b[39mresponse)\n\u001b[1;32m 1757\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m _stream:\n",
"File \u001b[0;32m~/ai-agents-for-beginners/.venv/lib/python3.12/site-packages/azure/core/exceptions.py:163\u001b[0m, in \u001b[0;36mmap_error\u001b[0;34m(status_code, response, error_map)\u001b[0m\n\u001b[1;32m 161\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[1;32m 162\u001b[0m error \u001b[38;5;241m=\u001b[39m error_type(response\u001b[38;5;241m=\u001b[39mresponse)\n\u001b[0;32m--> 163\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m error\n",
"\u001b[0;31mResourceNotFoundError\u001b[0m: (UserError) Workspace not found.\nCode: UserError\nMessage: Workspace not found."
]
}
],
"outputs": [],
"source": [
"agent = project_client.agents.create_agent(\n",
" model=\"gpt-4o-mini\",\n",
Expand All @@ -58,17 +41,9 @@
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Created thread, thread ID: thread_orCinYMqPKxfmtaLKVGdaMB0\n"
]
}
],
"outputs": [],
"source": [
" # Create a thread\n",
"thread = project_client.agents.create_thread()\n",
Expand All @@ -77,17 +52,9 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Created message, ID: msg_jJPogcXhk4AdFqx5MwnF9As1\n"
]
}
],
"outputs": [],
"source": [
" # Get messages from the thread\n",
"message = project_client.agents.create_message(\n",
Expand All @@ -100,17 +67,9 @@
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Run finished with status: RunStatus.COMPLETED\n"
]
}
],
"outputs": [],
"source": [
"run = project_client.agents.create_and_process_run(thread_id=thread.id, assistant_id=agent.id)\n",
" # [END create_and_process_run]\n",
Expand All @@ -122,17 +81,9 @@
},
{
"cell_type": "code",
"execution_count": 17,
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Messages: {'object': 'list', 'data': [{'id': 'msg_cEj0tnvA870VQGKu9JARxnYh', 'object': 'thread.message', 'created_at': 1738772216, 'assistant_id': 'asst_ixAqDwFG3UA1VKu5JfoLrvC0', 'thread_id': 'thread_orCinYMqPKxfmtaLKVGdaMB0', 'run_id': 'run_rtay1pcRULNCyJcryexK47bh', 'role': 'assistant', 'content': [{'type': 'text', 'text': {'value': 'Sure! I can help you with that. Here are a few things I need to know:\\n\\n1. **Departure City**: Where will you be flying from?\\n2. **Travel Dates**: What are your departure and return dates?\\n3. **Flexibility**: Are your travel dates flexible?\\n4. **Number of Passengers**: How many people are traveling?\\n5. **Class of Service**: Do you prefer economy, business, or first class?\\n6. **Any Specific Preferences**: Do you have any preferred airlines or stopover preferences?\\n\\nOnce I have this information, I can help you find the best options for your flight to Paris!', 'annotations': []}}], 'attachments': [], 'metadata': {}}, {'id': 'msg_jJPogcXhk4AdFqx5MwnF9As1', 'object': 'thread.message', 'created_at': 1738771924, 'assistant_id': None, 'thread_id': 'thread_orCinYMqPKxfmtaLKVGdaMB0', 'run_id': None, 'role': 'user', 'content': [{'type': 'text', 'text': {'value': 'I want to book a flight to Paris', 'annotations': []}}], 'attachments': [], 'metadata': {}}], 'first_id': 'msg_cEj0tnvA870VQGKu9JARxnYh', 'last_id': 'msg_jJPogcXhk4AdFqx5MwnF9As1', 'has_more': False}\n"
]
}
],
"outputs": [],
"source": [
"messages = project_client.agents.list_messages(thread_id=thread.id)\n",
"print(f\"Messages: {messages}\")"
Expand Down
Loading
Loading