Python: [BREAKING] changed AIFunction to FunctionTool and @ai_function to @tool (#3413)

* changed AIFunction to FunctionTool and @ai_function to @tool

* test and mypy fixes

* mypy fix

* switch function tool to always_require

* fix noop

* fix github copilot imports

* test fixes

* fix ollama test

* fixes for tests

* fix tests

* reverted change to always_require and extended timeout

* fix test
This commit is contained in:
Eduard van Valkenburg
2026-01-28 15:53:53 +01:00
committed by GitHub
Unverified
parent 15b43f2abe
commit a7d924a7d2
255 changed files with 1202 additions and 1290 deletions
@@ -14,13 +14,13 @@ from itertools import chain
from typing import Any, ClassVar, Generic, TypedDict
from agent_framework import (
AIFunction,
BaseChatClient,
ChatMessage,
ChatOptions,
ChatResponse,
ChatResponseUpdate,
Content,
FunctionTool,
Role,
ToolProtocol,
UsageDetails,
@@ -545,13 +545,13 @@ class OllamaChatClient(BaseChatClient[TOllamaChatOptions], Generic[TOllamaChatOp
for tool in tools:
if isinstance(tool, ToolProtocol):
match tool:
case AIFunction():
case FunctionTool():
chat_tools.append(tool.to_json_schema_spec())
case _:
raise ServiceInvalidRequestError(
"Unsupported tool type '"
f"{type(tool).__name__}"
"' for Ollama client. Supported tool types: AIFunction."
"' for Ollama client. Supported tool types: FunctionTool."
)
else:
chat_tools.append(tool if isinstance(tool, dict) else dict(tool))
@@ -11,8 +11,8 @@ from agent_framework import (
ChatResponseUpdate,
Content,
HostedWebSearchTool,
ai_function,
chat_middleware,
tool,
)
from agent_framework.exceptions import (
ServiceInitializationError,
@@ -109,7 +109,7 @@ def mock_chat_completion_tool_call() -> OllamaChatResponse:
)
@ai_function
@tool(approval_mode="never_require")
def hello_world(arg1: str) -> str:
return "Hello World"