Cognee report verification

Type: agentic-system-analyses/types/agentic-system-verification.md

Verification

The reports support a bounded implementation account. No publication blocker was established. One local omission in the shipped skill-feedback inventory remains below. This is not verification of successful operation, factual quality or improvement.

I read all supplied members, their types, the record contract and reconciliation, including every declaration, annotation, source anchor, status and Part of: relation. The four correction-answer inputs are empty; there are no correction arguments to adjudicate. The supplied structural check reports none, so it creates no correction obligation. I independently inspected the frozen source rather than relying on the analysts' validation statements. Checkout HEAD matches the boundary. All source reads and searches described here are SRC-1 implementation or explicitly identified doctrine/design at that revision. No target, test, example or provider was executed.

Runtime and workflow

The ordinary ingestion and recall conclusions hold. The remember wrapper separates session cache storage from its optional background graph bridge, and separates permanent add/cognify from subsequent improve. The typed branches return independently. The cognify task assembly gives code ownership of progression, with optional contradiction and temporal tasks after storage. Recall's no-LLM chunk choice, explicit-type precedence and session-first short circuit support a returning memory computation rather than a universal enclosing agent. These checks support RT-RTE-permanent-memory, RT-RTE-recall-dispatch, RT-RTE-session-improve and MEM-RTE-typed-admission. Source: SRC-1, cognee/api/v1/remember/remember.py, cognee/api/v1/cognify/cognify.py, cognee/api/v1/recall/recall.py, cognee/modules/search/methods/search.py and cognee/modules/data/methods/get_authorized_existing_datasets.py.

Automatic host admission is fail-open and does not govern explicit improve. Improve claims and rerun requests are process-local; its pass bound can leave work pending. The fatal branch requires an errored fatal stage, not merely an unsuccessful per-window cognify result. Independent inspection of the window task confirms the memory report's qualification. Thus RT-CLM-auto-admission, RT-CLM-improve-coordination and reconciliation's distinction between enforcement points are supported; no universal budget, transaction or eventual-processing guarantee follows. Source: SRC-1, cognee/modules/improve/admission.py, cognee/infrastructure/locks/session_lock.py, cognee/api/v1/improve/improve.py, cognee/modules/improve/registry.py and cognee/tasks/memify/cognify_session.py.

For RT-RTE-decorated-agent and RT-BAP-memory-injection, I traced query derivation, recent feedback before graph text, the combined 4,000-character envelope, bare-context selection, wrapper reset and persistence. Only the structured-output gateway automatically prepends the selected text. These are input-supply and cleanup mechanisms, not host-action enforcement or isolation. The gateway and embedding configuration records correctly distinguish dispatch/configuration, external inference parameters and retained vectors; model strings are not immutable weight identities. Source: SRC-1, cognee/modules/agent_memory/runtime.py, cognee/modules/agent_memory/decorator.py, cognee/infrastructure/llm/LLMGateway.py, cognee/infrastructure/llm/config.py and cognee/infrastructure/databases/vector/embeddings/config.py.

I traced the agentic producer/consumer chain from prepared context through AgentStep, dispatch, loop append, terminal fallback and retention. RT-OBJ-agent-step, RT-RTE-agentic-tools and the workflow account preserve the decisive distinctions: nonblank final-answer priority; scope and dataset checks before handler invocation; selected exception classes becoming error text; no sandbox; an extra completion after iterative exhaustion; and best-effort recording only for opened skills. The inherited evidence-append method is indeed a no-op, not a correctness gate. Source: SRC-1, cognee/modules/retrieval/agentic_retriever.py, cognee/modules/tools/execute_tool.py, cognee/modules/retrieval/graph_completion_retriever.py.

WF-RTE-skill-loading is a genuine handler part, not another declaration of the loop. Its 12,000-character body cap precedes the loop's 8,000-character result cap. The memory and workflow annotations correctly qualify RT-BAP-skill-guidance: progressive loading does not guarantee complete delivery. Source: SRC-1, cognee/modules/tools/builtin/load_skill.py and cognee/modules/retrieval/agentic_retriever.py.

Memory and epistemic routes

I checked the object inventory against its consumers rather than treating shared storage as identity. Graph prose, graph IDs/provenance and vector indexes have different functions. Session QA, sanitized traces, feedback evidence and derived guidance are also distinct. Skill metadata, deployed procedure, retained run and candidate proposal are not interchangeable. Their source anchors and passages support these identities and the reports retain backend, provenance and extraction uncertainty. See the memory records, especially MEM-OBJ-graph-structure, MEM-OBJ-session-context and MEM-OBJ-skill-run. Source checks included SRC-1, cognee/tasks/storage/add_data_points.py, cognee/infrastructure/databases/cache/models.py, cognee/infrastructure/session/session_context_builder.py, cognee/modules/engine/models/Skill.py, cognee/modules/tools/ingest_skills.py and cognee/modules/retrieval/skills_retriever.py.

