This commit is contained in:
marko-kraemer 2025-07-30 16:54:42 +02:00
parent ba455ef5f7
commit 99e4ba0574
15 changed files with 63 additions and 64 deletions

View File

@ -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,

View File

@ -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

View File

@ -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")

View File

@ -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,

View File

@ -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;

View File

@ -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,

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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));

View File

@ -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');

View File

@ -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) {

View File

@ -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;
};

View File

@ -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> {

View File

@ -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,
};