返回技能库

记忆搜索

使用语义查询和直接读取文件以获取上下文,从已编入索引的记忆文件中搜索并检索相关信息。

作者:aigentic-net · 最新版本:1.0.0

收藏:2 · 下载:1.2k

说明文档

# Memory Search

You have two tools for recalling information from your memory files. Use them.

## Tools

### `memory_search`

Semantic vector search across your indexed memory files (MEMORY.md, memory/*.md, and session transcripts).

**Parameters:**

| Param | Type | Required | Description |
|---|---|---|---|
| `query` | string | yes | Natural language question or topic to search for |
| `maxResults` | number | no | Max results to return (default: 6) |
| `minScore` | number | no | Minimum relevance score threshold (0-1) |

**Example calls:**

```json
{ "query": "what projects is the human working on" }
{ "query": "preferences about code style", "maxResults": 3 }
{ "query": "important dates birthdays deadlines", "maxResults": 10, "minScore": 0.3 }
```

**Returns:** Array of results, each with:
- `snippet` — the matching text chunk
- `path` — relative file path (e.g. `MEMORY.md`, `memory/2026-02-07.md`)
- `startLine` / `endLine` — line range in the source file
- `score` — relevance score
- `citation` — formatted source reference (in direct chats)

### `memory_get`

Read a specific section of a memory file by path and line range. Use this after `memory_search` to pull more context around a result.

**Parameters:**

| Param | Type | Required | Description |
|---|---|---|---|
| `path` | string | yes | Relative path from workspace (e.g. `MEMORY.md`, `memory/2026-02-07.md`) |
| `from` | number | no | Starting line number |
| `lines` | number | no | Number of lines to read |

**Example calls:**

```json
{ "path": "MEMORY.md" }
{ "path": "memory/2026-02-07.md", "from": 15, "lines": 30 }
```

## When to Use Memory Search

**Always search before answering about:**

- Prior conversations or decisions
- The human's preferences, habits, or opinions
- Dates, deadlines, birthdays, events
- Project status or history
- Anything the human said "remember this" about
- Todos, action items, or commitments
- People, names, relationships

**The pattern is:**

1. Receive a question that might involve past context
2. Call `memory_search` with a relevant query
3. Review the results
4. If a snippet looks promising but needs more context, call `memory_get` with the path and line range
5. Answer using what you found (cite sources in direct chats)

## When NOT to Use

- Purely factual questions with no personal context ("what is Python?")
- The human explicitly gives you all the context you need in the message
- You just searched and the results are still in your context

## Tips

- **Be specific in queries.** "birthday" works better than "important information about the human."
- **Search multiple angles.** If one query returns nothing useful, try rephrasing. "project deadlines" and "what's due soon" might return different results.
- **Don't over-fetch.** Start with default maxResults. Only increase if you need more coverage.
- **Use memory_get sparingly.** The search snippets are usually enough. Only pull full sections when you need surrounding context.
- **Say when you checked.** If you searched and found nothing, tell the human: "I checked my memory and didn't find anything about that." Don't silently guess.

## What Gets Indexed

Your memory search covers:

- `MEMORY.md` — your curated long-term memory
- `memory/*.md` — daily notes and raw logs
- Session transcripts (if enabled)

These files are automatically indexed. You don't need to trigger indexing — just write to the files and the system handles the rest.

## Do NOT

- Do NOT try to run shell commands like `cat` or `ls` to read memory files. Use `memory_search` and `memory_get`.
- Do NOT try to configure or debug the search system. That's operator config, not your job.
- Do NOT assume memory is empty without searching first. The index may have content even if the `memory/` directory looks sparse.