In particular:
Traceback (most recent call last):
File /Users/alias/Alias/research/openai-agents-python/examples/agent_patterns/litellm.py, line 4, in <module>
from agents import OpenAIChatCompletionsModel,Agent,Runner
File /Users/alias/Alias/research/openai-agents-python/src/agents/__init__.py, line 44, in <module>
from .models.openai_chatcompletions import OpenAIChatCompletionsModel
File /Users/alias/Alias/research/openai-agents-python/src/agents/models/openai_chatcompletions.py, line 57, in <module>
from openai.types.responses.response_usage import InputTokensDetails, OutputTokensDetails
ImportError: cannot import name 'InputTokensDetails' from 'openai.types.responses.response_usage' (/Users/alias/Alias/research/openai-agents-python/env/lib/python3.12/site-packages/openai/types/responses/response_usage.py). Did you mean: 'OutputTokensDetails'?
Signed-off-by: Víctor Mayoral Vilches <v.mayoralv@gmail.com>
This update moves the tool_choice reset logic to a more appropriate location within the RunImpl class, ensuring that the original agent's model_settings remains unmodified during the reset process. The logic now checks for problematic scenarios before creating a modified copy of the agent's settings, maintaining expected behavior across sequential runs. This change enhances clarity and efficiency in handling tool choices.
Addresses previous feedback regarding the modification of the agent instance and improves the overall structure of the reset logic.
This fixes the issue where the original agent's model_settings was being directly modified during the tool choice reset process. The original implementation caused the agent's tool_choice to unintentionally reset to "auto" for subsequent runs, which could be unexpected behavior.
The fix creates new copies of the agent and model settings objects using dataclasses.replace() instead of modifying the original objects. This ensures that the tool choice reset is limited to the current run only, maintaining the expected behavior for sequential runs with the same agent.
Addresses feedback from @baderalfahad about the agent instance being modified when it should maintain its original state between runs.
- Refactor tool_choice reset to target only problematic edge cases
- Replace manual ModelSettings recreation with dataclasses.replace
- Fix line length and error handling lint issues in tests
Fix circular dependency in voice streamed example by renaming agents.py
to my_workflow.py
Fix circular dependency in voice streamed example by renaming agents
#291