LLM-WIKI-MCP synthesis
Type: agentic-system-analyses/types/agentic-system-synthesis.md
Bounded synthesis
From local sources to reusable knowledge
LLM-WIKI-MCP is a local knowledge system with CLI, Python and MCP interfaces. It maintains Markdown pages, indexes them in SQLite, retrieves selected passages and can request answers from an Ollama-compatible model. This account covers the shipped producers, maintenance commands, callers and readers at commit 25efb7631082fa3732723fee08e24d39b43311fa, with an applicability cutoff of 2026-10-15. The evidence is SRC-1 implementation and separately attributed doctrine/design, as registered in the boundary. No target code, tests, examples or provider requests were executed. The account establishes implementation wiring, not successful deployment, observed answers or causal benefit. It uses accepted member records; no frozen-source rereads were needed.
The claimed operating sequence is ingest, preserve provenance, retrieve wiki knowledge and supply local agents with context. Markdown is the authoritative storage substrate for retrieval, not an assurance that its statements are true. Caller bodies, extracted sources, seeds, clipped transcripts, decision entries and structural repairs can all enter pages. Original authorship and source warrant remain unresolved without a deployment corpus. See EPI-CLM-wiki-substrate, MEM-OBJ-wiki and MEM-RTE-transcript-decision.
Admission is operational rather than factual: existing-title checks, overwrite modes and apply flags decide whether writes occur. Starting an import or approving a batch does not establish a human decision accepting every resulting statement. The provenance-aware importer compares source hashes and datestamps before replacement; the one-shot CLI has a separate import path. Provenance stores update metadata, not complete old source payloads or source endorsement. An unchanged source can be skipped even if its separately generated page was deleted. See RT-RTE-knowledge-write and MEM-OBJ-provenance.
Derived sidecar notes distinguish this system from a page-only index. Despite their AI label, their inspected producer counts terms and renders link suggestions in a fixed template, without model inference. Old-note vocabulary can feed later iterations. Notes influence ranking and may supply snippets before any suggested link is promoted into a canonical page. The suggestion label therefore limits editorial status, not retrieval influence; neither semantic acceptance nor better retrieval follows from it. See MEM-OBJ-notes and EPI-RTE-note-template.
From a question to delivered text
The representative workflow is an interactive subject-question /ask in agentic mode. A user supplies the question; code resolves intent, selects evidence tools, ranks page/note matches, expands selected pages and constructs the prompt. The model supplies answer prose, not the next tool choice. The final planner falls back after an unresolved base-function call, so older, richer planner definitions do not establish the active plan. This is sequential local orchestration, not delegated workers or an enclosing autonomous agent runtime. See RT-RTE-agentic-ask and the workflow account.
The first prompt combines shipped answer guidance, operational self-context, recent conversation and selected source/tool evidence. Selection and truncation intervene between collecting evidence and model visibility. Recent-history Markdown takes up to eight turns and cuts historical answers to 900 characters before its section budget applies. A separate history-tool channel can serialize sanitized full rows, including stored prompts, up to 6000 characters before source allocation and whole-pack trimming. The dedicated history budget and history-token estimate consequently do not bound all historical exposure. Tail trimming preferentially loses later source/tool evidence. These are copied prompt contents, not isolated agent frames or automatically dereferenced file pointers. See RT-OBJ-context-pack and RT-CLM-context-budget.
For ordinary subject questions, the configured endpoint receives that prompt. Basic operational questions can instead receive deterministic answers. A dry run stops before synthesis and turn recording, but is not a zero-filesystem-effect guarantee: initialization and configuration access can already write state. A blank normalized model answer triggers expanded retrieval and a separately constructed second prompt, then deterministic fallback if needed. The first pack's estimated-text budget does not govern that second prompt. The tool-call setting is also not a strict total-work bound. See RT-RTE-agentic-ask and RT-CLM-context-budget.
Blankness is an availability check, not a factual evaluator. A nonempty false answer can pass. Generic fallback selects source lines, but a distinct readiness-keyword branch can assert that a project is broadly ready for release without requiring supporting pages. This is an implementation-supported counterexample to treating every fallback as extractive evidence summary, not an observed bad answer. By contrast, the context-window diagnostic explicitly withholds an exact native-model-capacity claim. These local differences prevent a single epistemic verdict. See EPI-RTE-answer-check, EPI-RTE-fallback-compose and EPI-RTE-diagnostic-check.
The API returns an answer dictionary; the shell prints a truthy answer regardless of provider ok or persistence success. A fallback answer can coexist with first-call failure status. Even when the second request supplies the answer, the recorded and exposed prompt remains the first prompt, so debug visibility is not full replay provenance. Delivery, model success, subject resolution and durable recording are separate outcomes. See RT-RTE-agentic-ask and the workflow annotation.
Alternate callers materially change this progression. Release plain ask has a different evidence prompt; direct plain invocation does not itself record, whereas unified dispatch can. One-shot CLI ask uses store retrieval/generation, not the agentic history pack. Store ask accepts model/host/temperature overrides; the release adapter accepts temperature but omits it from its request. MCP dispatch exposes reads, generation, configuration and mutation, but registry membership is not host authorization. The ask nonmutation instruction and code-restricted evidence path are not a product-wide write prohibition; history/config effects remain possible. See RT-RTE-plain-ask, RT-RTE-store-ask, RT-RTE-mcp-dispatch and RT-CLM-ask-nonmutation.
From retained turns to later behavior
The strongest supported experience-reuse contribution is an implemented trace-to-durable-context pathway. Automatic history compaction reduces recorded conversations into retained answer excerpts; a separate recursive-context reader can return that archive. Transcript clipping likewise produces indexed pages available for later retrieval. These qualify as automatic trace-fed memory transformations, independently of whether they improve competence. The unresolved question is whether later behavior actually depends on these reductions and becomes better: no execution or intervention comparison establishes that. See MEM-RTE-history-compaction, MEM-RTE-recursive-context, MEM-RTE-transcript-decision and profile verification.
Live ask history also affects later work directly: prior questions can change follow-up query resolution, and selected answers can enter later prompts as advisory context, not immutable truth. Compression examines at most 500 live rows, appends shortened older answers to the archive and rewrites live history with a recent tail. Older rows outside that selection can disappear without joining the new archive reduction. Exact prompts and full reasons are not preserved by the reduction. The final agentic pack does not automatically read the compressed archive; its explicit recursive-context tool returns memory to a host without establishing subsequent model delivery. CLI session copies separately support history display after persistence failures, not proven model reload. See MEM-OBJ-ask-history, MEM-RTE-history-compaction, MEM-RTE-recursive-context and MEM-RTE-cli-history.
History controls are not comprehensive retention controls. Metrics can independently retain sanitized provider answer/raw-response metadata, including second-pass results, even when history append is disabled, if recording reaches the metrics write. Compaction does not remove those copies. Explicit metrics, usage and self-access tools return recent complete rows; the final pack does not automatically include these diagnostic tools. Thus diagnostic exposure is real wiring, but not normal model-history delivery or exact prompt reconstruction. See MEM-OBJ-runtime-traces.
Maintenance changes future access without establishing factual acceptance. Structural lint and fixture assertions have bounded evaluators; applied repair changes navigation, not source warrant. Delete/rename changes active pages and reindexes, but does not retract sidecars, provenance, historic prompts, metrics or external copies. Tombstones preserve some bytes, not a general rollback. Configuration controls future endpoint, mode and budgets; documentation consolidation concatenates mapped documents and can archive inputs. Neither establishes autonomous self-modification or improvement. See EPI-RTE-structure-check, EPI-RTE-regression-check, MEM-RTE-page-withdrawal, RT-RTE-runtime-config and RT-RTE-docs-consolidate.
Assessment and what would change it
For a local corpus question, the supported capability is selected, budgeted evidence delivery with optional model prose and availability recovery. It is not factual acceptance: the inspected active answer/write paths do not establish an evidence-consuming acceptance decision naming a factual criterion, intended use and scope. For conversational continuity, recent-history routing and prompt reuse are wired, while archive use follows a different exposed route. For forgetting or replay, the independent retention surfaces and first/second-prompt mismatch prevent comprehensive guarantees. These are scenario-relative findings, not product rankings.
Trace-fed memory reuse does not establish improved capacity through criticism of a consumed theory. The accepted runtime does not establish a formulated theory route meeting theory-builder conditions 1–4; arbitrary retained prose and delivery are insufficient to assign those conditions positively. Content-directed criticism and retained iterative revision remain unestablished in the named routes. This is not an absence claim about opaque model reasoning. Operational self-context alone also does not establish reflection's two causal directions. Code autonomously performs selected steps after a request, but that does not establish an autonomous theory builder or self-scheduled system. Self-improvement is independently unestablished: the records do not establish objective-responsive determination of an organizational update followed by later operation causally depending on it. These unresolved properties do not negate the positive memory pathways. See RT-RTE-agentic-ask, RT-RTE-runtime-config, RT-CMP-ollama-model and EPI-RTE-history-reshape.
Paired traces connecting retained artifacts, actual answer-producing requests and later consumers would establish bounded operation and improve replay assessment. A factual evaluator with a consequential acceptance/rejection consumer would change the acceptance account. Separate comparisons varying history, sidecars or budgeting would be needed to attribute benefit to each. Objective-linked update records plus later dependent operation would be needed for exercised self-improvement; outcome evidence would separately establish success. Tracing schema consumers would narrow the instruction-surface uncertainty. None of these missing results is supplied by test source, command history or a successful write.
Limitations
| limitation | affected SRC IDs and record citations | inspected boundary | conclusion prevented | evidence that would resolve it |
|---|---|---|---|---|
| Generated navigation and editable guidance are not exhaustively inventoried; the schema's complete downstream instruction-consumption chain is untraced. This carries the report verifier's declared limit. | SRC-1; MEM-OBJ-wiki, RT-RTE-knowledge-write, integration issues, report-verification limit | TOC and separate editable/default schema bodies in src/llm_wiki_mcp/server.py; not every schema consumer |
Exhaustive instruction-surface and maintenance-route comparisons; automatic final-model schema delivery | Complete schema dispatch, admission and later-consumer tracing, retained in supporting records |
| No paired deployment execution or causal experiment is supplied. | SRC-1; Source register, RT-RTE-agentic-ask, EPI-RTE-regression-check | Frozen implementation, doctrine and unexecuted evaluators; command strings without paired results | Observed answer correctness, successful deployment, latency, activated reliance or causal memory benefit | Inspectable runs with inputs, settings, requests, results and later consumption; controlled comparisons for attribution |
| Provider internals, resolved weights and external host controls remain uninspected; no populated deployment corpus authenticates source warrant or caller identity. | SRC-1; RT-CMP-ollama-model, RT-RTE-mcp-dispatch, MEM-OBJ-wiki | Local adapters, handlers and caller-supplied content surfaces | Provider learning or exact capacity, deployment isolation/privacy, host authorization, per-content human approval and actual corpus reliability | Frozen provider/host contracts and state, identified callers, corpus provenance and deployment evidence |
| Budgets and exposed prompts are path-specific and lossy. | SRC-1; RT-OBJ-context-pack, RT-CLM-context-budget, RT-RTE-plain-ask, RT-RTE-store-ask | First agentic pack, separate second-pass/plain/store builders and first-prompt recording | Universal history cap, native-token guarantee, full evidence delivery or exact reconstruction of the answer-producing request | Captured actual requests with selection/truncation lineage and provider-native capacity checks; recording every answer-producing prompt |
| Withdrawal and compaction affect particular artifacts, not every retained copy; cross-writer freshness and crash recovery are incompletely assessed. | SRC-1; MEM-RTE-page-withdrawal, MEM-RTE-history-compaction, MEM-OBJ-runtime-traces, MEM-OBJ-pages-fts | Active page mutation/reindex, TTL caches, live-history rewrite, archive and separate diagnostic retention | Whole-system forgetting, universal immediate freshness, lossless history or atomic rollback | All-copy lifecycle tracing, cache invalidation coverage and concurrent/crash evidence; explicit cross-artifact withdrawal/recovery mechanisms |
| Some evaluator bodies, document generators, extraction internals and malformed-input alternatives remain unassessed; known local witnesses do not close memory coverage. | SRC-1; EPI-RTE-diagnostic-check, EPI-RTE-regression-check, RT-RTE-knowledge-write, profile verification | Named active answer/write/check/read implementations; additional guidance and accumulated provider state unresolved | System-complete absence of acceptance/evaluation, exhaustive correctness, complete memory-value statistics or complete trace-origin union | Supporting records for the unresolved alternatives, including operative payloads, controls and consumers, followed by independent verification |
| Durable experience reuse is established architecturally, not improved capacity, theory criticism, reflection or exercised self-improvement. | SRC-1; MEM-RTE-history-compaction, MEM-RTE-recursive-context, EPI-RTE-history-reshape, RT-RTE-runtime-config | Automatic reductions, later context returns, history reuse and caller-selected configuration | Improvement attribution or conflation of trace-fed updates with independently unestablished theory-builder, reflective or autonomous properties | Property-specific records of content dependence, criticism/revision/iteration, bidirectional self-representation, and objective-linked updates with later causal dependence and outcome evidence |