From f45446b82be41b9917e8b91c72c9123dd3e9f51b Mon Sep 17 00:00:00 2001 From: DidierRLopes Date: Sun, 2 Aug 2026 12:15:20 -0400 Subject: [PATCH 1/2] Format README code blocks for ruff 0.16 CI lint ruff 0.16 (installed unpinned in CI) now formats Python code blocks inside Markdown files. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01KocxNUyBQT8K8qTduX7Gyu --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9bb01f5..e9d4b5a 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ from openbb_ai import ( app = FastAPI() + @app.get("/agents.json") async def agents_json(): return JSONResponse( @@ -60,7 +61,9 @@ async def agents_json(): "name": "My Agent", "description": "This is my agent", "image": f"{AGENT_BASE_URL}/my-agent/logo.png", - "endpoints": {"query": f"{AGENT_BASE_URL}/query"}, # must match the query endpoint below + "endpoints": { + "query": f"{AGENT_BASE_URL}/query" + }, # must match the query endpoint below "features": { "streaming": True, # must be True "widget-dashboard-select": True, # Enable access to priority widgets @@ -70,6 +73,7 @@ async def agents_json(): } ) + @app.get("/query") async def stream(request: QueryRequest): async def execution_loop(): From 74dd77c35b05414b41b828f1ef3e3d6f443977cd Mon Sep 17 00:00:00 2001 From: DidierRLopes Date: Sun, 2 Aug 2026 12:03:47 -0400 Subject: [PATCH 2/2] Add save_skill client function call and bump version to 2.2.0 Adds "save_skill" to the FunctionCallSSEData.function Literal so agents can ask the OpenBB Workspace client to save the current conversation's workflow as a reusable skill in the user's skill library. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01KocxNUyBQT8K8qTduX7Gyu --- openbb_ai/models.py | 1 + pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/openbb_ai/models.py b/openbb_ai/models.py index e365d32..ffb38bf 100644 --- a/openbb_ai/models.py +++ b/openbb_ai/models.py @@ -908,6 +908,7 @@ class FunctionCallSSEData(BaseModel): "execute_agent_tool", "manage_navigation_bar", "get_skill_content", + "save_skill", ] input_arguments: dict extra_state: dict | None = Field( diff --git a/pyproject.toml b/pyproject.toml index 4a21d39..0fd28bd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openbb-ai" -version = "2.1.0" +version = "2.2.0" description = "An SDK for building agents compatible with OpenBB Workspace" authors = [ { name = "OpenBB Team", email = "hello@openbb.finance" },