Agent Skillszilliztech/memsearch › memory-config

memory-config

GitHub

用于诊断和配置 MemSearch 记忆行为,支持多平台(Claude Code, Codex等)的设置管理、故障排查及插件路由。

plugins/claude-code/skills/memory-config/SKILL.md zilliztech/memsearch

Trigger Scenarios

MemSearch 配置查询与修改 记忆索引健康检查 模型提供商路由配置 PROJECT.md/USER.md 维护设置

Install

npx skills add zilliztech/memsearch --skill memory-config -g -y
More Options

Non-standard path

npx skills add https://github.com/zilliztech/memsearch/tree/main/plugins/claude-code/skills/memory-config -g -y

Use without installing

npx skills use zilliztech/memsearch@memory-config

指定 Agent (Claude Code)

npx skills add zilliztech/memsearch --skill memory-config -a claude-code -g -y

安装 repo 全部 skill

npx skills add zilliztech/memsearch --all -g -y

预览 repo 内 skill

npx skills add zilliztech/memsearch --list

SKILL.md

Frontmatter
{
    "name": "memory-config",
    "context": "fork",
    "description": "Diagnose and configure MemSearch memory behavior. Use when the user asks about MemSearch configuration, plugin summarization, PROJECT.md\/USER.md maintenance, memory directories, index health, provider routing, prompt files, or migration\/compatibility questions.",
    "allowed-tools": "Bash"
}

You are a MemSearch configuration assistant. This skill manages MemSearch settings only. It is not the host agent's built-in memory/config system.

In diagnostic summaries or final answers, state once that this is MemSearch memory configuration, not the host agent's own memory/config system. Do not prepend that sentence to every progress update or every paragraph.

When this skill is triggered, inspect the user's request text. If there is no concrete request, run a diagnostic. If they ask for a specific setting or change, route the request using the flows below.

Which agent am I running as?

This skill is shared by five agent platforms, but platform-specific details (version-check commands, plugins.<platform>.* keys, native model defaults, restart guidance) live in per-platform reference files. Read ONLY the one file matching your current environment:

  • Claude Code → references/claude-code.md
  • Codex → references/codex.md
  • OpenClaw → references/openclaw.md
  • OpenCode → references/opencode.md
  • DeepSeek Harness → references/dsh.md

If you are unsure which agent you are, check these environment markers: DSH_HOME/~/.dsh → DeepSeek Harness; CODEX_HOME/~/.codex → Codex; ~/.openclaw → OpenClaw; ~/.config/opencode → OpenCode; CLAUDE_PLUGIN_ROOT → Claude Code.

Read that platform file before performing platform-specific diagnosis or configuration. Do not read the other platform files.

Intent Routing

  • Empty request or "check": diagnose current MemSearch setup.
  • "Show/get setting": read the requested resolved/global/project value.
  • "Set/enable/disable/change": choose global vs project scope explicitly; use global config for trusted plugin automation/provider/prompt/endpoint settings and project config only for allowlisted local indexing knobs.
  • "Not capturing/search empty/no memory": troubleshoot files, config, and index health.
  • "Use OpenAI/Gemini/Anthropic/native/model": configure provider routing.
  • "PROJECT.md/USER.md/profile/review": configure advanced maintenance.
  • "skill/distill/extract a skill/memory-to-skill": procedural-memory distillation — enable or tune it here, or use the dedicated memory-to-skill skill to review and install candidates.
  • "Prompt": explain or configure prompt overrides.

Ask the user before enabling external or paid providers, changing output paths, re-indexing, deleting state, or broadening what gets indexed.

Diagnose First

memsearch config list --resolved
memsearch config list --global
memsearch config list --project

Check the shared CLI version before calling the setup healthy:

memsearch --version
uv tool list --show-paths | rg -n 'memsearch|Package|Installed|path'
curl -fsSL https://pypi.org/pypi/memsearch/json \
  | python3 -c 'import json,sys; print(json.load(sys.stdin)["info"]["version"])'

If memsearch is unavailable, try uvx --from memsearch[onnx] memsearch --version.

The MemSearch CLI comes from the PyPI package memsearch. Update with uv tool install -U "memsearch[onnx]" or uv tool upgrade memsearch.

