session-mesh

SKILL.md

session-mesh

Purpose

This skill manages session topologies in distributed communication systems. It enables discovery of active sessions, maintains a specialization registry, allows steering or terminating sub-agents, and handles session keys for secure interactions. Use it to build resilient mesh networks where agents communicate dynamically.

When to Use

  • When monitoring or managing distributed sessions in real-time, such as in IoT fleets or multi-agent AI systems.
  • For tasks involving sub-agent control, like rerouting traffic or scaling resources in a mesh topology.
  • In scenarios requiring session key management for authentication, e.g., secure data exchange between agents.
  • Avoid if you're working with isolated, non-distributed systems; this is optimized for interconnected environments.

Key Capabilities

  • Discover alive sessions: Query active sessions using GET /api/session-mesh/alive with query parameters like ?filter=active.
  • Specialization registry: Register sub-agent specializations via POST /api/session-mesh/registry with a JSON body, e.g., {"specialization": "image-processing", "agent_id": "123"}.
  • Steer sub-agents: Redirect agents using CLI flag --direction (e.g., north/south) or API endpoint POST /api/session-mesh/steer with payload {"agent_id": "456", "direction": "east"}.
  • Kill sub-agents: Terminate agents via CLI command session-mesh kill --agent-id 789 or API DELETE /api/session-mesh/agents/789.
  • Session keys: Generate keys with POST /api/session-mesh/keys, returning a secure token for authentication.

Usage Patterns

  • Basic workflow: First, discover sessions with a GET request, then use the response to steer or kill agents as needed. Always check for alive status before actions.
  • Registry pattern: Register specializations during setup, then query the registry before assigning tasks to ensure compatibility.
  • Error-resilient pattern: Wrap API calls in try-catch blocks and retry on transient errors; use session keys in every authenticated request.
  • Sub-agent management: For mesh networks, periodically poll alive sessions and steer agents based on load, e.g., every 30 seconds via a scheduled script.
  • Key handling: Always generate a new session key per interaction and store it securely; use it in headers for subsequent API calls.

Common Commands/API

  • CLI Commands:
    • List alive sessions: session-mesh list --filter alive --output json. Requires $SESSION_API_KEY set in environment.
    • Steer an agent: session-mesh steer --agent-id 123 --direction west. Example: First run export SESSION_API_KEY=your_key then execute.
    • Kill an agent: session-mesh kill --agent-id 456 --force. Use --force for immediate termination without confirmation.
    • Register specialization: session-mesh register --spec "data-analysis" --agent-id 789. Config format: YAML file with key-value pairs, e.g., spec: data-analysis.
  • API Endpoints:
    • Discover sessions: GET https://api.example.com/api/session-mesh/alive?filter=active. Headers: {'Authorization': 'Bearer $SESSION_API_KEY'}.
    • Code snippet (Python):
      import requests; import os
      response = requests.get('https://api.example.com/api/session-mesh/alive', headers={'Authorization': f'Bearer {os.environ.get("SESSION_API_KEY")}'})
      print(response.json())
      
    • Steer agent: POST https://api.example.com/api/session-mesh/steer with body {"agent_id": "123", "direction": "north"}. Response includes status code 200 on success.
    • Code snippet (curl):
      curl -X POST https://api.example.com/api/session-mesh/steer \
      -H "Authorization: Bearer $SESSION_API_KEY" \
      -d '{"agent_id": "123", "direction": "north"}'
      
    • Config format: JSON payloads for API, e.g., {"session_key": "abc123", "ttl": 3600} for key generation.

Integration Notes

  • Authentication: All commands and APIs require a session key. Set it via environment variable: export SESSION_API_KEY=your_secure_key. Never hardcode keys; use secure vaults.
  • Dependencies: Integrate with distributed-comms cluster by including the skill ID "session-mesh" in your AI agent's config file, e.g., JSON: {"skills": ["session-mesh"], "cluster": "distributed-comms"}.
  • Configuration: Use a YAML config for multi-session setups, e.g.:
    sessions:
      - id: 123
      - filter: alive
    
    Load it with session-mesh load-config path/to/config.yaml.
  • Testing: Run integration tests in a sandbox environment; mock API responses for endpoints like /api/session-mesh/alive to simulate failures.

Error Handling

  • Common errors: HTTP 404 for non-existent agents (e.g., when killing an invalid ID); handle by checking response.status_code == 404 and logging the error.
  • Authentication failures: If $SESSION_API_KEY is invalid, expect 401 Unauthorized; resolve by regenerating the key via POST /api/session-mesh/keys and retry.
  • Prescriptive steps: Always validate inputs before commands, e.g., check if agent_id exists via a prior GET request. For CLI, use --verbose flag to debug, e.g., session-mesh list --filter alive --verbose. In code, wrap calls like this:
    try:
        response = requests.post(url, headers=headers)
        response.raise_for_status()
    except requests.exceptions.HTTPError as e:
        print(f"Error: {e.response.status_code} - {e.response.text}")
    
  • Retry logic: Implement exponential backoff for network errors; limit retries to 3 attempts.

Graph Relationships

  • Related to cluster: "distributed-comms" for interconnected agent management.
  • Connects with tags: "sessions" (shares data with session-based skills), "topology" (links to network mapping tools), "mesh" (integrates with peer-to-peer systems), "subagents" (depends on sub-agent control skills like agent-lifecycle).
Weekly Installs
4
First Seen
9 days ago
Installed on
openclaw4
gemini-cli4
github-copilot4
codex4
kimi-cli4
cursor4