agent-observe
GitHub用于只读观察智能体的家庭结构(父、兄弟、子)及近期消息预览,帮助发现可达智能体并检查会话状态,不涉及任何会话修改操作。
触发场景
安装
npx skills add PrimeIntellect-ai/prime-agent --skill agent-observe -g -y
SKILL.md
Frontmatter
{
"name": "agent-observe",
"description": "Read-only roster and observation of an agent's parent, siblings, and direct children. Use to discover reachable agents and to inspect family status and bounded recent-message previews without mutating sessions."
}
Agent Observe
Observe the current agent's nuclear family through the local daemon: parent,
siblings, direct children, and self. list_agents is the one family roster and
covers every member agent_message.send can reach. get_agent also returns an
inactive child's roster row. recent_messages also reads a member no worker
holds (a passivated or finished child) from its session file, read-only,
without waking it. They cannot read a root sibling that has no live session in
this worker.
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:
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()returnscurrent(the calling agent's own row) andagents(the family: parent, siblings, and direct children, active or not; the caller is excluded fromagents). Each row carriessessionId, optionalsessionName,relationship(parent/sibling/child),status(running/idlefor live sessions,inactivewithout one), the liveactivity(tool/model/compacting/busy/user/idle),isSessionActive, the counts known for it (messageCount,queuedCount,attachedClients),cwdwhen the roster row carries it, the parent edges (parentActiveSessionId,parentSessionId) andrlmChildIdfor subagents, andfirstMessage(capped at 240 chars) for an inactive child. A member with no live session has noactiveSessionIdand no live detail; address it withagent_message.sendusing itsrelationshipplus itssessionName, or itssessionIdwhen the member has no name. For direct children,await rlm.list_subagents()also exposes parent-owned lifecycle handles.await agent_observe.get_agent(target)returnsagent, whereagentcontains one agent summary (the same shape as the roster rows, including a passive child's row).targetis resolved like other live-session selectors: active id, session id or name, or an unambiguous id suffix.await agent_observe.recent_messages(target, limit=8, max_chars=800)returnsagent(the target's summary),messages(up tolimitrecent bounded previews), the clampedlimitandmaxChars, andtruncated(true when older messages exist beyond the returned window).limitmust be 1-50, andmax_charsmust be 80-2000. Each preview'sindexis the message's position in the full transcript.
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.
版本历史
- c6d4da9 当前 2026-11-02 10:21
- 7cbffa7 2026-10-18 17:10


