Repository navigation
[VEPEAGE-000] Session-based procedural skill learning (core of skill-bench-public-repro) - #142
Merged
Merged
Conversation
Implement session-based skill learning, curation, versioned storage and retrieval: the conversation store and session lifecycle, the experience distiller and skill curator, skill history, hybrid skill retrieval with a similarity gate, retrieval logs, database migrations and tests. Core part of 104d601 (branch skill-bench-public-repro), without the evals/skill_bench harness, which stays on that branch.
- release_message_images drops only files rows MIRIX wrote for an image (a managed path or a remote image recorded by address); a row a message referenced by id (database_image_id) is never deleted. - is_managed_image_path requires the scoped layout to sit under the images root, as the legacy layout already did. - delete_organization_by_id clears the session store and skill learning rows (conversation_session/_message, skill_experience, skill_learning_run, retrieval_log, skill_session_feedback) before the cascaded user delete, which otherwise fails on their foreign keys on Postgres. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The evals/skill_bench harness stays on skill-bench-public-repro, so main's configuration no longer refers to it: drop the skill-bench extra, the harness test path and its .gitignore entries. The PG e2e test checks the harness's OpenAPI contract only when the harness is in the checkout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The batch whose curator step edits the long topic's skill (12 long triggers in the call) peaked at ~14.5k tokens, above floor(20,000 x 0.8) - 1,600 = 14,400, so it ended on context_limit and was returned instead of consumed. A 21k window keeps the long session chunked and the curator batching while that step fits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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.
Summary
This PR holds the core MIRIX part of
skill-bench-public-repro(104d601, by nanxingw). Theevals/skill_benchharness (ALFWorld / WebShop, ~143k lines) is left out and stays onskill-bench-public-repro, the frozen reproduction branch its README already points to.New in this PR:
conversation_sessiontracks each session.tasksessions are stored for skill learning and never reach the meta agent.skill_learning_runs.skill_version/skill_object), and leftover experiences feed an experience pool.retrieval_logrow.file_uriparts led to local file reads on the server.Commits
Add session-based procedural skill learning: 104d601 minusevals/skill_bench, byte-identical otherwise, authored by nanxingw.Fix image release scope and organization deletion: fixes found in review.release_message_imagesdeleted anyfilesrow a message referenced by id; it now deletes only image rows MIRIX wrote.is_managed_image_pathdid not require the scoped layout to sit under the images root.delete_organization_by_idfailed on Postgres: the new session and learning tables block the users' cascaded delete through their foreign keys. Addedtests/test_organization_delete_pg.py.Decouple core from the skill_bench harness:skill-benchextra, the harness test path and its.gitignoreentries.Fit the e2e curator batch in its context window: the e2e test's window goes from 20k to 21k. The long topic's edit step now fits, and the long session still chunks and the curator still batches.Tests
pytest(default config): 2970 passed, 52 skipped, 0 failed.scripts/run_pg_integration_tests.sh: all pass (after commit 4 below; before it,tests/test_skill_learning_e2e_pg.py::test_task_sessions_become_retrievable_skillsfailed).requirements-lock.txt.context_limitand is returned instead of consumed.To do before merge
CONTEXT_WINDOWto 21k. The test passes 4/4 in a py3.12 env and in a py3.11 env pinned torequirements-lock.txt._MIGRATION_HINTS);migrate_skill_retrieval_fields.sqlneeds (it nulls every skill vector under an ACCESS EXCLUSIVE lock and is not safe for a rolling deploy);backfill_skill_baseline_versions.pyandreembed_skill_retrieval.py.gemini-embedding-001. Today they get those values with only a warning, which can return zero skills.RETRIEVAL_LOG_ENABLEDis on and stores raw queries for 30 days.auto_dreamafter the upgrade may distill the whole backlog.SKILL_EDIT_BUDGET_*,SKILL_EVOLVE_MAX_CHAINING_STEPS, …) are now ignored silently./memory/addwithsession_tag=taskrequires asession_idand skips meta extraction./memory/retrieve/conversationalways makes a topic-extraction LLM call and returns 422 when there is no text or image.DELETE /memory/procedural/{id}is scoped to the user.skill_listandskill_deletetool signatures changed.Follow-ups (not blocking):
LIKE '%id%'scans in image release.conversation_message.procedural_memory_agent.txt(7 KB to 19.5 KB) and its benchmark-flavoured rules.After this merges, rebase
skill-bench-public-reproonto main so that it carries only the harness.🤖 Generated with Claude Code