记忆

Git as Memory

试用

Git-backed memory policy and CLI workflow for OpenClaw, Hermes, Claude Code, Codex, and other agents. Use when an agent should remember durable user preferen...

它能做什么

Git-backed memory policy and CLI workflow for OpenClaw, Hermes, Claude Code, Codex, and other agents. Use when an agent should remember durable user preferen...

技能文档

Git as Memory

Use git-as-memory as a durable, auditable memory layer for agents. It stores memory in a dedicated Git ref, not in the working tree.

Default ref:

refs/git-as-memory/memory/v1

Supported agents: OpenClaw, Hermes, Claude Code, Codex, or any agent that can run shell commands.

Setup

Prefer gam if installed:

command -v gam

If missing, install one of:

npm install -g git-as-memory
pip install git-as-memory

No global install:

npx git-as-memory --help
python -m git_as_memory.cli --help

All commands require a Git repo. If --repo is omitted, use the current working repo.

Initialize once per repo; it is idempotent:

gam init --repo /path/to/repo

Memory Policy

Write memory only for stable, reusable information.

Write when:

  • The user explicitly says to remember something.
  • A stable user preference appears.
  • A project convention, workflow, or decision is discovered.
  • A recurring bug, workaround, tool behavior, or operational lesson is learned.
  • A session produces a compact conclusion that future agents should reuse.

Do not write:

  • Secrets, API keys, passwords, tokens, cookies, credentials, private auth material.
  • Large raw transcripts or noisy logs.
  • One-off task details with no future value.
  • Unverified guesses unless --type hypothesis.
  • Content that belongs in source files, docs, issues, or tests instead of memory.

Before writing:

  1. Search for related memory first:
    gam search "" --repo /path/to/repo
    
  2. If a related memory exists, update the same stable id.
  3. If not, create a concise new memory.
  4. Always include --source explaining where the memory came from.

After writing, report the memory key:

/

Types

Use a small, consistent type set:

  • entity: user, project, organization, tool, or other entity preference/profile.
  • semantic: durable fact, rule, convention, decision, or technical lesson.
  • episodic: compact summary of a task/session/event.
  • working: short-lived task context that may be deleted later.
  • hypothesis: unverified inference that should be confirmed before acting on strongly.

Id Rules

Use stable kebab-case ids. Prefer names that future agents can guess.

Good:

user-preference-concise-answers
project-release-workflow
openclaw-memory-policy
git-as-memory-storage-layout

Avoid random ids unless there is no stable concept.

Core Commands

Write

gam write "User prefers concise technical answers with concrete commands." \
  --repo /path/to/repo \
  --type entity \
  --id user-preference-concise-answers \
  --tag user \
  --tag preference \
  --source "User corrected the agent for over-explaining and asked for practical output."

Multi-line:

printf '%s\n' "Decision summary..." | gam write --stdin \
  --repo /path/to/repo \
  --type semantic \
  --id project-decision-example \
  --source "Summarized from the current implementation session."

Read

Use read when you know the key:

gam read entity/user-preference-concise-answers --repo /path/to/repo

show is equivalent when using id plus optional type:

gam show user-preference-concise-answers --type entity --repo /path/to/repo

Use search for content lookup:

gam search "release workflow" --repo /path/to/repo
gam search "concise answers" --repo /path/to/repo --json

Search is local substring matching over memory content, tags, metadata, and source text.

Glob

Use glob for memory key lookup, not arbitrary working-tree files. It matches / and bare ids:

gam glob "entity/*" --repo /path/to/repo
gam glob "user-*" --repo /path/to/repo
gam glob "*release*" --repo /path/to/repo

Use --files only for debugging the underlying Git tree:

gam glob "entity/*" --files --repo /path/to/repo

List

gam list --repo /path/to/repo
gam list --repo /path/to/repo --json

History and Audit

gam history user-preference-concise-answers --type entity --repo /path/to/repo

Direct Git inspection:

git -C /path/to/repo log --oneline refs/git-as-memory/memory/v1
git -C /path/to/repo ls-tree -r --name-only refs/git-as-memory/memory/v1

Delete

Prefer soft delete:

gam delete user-preference-concise-answers --type entity --repo /path/to/repo

Use purge only when the user explicitly asks to remove the current visible files:

gam purge user-preference-concise-answers --type entity --repo /path/to/repo

Agent Workflow

When starting a task in a repo:

  1. If memory may matter, run targeted search:
    gam search "" --repo /path/to/repo
    
  2. Read only relevant matches.
  3. Do not bulk-load all memory unless the user asks for an audit.

When a durable lesson appears:

  1. Decide if it meets the write policy.
  2. Search for duplicates.
  3. Write or update one stable memory id.
  4. Report the key and a one-line summary.

When the user asks "what do you remember?":

  1. Use gam list, gam glob, or gam search.
  2. Use gam read for relevant keys.
  3. Include gam history only if provenance or evolution matters.

Output Discipline

After a memory write, respond briefly:

Remembered: entity/user-preference-concise-answers

If you decide not to write memory, say why only when useful:

Not writing memory: this is a one-off task detail.

相关技能

Use when preserving, searching, reviewing, or exporting user-owned agent memory across OpenClaw, Codex, Claude, OpenCode, Hermes, Qoder, Obsidian, and Git. Inputs are local memory/chat stores and handoff summaries; outputs are Obsidian sources, memory indexes, context/profile packs, skill inventorie

8 次安装1 星标

Audit and maintain OpenClaw-style long-term memory. Use for MEMORY.md cleanup, daily-note digestion, duplicate detection, stale-memory review, and promoting...

17 次安装

Scaffold, sanitize, or share an OpenClaw multi-agent memory system with a reusable workspace, memory-lancedb-pro configuration, role prompts, task-board conv...

13 次安装

Inspect, back up, search, export, and update OpenClaw long-term memory stored with MemoryOS. Use when Codex needs to manage MemoryOS memory files for an Open...

24 次安装

Use when you want to set up, maintain, or review a Claude Code style layered memory workflow, including `CLAUDE.md` rules, session memory, durable memory, an...

19 次安装

Give AI agents Remember GitHub issues and PRs. using BlueColumn persistent memory. Use when an agent tracks repos, issues, and pull requests; when the user wants to store, recall, or search github memory context. Requires a BlueColumn API key (bc_live_*).