Lee-W commented on code in PR #74694:
URL: https://github.com/apache/airflow/pull/74694#discussion_r4269342602
##########
providers/common/ai/docs/stability.rst:
##########
@@ -113,77 +220,69 @@ Everything this provider ships that is not in the table
above is experimental.
- Why it is experimental
* -
:class:`~airflow.providers.common.ai.policies.retry.ClassifierRetryPolicy`
(:doc:`decision_models`)
- - The confidence threshold, the fallback order and the behaviour when the
classifier
- is unavailable are still settling.
- * - :class:`~airflow.providers.common.ai.policies.decision.DecisionPolicy`,
and
- ``min_confidence`` on
- :class:`~airflow.providers.common.ai.policies.decision.BranchOption`
- (:doc:`approval_gates`)
- - New. The threshold semantics and the recorded decision may change as
they are
- used.
+ - It reads a decision model, and the ``typesafe:`` and ``system-one:``
prefixes need
+ ``pydantic-ai-slim`` 2.45 and 2.53, newer than the 2.33 floor of the
provider's
+ other extras.
* - ``@task.llm_batch`` and batch adapters (:doc:`operators/llm_batch`)
- - Submission, re-attachment on retry, cancellation and handling of
partial results
- are still settling, and ``BatchAdapter`` has no implementation outside
this
- provider yet.
+ - ``BatchAdapter`` has two implementations, OpenAI and Anthropic, both in
this
+ provider and none outside it.
* - ``durable=True`` on ``AgentOperator`` (:doc:`durable_execution`)
- - Which tool results are replayed on retry will change, so that a tool
can declare
- whether its result may be reused.
- * - Per-tool approval on ``AgentOperator`` (``tool_approval_timeout``,
- ``on_tool_approval_timeout`` and ``tool_approval_assigned_users``;
- :doc:`tool_approval`)
- - New, and needs Airflow 3.3. How a paused run resumes may change.
- * - Code mode (:doc:`code_mode`), the Agent Skills toolset
- (:doc:`toolsets/skills`) and the ``shields`` extra (used in
:doc:`capabilities`)
- - Thin integrations of packages outside this provider whose APIs are still
- changing: ``pydantic-ai-harness``, ``pydantic-ai-skills`` and
- ``pydantic-ai-shields``.
+ - Only ``ManagedAgentToolset`` can declare, through ``replayable``, that
its results
+ must not be replayed. For every other tool a cached result is replayed
on retry, and
+ a tool has no way to declare that its result must not be reused.
+ * - Code mode (:doc:`code_mode`)
+ - It depends on ``pydantic-ai-harness``, which is pre-1.0; the
``code-mode`` extra asks
+ for 0.24.0 or later.
+ * - The Agent Skills toolset (:doc:`toolsets/skills`)
+ - The ``skills`` extra is built on ``pydantic-ai-skills``. Native
progressive
+ disclosure is tracked upstream in
+ `pydantic/pydantic-ai#5230
<https://github.com/pydantic/pydantic-ai/issues/5230>`__,
+ and the extra is to be revisited once that lands.
+ * - The ``shields`` extra (used in :doc:`capabilities`)
+ - It depends on ``pydantic-ai-shields``, which is pre-1.0 (the extra asks
for 0.3.4 or
+ later), and this provider has no test of it.
* - :class:`~airflow.providers.common.ai.toolsets.sandbox.SandboxToolset`
and its
backends (:doc:`sandbox/index`)
- - The sandbox runtime belongs to the backend; ownership and cleanup
across worker
- failures are still being designed.
- * - LangChain and LlamaIndex hooks and the LangChain tool bridge
- (:doc:`hooks/langchain`, :doc:`toolsets/langchain`,
:doc:`hooks/llamaindex`)
- - Each follows the API of a framework that changes often.
+ - A worker killed outright skips teardown. The ``sbx`` backend has no
server-side
+ lifetime, so its microVM and workspace survive and nothing reclaims them
+ (:doc:`sandbox/backends`).
+ * - The LlamaIndex hook (:doc:`hooks/llamaindex`)
+ - It depends on ``llama-index-core``, which is pre-1.0; the
``llamaindex`` extra asks
+ for 0.14.5 or later.
* - The retrieval operators: ``DocumentLoaderOperator``,
``LlamaIndexEmbeddingOperator`` and ``LlamaIndexRetrievalOperator``
(:doc:`rag_pipelines`)
- - New. The shape of the pipeline, from loading documents through
embedding to
- retrieval, has not settled.
+ - The two LlamaIndex operators depend on ``llama-index-core``, which is
pre-1.0.
+ ``DocumentLoaderOperator`` needs no AI framework; whether it belongs in
this provider's
+ stable surface is an open decision, not a technical reason.
* -
:class:`~airflow.providers.common.ai.toolsets.datafusion.DataFusionToolset`
(:doc:`toolsets/datafusion`)
- Runs on the DataFusion engine of ``common.sql``, which pins
``datafusion`` below 52
- and follows its API.
- * - Managed agent toolsets (:doc:`toolsets/managed_agent`)
- - A contract for vendor providers that no vendor implements yet.
+ because the DataFusion 52 crate is not supported with ``iceberg-core``.
+ * - ``datasource_config`` on ``@task.llm_sql`` and ``data_sources`` on
+ ``@task.llm_schema_compare`` (:doc:`operators/llm_sql`,
+ :doc:`operators/llm_schema_compare`)
+ - They read object storage, or any source whose connection is not a
``DbApiHook``,
+ through the DataFusion engine of ``common.sql``, which pins
+ ``datafusion`` below 52 because the DataFusion 52 crate is not
supported with
+ ``iceberg-core``.
* - OpenTelemetry spans (``[common.ai] otel_export_enabled`` and
``capture_content``; :doc:`observability`)
- - Span names and attributes come from Pydantic AI's instrumentation and
the
- OpenTelemetry GenAI conventions, which are still in development.
- * - :class:`~airflow.providers.common.ai.toolsets.logging.LoggingToolset`
used directly
- (:doc:`toolsets/logging`)
- - The wrapper ``AgentOperator`` applies for ``enable_tool_logging``; its
constructor
- may change.
- * - ``@task.llm_schema_compare``, ``@task.llm_file_analysis`` and
``@task.llm_sql``
- (:doc:`operators/llm_schema_compare`,
:doc:`operators/llm_file_analysis`,
- :doc:`operators/llm_sql`)
- - Each adds its own input handling to ``@task.llm``: schema
introspection, file
- sampling, or SQL validation. Their options are still settling.
+ - Span names and attributes come from Pydantic AI's instrumentation,
which follows the
+ OpenTelemetry GenAI semantic conventions. This provider only turns it
on, so it does
Review Comment:
That row is gone with the rebase
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]