From 9ac531bdf023530f2921444de90744aebfe48c9b Mon Sep 17 00:00:00 2001 From: yumoqing Date: Thu, 7 May 2026 18:02:33 +0800 Subject: [PATCH] fix: pass user_id from .dspy to reasoning engine, remove hardcoded model - reasoning_submit.dspy: pass user_id from await get_user() to hermes_reason_and_execute - hermes_reason_and_execute: accept user_id parameter - reason_and_execute: accept user_id parameter (removed ServerEnv.get_current_user fallback) - _llm_call: remove hardcoded model=qwen3-max, let llm_chat use default_model from harnessed_agent_config --- harnessed_reasoning/core.py | 19 +++++-------------- wwwroot/api/reasoning_submit.dspy | 3 ++- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/harnessed_reasoning/core.py b/harnessed_reasoning/core.py index 40df9e7..49d5e59 100644 --- a/harnessed_reasoning/core.py +++ b/harnessed_reasoning/core.py @@ -254,18 +254,16 @@ class HermesReasoningEngine: async def _llm_call(self, messages: List[Dict[str, str]], config: Dict[str, Any], **extra) -> Dict[str, Any]: """Call LLM via harnessed_agent's llm_chat.""" - model = config.get('model_name', 'qwen3-max') temperature = float(config.get('temperature', 0.7)) max_tokens = int(config.get('max_output_tokens', 4096)) # Use harnessed_agent's llm_chat if available env = ServerEnv() if hasattr(env, 'llm_chat'): - info(f"Calling llm_chat: model={model}, temp={temperature}, max_tokens={max_tokens}") + info(f"Calling llm_chat: temp={temperature}, max_tokens={max_tokens}") try: result = await env.llm_chat( messages=messages, - model=model, temperature=temperature, max_tokens=max_tokens, **extra, @@ -423,16 +421,9 @@ class HermesReasoningEngine: """ start_time = time.time() session_id = str(uuid.uuid4()) - user_id = "anonymous" - # Try to get real user ID - try: - env = ServerEnv() - if hasattr(env, 'harnessed_get_current_user'): - user_result = await env.harnessed_get_current_user() - user_id = user_result.get('user_id') or 'anonymous' - except Exception: - pass + if not user_id: + user_id = "anonymous" config = await self._get_config(user_id) safety_mode = config.get('safety_mode', 'strict') @@ -740,10 +731,10 @@ def get_harnessed_reasoning_engine(): return _reasoning_instance -async def hermes_reason_and_execute(request: str, execute_immediately: bool = True): +async def hermes_reason_and_execute(request: str, execute_immediately: bool = True, user_id: str = None): """Perform reasoning and optionally execute the plan.""" engine = get_harnessed_reasoning_engine() - return await engine.reason_and_execute(request, execute_immediately=execute_immediately) + return await engine.reason_and_execute(request, execute_immediately=execute_immediately, user_id=user_id) async def hermes_get_reasoning_session(session_id: str): diff --git a/wwwroot/api/reasoning_submit.dspy b/wwwroot/api/reasoning_submit.dspy index 952c585..3818280 100644 --- a/wwwroot/api/reasoning_submit.dspy +++ b/wwwroot/api/reasoning_submit.dspy @@ -16,7 +16,8 @@ try: # Call the reasoning engine from ServerEnv reasoning_result = await hermes_reason_and_execute( request=request_text, - execute_immediately=execute_immediately + execute_immediately=execute_immediately, + user_id=user_id ) if reasoning_result.get('success'):