diff --git a/cli.py b/cli.py index 36872bf..48f22b0 100644 --- a/cli.py +++ b/cli.py @@ -6,21 +6,21 @@ It instantiates an Agent and prompts the user for input, which is then passed to the Agent. """ -import os import argparse -from pathlib import Path -import sys import logging +import os +import sys +from pathlib import Path -from rich.console import Console -from rich.panel import Panel from prompt_toolkit import prompt from prompt_toolkit.history import InMemoryHistory +from rich.console import Console +from rich.panel import Panel +from prompts.instruction import INSTRUCTION_PROMPT from tools.agent import Agent -from utils.workspace_manager import WorkspaceManager from utils.llm_client import get_client -from prompts.instruction import INSTRUCTION_PROMPT +from utils.workspace_manager import WorkspaceManager MAX_OUTPUT_TOKENS_PER_TURN = 32768 MAX_TURNS = 200 @@ -115,7 +115,7 @@ def main(): # Initialize LLM client client = get_client( "anthropic-direct", - model_name="claude-3-7-sonnet-20250219", + model_name="claude-sonnet-4-20250514", use_caching=True, ) diff --git a/utils/llm_client.py b/utils/llm_client.py index 8ba5c81..1dab672 100644 --- a/utils/llm_client.py +++ b/utils/llm_client.py @@ -1,12 +1,13 @@ """LLM client for Anthropic models.""" import json +import logging import os import random import time from dataclasses import dataclass from typing import Any, Tuple, cast -from dataclasses_json import DataClassJsonMixin + import anthropic import openai from anthropic import ( @@ -24,10 +25,14 @@ from anthropic._exceptions import ( OverloadedError as AnthropicOverloadedError, # pyright: ignore[reportPrivateImportUsage] ) +from anthropic.types import ( + RedactedThinkingBlock as AnthropicRedactedThinkingBlock, +) from anthropic.types import ( TextBlock as AnthropicTextBlock, +) +from anthropic.types import ( ThinkingBlock as AnthropicThinkingBlock, - RedactedThinkingBlock as AnthropicRedactedThinkingBlock, ) from anthropic.types import ToolParam as AnthropicToolParam from anthropic.types import ( @@ -41,7 +46,7 @@ ToolChoiceToolChoiceAuto, ToolChoiceToolChoiceTool, ) - +from dataclasses_json import DataClassJsonMixin from openai import ( APIConnectionError as OpenAI_APIConnectionError, ) @@ -55,8 +60,6 @@ NOT_GIVEN as OpenAI_NOT_GIVEN, # pyright: ignore[reportPrivateImportUsage] ) -import logging - logging.getLogger("httpx").setLevel(logging.WARNING) @@ -170,7 +173,7 @@ class AnthropicDirectClient(LLMClient): def __init__( self, - model_name="claude-3-7-sonnet-20250219", + model_name="claude-sonnet-4-20250514", max_retries=2, use_caching=True, use_low_qos_server: bool = False,