|
| 1 | +# ───────────────────────────────────────────────────────────────────────────── |
| 2 | +# Feature: optional mem0-backed persistent memory (community-contributed) |
| 3 | +# ───────────────────────────────────────────────────────────────────────────── |
| 4 | +# |
| 5 | +# This is NOT a default SkillOpt setting and was NOT used to produce the |
| 6 | +# numbers reported in the paper. It is off unless you turn it on here. |
| 7 | +# |
| 8 | +# IMPORTANT — this feature sends data to a third-party hosted service. |
| 9 | +# Enabling it means skill text and reflection summaries leave your machine. |
| 10 | +# Setting MEM0_API_KEY alone does *nothing*; `mem0_enabled: true` below is the |
| 11 | +# only thing that turns uploading on, and a key set for some other application |
| 12 | +# will never enable it by accident. |
| 13 | +# |
| 14 | +# What it does: |
| 15 | +# - After each evaluation gate, stores the current skill and its score. |
| 16 | +# - After each Reflect stage, stores a summary of the patches produced. |
| 17 | +# - Before each Reflect stage, makes ONE bounded retrieval call and appends |
| 18 | +# the relevant history to that stage's reflection input, so previous runs |
| 19 | +# can inform the patches produced now. |
| 20 | +# |
| 21 | +# When to consider this: |
| 22 | +# - You run the same project repeatedly and want later runs to benefit from |
| 23 | +# what earlier ones discovered. |
| 24 | +# - You are comfortable with the data-handling note above. |
| 25 | +# |
| 26 | +# When NOT to use this: |
| 27 | +# - When reproducing the paper. |
| 28 | +# - When the skill text or trajectories are sensitive. Payloads are redacted |
| 29 | +# (see docs/reference/config.md → "What leaves the machine"), but redaction |
| 30 | +# is a mitigation, not a guarantee about content you know to be private. |
| 31 | +# |
| 32 | +# Install the optional dependency first: |
| 33 | +# pip install 'skillopt[mem0]' |
| 34 | +# |
| 35 | +# Then export your key and use this file: |
| 36 | +# export MEM0_API_KEY=m0-... |
| 37 | +# _base_: ../features/mem0_memory.yaml |
| 38 | +# or copy the `train:` block below into your config. |
| 39 | +# ───────────────────────────────────────────────────────────────────────────── |
| 40 | + |
| 41 | +_base_: ../_base_/default.yaml |
| 42 | + |
| 43 | +train: |
| 44 | + # The master switch. Nothing is uploaded while this is false. |
| 45 | + mem0_enabled: true |
| 46 | + |
| 47 | + # Optional: set the key in config instead of the MEM0_API_KEY env var. |
| 48 | + # Leave empty to use the environment (recommended — keeps keys out of YAML). |
| 49 | + mem0_api_key: "" |
| 50 | + |
| 51 | + # Optional: override the namespace. Default is derived per project as |
| 52 | + # `skillopt:<env>:<sha256-prefix-of-project-root>`, which is stable across |
| 53 | + # runs and distinct across projects. Set this only if you deliberately want |
| 54 | + # several checkouts to share one memory pool. |
| 55 | + mem0_namespace: "" |
| 56 | + |
| 57 | + # Read memory back into reflection. Setting this false keeps the writes but |
| 58 | + # removes the retrieval call — useful for measuring whether retrieval is what |
| 59 | + # actually helps, rather than assuming it does. |
| 60 | + mem0_retrieval_enabled: true |
| 61 | + |
| 62 | + # Records fetched per retrieval. |
| 63 | + mem0_retrieval_limit: 5 |
| 64 | + |
| 65 | + # Hard per-call wall-clock bound. On timeout the step continues unchanged, so |
| 66 | + # an unreachable service costs one bounded pause rather than a stalled run. |
| 67 | + mem0_timeout_seconds: 5.0 |
| 68 | + |
| 69 | + # Cap on any single stored payload, applied AFTER redaction so the limit is |
| 70 | + # measured on exactly the text that would be transmitted. |
| 71 | + mem0_max_chars: 4000 |
0 commit comments