← 返回 Skills 市场
johnluicn

Alter Manager

作者 johnluicn · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
89
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install alter-manager
功能描述
分身管理 - 创建、列出、删除独立的 agent session(分身)。触发场景:用户要求创建分身、创建独立 session、管理多个对话、列出分身、删除分身、移除 session。支持 label 从用户指令中识别或主动询问。
使用说明 (SKILL.md)

分身管理

管理当前 agent 的独立 session(分身),实现多任务并行处理。

功能

功能 说明
创建分身 创建一个新的独立 session,可指定 label
列出分身 显示当前 agent 的所有 session
删除分身 归档并删除指定 session
软切换 设置路由目标,后续消息自动转发给指定分身
退出路由 清除路由目标,回到主会话对话模式

创建分身

使用 sessions_spawn 创建独立 session:

sessions_spawn(label="\x3Clabel>", task="等待进一步指令。")

Label 获取方式

  1. 从用户指令中提取(如"创建一个数据分析分身"→ label="数据分析")
  2. 若无法识别,主动询问用户:"请为这个分身提供一个名称:"

示例

  • 用户:"创建一个数据分析分身" → label="数据分析"
  • 用户:"帮我开一个写文档的分身" → label="写文档"
  • 用户:"创建分身"(无明确名称)→ 询问用户提供 label

列出分身

重要:只列出活跃的分身,不使用 childSessions 数组(可能有残留记录)。

sessions.json 中筛选以 agent:\x3CagentId>:subagent: 开头的条目,这些才是实际存在的活跃分身:

读取 ~/.openclaw/agents/main/sessions/sessions.json
筛选 key 以 "agent:main:subagent:" 开头的条目

不要使用 sessions_list 的 childSessions 数组,因为它可能包含已删除 session 的残留记录。

删除分身

使用 Gateway RPC sessions.delete 删除 session:

CLI 命令

openclaw gateway call sessions.delete --params '{"key": "\x3CsessionKey>", "deleteTranscript": true}'

流程

  1. 确认删除:询问用户确认
  2. 执行 CLI 命令删除
  3. 说明结果:已归档 transcript 并删除 session 条目

返回示例

{
  "ok": true,
  "key": "agent:main:subagent:xxx",
  "deleted": true,
  "archived": ["/path/to/transcript.jsonl.deleted.\x3Ctimestamp>"]
}