The guidance, promotion and ranking conclusions survive independent tracing. Candidate gating is deterministic after model proposal; exact normalized duplicates link evidence rather than semantically rewrite old guidance. Batch trace extraction selects a capped latest window and stamps its total count, whereas bounded graph promotion drains oldest pending traces. Feedback arithmetic and personal preference state have different bookkeeping and re-rating behavior. Natural-language preference text has a separate consumer from numerical weights. See MEM-RTE-session-guidance, MEM-RTE-trace-promotion, MEM-RTE-ranking-maintenance and both memory authority-path records. Source: SRC-1, cognee/infrastructure/session/session_turn.py, cognee/infrastructure/session/session_context_builder.py, cognee/infrastructure/session/agent_context_extraction.py, cognee/tasks/memify/extract_agent_trace_feedbacks.py, cognee/tasks/memify/apply_feedback_weights.py, cognee/modules/user_preferences/update.py, cognee/modules/graph/cognee_graph/CogneeGraph.py and cognee/modules/retrieval/hybrid/ranking.py.

Distillation does implement a model-mediated acceptance architecture, not just publication under an acceptance-sounding name. I checked gating, curator input, member resolution, failed novelty lookup, writer input, accept filtering, rendering, add/cognify and watermark order. The writer is not given the original QA transcript, and unresolved member IDs disappear. Surviving documents can publish before failed calls cause an exception; rejection and call failure have different retry consequences. These findings support MEM-RTE-session-distillation and all six epistemic distillation route records, from EPI-RTE-lesson-curation through EPI-RTE-distillation-recovery. The proposed and written payloads remain distinct; the rendered document is their retained product. Source: SRC-1, cognee/modules/session_distillation/distill.py and its curator/writer prompt paths cited in those records. Prompt criteria are doctrine/design; Boolean publication control is implementation. Neither establishes a reliable judgment or an observed accepted ampliative proposition.

The conflict and truth findings are appropriately scoped. Contradiction judgment produces filtered retained annotations without vetoing ingestion. Functional-relation recency writes supersession metadata without testing source truth. Truth coordinates control optional ranking; the build's write order and reused-epoch countercase both occur in the implementation. See EPI-RTE-contradiction-check, EPI-RTE-contradiction-annotation, EPI-RTE-temporal-supersession, MEM-RTE-truth-maintenance and EPI-CLM-epoch-recovery. Source: SRC-1, cognee/tasks/graph/detect_contradictions.py, cognee/modules/graph/utils/temporal_conflict_resolver.py, cognee/modules/truth_subspace/build.py and cognee/modules/retrieval/hybrid/ranking.py. The reports do not turn unknown downstream conflict handling into a system-wide absence.

Summary construction and future prelude delivery are linked, but are not current-turn compaction. Dependency-based withdrawal does not establish erasure of every semantic derivative or an inverse numerical update. Those qualifications preserve MEM-RTE-summary-readback and MEM-RTE-memory-withdrawal. Source: SRC-1, cognee/tasks/memify/global_context_index/summarize.py, cognee/tasks/memify/global_context_index/persist.py, cognee/modules/retrieval/utils/global_context.py, cognee/modules/retrieval/graph_completion_retriever.py, cognee/api/v1/forget/forget.py and cognee/modules/session_lifecycle/invalidate_sessions.py.

Reference-answer evaluation really is a separate implemented scoring/reporting route. Direct-LLM and DeepEval consumers receive golden answers; metric persistence is not a procedure-install gate. See MEM-CLM-evaluation-boundary, EPI-OBJ-eval-metrics and EPI-RTE-benchmark-evaluation. Source: SRC-1, cognee/eval_framework/evaluation/direct_llm_eval_adapter.py, cognee/eval_framework/evaluation/deep_eval_adapter.py and cognee/eval_framework/evaluation/run_evaluation_module.py. No supplied results support accuracy or causal benefit.

