diff --git a/offline-backend-20260512/backend/packages/harness/deerflow/knowledge/llm_extractor.py b/offline-backend-20260512/backend/packages/harness/deerflow/knowledge/llm_extractor.py index fb7bbb63..5c86f697 100644 --- a/offline-backend-20260512/backend/packages/harness/deerflow/knowledge/llm_extractor.py +++ b/offline-backend-20260512/backend/packages/harness/deerflow/knowledge/llm_extractor.py @@ -265,11 +265,11 @@ async def extract_thread_llm_multi( raw = response.content if isinstance(response.content, str) else str(response.content) data = _parse_json(raw) except Exception: - logger.exception("Knowledge LLM extraction failed for thread %s; using rule-based fallback", thread_id) + logger.exception("[knowledge] thread %s — LLM extraction call failed; using rule-based fallback", thread_id) return [] if not data: - logger.warning("Knowledge LLM extraction for thread %s returned no parsable JSON; using rule-based fallback", thread_id) + logger.warning("[knowledge] thread %s — LLM returned no parsable JSON; using rule-based fallback", thread_id) return [] note_dicts = _notes_from_data(data) @@ -279,10 +279,10 @@ async def extract_thread_llm_multi( # The model deliberately judged this conversation worthless (greeting, # meta chatter, no findings). Skip ingestion entirely — do NOT fall # back to the rule-based verbatim dump. - logger.info("Knowledge LLM judged thread %s not worth ingesting: %s", thread_id, reason) + logger.warning("[knowledge] thread %s SKIPPED — model judged not worth ingesting: %s", thread_id, reason) raise LLMRejectedIngest(reason or "no knowledge value") logger.warning( - "Knowledge LLM extraction for thread %s produced no notes (should_ingest=%s, reason=%r); using rule-based fallback", + "[knowledge] thread %s — LLM produced no notes (should_ingest=%s, reason=%r); using rule-based fallback", thread_id, data.get("should_ingest"), reason, diff --git a/offline-backend-20260512/backend/packages/harness/deerflow/knowledge/service.py b/offline-backend-20260512/backend/packages/harness/deerflow/knowledge/service.py index ec2453fb..78351be6 100644 --- a/offline-backend-20260512/backend/packages/harness/deerflow/knowledge/service.py +++ b/offline-backend-20260512/backend/packages/harness/deerflow/knowledge/service.py @@ -296,9 +296,9 @@ class KnowledgeService: effective_status = status if llm_fallback: logger.warning( - "Knowledge capture for thread %s fell back to rule-based extraction " - "(LLM distillation produced nothing usable); landing as draft. " - "Check extraction model '%s' / earlier logs for the cause.", + "[knowledge] thread %s — capture fell back to rule-based extraction " + "(LLM distillation produced nothing usable); landing as DRAFT. " + "Check extraction model '%s' / earlier [knowledge] logs for the cause.", thread_id, self.config.extract_model_name or "models[0]", )