diff --git a/nanoclaude/services/worker.py b/nanoclaude/services/worker.py index d694e5c..8d55679 100644 --- a/nanoclaude/services/worker.py +++ b/nanoclaude/services/worker.py @@ -394,10 +394,15 @@ async def run(job: Job) -> None: kst = timezone(timedelta(hours=9)) now_kst = datetime.now(kst).strftime("%Y년 %m월 %d일 %H:%M (%A) KST") reasoner_system = f"{backend_registry.reasoner.system_prompt}\n\n현재 시간: {now_kst} (한국 표준시)" - reasoner_messages = [ - {"role": "system", "content": reasoner_system}, - {"role": "user", "content": rewritten_message}, - ] + + # 대화 이력을 OpenAI messages 형식으로 변환 (현재 user 메시지 포함됨) + history_msgs = conversation_store.get(user_id)[-10:] + reasoner_messages = [{"role": "system", "content": reasoner_system}] + for m in history_msgs: + reasoner_messages.append({"role": m.role, "content": m.content}) + # 현재 메시지가 history 마지막에 없으면 추가 (안전장치) + if not reasoner_messages or reasoner_messages[-1].get("content") != rewritten_message: + reasoner_messages.append({"role": "user", "content": rewritten_message}) try: ok = await _stream_with_cancel(backend_registry.reasoner, rewritten_message, job, collected, messages=reasoner_messages)