Adding support for procedural memory, hardens the durable + SDK pipeline, and simplifies the deployment for Release#15
Merged
aayush3011 merged 14 commits intoMay 29, 2026
Conversation
Brings forward the procedural-synthesis feature on top of the post-PR-#13 baseline and applies hygiene cleanup. - Adds synthesize_procedural() on pipeline + processors (sync/async) and the Durable Functions orchestrator. Procedural memory is now produced via this dedicated reflection flow over a user's full history (system- prompt-style), not as a per-turn extraction. - Strips procedural emission from extract_memories: removes the procedural type from the extraction prompt, drops procedural_count from result dicts and docstrings, and trims procedural from _load_existing_memories. - Renames facts_count -> fact_count across pipeline, processors, FA orchestrator docstring, and all tests. - Cosmetic enum rename: supersede_reason value 'contradiction' -> 'contradict' for verb-tense consistency with 'update'. README and Docs/concepts.md updated accordingly. Unit suite: 531 passed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
40fa728 to
e87df99
Compare
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Memory model
synthesize_procedural()flow on pipeline + processors (sync/async)and a
SynthesizeProceduralOrchestratorchained off reconcile in durablemode. Procedural memory is now a per-user reflection over the deduped
fact + episodic-lesson pool, not a per-turn extraction.
proceduraltype fromextract_memories; renamedfacts_count→fact_countend-to-end.UPDATEvsCONTRADICTsemantics in the extraction promptand reconcile path.
Strict prompty schemas
response_formatJSON schema(
additionalProperties: false, all properties required).bodies (overview / decisions / action items; behavioral patterns,
compliance, etc.) so the structured payload is preserved end-to-end.
schema — guards against the drift that caused the earlier "raw JSON
dump" bug.
Pipeline + SDK hygiene
synthesize_proceduralafter reconcile, gated on
PROCEDURAL_SYNTHESIS_AUTO, matching thedurable orchestrator.
SELECT TOP 50 ... ORDER BY salience DESCsoRU + LLM costs stay bounded on hot users.
_mutate_tagsfalls back to the turns container on 404 (parity withupdate_cosmos/delete_cosmos).close()now releases the owned pipeline + processor on both sync andasync clients.
temperatureremoved from every prompty; chat clients hardcode1.0so reasoning-model families (gpt-5.x, o-series) work without
per-prompty overrides.
Infra
SDK-only (resources only) — all BYO variants removed.
chat model.
AI Foundry user role, and Storage Blob/Queue Data Contributor.
azd upprovisions cleanly with no manual post-steps.Tests
schema/prompty conformance, async hygiene, and tag mutation.