Skip to content

Make LoggingToolset private and update Experimental notes in common.ai - #74694

Open
Lee-W wants to merge 19 commits into
apache:mainfrom
astronomer:common-ai-stability-review
Open

Lee-W wants to merge 19 commits into
apache:mainfrom
astronomer:common-ai-stability-review

Conversation

@Lee-W

@Lee-W Lee-W commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

LoggingToolset is no longer exported from airflow.providers.common.ai.toolsets;
tool-call logging stays available through enable_tool_logging and
ToolLoggingCapability. The Experimental notes are removed from the parameters
and classes that graduate to stable, and kept, with the concrete reason, on
datasource_config and data_sources.


Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

Generated-by: [Claude] following the guidelines


  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.

Comment thread providers/common/ai/docs/stability.rst
Comment thread providers/common/ai/docs/stability.rst Outdated
Comment thread providers/common/ai/docs/changelog.rst Outdated
Comment thread providers/common/ai/docs/stability.rst Outdated
Comment thread providers/common/ai/src/airflow/providers/common/ai/operators/agent.py Outdated
Comment thread providers/common/ai/docs/frameworks/index.rst Outdated
Comment thread providers/common/ai/docs/decision_models.rst Outdated
Comment thread providers/common/ai/docs/stability.rst Outdated
Comment thread providers/common/ai/docs/stability.rst Outdated
Comment thread providers/common/ai/docs/stability.rst
Comment thread providers/common/ai/docs/operators/llm_sql.rst Outdated
Comment thread providers/common/ai/docs/changelog.rst Outdated
Comment thread providers/common/ai/docs/toolsets/logging.rst Outdated
Comment thread providers/common/ai/docs/frameworks/index.rst Outdated
@Lee-W
Lee-W force-pushed the common-ai-stability-review branch 2 times, most recently from 618e2ef to 103f825 Compare October 15, 2026 07:53
@Lee-W
Lee-W requested a review from kaxil October 15, 2026 07:53
Comment thread providers/common/ai/docs/changelog.rst Outdated
Comment thread providers/common/ai/docs/frameworks/index.rst Outdated
@Lee-W
Lee-W force-pushed the common-ai-stability-review branch 3 times, most recently from 1659d13 to dade363 Compare October 21, 2026 15:00
Comment thread providers/common/ai/docs/stability.rst Outdated
``allow_modifications=True`` is checked the same way. ``db_conn_id`` with
``table_names``, ``schema_context`` or ``datasource_config`` give the model the
schema.
schema. ``datasource_config`` is experimental; see below.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1.0.0 shipped datasource_config and data_sources in these stable rows, and the top of this page says a stable feature keeps its public parameters until the next major release, so moving them to experimental in 1.x is what that policy rules out. The datafusion<52 pin was already there in 1.0.0. I asked for this before 1.0.0 went final, so that one's on me, but now I'd keep both stable, drop the two experimental-table rows and the operator notes, and mention the pin as a dependency caveat.

Comment thread providers/common/ai/docs/changelog.rst Outdated
---------

.. note::
``airflow.providers.common.ai.toolsets.logging.LoggingToolset`` (public since 0.1.0) is

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1.0.0 also shipped the package-level export from #74449 (the Features entry below), so from airflow.providers.common.ai.toolsets import LoggingToolset breaks too, and that's the import the 1.0.0 toolsets page showed. Could the note name both paths? On the rebase it needs to stay above main's new 1.1.0 section, since 1.1.0rc1 still ships the class.

``exclude-newer`` window, which for the OpenAI Agents SDK means the newest release that
accepts ``openai`` 2.x, not the versions in the table above. It therefore does not show
that those versions work in the environment a user gets. Canary runs, which include
scheduled, push and manual runs on the Apache Airflow repository and pull requests

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Push runs don't get the framework pins: ci-amd.yml has no push trigger for main, and on a v*-test push run_agent_framework_tests returns False because providers release from main only. That leaves scheduled and manual runs on main and PRs labeled canary.

See :ref:`howto/stability`.
"""
class _LoggingToolset(WrapperToolset[Any]):
"""Wrap a toolset to log each tool call with timing; applied through ``ToolLoggingCapability``."""

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Experimental note removed here didn't move to ToolLoggingCapability, which is now the module's only public class and is listed as experimental in stability.rst. Could its docstring carry the same note as the other experimental classes?

Lee-W added 3 commits October 22, 2026 10:57
LoggingToolset is no longer exported from airflow.providers.common.ai.toolsets;
tool-call logging stays available through enable_tool_logging and
ToolLoggingCapability. The Experimental notes are removed from the parameters
and classes that graduate to stable, and kept, with the concrete reason, on
datasource_config and data_sources.
Moves managed agent toolsets, per-tool approval, ObjectStorageToolset,
DecisionPolicy, pinned_arguments, llm_sql, llm_file_analysis,
llm_schema_compare and the LangChain hook and bridge to the stable list, and
gives every remaining experimental entry a concrete, checkable reason. Fixes
the stale claim that CI does not run the Strands and ADK adapter tests.
Per-tool approval and min_confidence on a branch option are stable, so their
docstrings no longer call them experimental. The toolset Layering section now
describes ToolLoggingCapability as a capability that wraps the agent's toolset,
the CI notes say Python source or test files to match the selective checks, and
a long note in the llm_schema_compare guide is re-wrapped.
Lee-W added 16 commits October 22, 2026 10:57
The 1.0.0 note says LoggingToolset left the public API, so the Features
bullet for apache#74449 should not list it as exported.
Outside canary runs the job overrides the CI image's packages and installs
the newest framework release inside the exclude-newer window; canary runs
(scheduled, push, manual and canary-labelled PRs) use each framework's own
dependency pins.
1.0.0 is released and still exports LoggingToolset (apache#74449), so the removal note belongs under the next release. Restore LoggingToolset in the 1.0.0 export entry.
Notes for an unreleased version sit directly under the Changelog header; the release manager adds the version heading when cutting the release.
…usion pin as a dependency limit

1.0.0 shipped both parameters as stable, so the stability policy keeps them stable until the next major release. Drop their rows from the Experimental table and the Experimental notes from the operator docs.
@Lee-W
Lee-W force-pushed the common-ai-stability-review branch from dade363 to dccbafc Compare October 22, 2026 03:40

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants