# Agent Status Monitor

> Agent Status Monitor

- Skill: `willin/agent-status-monitor` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add willin/agent-status-monitor`
- Raw SKILL.md: https://api.skillmd.com/api/skills/willin/agent-status-monitor/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: willin (https://skillmd.com/u/willin)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/willin/agent-status-monitor

---


# Agent Status Monitor

检查本地开发工具 Agent 的运行状态和活动状态。

---

## 触发条件

**核心意图**：快速了解本地运行的 AI 开发工具（Agent）是否在运行、是否在工作、是否有会话活动。

**典型场景**：
- 同时运行多个 Agent（Claude Code、OpenCode、OpenClaw），想确认各自状态
- 不确定某个 Agent 是否还在工作，还是已经卡住/闲置
- 想查看哪个 Agent 正在活跃使用，哪个只是后台运行
- 定期检查多个 Agent 的健康状态

**触发示例**：
- "检查 agent 状态"
- "Claude Code 还在工作吗"
- "看看有哪些 agent 在运行"
- "opencode 是不是闲置了"
- "运行 agents_monitor"

---

## 具体成果

**一句话目标**：运行 `agents_monitor` 命令，输出所有本地 Agent 的运行状态（运行中/工作中/闲置/未运行）和会话数量。

**预期输出**：
```
● Claude Code: 🔥 工作中 (2 分钟内有更新) · 13 个会话
● OpenClaw: 🔥 工作中 (2 分钟内有更新) · 1 个会话
● OpenCode: 💤 闲置 (未使用) · 1 个会话
○ Cursor IDE: 未运行
```

**状态说明**：
| 状态 | 含义 |
|------|------|
| 🔥 工作中 | 2 分钟内有会话文件更新 |
| ⏳ 等待中 | 10 分钟内有更新（可能在思考/等待 API） |
| 💤 闲置 | 超过 10 分钟无更新，或未使用 |
| ○ 未运行 | 进程不存在 |

---

## 步骤逻辑

### 执行步骤

1. **运行检测脚本**
   ```bash
   ~/.openclaw/workspace/skills/agent-status-monitor/scripts/check-agents.sh
   ```

2. **进程检测** - 对每个 Agent 执行：
   - `ps aux | grep <agent>` 检查进程是否存在
   - 排除系统误报进程（如 CursorUIViewService）

3. **活动状态判断** - 检查会话目录文件修改时间：
   - 2 分钟内有更新 → 🔥 工作中
   - 10 分钟内有更新 → ⏳ 等待中
   - 超过 10 分钟无更新 → 💤 闲置
   - 只有 1 个文件且超过 5 分钟 → 💤 未使用（初始配置）

4. **输出报告** - 包含：
   - 状态图标 + 文字说明
   - 会话文件数量
   - 详细配置信息（版本、配置路径等）

### 各 Agent 会话目录

| Agent | 会话目录 |
|-------|----------|
| Claude Code | `~/.claude/projects/` |
| OpenClaw | `~/.openclaw/agents/` |
| OpenCode | `~/.local/state/opencode/` |
| Cursor IDE | 进程检测（无统一会话目录） |

### 约束
- 只检测本地运行的 Agent，不涉及云端/远程服务
- 基于文件系统修改时间，不依赖 Agent API
- 仅读取公开目录，不访问私有数据

---

## 正反样例

### ✅ 正例

**输入**：
```
检查 agent 状态
```

**输出**：
```
========================================
   Agent Status Monitor
========================================

--- 进程状态 ---
● Claude Code: 🔥 工作中 (2 分钟内有更新) · 13 个会话
● OpenClaw: 🔥 工作中 (2 分钟内有更新) · 1 个会话
● OpenCode: 💤 闲置 (未使用) · 1 个会话
○ Cursor IDE: 未运行

--- OpenCode 详情 ---
版本：1.2.15
  └─ 配置：~/.config/opencode/opencode.json
  └─ 会话日志：1 个文件

--- OpenClaw 状态 ---
[OpenClaw status 输出...]
```

**输入**：
```
Claude Code 还在工作吗
```

**输出**：
```
Claude Code: 🔥 工作中 (2 分钟内有更新) · 13 个会话
```

### ❌ 反例

**输入**：
```
检查 agent 状态
```

**错误输出**：
```
Claude Code: 运行中
OpenCode: 运行中
```
> ❌ 问题：没有显示活动状态（工作中/闲置），信息不完整

**错误输出**：
```
CPU 使用率：Claude Code 3.7%, OpenCode 0.3%
```
> ❌ 问题：CPU 使用率不可靠，Agent 等待 API 时 CPU 低但仍在工作中

**错误输出**：
```
Claude Code 进程 ID: 12345, 12346, 12347
```
> ❌ 问题：用户不关心进程 ID，关心的是"是否在工作"

---

## 明确限制

### 不做什么

- ❌ **不监控云端 Agent** - 只检测本地进程和文件
- ❌ **不统计 Token 使用量** - 各 Agent 日志格式不统一，暂不支持
- ❌ **不显示进程 ID/内存占用** - 用户关心活动状态，不是系统指标
- ❌ **不控制/停止 Agent** - 只读检测，不执行任何修改操作
- ❌ **不涉及敏感话题** - 纯技术检测，无内容审查

### 异常处理

| 情况 | 处理方式 |
|------|----------|
| 会话目录不存在 | 显示"未运行"或"未安装" |
| 无法读取文件时间 | 降级为仅进程检测 |
| 脚本执行失败 | 输出错误信息 + 建议检查路径 |
| 没有安装任何 Agent | 显示"未检测到任何 Agent" |

### 兜底策略

如果脚本检测失败，返回：
```
⚠️ 无法获取详细状态，尝试手动检查：
ps aux | grep -E "(claude|opencode|openclaw)" | grep -v grep
```

### 已知限制

1. **Cursor IDE** - 没有统一会话目录，仅进程检测
2. **新 Agent 类型** - 需要手动添加检测逻辑
3. **跨用户检测** - 只能检测当前用户的 Agent
4. **容器/Docker** - 不检测容器内运行的 Agent

---

## 相关资源

- `scripts/check-agents.sh` - 主检测脚本
- `references/agent-commands.md` - 各 Agent 命令参考

## 更新日志

- 基于会话文件修改时间判断活动状态（比 CPU 使用率更可靠）
- 支持 Claude Code、OpenCode、OpenClaw、Cursor IDE
- 提供 `agents_monitor` 命令别名

