Python: Fix sample bugs: incorrect API params, wrong client types, and invalid options (#4983)

* Fix sample bugs: incorrect API params, wrong client types, and invalid options

- typed_options.py: Fix AnthropicClient model->model_id, wrap raw strings in Message objects for get_response(), fix reasoning_effort->reasoning dict, fix budget_tokens minimum (1024), use OpenAIChatClient not FoundryChatClient, remove unused import

- client_reasoning.py: Fix deprecated model_id to model param

- client_with_hosted_mcp.py: Remove invalid store=True kwarg from Agent.run()

- code_defined_skill.py: Fix precision kwarg to use function_invocation_kwargs

- Various other samples: Fix deprecated API usage and incorrect params

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address PR review comments

- client_with_hosted_mcp.py: Fix remaining store=True kwarg on line 68 to use options dict

- client_with_session.py: Change store=True to store=False to match in-memory persistence demo intent

- typed_options.py: Remove non-existent import and model key from docstring example

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* new sample fixes

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Giles Odigwe
2026-03-31 09:58:51 -07:00
committed by GitHub
Unverified
parent 3d09337446
commit 7c2dae8855
13 changed files with 34 additions and 41 deletions
@@ -4,7 +4,7 @@ import asyncio
from typing import Annotated
from agent_framework import Agent, tool
from agent_framework.openai import OpenAIResponsesClient
from agent_framework.openai import OpenAIChatClient
from dotenv import load_dotenv
# Load environment variables from .env file
@@ -81,7 +81,7 @@ async def scenario_max_iterations():
print("Scenario 1: max_iterations — limit LLM roundtrips")
print("=" * 60)
client = OpenAIResponsesClient()
client = OpenAIChatClient()
# 1. Set max_iterations to 3 — the tool loop will run at most 3 roundtrips
# to the model before forcing a text response.
@@ -116,7 +116,7 @@ async def scenario_max_function_calls():
print("Scenario 2: max_function_calls — limit total tool executions")
print("=" * 60)
client = OpenAIResponsesClient()
client = OpenAIChatClient()
# 1. Allow many iterations but cap total function calls to 4.
# If the model requests 3 parallel searches per iteration, after 2
@@ -158,7 +158,7 @@ async def scenario_max_invocations():
print("=" * 60)
agent = Agent(
client=OpenAIResponsesClient(),
client=OpenAIChatClient(),
name="APIAgent",
instructions="Use call_expensive_api when asked to analyze something.",
tools=[call_expensive_api],
@@ -214,7 +214,7 @@ async def scenario_per_agent_tool_limits():
agent_a_lookup = tool(name="lookup", approval_mode="never_require", max_invocations=2)(_do_lookup)
agent_b_lookup = tool(name="lookup", approval_mode="never_require", max_invocations=5)(_do_lookup)
client = OpenAIResponsesClient()
client = OpenAIChatClient()
agent_a = Agent(
client=client,
name="AgentA",
@@ -259,7 +259,7 @@ async def scenario_combined():
print("Scenario 5: Combined — all mechanisms together")
print("=" * 60)
client = OpenAIResponsesClient()
client = OpenAIChatClient()
# 1. Configure the client with both iteration and function call limits.
client.function_invocation_configuration["max_iterations"] = 5 # max 5 LLM roundtrips