From 99e4ba057491b56b21e2aec25f926d5fb4ddb55c Mon Sep 17 00:00:00 2001 From: marko-kraemer Date: Wed, 30 Jul 2025 16:54:42 +0200 Subject: [PATCH] merge --- backend/agent/api.py | 24 +++++++++---------- .../tools/agent_builder_tools/trigger_tool.py | 1 - backend/agentpress/thread_manager.py | 16 ++++++------- backend/run_agent_background.py | 12 +++++----- .../20250707140000_add_agent_run_metadata.sql | 2 +- backend/triggers/execution_service.py | 12 +++++----- .../[projectId]/thread/[threadId]/page.tsx | 2 +- .../components/agents/agent-builder-chat.tsx | 10 ++++---- .../src/components/agents/agent-preview.tsx | 10 ++++---- .../dashboard/dashboard-content.tsx | 8 +++---- .../components/home/sections/hero-section.tsx | 6 ++--- .../thread/chat-input/chat-input.tsx | 4 ++-- .../react-query/threads/use-agent-run.ts | 4 ++-- frontend/src/lib/api-enhanced.ts | 4 ++-- frontend/src/lib/api.ts | 12 +++++----- 15 files changed, 63 insertions(+), 64 deletions(-) diff --git a/backend/agent/api.py b/backend/agent/api.py index 5e9f5c82..9ecfb761 100644 --- a/backend/agent/api.py +++ b/backend/agent/api.py @@ -46,8 +46,8 @@ REDIS_RESPONSE_LIST_TTL = 3600 * 24 class AgentStartRequest(BaseModel): model_name: Optional[str] = None # Will be set from config.MODEL_TO_USE in the endpoint - llm_enable_thinking: Optional[bool] = False - llm_reasoning_effort: Optional[str] = 'low' + enable_thinking: Optional[bool] = False + reasoning_effort: Optional[str] = 'low' stream: Optional[bool] = True enable_context_manager: Optional[bool] = False agent_id: Optional[str] = None # Custom agent to use @@ -285,7 +285,7 @@ async def start_agent( # Update model_name to use the resolved version model_name = resolved_model - logger.info(f"Starting new agent for thread: {thread_id} with config: model={model_name}, thinking={body.llm_enable_thinking}, effort={body.llm_reasoning_effort}, stream={body.stream}, context_manager={body.enable_context_manager} (Instance: {instance_id})") + logger.info(f"Starting new agent for thread: {thread_id} with config: model={model_name}, thinking={body.enable_thinking}, effort={body.reasoning_effort}, stream={body.stream}, context_manager={body.enable_context_manager} (Instance: {instance_id})") client = await db.client await verify_thread_access(client, thread_id, user_id) @@ -430,8 +430,8 @@ async def start_agent( "agent_version_id": agent_config.get('current_version_id') if agent_config else None, "metadata": { "model_name": model_name, - "llm_enable_thinking": body.llm_enable_thinking, - "llm_reasoning_effort": body.llm_reasoning_effort, + "enable_thinking": body.enable_thinking, + "reasoning_effort": body.reasoning_effort, "enable_context_manager": body.enable_context_manager } }).execute() @@ -455,7 +455,7 @@ async def start_agent( agent_run_id=agent_run_id, thread_id=thread_id, instance_id=instance_id, project_id=project_id, model_name=model_name, # Already resolved above - llm_enable_thinking=body.llm_enable_thinking, llm_reasoning_effort=body.llm_reasoning_effort, + enable_thinking=body.enable_thinking, reasoning_effort=body.reasoning_effort, stream=body.stream, enable_context_manager=body.enable_context_manager, agent_config=agent_config, # Pass agent configuration is_agent_builder=is_agent_builder, @@ -875,8 +875,8 @@ async def generate_and_update_project_name(project_id: str, prompt: str): async def initiate_agent_with_files( prompt: str = Form(...), model_name: Optional[str] = Form(None), # Default to None to use config.MODEL_TO_USE - llm_enable_thinking: Optional[bool] = Form(False), - llm_reasoning_effort: Optional[str] = Form("low"), + enable_thinking: Optional[bool] = Form(False), + reasoning_effort: Optional[str] = Form("low"), stream: Optional[bool] = Form(True), enable_context_manager: Optional[bool] = Form(False), agent_id: Optional[str] = Form(None), # Add agent_id parameter @@ -906,7 +906,7 @@ async def initiate_agent_with_files( logger.info(f"Starting new agent in agent builder mode: {is_agent_builder}, target_agent_id: {target_agent_id}") - logger.info(f"[\033[91mDEBUG\033[0m] Initiating new agent with prompt and {len(files)} files (Instance: {instance_id}), model: {model_name}, llm_enable_thinking: {llm_enable_thinking}") + logger.info(f"[\033[91mDEBUG\033[0m] Initiating new agent with prompt and {len(files)} files (Instance: {instance_id}), model: {model_name}, enable_thinking: {enable_thinking}") client = await db.client account_id = user_id # In Basejump, personal account_id is the same as user_id @@ -1160,8 +1160,8 @@ async def initiate_agent_with_files( "agent_version_id": agent_config.get('current_version_id') if agent_config else None, "metadata": { "model_name": model_name, - "llm_enable_thinking": llm_enable_thinking, - "llm_reasoning_effort": llm_reasoning_effort, + "enable_thinking": enable_thinking, + "reasoning_effort": reasoning_effort, "enable_context_manager": enable_context_manager } }).execute() @@ -1185,7 +1185,7 @@ async def initiate_agent_with_files( agent_run_id=agent_run_id, thread_id=thread_id, instance_id=instance_id, project_id=project_id, model_name=model_name, # Already resolved above - llm_enable_thinking=llm_enable_thinking, llm_reasoning_effort=llm_reasoning_effort, + enable_thinking=enable_thinking, reasoning_effort=reasoning_effort, stream=stream, enable_context_manager=enable_context_manager, agent_config=agent_config, # Pass agent configuration is_agent_builder=is_agent_builder, diff --git a/backend/agent/tools/agent_builder_tools/trigger_tool.py b/backend/agent/tools/agent_builder_tools/trigger_tool.py index ba89cec2..0299b673 100644 --- a/backend/agent/tools/agent_builder_tools/trigger_tool.py +++ b/backend/agent/tools/agent_builder_tools/trigger_tool.py @@ -2,7 +2,6 @@ import json from typing import Optional, Dict, Any, List from agentpress.tool import ToolResult, openapi_schema, xml_schema from agentpress.thread_manager import ThreadManager -from triggers.core import TriggerManager from .base_tool import AgentBuilderBaseTool from utils.logger import logger from datetime import datetime diff --git a/backend/agentpress/thread_manager.py b/backend/agentpress/thread_manager.py index 19232c63..c175ff2a 100644 --- a/backend/agentpress/thread_manager.py +++ b/backend/agentpress/thread_manager.py @@ -257,8 +257,8 @@ class ThreadManager: native_max_auto_continues: int = 25, max_xml_tool_calls: int = 0, include_xml_examples: bool = False, - llm_enable_thinking: Optional[bool] = False, - llm_reasoning_effort: Optional[str] = 'low', + enable_thinking: Optional[bool] = False, + reasoning_effort: Optional[str] = 'low', enable_context_manager: bool = True, generation: Optional[StatefulGenerationClient] = None, ) -> Union[Dict[str, Any], AsyncGenerator]: @@ -278,8 +278,8 @@ class ThreadManager: finish_reason="tool_calls" (0 disables auto-continue) max_xml_tool_calls: Maximum number of XML tool calls to allow (0 = no limit) include_xml_examples: Whether to include XML tool examples in the system prompt - llm_enable_thinking: Whether to enable thinking before making a decision - llm_reasoning_effort: The effort level for reasoning + enable_thinking: Whether to enable thinking before making a decision + reasoning_effort: The effort level for reasoning enable_context_manager: Whether to enable automatic context summarization. Returns: @@ -460,8 +460,8 @@ When using the tools: model_parameters={ "max_tokens": llm_max_tokens, "temperature": llm_temperature, - "llm_enable_thinking": llm_enable_thinking, - "llm_reasoning_effort": llm_reasoning_effort, + "enable_thinking": enable_thinking, + "reasoning_effort": reasoning_effort, "tool_choice": tool_choice, "tools": openapi_tool_schemas, } @@ -475,8 +475,8 @@ When using the tools: tools=openapi_tool_schemas, tool_choice=tool_choice if config.native_tool_calling else "none", stream=stream, - enable_thinking=llm_enable_thinking, - reasoning_effort=llm_reasoning_effort + enable_thinking=enable_thinking, + reasoning_effort=reasoning_effort ) logger.debug("Successfully received raw LLM API response stream/object") diff --git a/backend/run_agent_background.py b/backend/run_agent_background.py index f510ae0f..1bf14051 100644 --- a/backend/run_agent_background.py +++ b/backend/run_agent_background.py @@ -58,8 +58,8 @@ async def run_agent_background( instance_id: str, # Use the global instance ID passed during initialization project_id: str, model_name: str, - llm_enable_thinking: Optional[bool], - llm_reasoning_effort: Optional[str], + enable_thinking: Optional[bool], + reasoning_effort: Optional[str], stream: bool, enable_context_manager: bool, agent_config: Optional[dict] = None, @@ -105,15 +105,15 @@ async def run_agent_background( logger.info(f"Starting background agent run: {agent_run_id} for thread: {thread_id} (Instance: {instance_id})") logger.info({ "model_name": model_name, - "llm_enable_thinking": llm_enable_thinking, - "llm_reasoning_effort": llm_reasoning_effort, + "enable_thinking": enable_thinking, + "reasoning_effort": reasoning_effort, "stream": stream, "enable_context_manager": enable_context_manager, "agent_config": agent_config, "is_agent_builder": is_agent_builder, "target_agent_id": target_agent_id, }) - logger.info(f"🚀 Using model: {model_name} (thinking: {llm_enable_thinking}, llm_reasoning_effort: {llm_reasoning_effort})") + logger.info(f"🚀 Using model: {model_name} (thinking: {enable_thinking}, reasoning_effort: {reasoning_effort})") if agent_config: logger.info(f"Using custom agent: {agent_config.get('name', 'Unknown')}") @@ -176,7 +176,7 @@ async def run_agent_background( agent_gen = run_agent( thread_id=thread_id, project_id=project_id, stream=stream, model_name=model_name, - llm_enable_thinking=llm_enable_thinking, llm_reasoning_effort=llm_reasoning_effort, + enable_thinking=enable_thinking, reasoning_effort=reasoning_effort, enable_context_manager=enable_context_manager, agent_config=agent_config, trace=trace, diff --git a/backend/supabase/migrations/20250707140000_add_agent_run_metadata.sql b/backend/supabase/migrations/20250707140000_add_agent_run_metadata.sql index f6d862f0..00bc06cb 100644 --- a/backend/supabase/migrations/20250707140000_add_agent_run_metadata.sql +++ b/backend/supabase/migrations/20250707140000_add_agent_run_metadata.sql @@ -11,6 +11,6 @@ ALTER TABLE agent_runs ADD COLUMN IF NOT EXISTS metadata JSONB DEFAULT '{}'::jso CREATE INDEX IF NOT EXISTS idx_agent_runs_metadata ON agent_runs USING GIN (metadata); -- Add comment to document the metadata column -COMMENT ON COLUMN agent_runs.metadata IS 'Streaming and configuration parameters for this agent run (model_name, llm_enable_thinking, llm_reasoning_effort, enable_context_manager, etc.)'; +COMMENT ON COLUMN agent_runs.metadata IS 'Streaming and configuration parameters for this agent run (model_name, enable_thinking, reasoning_effort, enable_context_manager, etc.)'; COMMIT; \ No newline at end of file diff --git a/backend/triggers/execution_service.py b/backend/triggers/execution_service.py index 9731b2e3..87dcc33b 100644 --- a/backend/triggers/execution_service.py +++ b/backend/triggers/execution_service.py @@ -295,8 +295,8 @@ class AgentExecutor: "agent_version_id": agent_config.get('current_version_id'), "metadata": { "model_name": model_name, - "llm_enable_thinking": False, - "llm_reasoning_effort": "low", + "enable_thinking": False, + "reasoning_effort": "low", "enable_context_manager": True, "trigger_execution": True, "trigger_variables": trigger_variables @@ -313,8 +313,8 @@ class AgentExecutor: instance_id="trigger_executor", project_id=project_id, model_name=model_name, - llm_enable_thinking=False, - llm_reasoning_effort="low", + enable_thinking=False, + reasoning_effort="low", stream=False, enable_context_manager=True, agent_config=agent_config, @@ -544,8 +544,8 @@ class WorkflowExecutor: instance_id=getattr(config, 'INSTANCE_ID', 'default'), project_id=project_id, model_name=model_name, - llm_enable_thinking=False, - llm_reasoning_effort='medium', + enable_thinking=False, + reasoning_effort='medium', stream=False, enable_context_manager=True, agent_config=agent_config, diff --git a/frontend/src/app/(dashboard)/projects/[projectId]/thread/[threadId]/page.tsx b/frontend/src/app/(dashboard)/projects/[projectId]/thread/[threadId]/page.tsx index 0e353252..c2fa6e4b 100644 --- a/frontend/src/app/(dashboard)/projects/[projectId]/thread/[threadId]/page.tsx +++ b/frontend/src/app/(dashboard)/projects/[projectId]/thread/[threadId]/page.tsx @@ -254,7 +254,7 @@ export default function ThreadPage({ const handleSubmitMessage = useCallback( async ( message: string, - options?: { model_name?: string; llm_enable_thinking?: boolean }, + options?: { model_name?: string; enable_thinking?: boolean }, ) => { if (!message.trim()) return; setIsSending(true); diff --git a/frontend/src/components/agents/agent-builder-chat.tsx b/frontend/src/components/agents/agent-builder-chat.tsx index 37aaca48..610204e5 100644 --- a/frontend/src/components/agents/agent-builder-chat.tsx +++ b/frontend/src/components/agents/agent-builder-chat.tsx @@ -211,8 +211,8 @@ export const AgentBuilderChat = React.memo(function AgentBuilderChat({ message: string, options?: { model_name?: string; - llm_enable_thinking?: boolean; - llm_reasoning_effort?: string; + enable_thinking?: boolean; + reasoning_effort?: string; stream?: boolean; enable_context_manager?: boolean; }, @@ -237,8 +237,8 @@ export const AgentBuilderChat = React.memo(function AgentBuilderChat({ }); if (options?.model_name) agentFormData.append('model_name', options.model_name); - agentFormData.append('llm_enable_thinking', String(options?.llm_enable_thinking ?? false)); - agentFormData.append('llm_reasoning_effort', options?.llm_reasoning_effort ?? 'low'); + agentFormData.append('enable_thinking', String(options?.enable_thinking ?? false)); + agentFormData.append('reasoning_effort', options?.reasoning_effort ?? 'low'); agentFormData.append('stream', String(options?.stream ?? true)); agentFormData.append('enable_context_manager', String(options?.enable_context_manager ?? false)); @@ -283,7 +283,7 @@ export const AgentBuilderChat = React.memo(function AgentBuilderChat({ const handleSubmitMessage = useCallback( async ( message: string, - options?: { model_name?: string; llm_enable_thinking?: boolean; llm_reasoning_effort?: string; enable_context_manager?: boolean }, + options?: { model_name?: string; enable_thinking?: boolean; reasoning_effort?: string; enable_context_manager?: boolean }, ) => { if (!message.trim() || !threadId) return; setIsSubmitting(true); diff --git a/frontend/src/components/agents/agent-preview.tsx b/frontend/src/components/agents/agent-preview.tsx index 5ead4b37..85654666 100644 --- a/frontend/src/components/agents/agent-preview.tsx +++ b/frontend/src/components/agents/agent-preview.tsx @@ -170,8 +170,8 @@ export const AgentPreview = ({ agent, agentMetadata }: AgentPreviewProps) => { message: string, options?: { model_name?: string; - llm_enable_thinking?: boolean; - llm_reasoning_effort?: string; + enable_thinking?: boolean; + reasoning_effort?: string; stream?: boolean; enable_context_manager?: boolean; }, @@ -194,8 +194,8 @@ export const AgentPreview = ({ agent, agentMetadata }: AgentPreviewProps) => { }); if (options?.model_name) formData.append('model_name', options.model_name); - formData.append('llm_enable_thinking', String(options?.llm_enable_thinking ?? false)); - formData.append('llm_reasoning_effort', options?.llm_reasoning_effort ?? 'low'); + formData.append('enable_thinking', String(options?.enable_thinking ?? false)); + formData.append('reasoning_effort', options?.reasoning_effort ?? 'low'); formData.append('stream', String(options?.stream ?? true)); formData.append('enable_context_manager', String(options?.enable_context_manager ?? false)); @@ -253,7 +253,7 @@ export const AgentPreview = ({ agent, agentMetadata }: AgentPreviewProps) => { const handleSubmitMessage = useCallback( async ( message: string, - options?: { model_name?: string; llm_enable_thinking?: boolean }, + options?: { model_name?: string; enable_thinking?: boolean }, ) => { if (!message.trim() || !threadId) return; setIsSubmitting(true); diff --git a/frontend/src/components/dashboard/dashboard-content.tsx b/frontend/src/components/dashboard/dashboard-content.tsx index 7ab04c98..8ae9c517 100644 --- a/frontend/src/components/dashboard/dashboard-content.tsx +++ b/frontend/src/components/dashboard/dashboard-content.tsx @@ -100,8 +100,8 @@ export function DashboardContent() { message: string, options?: { model_name?: string; - llm_enable_thinking?: boolean; - llm_reasoning_effort?: string; + enable_thinking?: boolean; + reasoning_effort?: string; stream?: boolean; enable_context_manager?: boolean; }, @@ -132,8 +132,8 @@ export function DashboardContent() { }); if (options?.model_name) formData.append('model_name', options.model_name); - formData.append('llm_enable_thinking', String(options?.llm_enable_thinking ?? false)); - formData.append('llm_reasoning_effort', options?.llm_reasoning_effort ?? 'low'); + formData.append('enable_thinking', String(options?.enable_thinking ?? false)); + formData.append('reasoning_effort', options?.reasoning_effort ?? 'low'); formData.append('stream', String(options?.stream ?? true)); formData.append('enable_context_manager', String(options?.enable_context_manager ?? false)); diff --git a/frontend/src/components/home/sections/hero-section.tsx b/frontend/src/components/home/sections/hero-section.tsx index 1759792b..de2e9d08 100644 --- a/frontend/src/components/home/sections/hero-section.tsx +++ b/frontend/src/components/home/sections/hero-section.tsx @@ -148,7 +148,7 @@ export function HeroSection() { // Handle ChatInput submission const handleChatInputSubmit = async ( message: string, - options?: { model_name?: string; llm_enable_thinking?: boolean } + options?: { model_name?: string; enable_thinking?: boolean } ) => { if ((!message.trim() && !chatInputRef.current?.getPendingFiles().length) || isSubmitting) return; @@ -180,8 +180,8 @@ export function HeroSection() { }); if (options?.model_name) formData.append('model_name', options.model_name); - formData.append('llm_enable_thinking', String(options?.llm_enable_thinking ?? false)); - formData.append('llm_reasoning_effort', 'low'); + formData.append('enable_thinking', String(options?.enable_thinking ?? false)); + formData.append('reasoning_effort', 'low'); formData.append('stream', 'true'); formData.append('enable_context_manager', 'false'); diff --git a/frontend/src/components/thread/chat-input/chat-input.tsx b/frontend/src/components/thread/chat-input/chat-input.tsx index 69fd0e85..8296693a 100644 --- a/frontend/src/components/thread/chat-input/chat-input.tsx +++ b/frontend/src/components/thread/chat-input/chat-input.tsx @@ -37,7 +37,7 @@ export interface ChatInputHandles { export interface ChatInputProps { onSubmit: ( message: string, - options?: { model_name?: string; llm_enable_thinking?: boolean }, + options?: { model_name?: string; enable_thinking?: boolean }, ) => void; placeholder?: string; loading?: boolean; @@ -280,7 +280,7 @@ export const ChatInput = forwardRef( onSubmit(message, { model_name: baseModelName, - llm_enable_thinking: thinkingEnabled, + enable_thinking: thinkingEnabled, }); if (!isControlled) { diff --git a/frontend/src/hooks/react-query/threads/use-agent-run.ts b/frontend/src/hooks/react-query/threads/use-agent-run.ts index 104a74f4..c09ed9f1 100644 --- a/frontend/src/hooks/react-query/threads/use-agent-run.ts +++ b/frontend/src/hooks/react-query/threads/use-agent-run.ts @@ -21,8 +21,8 @@ export const useStartAgentMutation = () => threadId: string; options?: { model_name?: string; - llm_enable_thinking?: boolean; - llm_reasoning_effort?: string; + enable_thinking?: boolean; + reasoning_effort?: string; stream?: boolean; agent_id?: string; }; diff --git a/frontend/src/lib/api-enhanced.ts b/frontend/src/lib/api-enhanced.ts index 14bef2e2..2e42f6e4 100644 --- a/frontend/src/lib/api-enhanced.ts +++ b/frontend/src/lib/api-enhanced.ts @@ -318,8 +318,8 @@ export const agentApi = { threadId: string, options?: { model_name?: string; - llm_enable_thinking?: boolean; - llm_reasoning_effort?: string; + enable_thinking?: boolean; + reasoning_effort?: string; stream?: boolean; } ): Promise<{ agent_run_id: string } | null> { diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index 64d4a4dc..c8f6a810 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -624,8 +624,8 @@ export const startAgent = async ( threadId: string, options?: { model_name?: string; - llm_enable_thinking?: boolean; - llm_reasoning_effort?: string; + enable_thinking?: boolean; + reasoning_effort?: string; stream?: boolean; agent_id?: string; // Optional again }, @@ -653,8 +653,8 @@ export const startAgent = async ( const defaultOptions = { model_name: 'claude-3-7-sonnet-latest', - llm_enable_thinking: false, - llm_reasoning_effort: 'low', + enable_thinking: false, + reasoning_effort: 'low', stream: true, }; @@ -662,8 +662,8 @@ export const startAgent = async ( const body: any = { model_name: finalOptions.model_name, - llm_enable_thinking: finalOptions.llm_enable_thinking, - llm_reasoning_effort: finalOptions.llm_reasoning_effort, + enable_thinking: finalOptions.enable_thinking, + reasoning_effort: finalOptions.reasoning_effort, stream: finalOptions.stream, };