From 6abc70044ad5ba782099f1bb0912078714b45128 Mon Sep 17 00:00:00 2001 From: Jack Gerrits Date: Thu, 9 Jan 2025 17:06:35 -0500 Subject: [PATCH 1/8] Fix version switcher rendering (#4974) * Fix docs switcher rendering * update tag * use post1 --- .github/workflows/docs.yml | 35 ++++++++++--------- docs/switcher.json | 2 +- python/packages/autogen-core/docs/src/conf.py | 6 +++- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 40b66a54471c..74595b02e8ee 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -32,23 +32,23 @@ jobs: version: [ # For main use the workflow target - { ref: "${{github.ref}}", dest-dir: dev, uv-version: "0.5.13" }, - { ref: "v0.4.0", dest-dir: stable, uv-version: "0.5.13" }, - { ref: "v0.4.0.dev0", dest-dir: "0.4.0.dev0", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev1", dest-dir: "0.4.0.dev1", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev2", dest-dir: "0.4.0.dev2", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev3", dest-dir: "0.4.0.dev3", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev4", dest-dir: "0.4.0.dev4", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev5", dest-dir: "0.4.0.dev5", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev6", dest-dir: "0.4.0.dev6", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev7", dest-dir: "0.4.0.dev7", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev8", dest-dir: "0.4.0.dev8", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev9", dest-dir: "0.4.0.dev9", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev10", dest-dir: "0.4.0.dev10", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev11", dest-dir: "0.4.0.dev11", uv-version: "0.5.11" }, - { ref: "v0.4.0.dev12", dest-dir: "0.4.0.dev12", uv-version: "0.5.13" }, - { ref: "v0.4.0.dev13", dest-dir: "0.4.0.dev13", uv-version: "0.5.13" }, - { ref: "v0.4.0", dest-dir: "0.4.0", uv-version: "0.5.13" }, + { ref: "${{github.ref}}", dest-dir: dev, uv-version: "0.5.13", sphinx-release-override: "dev" }, + { ref: "v0.4.0.post1", dest-dir: stable, uv-version: "0.5.13", sphinx-release-override: "stable" }, + { ref: "v0.4.0.dev0", dest-dir: "0.4.0.dev0", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev1", dest-dir: "0.4.0.dev1", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev2", dest-dir: "0.4.0.dev2", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev3", dest-dir: "0.4.0.dev3", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev4", dest-dir: "0.4.0.dev4", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev5", dest-dir: "0.4.0.dev5", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev6", dest-dir: "0.4.0.dev6", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev7", dest-dir: "0.4.0.dev7", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev8", dest-dir: "0.4.0.dev8", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev9", dest-dir: "0.4.0.dev9", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev10", dest-dir: "0.4.0.dev10", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev11", dest-dir: "0.4.0.dev11", uv-version: "0.5.11", sphinx-release-override: "" }, + { ref: "v0.4.0.dev12", dest-dir: "0.4.0.dev12", uv-version: "0.5.13", sphinx-release-override: "" }, + { ref: "v0.4.0.dev13", dest-dir: "0.4.0.dev13", uv-version: "0.5.13", sphinx-release-override: "" }, + { ref: "v0.4.0.post1", dest-dir: "0.4.0", uv-version: "0.5.13", sphinx-release-override: "" }, ] steps: - name: Checkout @@ -73,6 +73,7 @@ jobs: env: PY_DOCS_DIR: ${{ matrix.version.dest-dir }}/ PY_SWITCHER_VERSION: ${{ matrix.version.dest-dir }} + SPHINX_RELEASE_OVERRIDE: ${{ matrix.version.sphinx-release-override }} - uses: actions/upload-artifact@v4 with: path: "./python/docs-staging" diff --git a/docs/switcher.json b/docs/switcher.json index 3d94443e6a4e..f90f52ef0847 100644 --- a/docs/switcher.json +++ b/docs/switcher.json @@ -1,7 +1,7 @@ [ { "name": "0.4.0 (stable)", - "version": "0.4.0", + "version": "stable", "url": "/autogen/stable/", "preferred": true }, diff --git a/python/packages/autogen-core/docs/src/conf.py b/python/packages/autogen-core/docs/src/conf.py index 7aa75ebd1acc..c1b362480eb3 100644 --- a/python/packages/autogen-core/docs/src/conf.py +++ b/python/packages/autogen-core/docs/src/conf.py @@ -17,8 +17,12 @@ copyright = "2024, Microsoft" author = "Microsoft" version = "0.4" -release = autogen_core.__version__ +release_override = os.getenv("SPHINX_RELEASE_OVERRIDE") +if release_override is None or release_override == "": + release = autogen_core.__version__ +else: + release = release_override sys.path.append(str(Path(".").resolve())) From 6bc285ce395ed6642c1ed945b9a1eb07a213187c Mon Sep 17 00:00:00 2001 From: Jack Gerrits Date: Thu, 9 Jan 2025 18:03:56 -0500 Subject: [PATCH 2/8] Don't show banner on stable (#4976) --- .../autogen-core/docs/src/_static/banner-override.js | 11 +++++++++++ .../docs/src/_templates/version-banner-override.html | 1 + python/packages/autogen-core/docs/src/conf.py | 4 ++-- 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 python/packages/autogen-core/docs/src/_static/banner-override.js create mode 100644 python/packages/autogen-core/docs/src/_templates/version-banner-override.html diff --git a/python/packages/autogen-core/docs/src/_static/banner-override.js b/python/packages/autogen-core/docs/src/_static/banner-override.js new file mode 100644 index 000000000000..48c9358d898d --- /dev/null +++ b/python/packages/autogen-core/docs/src/_static/banner-override.js @@ -0,0 +1,11 @@ +var version = DOCUMENTATION_OPTIONS.VERSION; +if (version === "stable") { + var styles = ` +s#bd-header-version-warning { + display: none; +} + ` + var styleSheet = document.createElement("style") + styleSheet.textContent = styles + document.head.appendChild(styleSheet) +} \ No newline at end of file diff --git a/python/packages/autogen-core/docs/src/_templates/version-banner-override.html b/python/packages/autogen-core/docs/src/_templates/version-banner-override.html new file mode 100644 index 000000000000..1fa4844f966c --- /dev/null +++ b/python/packages/autogen-core/docs/src/_templates/version-banner-override.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/python/packages/autogen-core/docs/src/conf.py b/python/packages/autogen-core/docs/src/conf.py index c1b362480eb3..fc46900dc004 100644 --- a/python/packages/autogen-core/docs/src/conf.py +++ b/python/packages/autogen-core/docs/src/conf.py @@ -121,7 +121,7 @@ "footer_start": ["copyright"], "footer_center": ["footer-middle-links"], - "footer_end": ["theme-version"], + "footer_end": ["theme-version", "version-banner-override"], "pygments_light_style": "xcode", "pygments_dark_style": "monokai", "navbar_start": ["navbar-logo", "version-switcher"], @@ -135,7 +135,7 @@ ] } -html_js_files = ["custom-icon.js"] +html_js_files = ["custom-icon.js", "banner-override.js"] html_sidebars = { "packages/index": [], "user-guide/core-user-guide/**": ["sidebar-nav-bs-core"], From d2c1bb8ad90590d6263d5f754489541f9f8a5c8a Mon Sep 17 00:00:00 2001 From: Jack Gerrits Date: Thu, 9 Jan 2025 19:00:19 -0500 Subject: [PATCH 3/8] Remove accidentally added character (#4980) --- .../packages/autogen-core/docs/src/_static/banner-override.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/packages/autogen-core/docs/src/_static/banner-override.js b/python/packages/autogen-core/docs/src/_static/banner-override.js index 48c9358d898d..e67243f03901 100644 --- a/python/packages/autogen-core/docs/src/_static/banner-override.js +++ b/python/packages/autogen-core/docs/src/_static/banner-override.js @@ -1,7 +1,7 @@ var version = DOCUMENTATION_OPTIONS.VERSION; if (version === "stable") { var styles = ` -s#bd-header-version-warning { +#bd-header-version-warning { display: none; } ` From b6c3df29201133ea2f422f7f9fa31f3775179ec6 Mon Sep 17 00:00:00 2001 From: Matthew Wyman Date: Thu, 9 Jan 2025 16:29:28 -0800 Subject: [PATCH 4/8] Update README.md to fix spelling error (#4982) --- python/samples/agentchat_chainlit/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/samples/agentchat_chainlit/README.md b/python/samples/agentchat_chainlit/README.md index 3f297158598c..d03ca98e0283 100644 --- a/python/samples/agentchat_chainlit/README.md +++ b/python/samples/agentchat_chainlit/README.md @@ -104,5 +104,5 @@ team = RoundRobinGroupChat( In this example, we created a basic AutoGen team with a single agent in a RoundRobinGroupChat team. There are a few ways you can extend this example: - Add more [agents](https://microsoft.github.io/autogen/dev/user-guide/agentchat-user-guide/tutorial/agents.html) to the team. -- Explor custom agents that sent multimodal messages +- Explore custom agents that sent multimodal messages - Explore more [team](https://microsoft.github.io/autogen/dev/user-guide/agentchat-user-guide/tutorial/teams.html) types beyond the `RoundRobinGroupChat`. From 001f0262babf5baa71148467a2d705e80280653d Mon Sep 17 00:00:00 2001 From: Eric Zhu Date: Fri, 10 Jan 2025 00:08:30 -0800 Subject: [PATCH 5/8] Minor API doc update for openai assistant agent (#4986) --- .../src/autogen_ext/agents/openai/_openai_assistant_agent.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python/packages/autogen-ext/src/autogen_ext/agents/openai/_openai_assistant_agent.py b/python/packages/autogen-ext/src/autogen_ext/agents/openai/_openai_assistant_agent.py index e4d359cf3eff..d738a5fae894 100644 --- a/python/packages/autogen-ext/src/autogen_ext/agents/openai/_openai_assistant_agent.py +++ b/python/packages/autogen-ext/src/autogen_ext/agents/openai/_openai_assistant_agent.py @@ -109,6 +109,8 @@ class OpenAIAssistantAgent(BaseChatAgent): * Vector store integration for efficient file search * Automatic file parsing and embedding + You can use an existing thread or assistant by providing the `thread_id` or `assistant_id` parameters. + Example: .. code-block:: python @@ -160,6 +162,7 @@ async def example(): instructions (str): System instructions for the assistant tools (Optional[Iterable[Union[Literal["code_interpreter", "file_search"], Tool | Callable[..., Any] | Callable[..., Awaitable[Any]]]]]): Tools the assistant can use assistant_id (Optional[str]): ID of existing assistant to use + thread_id (Optional[str]): ID of existing thread to use metadata (Optional[object]): Additional metadata for the assistant response_format (Optional[AssistantResponseFormatOptionParam]): Response format settings temperature (Optional[float]): Temperature for response generation From 6044924a4fbf96912d0307fce6a5466a16013987 Mon Sep 17 00:00:00 2001 From: Jack Gerrits Date: Fri, 10 Jan 2025 08:47:10 -0500 Subject: [PATCH 6/8] Add guidance for docstrings when adding an API (#4981) --- CONTRIBUTING.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e9705198c74d..c2e781239c48 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -118,3 +118,19 @@ Args: agent_type (str): Agent type to handle this subscription """ ``` + +## Docs when adding a new API + +Now that 0.4.0 is out, we should ensure the docs between versions are easy to navigate. To this end, added or changed APIs should have the following added to their docstrings respectively: + +```rst +.. versionadded:: v0.4.1 + + Here's a version added message. + +.. versionchanged:: v0.4.1 + + Here's a version changed message. +``` + +See [here](https://pydata-sphinx-theme.readthedocs.io/en/stable/examples/kitchen-sink/admonitions.html#versionadded) for how they are rendered. From c59cfdd787e657fed62345824364883e0b7d88ca Mon Sep 17 00:00:00 2001 From: Tim Rogers Date: Fri, 10 Jan 2025 14:01:00 +0000 Subject: [PATCH 7/8] Fix typo in `Multi-Agent Design Patterns -> Intro` docs (#4991) --- .../src/user-guide/core-user-guide/design-patterns/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/packages/autogen-core/docs/src/user-guide/core-user-guide/design-patterns/intro.md b/python/packages/autogen-core/docs/src/user-guide/core-user-guide/design-patterns/intro.md index 5fad8db2506c..b8f50d799a98 100644 --- a/python/packages/autogen-core/docs/src/user-guide/core-user-guide/design-patterns/intro.md +++ b/python/packages/autogen-core/docs/src/user-guide/core-user-guide/design-patterns/intro.md @@ -9,7 +9,7 @@ like software development. A multi-agent design pattern is a structure that emerges from message protocols: it describes how agents interact with each other to solve problems. -For example, the [tool-equiped agent](../framework/tools.ipynb#tool-equipped-agent) in +For example, the [tool-equipped agent](../framework/tools.ipynb#tool-equipped-agent) in the previous section employs a design pattern called ReAct, which involves an agent interacting with tools. From 115fefa132116f62c428e4dfe43d8f23f71fe306 Mon Sep 17 00:00:00 2001 From: Jack Gerrits Date: Fri, 10 Jan 2025 13:00:17 -0500 Subject: [PATCH 8/8] Add missing py.typed in autogen_ext, fix type issue in core (#4993) --- .../autogen-core/src/autogen_core/_component_config.py | 6 +++--- python/packages/autogen-ext/src/autogen_ext/py.typed | 0 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 python/packages/autogen-ext/src/autogen_ext/py.typed diff --git a/python/packages/autogen-core/src/autogen_core/_component_config.py b/python/packages/autogen-core/src/autogen_core/_component_config.py index f5426428c90c..1045282921f2 100644 --- a/python/packages/autogen-core/src/autogen_core/_component_config.py +++ b/python/packages/autogen-core/src/autogen_core/_component_config.py @@ -2,7 +2,7 @@ import importlib import warnings -from typing import Any, ClassVar, Dict, Generic, Literal, Protocol, Type, cast, overload, runtime_checkable +from typing import Any, ClassVar, Dict, Generic, List, Literal, Protocol, Type, cast, overload, runtime_checkable from pydantic import BaseModel from typing_extensions import Self, TypeVar @@ -243,9 +243,9 @@ def _from_config(cls, config: Config) -> MyComponent: return cls(value=config.value) """ - required_class_vars = ["component_config_schema", "component_type"] + required_class_vars: ClassVar[List[str]] = ["component_config_schema", "component_type"] - def __init_subclass__(cls, **kwargs: Any): + def __init_subclass__(cls, **kwargs: Any) -> None: super().__init_subclass__(**kwargs) # TODO: validate provider is loadable diff --git a/python/packages/autogen-ext/src/autogen_ext/py.typed b/python/packages/autogen-ext/src/autogen_ext/py.typed new file mode 100644 index 000000000000..e69de29bb2d1