mirror of https://github.com/kortix-ai/suna.git
merge
This commit is contained in:
parent
ba455ef5f7
commit
99e4ba0574
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
|
@ -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');
|
||||
|
||||
|
|
|
@ -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<ChatInputHandles, ChatInputProps>(
|
|||
|
||||
onSubmit(message, {
|
||||
model_name: baseModelName,
|
||||
llm_enable_thinking: thinkingEnabled,
|
||||
enable_thinking: thinkingEnabled,
|
||||
});
|
||||
|
||||
if (!isControlled) {
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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> {
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue