---
summary: "阻止子代理可能调用的具体召回工具,以及内置内存、LanceDB 和无损爪的每个提供商设置。"
read_when:
- "您正在选择主动记忆可以调用哪些回忆工具"
- "您正在将活动内存连接到特定的内存提供商"
title: "记忆工具"
---
## 记忆工具
`config.toolsAllow` 设置阻塞子代理可能调用高级活动内存的具体工具名称。 Active Memory 按以下顺序选择工具:
1. A 有效的、非空的显式 `config.toolsAllow` 列表。
2. 所选内存提供商的 `recallToolNames` 能力。
3. 内置后备如下所示。
| 内存提供商 | 默认`toolsAllow` |
| --------------- | --------------------------------- |
| 内置内存 | `["memory_search", "memory_get"]` |
| LanceDB | `["memory_recall"]` |
内存核心声明为 `["memory_search", "memory_get"]`。自定义内存提供者可以注册自己的具体深度调用工具,并通过 `recallToolNames` 声明相同的名称。
`toolsAllow` 是限制,而不是权限授予。在开始调用之前,Active Memory 会通过父代理的最终工具策略过滤这些名称。插件可以注册父代理所选配置文件排除的工具。使用显式 `tools.alsoAllow` 条目来扩展限制性配置文件,如 [Lossless Claw 示例 ](/concepts/active-memory/memory-tools#lossless-claw) 中所示。这些赠款还使父代理能够访问指定的工具;它们不是仅限回忆的权限。显式拒绝和提供者、代理和沙箱限制仍然适用,并且在父轮的工具权限过期后,召回无法继续。如果仅允许某些已配置的工具,则调用仍然可以使用较小的集合运行。例如,即使排除无损爪工具,`memory_search` 也可能仍然可用。
如果没有任何已配置的工具可用,或者子代理运行失败,active memory 会跳过该轮的召回,主回复会在没有记忆上下文的情况下继续。对于自定义召回工具,只要面向模型可见的工具输出非空,就会被视为召回证据,除非结构化结果字段明确报告结果为空或失败。
`toolsAllow` 只接受具体的记忆工具名称:通配符、`group:*` 条目,以及核心代理工具(`read`、`exec`、`message`、`web_search` 以及类似工具)都会在隐藏子代理启动前被静默过滤掉。
### 内置存储器
无需显式设置 `toolsAllow`:
```json5
{
plugins: {
entries: {
"active-memory": {
enabled: true,
config: {
agents: ["main"],
// Default: ["memory_search", "memory_get"]
},
},
},
},
}
```
### LanceDB 内存
[安装并配置LanceDB](/plugins/memory-lancedb)后,Active Memory自动使用`memory_recall`;不需要显式的 `toolsAllow`:
```json5
{
plugins: {
entries: {
"active-memory": {
enabled: true,
config: {
agents: ["main"],
promptAppend: "Use memory_recall for long-term user preferences, past decisions, and previously discussed topics. If recall finds nothing useful, return NONE.",
},
},
},
},
}
```
这是 LanceDB 自身已存储记忆的高级 Active Memory 路径。 `memory.search.rememberAcrossConversations` 不会通过 `memory_recall` 暴露私有会话转录。当 LanceDB 是活动记忆提供方时,请使用 LanceDB 的自动召回或上面的高级配置。
### 无损爪
[Lossless Claw](https://github.com/martian-engineering/lossless-claw) 是一个外部上下文引擎插件 (`openclaw plugins install @martian-engineering/lossless-claw`),具有自己的召回工具。首先将其设置为上下文引擎;请参见 [ 上下文引擎](/concepts/context-engine)。然后将其召回工具授予父代理并将 Active Memory 指向它们。此示例将 `main` 代理保留在限制性 `coding` 配置文件上,并通过 `agents.entries.main.tools.alsoAllow` 仅添加三个命名的 Lossless Claw 工具。将这些条目合并到该代理的现有工具配置中。保留您选择的个人资料以及任何其他所需的授予和拒绝。此示例假设代理作用域未同时定义 `tools.allow`:`allow` 和 `alsoAllow` 不能在同一作用域中组合。较新的白名单无法恢复配置文件排除的工具。在调整现有分层白名单之前,请参阅 [ 工具策略](/gateway/config-tools):
```json5
{
agents: {
entries: {
main: {
tools: {
profile: "coding",
alsoAllow: ["lcm_grep", "lcm_describe", "lcm_expand_query"],
},
},
},
},
plugins: {
slots: {
contextEngine: "lossless-claw",
},
entries: {
"lossless-claw": {
enabled: true,
},
"active-memory": {
enabled: true,
config: {
agents: ["main"],
toolsAllow: ["memory_search", "lcm_grep", "lcm_describe", "lcm_expand_query"],
promptAppend: "Use lcm_grep first for compacted conversation recall. Use lcm_describe to inspect a specific summary. Use lcm_expand_query only when the latest user message needs exact details that may have been compacted away. Return NONE if the retrieved context is not clearly useful.",
},
},
},
},
}
```
这里不要将`lcm_expand`添加到`toolsAllow`; Lossless Claw 将其用作委托扩展的较低级别工具,而不是用于顶级活动内存子代理。无损爪改变上下文组件而不替换当前的内存提供者。当同时使用 `rememberAcrossConversations` 时,将 `memory_search` 保留在 `toolsAllow` 中; LCM-only 工具列表对于高级 Active Memory 仍然有效,但会禁用产品转录调用路径。