# Agent Observe

> Read-only observation of an agent's parent, siblings, and direct children. Use to inspect family status and bounded recent-message previews without mutating sessions.

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

---


# Agent Observe

Observe the current agent's nuclear family through the local daemon: parent,
siblings, direct children, and self. Observation is currently limited to family
members in the same worker; root siblings in other workers are not observable yet.
This skill is read-only: it can list family sessions, inspect one session, and fetch
bounded recent message previews. It cannot prompt, steer, clear, kill, rename, or
otherwise mutate another session.

Call directly from the kernel:

```python
children = await rlm.list_subagents()
child = next((item for item in children if item.active_session_id), None)
if child is not None:
    worker = await agent_observe.get_agent(child.session_name)
    recent = await agent_observe.recent_messages(child.session_name, limit=6)
    # Deletion is a parent-owned RLM operation, not an observe mutation:
    await rlm.delete_subagent(child)
```

## API

- `await agent_observe.list_agents()` returns `current` and `agents`. Each
  agent includes active session id, session id, optional name, runtime kind,
  cwd, status, streaming state, message count, pending count, and a latest
  message preview. The list is restricted to self, parent, siblings, and direct
  children. For direct children, `await rlm.list_subagents()` also exposes
  parent-owned lifecycle handles.
- `await agent_observe.get_agent(target)` returns `agent`, where `agent`
  contains one agent summary. `target` is resolved like other live-session
  selectors: active id, session id/name, or unambiguous suffix.
- `await agent_observe.recent_messages(target, limit=8, max_chars=800)`
  returns up to `limit` recent bounded message previews for the target session.
  `limit` must be 1-50, and `max_chars` must be 80-2000.

## Safety

- This skill is read-only and exposes no mutation commands.
- Targets outside the nuclear family are rejected; transcript reads follow the
  same family rule as messaging.
- Message access is bounded by count and per-message character limit.
- Prefer status and recent previews for orchestration. Ask the user before
  using observed context to steer or message another session.