Proposal-first replacement is supported independently by SRC-1, cognee/modules/memify/skill_improvement.py: selected low-score/error summaries shape a complete draft; a proposal retains old/new text and rationale; caller-requested apply checks target identity and overwrites the deployed procedure without a stale-base test or performance trial. RT-OBJ-skill-proposal and RT-RTE-skill-revision correctly keep representability, requested criticism, actual criticism and beneficial learning separate. Afforded reflection/self-improvement are dispositional findings within the named skill-guided retriever, not observed success. The local omission below prevents broadening this into an account of every shipped evaluator or criticism-producing driver.

I checked both duplicate supersessions. The learning-document records identify the same rendering and retained use; the truth-coordinate records identify the same persisted chunk/centroid state. Supersession preserves their separate epistemic findings. All declared containment relations concern genuine payloads or transformations of the named ingestion, maintenance or tool-loop containers; none substitutes a replacement candidate for its deployed referent. The valid containers need not be superseded. The distillation and skill-loading subroutes have different functions from their containers and authority-path records.

I checked all nine integration dispositions, including fatal-stage versus per-window outcomes, typed returns, dual truncation, profile-specific guidance, different trace windows, epoch consistency, withdrawal and evaluator linkage. They preserve the reports' distinctions rather than choose stronger statuses. No unresolved cross-report contradiction requiring an Unresolved conflict: paragraph was established. Empty evidenced-absence sections are consistent with the reports' explicit partial coverage. All implementation statuses remain source-level wiring; no operation or causal status is promoted by reconciliation.

Omission questions were selected from the frozen top-level tree and producer/consumer dependencies, not just supplied anchors:

  1. Could a shipped caller establish cross-invocation reuse rather than only an API affordance? The Company Brain driver configures persistent roots, distills and has a separate recall-only branch. This supports the boundary's inclusion of shipped callers without proving execution. Source: SRC-1, examples/cookbooks/company_brain/docs_code_conversations/company_brain_demo.py; see boundary.
  2. Could contradiction/supersession metadata imply stronger automatic rejection downstream? Searches across retrieval, graph and task code found the named producers but did not establish a universal consumer policy. The inspected producers still support the local annotation/recency account. No all-retriever abstention or latest-only claim is licensed; the epistemic report already withholds it.
  3. Could another shipped score producer or driver change the skill-revision account? Searches across evaluators, evals, examples, starter-kit and MCP found the local feedback demo described below. It adds a concrete model-feedback producer and automatic apply caller, but not a supplied run, independent reference oracle, post-install trial or subsequent invocation using the revision. It is a local inventory limit, not evidence invalidating the qualified proposal mechanism.

Further optional omission expansion stopped because these challenges have supported dispositions and no identified material contradiction remains undisposed. Frontend, connectors, distributed workers, alternative adapters and retrievers remain available but incompletely traced. Their presence does not defeat the explicitly partial boundary; it prevents whole-system lifecycle, transport-parity, universal authorization and system-complete negative comparisons. The supported conclusions concern the named routes, not every shipped loop.

The additional demo evidence is implementation plus shipped instruction, not observed operation:

feedback = parse_json_answer(answer) score = score_from_feedback(feedback) skill_to_improve = str(feedback["skill_to_improve"]) --- examples/demos/feedback/skill_feedback_loop/skill_feedback_loop_demo.py

await improve_skill( skill_to_improve, dataset=dataset, user=user, proposal_id=proposal_id, apply=True, ) --- examples/demos/feedback/skill_feedback_loop/skill_feedback_loop_demo.py

Use a score from 0.0 to 1.0. Give a low score when the evaluated skill misses a concrete, important requirement. The feedback must name the missing instruction clearly. --- examples/demos/feedback/skill_feedback_loop/skills/skill-feedback-writer/SKILL.md

Blockers

none

Limits

  • The skill-feedback inventory omits a shipped model-feedback driver. RT-RTE-skill-revision leaves score provenance and caller role unresolved; MEM-OBJ-skill-run describes typed caller origins as potentially opaque. SRC-1, examples/demos/feedback/skill_feedback_loop/skill_feedback_loop_demo.py supplies a concrete additional case: it parses an agentic answer's feedback/score, writes a typed SkillRun, obtains a proposal and calls apply automatically. Its examples/demos/feedback/skill_feedback_loop/skills/skill-feedback-writer/SKILL.md explicitly requests missing-instruction feedback. The quotations above establish this local omission. The core proposal/apply and selective-retention findings remain valid, and the reports assert neither absent criticism nor universal human approval. Withhold a complete comparison of shipped score provenance, computational admission and criticism-producing workflows; do not generalize the inspected retriever's neutral default to every shipped caller. This demo alone establishes neither performed content-directed criticism nor successful learning or exercised self-improvement: no execution instance or later revised-skill use is supplied.