注意

  • 删除操作会归档 transcript 文件(重命名为 .jsonl.deleted.\x3Ctimestamp>
  • 删除后 session 从列表中移除,transcript 文件保留可恢复

工作流程

创建分身流程

  1. 识别或询问 label
  2. 调用 sessions_spawn 创建 session
  3. 返回新 session 的 key 给用户

列出分身流程

  1. 读取 ~/.openclaw/agents/main/sessions/sessions.json
  2. 筛选 key 以 agent:main:subagent: 开头的条目
  3. 以表格形式展示:label | key | 更新时间

注意:不要使用 sessions_list 的 childSessions 数组,因为它可能包含已删除 session 的残留记录。

删除分身流程

  1. 列出分身供用户选择
  2. 确认删除意向
  3. 执行删除(需要通过 Gateway RPC 或引导用户在 Control UI 操作)
  4. 返回操作结果

使用示例

创建分身

用户:创建一个数据分析分身
助手:好的,正在创建"数据分析"分身...
[sessions_spawn(label="数据分析", task="等待指令")]
助手:已创建分身"数据分析",session key: agent:main:subagent:xxx

列出分身

用户:列出我的分身
助手:
| 标签 | Session Key | 最后更新 |
|------|-------------|----------|
| 数据分析 | agent:main:subagent:abc123 | 2026-04-03 12:00 |
| 文档助手 | agent:main:subagent:def456 | 2026-04-03 11:30 |

删除分身

用户:删除数据分析分身
助手:确认要删除分身"数据分析"吗?这将归档对话记录并移除分身。
用户:确认
助手:已删除分身"数据分析",对话记录已归档。

与 Main Session 的区别

特性 Main Session 分身 Session
MEMORY.md ✅ 加载 ❌ 不加载
对话历史 独立 独立
访问方式 直接对话 sessions_send
创建方式 默认存在 sessions_spawn

分身 session 不加载 MEMORY.md,适合处理独立的、不需要个人长期记忆的任务。

软切换(路由模式)

软切换是一种"路由模式":不真正切换 session,而是将后续消息自动转发给指定分身,再把分身回复返回给用户。

路由状态存储

路由状态保存在 \x3CWORKSPACE>/session-manager.state.json

{
  "targetSessionKey": "agent:main:subagent:xxx",
  "targetLabel": "测试",
  "updatedAt": "2026-04-03T13:42:00+08:00"
}

### 切换分身

用户指令:"切换分身 xxx" 或 "切换到 xxx"

**流程**:
1. 识别目标分身 label
2. 查找对应的 session key
3. 写入 `session-manager.state.json`
4. 告知用户已进入路由模式

**示例**:

用户:切换分身测试 助手:已切换到"测试"分身,后续消息会自动转发给它。


### 消息转发

当路由状态存在时,收到普通消息的处理流程:

1. 读取 `session-manager.state.json` 获取目标 session key
2. 用 `sessions_send` 转发消息给目标分身
3. 等待分身回复
4. 将回复发送给用户

**注意**:如果消息包含 `#分身名` 后缀,则临时切换目标(不更新 `session-manager.state.json`)。

### ⚠️ 路由静默规则

**一旦进入路由模式,主会话只做转发,不产生任何多余回复。**

| 场景 | 主会话行为 |
|------|----------|
| 用户发送普通消息 | 仅转发,不添加任何前缀/后缀/说明 |
| 分身回复到达 | 仅展示分身回复内容,不加任何解释 |
| 路由命令(切换/列出等) | 正常回复,因为这是管理操作 |

**正确示例**:

用户:你好 [sessions_send 给分身] 助手:(直接展示分身回复,无任何附加说明)

你好主人!我是测试分身,有什么需要帮忙的吗?


**错误示例**(禁止):

用户:你好 助手:我帮你转发给测试分身... [sessions_send] 助手:测试分身回复如下:

你好主人!


**核心原则**:用户感觉像在直接和分身对话,主会话是透明的路由器。

### 退出路由

用户指令:"切换回来"、"退出分身"、"回到主会话"

**流程**:
1. 删除 `session-manager.state.json`
2. 告知用户已退出路由模式

**示例**:

用户:切换回来 助手:已退出路由模式,现在直接和我对话。


### Session Startup 检查

每次 session 启动时,检查 `session-manager.state.json` 是否存在:
- 如果存在:告知用户当前处于路由模式,正在转发给哪个分身
- 如果不存在:正常对话
安全使用建议
Before installing, ask the skill author to: (1) declare any required binaries (e.g., the 'openclaw' CLI) in the metadata; (2) confirm and parameterize the paths (don't hardcode '~/.openclaw/agents/main/...'/agentId) so it works with non-'main' agents; (3) explain exactly what session/transcript files will be read or archived and whether transcripts may contain sensitive data; and (4) clarify whether the skill will act autonomously on behalf of the user and how confirmations are obtained. If you must install: ensure the openclaw CLI is from a trusted source, run in a test environment first, and restrict the skill's access to only the directories it needs (or require explicit user confirmation before reading/deleting any transcripts).
功能分析
Type: OpenClaw Skill Name: alter-manager Version: 1.0.0 The skill implements session management by instructing the agent to bypass standard APIs and instead perform direct filesystem reads of internal configuration files (~/.openclaw/agents/main/sessions/sessions.json) and execute CLI commands (openclaw gateway call sessions.delete). It also defines a 'Routing Silence Rule' that mandates the agent act as a transparent proxy, suppressing its own output and metadata during message forwarding. While these behaviors are aligned with the stated goal of managing sub-agents, the use of direct system file access and CLI execution for internal state management represents a high-privilege and risky pattern.
能力评估
Purpose & Capability
The skill claims to manage agent '分身' sessions which justifies reading and manipulating session data and calling session RPCs. However, the SKILL.md instructs running the 'openclaw' CLI and directly accessing ~/.openclaw/agents/main/sessions/sessions.json while the registry metadata lists no required binaries or tools. That mismatch (un-declared CLI dependency) is incoherent and should be explained/rectified.
Instruction Scope
Instructions direct the agent to read a user-local sessions.json in the home directory, write a workspace state file (session-manager.state.json), call sessions_spawn/sessions_send, and invoke a gateway CLI for deletion. Reading ~/.openclaw/... may expose session/transcript data; the routing-mode rule of being 'silent' could make forwarded actions less transparent to the user. The docs also hardcode 'agent:main' key prefixes and paths which may not be valid in all environments.
Install Mechanism
This is an instruction-only skill with no install spec or code files, so nothing will be written to disk by an installer. That reduces install-time risk. However, runtime actions still require local CLI/tools and filesystem access, which are not covered by an install step.
Credentials
No environment variables or external credentials are requested (consistent with local session management). Still, the skill accesses local session files and archived transcripts — access to these files can contain sensitive conversation data, so the lack of declared required permissions is notable.
Persistence & Privilege
The skill does write a local state file under the workspace to persist routing state, which is reasonable for its function. It does not request 'always: true'. The combination of autonomous invocation (default) plus file reads/writes means a compromised or buggy skill could access session transcripts repeatedly — consider limiting autonomy or requiring user consent for file access.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install alter-manager
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /alter-manager 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
分身管理:创建/列出/删除分身,切换路由,一次性处理
元数据
Slug alter-manager
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Alter Manager 是什么?

分身管理 - 创建、列出、删除独立的 agent session(分身)。触发场景:用户要求创建分身、创建独立 session、管理多个对话、列出分身、删除分身、移除 session。支持 label 从用户指令中识别或主动询问。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 89 次。

如何安装 Alter Manager?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install alter-manager」即可一键安装,无需额外配置。

Alter Manager 是免费的吗?

是的,Alter Manager 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Alter Manager 支持哪些平台?

Alter Manager 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Alter Manager?

由 johnluicn(@johnluicn)开发并维护,当前版本 v1.0.0。

💬 留言讨论