For the host platform's plugin version, update commands, and documentation link, see your platform reference file.

Check memory files:

MDIR="${MEMSEARCH_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)/.memsearch}/memory"
ls -la "$MDIR"
find "$MDIR" -maxdepth 1 -type f -name '*.md' | sort | tail -10
tail -120 "$MDIR/$(date +%Y-%m-%d).md"

Check index health:

memsearch stats
STATE_DIR="${MEMSEARCH_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)/.memsearch}"
test -f "$STATE_DIR/.index-state.json" && cat "$STATE_DIR/.index-state.json"

Background and Compatibility

Some plugin config fields may be missing or empty. That is usually normal:

  • summarize.enabled, advanced maintenance, and task-specific provider/model fields are newer settings.
  • Existing users' TOML files are not rewritten automatically after package/plugin upgrades.
  • Empty strings usually mean "use the built-in or host-native default"; they do not necessarily mean "disabled" or "broken".
  • Missing fields should be interpreted through memsearch config list --resolved, not by reading raw TOML alone.
  • New users who run memsearch config init may see more fields than old users because the template includes newer options.
  • Advanced maintenance is intentionally disabled by default to avoid surprise background model calls.

Configuration Logic

Config is resolved from built-in defaults, global config, project config, env refs like env:OPENAI_API_KEY, and runtime env such as MEMSEARCH_DIR.

Use memsearch config list --resolved for effective behavior, --global for global overrides, and --project for repository-specific overrides.

Since v0.4.11, project-local .memsearch.toml is restricted before it is merged. Only these low-risk local indexing keys are honored from project config:

  • milvus.collection
  • embedding.batch_size
  • chunking.max_chunk_size
  • chunking.overlap_lines
  • indexing.ignore_files
  • indexing.exclude
  • watch.debounce_ms

Index exclusions are opt-in for compatibility. Missing or empty indexing.ignore_files and indexing.exclude keep the old scan-all behavior; new files created by memsearch config init explicitly write ignore_files = [".gitignore"]. Each directory passed to index/watch is its own root, and ignore discovery never walks into parent directories.

Trusted settings are ignored or rejected in project config. Put these in global config (~/.memsearch/config.toml) or pass explicit CLI flags instead:

  • provider/model/API endpoint/API key settings
  • [llm] and [llm.providers.*]
  • [prompts]
  • plugin automation such as plugins.<platform>.project_review.enabled, plugins.<platform>.user_profile.enabled, and plugins.<platform>.memory_to_skill.enabled (see your platform reference file for the exact key prefix).

Default recommendation:

  • Put reusable defaults in global config so users do not repeat setup in every project.
  • Put only allowlisted local indexing overrides in project config.
  • Use global config for named LLM providers, common model choices, plugin enable/disable switches, task intervals, install paths, and shared prompt defaults.
  • If the user wants advanced maintenance enabled for all projects, set the plugin keys globally. The default relative input_dir / output_file values still resolve inside each current project.

Maintenance input_dir and output_file may be relative even when configured globally. They are resolved from the current project directory at runtime, so a global output_file = ".memsearch/PROJECT.md" writes to each project's own .memsearch/PROJECT.md. For custom prompt paths, prefer absolute paths in global config; project prompt paths are not trusted.

Plugin keys

The plugin-specific TOML keys (plugins.<platform>.summarize, plugins.<platform>.project_review, plugins.<platform>.user_profile, plugins.<platform>.memory_to_skill) and the native summarizer/maintenance model defaults are in your platform reference file.

Provider rules

  • provider = "" or native uses the host agent's non-interactive native path (see your platform reference file).
  • Any other provider value is a name that must exist under [llm.providers.<name>].
  • Model resolution order is task-level plugins.<platform>.<task>.model, then named provider model, then built-in default.
  • API keys should be configured as env refs, not pasted into chat.
  • If a raw TOML field is blank, check resolved config before calling it unset or broken.

Common provider examples:

[llm.providers.openai]
type = "openai"
model = "gpt-5-mini"
api_key = "env:OPENAI_API_KEY"

[llm.providers.anthropic]
type = "anthropic"
model = "claude-sonnet-4-6"
api_key = "env:ANTHROPIC_API_KEY"

