EXIA SEED report verification
Type: agentic-system-analyses/types/agentic-system-verification.md
Verification
The reports support a bounded implementation account. I independently traced the source producers, checks, writers and consumers rather than treating the analysts' validation statements as semantic verification. The frozen checkout's HEAD equals the reviewed revision and its working tree is clean. The boundary and Source register remain consistent with the inspected artifact: EXIA SEED includes its shipped callers and evaluators, while the enclosing Hermès implementation and deployment state are not supplied. Source inspection supplies implementation and prompt doctrine, not observed operation or causal benefit. No target, test, example or model service was executed.
The supplied structural check has no findings, and all four correction-answer inputs are empty. There are therefore no structural failures to route or correction arguments to accept by default. I checked all declared records and their supporting anchors, the ledger's function/status distinctions, annotations, containment relations and reconciliation amendments. The dispositions below cover the records by mechanism.
Admission, progression and recovery
RT-RTE-conversation-ingest, RT-RTE-register-admission, RT-RTE-page-consolidation and the workflow account agree with SRC-1 plugin/exia_seed/__init__.py, plugin/exia_seed/ingestion.py, plugin/exia_seed/registre.py, plugin/exia_seed/consolidation.py, plugin/exia_seed/outils/consolider.py and plugin/exia_seed_consolider.sh. I traced initialization through capture, batch closure, thread/subprocess launch, nonblocking consolidation lock, source assembly, fragment checks, page writes and progress journals. The workflow is connected in code and its delivery endpoint is correctly restricted to the plugin's return, not a successful assistant answer.
The primary-context gate covers raw capture, not register admission. Explicit/native notes are reachable in other initialized contexts and become non-agent sources. Secret masking/rejection belongs to guarded callers, not every filesystem or register write. The first raw lot, appended notes and catalogues prevent treating the source budget as a hard total-message ceiling. JSON failure returns before progress advancement; a parsed response can advance all selected inputs despite rejection. Page writes precede later derived-state and Git operations. Timeout, zero CLI exit and partial completion therefore do not establish transactional success or successful recovery. These qualifications are already present and need no correction.
RT-CMP-consolidation-model and RT-CMP-benchmark-model correctly separate external distributed-parametric services from local symbolic state. SRC-1 plugin/exia_seed/consolidation.py and banc/locomo/modele.py support explicit message calls, mutable configured model identities, no adapter-side parameter update and a distinct symbolic factice branch. They do not establish provider internals or exact weight identity.
Checks and retained objects
RT-CLM-citation-control, EPI-RTE-fragment-check and EPI-RTE-time-check match the actual checker/caller ordering in SRC-1 plugin/exia_seed/consolidation.py, plugin/exia_seed/temps.py and plugin/exia_seed/langues/en.py. I checked both rejection and passing branches. Invalid members of a mixed reference list are ignored when collecting valid support but remain serialized; a user citation need not confirm the particular assistant assertion. The constructed lowercase hiking example satisfies the actual token, source and non-agent tests while reversing the source's preference. This is a supported static counterexample, not an observed model output. The calendar example, same-day shortcut and English weekday alternatives also follow the inspected predicates. The reports correctly bound derivation to calendar eligibility rather than event truth.
I checked MEM-OBJ-raw, MEM-OBJ-registre, MEM-OBJ-page-facts, MEM-OBJ-page-metadata, MEM-OBJ-summary, MEM-OBJ-keywords, MEM-OBJ-thesaurus, MEM-OBJ-graphe and MEM-OBJ-journals against SRC-1 plugin/exia_seed/ingestion.py, plugin/exia_seed/registre.py, plugin/exia_seed/pages.py, plugin/exia_seed/consolidation.py, plugin/exia_seed/fiches.py, plugin/exia_seed/graphe.py, plugin/exia_seed/rappel.py and plugin/exia_seed/requete.py. Their distinctions between prose, parsed controls, derived selectors and access/audit state are supported. Initial arbitrary store provenance remains unresolved without obscuring known subsequent transformations. The deterministic learned lexical field really reaches later retrieval; its existence does not demonstrate improved capacity.
The epistemic object inventory is compatible: EPI-OBJ-sources is the assembled source-map input, EPI-OBJ-fragments contains page prose and controls, EPI-OBJ-summaries and EPI-OBJ-keywords identify the separately checked header products, and EPI-OBJ-concepts spans retrieval vocabulary and graph evidence. These descriptions do not turn association evidence or proposed confidence into truth warrant.
RT-RTE-state-maintenance and EPI-RTE-summary-proposal, EPI-RTE-summary-check, EPI-RTE-summary-write are supported by SRC-1 plugin/exia_seed/fiches.py and the four maintenance tools under plugin/exia_seed/outils/. Proposal, lexical veto and write-mode disposition have distinct endpoints. The model's excerpt stops at an oversized fact; the checker uses full-page lexical material. Separate keyword filtering and preservation of old values are correctly described. The source claims in EPI-CLM-summary-grounding and EPI-CLM-cited-memory occur in SRC-1 plugin/exia_seed/fiches.py and README.md; the reports do not affirm their strongest semantic or replay interpretations.
Read-back, authority and withdrawal
I traced RT-RTE-memory-delivery, RT-BAP-recalled-content and MEM-CMP-memoire through SRC-1 plugin/exia_seed/__init__.py, plugin/exia_seed/rappel.py, plugin/exia_seed/requete.py, plugin/exia_seed/graphe.py and plugin/exia_seed/creux.py. Cache invalidation uses graph-edge mtime. Sparse numerical arrays represent localized graph edges, not learned dense parameters. Phase 1's empty automatic return does not disable explicit tools. Phase 2 adds summaries and pointers after generic fact selection, so the generic budget is not a universal output cap. The compression hook writes a marker, not a replacement context checkpoint.
For the consequential temporal claims I inspected alternate consumers, not only the guarded automatic branch. Search and its trails exclude future utterances, but page-read neighboring proof recovery and newest-neighbor fallback lack that predicate. Those branches can consume ordinary graph neighbors constructed from admitted pages; no malformed API input is needed to reach them. Actual affected deployment content is not established. Expired prospective exclusion belongs to automatic recall, and summaries are not independently historical-time filtered. No privacy authorization predicate appears in these inspected consumers. The reports preserve these differences rather than claiming global safety.
EPI-RTE-withdrawal-read correctly follows withdrawn references through graph reconstruction: raw-reference exclusion does not prevent appending the page fact. Source-admission filtering, graph-evidence changes and continued fact availability are compatible. Procedural content can reach a later model despite the delivery header's data label, but delivery alone establishes neither compliance, learning, content-directed theory criticism nor exercised self-improvement. The reports keep those conclusions independent.
Evaluation and selected omission searches
RT-RTE-benchmark-replay, EPI-OBJ-evaluations and EPI-RTE-lme-judging match SRC-1 banc/locomo/preparer.py, banc/locomo/repondre.py, banc/locomo/juger.py, banc/locomo/modele.py, banc/longmemeval/juger_lme.py, banc/longmemeval/lancer.sh, banc/nexa/reconsolider.py and banc/modeles/consolider.py. Reference-answer judging is distinct from production admission. LoCoMo majority/abstention handling and LongMemEval's type-specific rubric and substring parser support the bounded evaluation account. Separate plugin-copy imports, persisted caches and disposable-container mounts do not establish frozen-plugin performance or deployment of a winner.
Omission questions were selected from the tracked tree and producer/consumer dependencies: could another shipped writer bypass admission or cache refresh; could another reader defeat the claimed temporal/budget scope; could a benchmark-only state constructor or numerical representation change the production-memory characterization? The maintenance tools, native-note callback, page trails, summary consumer and sparse engine resolve the first two questions as already-qualified findings. Additional SRC-1 inspection of banc/locomo/fusionner.py and banc/locomo/embeddings.py resolves the last as a local benchmark-inventory omission, not a contradiction of the production mechanism. Fusion combines same-named pages, distinguishes configured speaker homonyms and rewrites source namespaces; the embedding baseline is a separate parametric selector. Minimum implementation passages are:
q.sections[cle].extend(p.sections[cle])
---
banc/locomo/fusionner.pymodele = SentenceTransformer("BAAI/bge-m3", device="cpu") ---
banc/locomo/embeddings.py
The reports explicitly leave baseline/fusion detail incomplete, so they neither imply a system-wide absence of embeddings nor claim complete benchmark route equivalence. The remaining inventory limit is retained below. Further optional omission search stopped because selected material challenges have supported dispositions and no identified challenge requires changing a central emitted conclusion. Remaining diagnostics, full French-language equivalence and model/provider internals are not evidenced absences.
Reconciliation and status dispositions
The reconciliation correctly supersedes the duplicate summary and keyword objects without changing their assessments. The fragment container remains valid alongside its declared prose/control parts; the concept container spans several distinct memory objects and cannot be replaced by just the thesaurus or graph. The source-map object is not identical to either durable input store. The benchmark evaluation object is not production audit state. No additional identity supersession is warranted.
The two check routes are genuine parts of page consolidation. LongMemEval judging is a specialization within the runtime's broader benchmark family. Summary subroutes span both consolidation and maintenance, and withdrawal processing spans source and read-back responsibilities, so neither has an artificial single parent. All declared Part of: relations are substantively supported. No missing required part or unresolved inter-report conflict was found. Doctrine-versus-implementation mismatches are correctly retained as claim comparisons, not fabricated analyst disagreements. The wired/implemented statuses describe inspected capacities; uninspected operation and causal evidence remain separate. No record claims an evidenced absence requiring an additional negative search.
Blockers
none
Limits
- The benchmark memory inventory remains partial: RT-RTE-benchmark-replay, MEM-OBJ-graphe, MEM-OBJ-thesaurus and EPI-OBJ-concepts do not separately inventory the fusion transformation or embedding-baseline component. SRC-1
banc/locomo/fusionner.pyandbanc/locomo/embeddings.pyestablish additional benchmark state construction and selection, as inspected above. Withhold exhaustive benchmark object/lineage/selector comparisons and any extension of the production non-embedding characterization to every shipped evaluator. This does not alter the supported production admission/read-back account or establish any benchmark outcome.