Awesome-omni-skill agents
How to spawn, manage, message, and command subagents via gobby-agents.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ai-agents/agents-gobbyai" ~/.claude/skills/diegosouzapw-awesome-omni-skill-agents && rm -rf "$T"
skills/ai-agents/agents-gobbyai/SKILL.mdAgents Skill: Working with Subagents
This skill covers the full
gobby-agents MCP server — spawning agents, managing their lifecycle, configuring agent definitions, and inter-agent communication.
Server Clarity
All agent tools live on
, NOT gobby-agents
gobby-sessions.
— session lifecycle (CRUD, handoffs)gobby-sessions
— spawning, lifecycle, definitions, messaging, commandsgobby-agents
Session IDs can be passed as
#N, N, full UUID, or UUID prefix throughout.
1. Spawning & Lifecycle
spawn_agent(prompt, ...)
Spawn a subagent to execute a task.
| Parameter | Required | Description |
|---|---|---|
| yes | The task/instruction for the agent |
| no | Named agent definition to use (e.g. , ) |
| no | Gobby task ID to associate with this run |
| no | (current dir), (git worktree), (shallow clone) |
| no | Branch name for worktree/clone isolation |
| no | Base branch to create from |
/ | no | Reuse an existing clone or worktree |
| no | Workflow to attach to the agent session |
| no | Workflow mode (e.g. , ) |
| no | Starting step for the workflow |
| no | LLM provider override |
| no | Model override |
| no | Timeout in seconds |
| no | Maximum agentic turns |
| no | Enable sandboxing |
| no | Sandbox mode string |
| no | Allow network in sandbox |
| no | Extra paths to mount in sandbox |
| no | Override parent session (defaults to current) |
| no | Override project path |
can_spawn_agent(parent_session_id)
Check if spawning is allowed from a session. Returns whether the depth limit or other restrictions would block a spawn.
evaluate_spawn(...)
Dry-run a spawn — validates agent definition, workflow, isolation, and runtime without actually executing. Accepts the same key parameters as
spawn_agent (agent, workflow, task_id, isolation, mode, provider, branch_name, base_branch, parent_session_id, project_path).
wait_for_agent(run_id, timeout?, poll_interval?)
Block until an agent reaches a terminal status (
success, error, timeout, cancelled) or the wait timeout expires.
| Parameter | Required | Description |
|---|---|---|
| yes | The agent run ID to wait on |
| no | Max wait time in seconds |
| no | Polling interval in seconds |
stop_agent(run_id)
Mark a running agent as cancelled in the DB. Does not kill the process — use
kill_agent for that.
kill_agent(run_id?, session_id?, signal?, force?, debug?)
Kill a running agent's process and close its terminal.
| Parameter | Required | Description |
|---|---|---|
| no | Parent kills child by run ID |
| no | Self-termination by session ID |
| no | Signal to send (default: SIGTERM) |
| no | Force kill if graceful fails |
| no | Enable debug output |
Use
run_id when a parent wants to kill a child. Use session_id for self-termination.
2. Querying Agents
list_agents(parent_session_id, status?, limit?)
List agent runs for a session (DB records). Filter by
status and limit results.
list_running_agents(parent_session_id?, mode?)
List agents with active in-memory processes. Unlike
list_agents, this only shows agents that are currently running, not historical records.
get_running_agent(run_id)
Get the in-memory process state for a specific running agent.
get_agent_result(run_id)
Get the result of a completed agent run (output, status, timing).
running_agent_stats()
Get aggregate statistics about all running agents (counts, resource usage).
unregister_agent(run_id)
Remove an agent from the in-memory running registry. Internal use — prefer
stop_agent or kill_agent.
3. Agent Definitions
Agent definitions are named configurations stored in the DB that control how agents are spawned (CLI type, model, allowed tools, workflows, etc.).
list_agent_definitions(enabled?, project_id?)
List definitions, optionally filtered by enabled status or project scope.
get_agent_definition(name)
Get the full definition body for a named agent.
create_agent_definition(name, definition)
Create a new agent definition. The
definition object is validated against AgentDefinitionBody before insertion.
toggle_agent_definition(name, enabled)
Enable or disable a definition by name.
delete_agent_definition(name, force?)
Soft-delete a definition. Template-sourced agents are protected unless
force=True.
update_agent_rules(name, add?, remove?)
Add or remove rules from an agent definition's
workflows.rules list.
update_agent_variables(name, set_vars?, remove?)
Set or remove variables from an agent definition's
workflows.variables dict.
4. Messaging (P2P)
Peer-to-peer messaging between any two sessions in the same project.
send_message(from_session, to_session, content, priority?)
Send a message. When sending to a parent session, auto-writes to
agent_runs.result.
| Parameter | Required | Description |
|---|---|---|
| yes | Sender session ID |
| yes | Recipient session ID |
| yes | Message content |
| no | Priority level |
deliver_pending_messages(session_id)
Fetch all undelivered messages for a session and mark them as delivered. Call this often as an inbox check — especially before starting long-running work.
5. Commands (Parent-to-Child)
Structured task delegation from an ancestor session to a descendant. Only one active command per target at a time.
send_command(from_session, to_session, command_text, ...)
Issue a command to a descendant agent. Validates ancestry. Rejects if the target already has an active command.
| Parameter | Required | Description |
|---|---|---|
| yes | Commanding (ancestor) session |
| yes | Target (descendant) session |
| yes | The command instruction |
| no | Restrict which tools the agent can use |
| no | Restrict which MCP tools the agent can use |
| no | Condition for the agent to auto-complete |
activate_command(session_id, command_id)
Accept a pending command — marks it as running and sets session variables (
command_id, command_text, allowed_tools, exit_condition).
complete_command(session_id, command_id, result)
Complete a command — marks it done, clears session variables, and sends the result back to the commanding session.
Dos and Don'ts
- DO use
shorthand for session IDs (e.g.#N
).#5 - DO call
before starting long-running work.deliver_pending_messages - DO use
to dry-run before spawning complex agents.evaluate_spawn - DO use
to check depth limits before spawning.can_spawn_agent - DO use
(not bash tools orkill_agent
) to terminate agents./quit - DON'T use
directly — preferunregister_agent
orstop_agent
.kill_agent - DON'T poll constantly — use hooks and event-driven patterns where possible.
- DON'T send commands to non-descendant sessions — ancestry is validated.