[llm.providers.gemini]
type = "gemini"
model = "gemini-3-flash-preview"
api_key = "env:GEMINI_API_KEY"

Model guidance:

  • Normal turn summaries can use small/fast models. See your platform reference file for the native summarize default.
  • Advanced maintenance needs better judgment. See your platform reference file for the native maintenance default.
  • For API providers, defaults are openai -> gpt-5-mini, anthropic -> claude-sonnet-4-6, and gemini -> gemini-3-flash-preview.
  • If quality matters more than cost for maintenance, set plugins.<platform>.project_review.model and plugins.<platform>.user_profile.model explicitly.

Advanced maintenance runs after the plugin wakes it, only when enabled, journal input changed, and min_interval_hours elapsed. PROJECT.md and USER.md are maintenance artifacts by default and are not automatically indexed.

If indexing seems silent or search looks stale, check .memsearch/.index-state.json for status, last_error, and failed_files. status: degraded means the scan completed but one or more files failed; status: error means the index run did not complete.

If advanced maintenance or memory_to_skill seems silent, check .memsearch/.maintenance-state.json for <plugin>.<task>.last_error and last_failed_at; background hook errors may not surface in the chat.

Before enabling advanced maintenance, ask which provider to use, whether the default 24-hour interval is acceptable, whether .memsearch/PROJECT.md / .memsearch/USER.md are acceptable output files, and whether the user wants the enablement global. Do not write plugin automation keys with --project; v0.4.11+ project config ignores or rejects them.

Prompt overrides

[prompts]
summarize = ""
project_review = ""
user_profile = ""
memory_to_skill = ""

Empty prompt paths mean use the built-in MemSearch prompts. Custom prompt files may use {{AGENT_NAME}}, {{TASK_NAME}}, {{PROJECT_DIR}}, {{INPUT_DIR}}, and {{OUTPUT_FILE}}; the runner appends existing output, recent journals, and digest automatically.

Applying changes

Use memsearch config set for changes. For trusted keys such as plugins.*, [llm.providers.*], [prompts], embedding.provider, or milvus.uri, set global config by omitting --project. Use --project only for allowlisted local indexing keys. After changing anything, show the command, the resolved value, and whether a new session is needed.

MemSearch TOML changes are read lazily by the CLI and the plugin's capture/maintenance paths, so values such as plugins.<platform>.summarize.*, plugins.<platform>.project_review.*, plugins.<platform>.user_profile.*, [llm.providers.*], [prompts], milvus.*, and embedding.* usually apply on the next capture, recall, index, or maintenance invocation. See your platform reference file for whether a restart is required after plugin/skill/config file changes. In final diagnostic/change summaries, make clear that this is MemSearch memory configuration, not the host agent's own memory/config system.

When useful, remind the user that they can either continue using this memory-config skill for guided configuration, or manually run memsearch config init for global interactive setup, memsearch config init --project for allowlisted project indexing setup, and memsearch config set/get/list for direct CLI changes.

Version History

  • 3ce8001 Current 2026-09-03 06:12

    重构为跨平台单源共享结构,将平台特定细节移至引用文件,增加同步脚本与CI测试,优化CLI自动检测逻辑。

  • 8cec40e 2026-07-24 20:49

Same Skill Collection

plugins/_shared/skills/memory-config/SKILL.md
plugins/_shared/skills/memory-to-skill/SKILL.md
plugins/claude-code/skills/memory-to-skill/SKILL.md
plugins/codex/skills/memory-config/SKILL.md
plugins/codex/skills/memory-to-skill/SKILL.md
plugins/openclaw/skills/memory-config/SKILL.md
plugins/openclaw/skills/memory-to-skill/SKILL.md
plugins/opencode/skills/memory-config/SKILL.md
plugins/opencode/skills/memory-to-skill/SKILL.md
plugins/claude-code/skills/memory-recall/SKILL.md
plugins/codex/skills/memory-recall/SKILL.md
plugins/openclaw/skills/memory-recall/SKILL.md
plugins/opencode/skills/memory-recall/SKILL.md

Metadata

Files
0
Version
3ce8001
Hash
7666fc03
Indexed
2026-07-24 20:49

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-07 07:14
浙ICP备14020137号-1 $お客様$