From d9fc7c9fdf3eae77ee5b0b40ea05641b24633b06 Mon Sep 17 00:00:00 2001 From: Administrator Date: Mon, 8 Jun 2026 22:55:44 +0800 Subject: [PATCH] =?UTF-8?q?chore(knowledge):=20=E6=B2=89=E6=B7=80=E5=86=B3?= =?UTF-8?q?=E7=AD=96=E6=97=A5=E5=BF=97=E7=BB=9F=E4=B8=80=E5=8A=A0=20[knowl?= =?UTF-8?q?edge]=20=E5=89=8D=E7=BC=80=EF=BC=8C=E8=B7=B3=E8=BF=87=E6=8F=90?= =?UTF-8?q?=E5=88=B0=20WARNING=20=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 便于 docker logs 一条 grep 抓全部捕获决策(跳过/回退/失败): docker logs deerflow-vite-gateway 2>&1 | grep "\[knowledge\]" Co-Authored-By: Claude Opus 4.8 (1M context) --- .../packages/harness/deerflow/knowledge/llm_extractor.py | 8 ++++---- .../packages/harness/deerflow/knowledge/service.py | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) 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]", )