This is an automated email from the ASF dual-hosted git repository.
kaxil pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
from bfa2fe02fc1 Account for AgentOperator spend on failed runs and across
retries (#73706)
new 023f859e5a6 Mask secrets in tool results before they reach the model
(#73897)
new 2b806f949b0 Rework common.ai Strands support into a plugin and add
Google ADK (#73898)
new e46d1938619 Add `ObjectStorageToolset` for reading files on object
storage (#73899)
new 35507e99a6e Let HookToolset pin arguments the model must not choose
(#73900)
new 40ed903b6d6 Count and trace tool calls made by native agent frameworks
(#73901)
new 2eb11c14b85 Document running your own Pydantic AI agent, and sandboxes
in other frameworks (#73902)
new d4ba567a390 Tell the model how many rows a Parquet or Avro file holds
(#73925)
The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
providers/common/ai/docs/agent_security.rst | 32 +-
providers/common/ai/docs/frameworks/adk.rst | 109 ++++++
providers/common/ai/docs/frameworks/index.rst | 87 ++++-
.../common/ai/docs/frameworks/pydantic_ai.rst | 78 ++++
providers/common/ai/docs/frameworks/strands.rst | 96 +++--
providers/common/ai/docs/observability.rst | 90 ++++-
providers/common/ai/docs/sandbox/index.rst | 34 ++
providers/common/ai/docs/stability.rst | 22 +-
providers/common/ai/docs/toolsets/hook.rst | 60 ++-
providers/common/ai/docs/toolsets/index.rst | 13 +-
providers/common/ai/docs/toolsets/langchain.rst | 34 +-
.../common/ai/docs/toolsets/object_storage.rst | 124 ++++++
providers/common/ai/provider.yaml | 1 +
.../providers/common/ai/durable/caching_toolset.py | 17 +-
.../common/ai/example_dags/example_adk_agent.py | 105 ++++++
.../example_dags/example_object_storage_toolset.py | 48 +++
.../ai/example_dags/example_pydantic_ai_agent.py | 72 ++++
.../ai/example_dags/example_strands_agent.py | 38 +-
.../airflow/providers/common/ai/operators/agent.py | 13 +-
.../airflow/providers/common/ai/policies/retry.py | 7 +-
.../airflow/providers/common/ai/sandbox/output.py | 6 +-
.../airflow/providers/common/ai/tools/__init__.py | 121 +++---
.../providers/common/ai/tools/_from_toolset.py | 209 +++++++++--
.../src/airflow/providers/common/ai/tools/adk.py | 112 ++++++
.../airflow/providers/common/ai/tools/strands.py | 107 ++++--
.../airflow/providers/common/ai/tools/tracing.py | 192 ++++++++++
.../providers/common/ai/toolsets/__init__.py | 2 +
.../providers/common/ai/toolsets/datafusion.py | 25 +-
.../airflow/providers/common/ai/toolsets/hook.py | 83 ++--
.../common/ai/toolsets/langchain_bridge.py | 158 +++-----
.../providers/common/ai/toolsets/managed_agent.py | 17 +-
.../airflow/providers/common/ai/toolsets/mcp.py | 34 +-
.../providers/common/ai/toolsets/object_storage.py | 383 +++++++++++++++++++
.../providers/common/ai/toolsets/sandbox.py | 118 ++++--
.../airflow/providers/common/ai/toolsets/sql.py | 58 ++-
.../providers/common/ai/utils/file_analysis.py | 123 ++++--
.../airflow/providers/common/ai/utils/masking.py | 120 ++++++
.../providers/common/ai/utils/query_results.py | 7 +-
.../providers/common/ai/utils/tool_definition.py | 13 +-
.../providers/common/ai/utils/tool_metrics.py | 63 ++++
.../providers/common/ai/utils/toolset_base.py | 234 ++++++++++++
.../tests/unit/common/ai/decorators/test_agent.py | 3 +-
.../tests/unit/common/ai/operators/test_agent.py | 99 ++++-
.../unit/common/ai/tools/test__from_toolset.py | 229 +++++++++++-
.../ai/tests/unit/common/ai/tools/test_adk.py | 157 ++++++++
.../ai/tests/unit/common/ai/tools/test_strands.py | 170 +++++++--
.../ai/tests/unit/common/ai/tools/test_tools.py | 94 +++--
.../ai/tests/unit/common/ai/tools/test_tracing.py | 230 ++++++++++++
.../unit/common/ai/toolsets/test_datafusion.py | 16 +-
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 167 ++++++++-
.../common/ai/toolsets/test_langchain_bridge.py | 58 ++-
.../ai/tests/unit/common/ai/toolsets/test_mcp.py | 8 +
.../unit/common/ai/toolsets/test_object_storage.py | 416 +++++++++++++++++++++
.../tests/unit/common/ai/toolsets/test_sandbox.py | 164 +++++++-
.../ai/tests/unit/common/ai/toolsets/test_sql.py | 54 +++
.../unit/common/ai/utils/test_file_analysis.py | 27 +-
.../ai/tests/unit/common/ai/utils/test_masking.py | 117 ++++++
.../unit/common/ai/utils/test_query_results.py | 9 +
.../unit/common/ai/utils/test_tool_definition.py | 21 +-
.../unit/common/ai/utils/test_tool_metrics.py | 179 +++++++++
.../unit/common/ai/utils/test_toolset_base.py | 281 ++++++++++++++
.../in_container/run_provider_yaml_files_check.py | 2 +
.../observability/metrics/metrics_template.yaml | 8 +
63 files changed, 5182 insertions(+), 592 deletions(-)
create mode 100644 providers/common/ai/docs/frameworks/adk.rst
create mode 100644 providers/common/ai/docs/frameworks/pydantic_ai.rst
create mode 100644 providers/common/ai/docs/toolsets/object_storage.rst
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_adk_agent.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_object_storage_toolset.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_pydantic_ai_agent.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/tools/adk.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/tools/tracing.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/toolsets/object_storage.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/utils/masking.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/utils/tool_metrics.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/utils/toolset_base.py
create mode 100644 providers/common/ai/tests/unit/common/ai/tools/test_adk.py
create mode 100644
providers/common/ai/tests/unit/common/ai/tools/test_tracing.py
create mode 100644
providers/common/ai/tests/unit/common/ai/toolsets/test_object_storage.py
create mode 100644
providers/common/ai/tests/unit/common/ai/utils/test_masking.py
create mode 100644
providers/common/ai/tests/unit/common/ai/utils/test_tool_metrics.py
create mode 100644
providers/common/ai/tests/unit/common/ai/utils/test_toolset_base.py