diff --git a/python/docs/src/getting-started/quickstart.ipynb b/python/docs/src/getting-started/quickstart.ipynb new file mode 100644 index 000000000..6dff5e86b --- /dev/null +++ b/python/docs/src/getting-started/quickstart.ipynb @@ -0,0 +1,248 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Quick Start\n", + "\n", + "Before diving into the core APIs, let's start with a simple example of two\n", + "agents creating a plot of Tesla's and Nvidia's stock returns.\n", + "\n", + "We first define the agent classes and their respective procedures for \n", + "handling messages.\n", + "We create two agent classes: `Assistant` and `Executor`. The `Assistant`\n", + "agent writes code and the `Executor` agent executes the code.\n", + "We also create a `Message` data class, which defines the messages that can are passed between\n", + "the agents." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from dataclasses import dataclass\n", + "from typing import List\n", + "\n", + "from agnext.components import DefaultTopicId, RoutedAgent, message_handler\n", + "from agnext.components.code_executor import CodeExecutor, extract_markdown_code_blocks\n", + "from agnext.components.models import AssistantMessage, ChatCompletionClient, LLMMessage, SystemMessage, UserMessage\n", + "from agnext.core import MessageContext\n", + "\n", + "\n", + "@dataclass\n", + "class Message:\n", + " content: str\n", + "\n", + "\n", + "class Assistant(RoutedAgent):\n", + " def __init__(self, model_client: ChatCompletionClient) -> None:\n", + " super().__init__(\"An assistant agent.\")\n", + " self._model_client = model_client\n", + " self._chat_history: List[LLMMessage] = [\n", + " SystemMessage(\n", + " content=\"\"\"Write Python script in markdown block, and it will be executed.\n", + "Always save figures to file in the current directory. Do not use plt.show()\"\"\",\n", + " )\n", + " ]\n", + "\n", + " @message_handler\n", + " async def handle_message(self, message: Message, ctx: MessageContext) -> None:\n", + " self._chat_history.append(UserMessage(content=message.content, source=\"user\"))\n", + " result = await self._model_client.create(self._chat_history)\n", + " print(f\"\\n{'-'*80}\\nAssistant:\\n{result.content}\")\n", + " self._chat_history.append(AssistantMessage(content=result.content, source=\"assistant\")) # type: ignore\n", + " await self.publish_message(Message(content=result.content), DefaultTopicId()) # type: ignore\n", + "\n", + "\n", + "class Executor(RoutedAgent):\n", + " def __init__(self, code_executor: CodeExecutor) -> None:\n", + " super().__init__(\"An executor agent.\")\n", + " self._code_executor = code_executor\n", + "\n", + " @message_handler\n", + " async def handle_message(self, message: Message, ctx: MessageContext) -> None:\n", + " code_blocks = extract_markdown_code_blocks(message.content)\n", + " if code_blocks:\n", + " result = await self._code_executor.execute_code_blocks(\n", + " code_blocks, cancellation_token=ctx.cancellation_token\n", + " )\n", + " print(f\"\\n{'-'*80}\\nExecutor:\\n{result.output}\")\n", + " await self.publish_message(Message(content=result.output), DefaultTopicId())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You might have already noticed, The agents' logic, whether it is using model or code executor,\n", + "is completely decoupled from\n", + "how messages are delivered. This is the core idea: the framework provides\n", + "a communication infrastructure, and the agents are responsible for their own\n", + "logic. We call the communication infrastructure an **Agent Runtime**.\n", + "\n", + "Agent runtime is a key concept of this framework. Besides delivering messages,\n", + "it also manages agents' lifecycle. \n", + "So the creation of agents are handled by the runtime.\n", + "\n", + "The following code shows how to register and run the agents using \n", + "{py:class}`~agnext.application.SingleThreadedAgentRuntime`,\n", + "a local embedded agent runtime implementation.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "--------------------------------------------------------------------------------\n", + "Assistant:\n", + "```python\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import yfinance as yf\n", + "\n", + "# Define the ticker symbols and the date range\n", + "tickers = ['NVDA', 'TSLA']\n", + "start_date = \"2024-01-01\"\n", + "end_date = pd.Timestamp.today()\n", + "\n", + "# Download stock data\n", + "data = yf.download(tickers, start=start_date, end=end_date)['Adj Close']\n", + "\n", + "# Calculate daily returns\n", + "returns = data.pct_change().dropna()\n", + "\n", + "# Plot the cumulative returns\n", + "cumulative_returns = (1 + returns).cumprod()\n", + "cumulative_returns.plot(figsize=(10, 6))\n", + "plt.title('NVIDIA vs TSLA Stock Returns YTD 2024')\n", + "plt.xlabel('Date')\n", + "plt.ylabel('Cumulative Return')\n", + "plt.legend(tickers)\n", + "plt.grid(True)\n", + "plt.savefig('NVIDIA_vs_TSLA_Stock_Returns_YTD_2024.png')\n", + "```\n", + "\n", + "--------------------------------------------------------------------------------\n", + "Executor:\n", + "[*********************100%***********************] 2 of 2 completed\n", + "\n", + "\n", + "--------------------------------------------------------------------------------\n", + "Assistant:\n", + "The plot has been generated and saved as `NVIDIA_vs_TSLA_Stock_Returns_YTD_2024.png` in the current directory.\n" + ] + } + ], + "source": [ + "import tempfile\n", + "\n", + "from agnext.application import SingleThreadedAgentRuntime\n", + "from agnext.components import DefaultSubscription\n", + "from agnext.components.code_executor import LocalCommandLineCodeExecutor\n", + "from agnext.components.models import OpenAIChatCompletionClient\n", + "\n", + "work_dir = tempfile.mkdtemp()\n", + "\n", + "# Create an local embedded runtime.\n", + "runtime = SingleThreadedAgentRuntime()\n", + "\n", + "# Register the assistant and executor agents by providing\n", + "# their agent types, the factory functions for creating instance and subscriptions.\n", + "await runtime.register(\n", + " \"assistant\",\n", + " lambda: Assistant(\n", + " OpenAIChatCompletionClient(\n", + " model=\"gpt-4o\",\n", + " # api_key=\"YOUR_API_KEY\"\n", + " )\n", + " ),\n", + " subscriptions=lambda: [DefaultSubscription()],\n", + ")\n", + "await runtime.register(\n", + " \"executor\",\n", + " lambda: Executor(LocalCommandLineCodeExecutor(work_dir=work_dir)),\n", + " subscriptions=lambda: [DefaultSubscription()],\n", + ")\n", + "\n", + "# Start the runtime and publish a message to the assistant.\n", + "runtime.start()\n", + "await runtime.publish_message(\n", + " Message(\"Create a plot of NVIDA vs TSLA stock returns YTD from 2024-01-01.\"), DefaultTopicId()\n", + ")\n", + "await runtime.stop_when_idle()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the agent's output, we can see the plot of Tesla's and Nvidia's stock returns\n", + "has been created." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAJYCAYAAADxHswlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADeeUlEQVR4nOzddXiT59cH8O+TpE3dXaghBYq7uw4YbsPGmI/52NhvBjOYyzsGQ8awwbCNKTaguA8KpQUqQEvdvWnyvH+kCS21BNIkLd/PdfVa8+jJswI9uc99bkEURRFEREREREREZFISUwdAREREREREREzQiYiIiIiIiMwCE3QiIiIiIiIiM8AEnYiIiIiIiMgMMEEnIiIiIiIiMgNM0ImIiIiIiIjMABN0IiIiIiIiIjPABJ2IiIiIiIjIDDBBJyIiIiIiIjIDTNCJiIiIiIiIzAATdCIiIiIiIiIzwASdiIiIiIiIyAwwQSciIiIiIiIyA0zQiYiIiIiIiMwAE3QiIiIiIiIiM8AEnYiIiIiIiMgMMEEnIiIiIiIiMgNM0ImIiIiIiIjMABN0IiIiIiIiIjPABJ2IiIiIiIjIDDBBJyIiIiIiIjIDTNCJiIiIiIiIzAATdCIiIiIiIiIzwASdiIiIiIiIyAwwQSciIiIiIiIyA0zQiYiIiIiIiMwAE3QiIiIiIiIiM8AEnYiIiIiIiMgMMEEnIiIiIiIiMgNM0ImIiIiIiIjMABN0IiIiIiIiIjPABJ2IiIiIiIjIDDBBJyIiIiIiIjIDTNCJiIiIiIiIzAATdCIiIiIiIiIzwASdiIiIiIiIyAwwQSciIiIiIiIyA0zQiYiIiIiIiMwAE3QiIiIiIiIiM8AEnYiIiIiIiMgMMEEnIiIiIiIiMgNM0ImIiIiIiIjMABN0IiIiIiIiIjPABJ2IiIiIiIjIDDBBJyIiIiIiIjIDTNCJiIiIiIiIzAATdCIiIiIiIiIzwASdiIiIiIiIyAwwQSciIiIiIiIyA0zQiYiICAcPHoQgCNi2bZupQyEiInpgMUEnIqpna9euhSAIsLKyQmJiYpX9/fv3R1hYGADg3LlzEAQBb731Vo3Xu3btGgRBwMsvvwwAeO+99yAIAtLT07XHzJkzB4IgaL/s7OwQHByMiRMnYvv27VCpVLXGcTelUgkfHx8IgoC///5br/dfXyq+v9q+Dh48CABIS0vDCy+8gNDQUFhbW8PDwwNdu3bF66+/jvz8fO1158yZAzs7O53jyM7OhpWVFQRBwJUrV/R6DxEREZg4cSICAgJgZWUFX19fDBkyBN9++22l4z766CP8+uuvel3bmOLj4ys9c4lEAhcXF4wYMQLHjx+/p2sWFhbivffe0/7/a0iOHz8OiUSChQsXVrt/6dKlEAQB3333nU4/w4GBgQDu/FnXfNnY2KBJkyYYPXo0fvzxR5SUlOgU3+nTp/Hcc8+hdevWsLW1RZMmTTB58mRcvXq12uOvXLmC4cOHw87ODi4uLpg5cybS0tIqHRMVFYUFCxagffv2sLe3h7e3Nx566CGcOXOmzniGDBkCQRDw3HPP6RQ/EVFjJjN1AERED4qSkhIsWbKkSvJVUceOHREaGoqff/4ZH3zwQbXHbNq0CQAwY8aMWu8nl8uxatUqAEBRURFu3LiB33//HRMnTkT//v3x22+/wcHBQafY//33XyQlJSEwMBAbN27EiBEjdDqvPq1fv77S63Xr1mHv3r1Vtrds2RKZmZno3LkzcnNzMXfuXISGhiIjIwMXL17E999/j6efflqvpLyirVu3QhAEeHl5YePGjTX+f7vbsWPHMGDAADRp0gSPP/44vLy8cOvWLZw4cQJff/015s+frz32o48+wsSJEzF27Nh7itFYpk2bhpEjR0KpVOLq1atYtmwZBgwYgNOnT6NNmzZ6XauwsBCLFi0CoP7wqCHp0aMHnnzySXz++eeYMWMGWrdurd1348YNLF68GJMmTcKIESOq/LzOmzcPXbt2xRNPPKHddvfP5vfffw87OzuUlJQgMTERu3fvxty5c/HVV1/hjz/+gL+/f63xLV26FEePHsWkSZPQtm1bJCcn4//+7//QsWNHnDhxotIHdQkJCejbty8cHR3x0UcfIT8/H5999hkiIiJw6tQpWFpaAgBWrVqF1atXY8KECXjmmWeQk5ODFStWoHv37vjnn38wePDgamPZsWPHPX+IQ0TUKIlERFSvfvzxRxGA2L59e1Eul4uJiYmV9vfr109s3bq19vX7778vAhCPHz9e7fVatGghhoaGal+/++67IgAxLS1Nu2327Nmira1tted//PHHIgBx8uTJtcZR0axZs8SOHTuKX3/9tWhrayvm5+fX/qZN4NlnnxVr+mftk08+EQGIR48erbIvJydH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bpxO/dQtbPfffz9NmjThjjvuoEmTJsyZM8fukEqE++67j8svv5yBAwcydOhQYmNjcTgcdoclBUCfWpJva9eupWfPnnz11Vd8++23Wa0BakUvXH/88QeNGzdm2bJlPPLII9SqVYupU6cyduxYu0Mr8mbMmEHDhg1ZtWoV7777LqNGjeLgwYPcd999APrCK2Qul4vevXtTvnx5XnjhBbvDKZYmT55MhQoVWLFiBStWrODDDz8kMDAQUItLYZs3bx4LFy5k2rRpTJkyhX/961/6TClgb7zxBmXLlmXdunWsWbOGl156CT8/P+Li4uwOrVhLSUlh8ODBrF69ml9//ZVvv/2Wbt268e9//9vu0Iq1kydPMnDgQNauXcunn37K0KFD2b17N/3792fTpk12hycFwNfuAKToWblyJVWqVGHMmDFMnjyZRx55hN69e+Pj44NlWfrhUQiSkpKYMmUK7du355133iEoKIirr76a119/nZkzZxIfH09oaKjdYRZZCxYsYMCAAbz44ov4+/sD5kTUmcMIpPCsX78ef39/pkyZQseOHRkxYgRdu3a1O6xi5fPPPyckJITp06cTGRnJpk2bOHDgAHXq1CEiIoLg4GB9fheSiRMnUrt2bXr37s2yZcuYPn06tWvXplOnTtStW9fu8Iq86OhofvrpJ9566y1uvfVWwHT7Xb9+fVbDgd7bhSM6Opp169bx+uuvc/nllwMwePBgPvjgA1wuF35+fjZHWDytW7eOXbt2MWnSJJo1a0bnzp3p27cvNWvW5O233+bpp5+mSpUqdocpl0At6JJvV199NQ8//DD9+vXj9ttv5+jRo4wfPx7QWK/C4nK5aNu2LXfeeSdBQUG43W58fHxwuVwkJiYSEhKiVrBL8Oijj3LvvfdmFedxcXGsWLGC6tWrs3TpUpujK57O/Kzw8/OjRo0atGvXjiuvvJKnn34agFOnTtkVXrHz6quv4nQ6ef/997nuuusYOHAgDz/8MJ06dWLkyJGAeooUNLfbTVJSEgcOHKBXr16MHz+eq6++mk2bNvHCCy/QvXt3fvjhB7vDLPJq1KjBggULsopzy7IoW7YstWrVYv78+YDe24XF7Xazfft2AgICANOy+9prr1GtWjU+++wzTdRXSA4fPszevXtp1qxZjm3lypVj3rx5LFiwwL7gpECoQJfzGjduHGPGjOHDDz/M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", + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import Image\n", + "\n", + "Image(filename=f\"{work_dir}/NVIDIA_vs_TSLA_Stock_Returns_YTD_2024.png\") # type: ignore" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "AGNext also supports distributed agent runtime, which can host agents running on\n", + "different processes or machines, with different identities, languages and dependencies.\n", + "\n", + "To learn how to use agent runtime, communication, message handling, and subscription, please continue\n", + "reading the sections following this quick start." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "agnext", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/python/docs/src/index.rst b/python/docs/src/index.rst index 1c6b3c9a7..0adb0dcfd 100644 --- a/python/docs/src/index.rst +++ b/python/docs/src/index.rst @@ -9,8 +9,7 @@ You can implement agents in different programming languages and deploy them on different machines across organizational boundaries. You can also implement agents using other agent frameworks and run them in AGNext. -To get you started quickly, we offers -`a suite of samples `_. +To start quickly, read the `quick start `_. To learn about the core concepts of AGNext, read the `overview `_. @@ -25,6 +24,7 @@ To learn about the core concepts of AGNext, read the `overview List[CodeBlock]: + pattern = re.compile(r"```(?:\s*([\w\+\-]+))?\n([\s\S]*?)```") + matches = pattern.findall(markdown_text) + code_blocks: List[CodeBlock] = [] + for match in matches: + language = match[0].strip() if match[0] else "" + code_content = match[1] + code_blocks.append(CodeBlock(code=code_content, language=language)) + return code_blocks diff --git a/python/tests/execution/test_extract_code_blocks.py b/python/tests/execution/test_extract_code_blocks.py new file mode 100644 index 000000000..2fe140611 --- /dev/null +++ b/python/tests/execution/test_extract_code_blocks.py @@ -0,0 +1,37 @@ +from agnext.components.code_executor import extract_markdown_code_blocks + + +def test_extract_markdown_code_blocks() -> None: + + text = """# This is a markdown text +```python +print("Hello World") +``` +""" + + code_blocks = extract_markdown_code_blocks(text) + + assert len(code_blocks) == 1 + assert code_blocks[0].language == "python" + assert code_blocks[0].code == 'print("Hello World")\n' + + + text = """More markdown text +```python +print("Hello World") +``` + +Another code block. + +```python +print("Hello World 2") +``` +""" + + code_blocks = extract_markdown_code_blocks(text) + + assert len(code_blocks) == 2 + assert code_blocks[0].language == "python" + assert code_blocks[0].code == 'print("Hello World")\n' + assert code_blocks[1].language == "python" + assert code_blocks[1].code == 'print("Hello World 2")\n'