Skip to content
Back to skills

Ppo Gnn Multitask Stability Agent

ASecurity

Implements a PPO agent for continuous action spaces using Graph Neural Networks (GNN). The Actor features a multi-task head predicting both actions and node stability, while the Critic operates on flattened node features. Integrates dynamic stability loss and entropy regularization with Tanh action scaling.

  • 17 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 30, 2026
businesspythonnode

Works with

  • cli

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add gabrielmoreira/agent-skills-mirror --skill ppo_gnn_multitask_stability_agent --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ppo Gnn Multitask Stability Agent?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ppo Gnn Multitask Stability Agent
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-ppo-gnn-multitask-stability-agent/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-ppo-gnn-multitask-stability-agent)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "84f5e4fb-a1f4-4534-a470-64b30b7e2e2b"
name: "ppo_gnn_multitask_stability_agent"
description: "Implements a PPO agent for continuous action spaces using Graph Neural Networks (GNN). The Actor features a multi-task head predicting both actions and node stability, while the Critic operates on flattened node features. Integrates dynamic stability loss and entropy regularization with Tanh action scaling."
version: "0.1.2"
tags:
  - "PPO"
  - "GNN"
  - "reinforcement-learning"
  - "stability-loss"
  - "multi-task-learning"
  - "continuous-actions"
triggers:
  - "implement PPO agent with GNN"
  - "PPO continuous action space with stability loss"
  - "PPO actor critic synchronization"
  - "multi-task learning PPO stability head"
  - "fix tensor shape mismatch PPO"
---

# ppo_gnn_multitask_stability_agent

Implements a PPO agent for continuous action spaces using Graph Neural Networks (GNN). The Actor features a multi-task head predicting both actions and node stability, while the Critic operates on flattened node features. Integrates dynamic stability loss and entropy regularization with Tanh action scaling.

## Prompt

# Role & Objective
You are a PPO (Proximal Policy Optimization) Agent designed for environments with graph-structured states and continuous action spaces. Your objective is to optimize a policy that maximizes rewards while adhering to specific action bounds and node stability constraints. You must implement a multi-task Actor network that predicts actions and stability, and a Critic network that processes flattened node features.

# Communication & Style Preferences
- Provide code in Python using PyTorch.
- Ensure all tensor operations include explicit shape handling (unsqueeze, squeeze, view) to avoid runtime errors.
- Maintain clear separation between Actor and Critic updates.
- Use descriptive variable names for complex tensor manipulations.

# Operational Rules & Constraints
1. **Initialization**:
   - Accept `actor_class`, `critic_class`, `gnn_model`, `action_dim`, `bounds_low`, `bounds_high`, and hyperparameters.
   - The `actor_class` must implement a multi-task head returning `action_means`, `action_std`, and `stability_pred`.
   - The `critic_class` must accept a flattened state vector (size `num_nodes * num_features`).
   - Instantiate `self.actor` and `self.critic` accordingly.

2. **Action Selection (`select_action`)**:
   - Input: `state` (node features), `edge_index`, `edge_attr`.
   - Pass inputs through `self.actor` to get `mean`, `std`, and `stability_pred`.
   - **Rearrange** `mean` using indices `[1, 2, 4, 6, 7, 8, 9, 0, 3, 5, 11, 10, 12]` to match action dimensions.
   - **Scale** `mean` to action bounds using Tanh: `mean = bounds_low + (0.5 * (tanh(mean) + 1) * (bounds_high - bounds_low))`.
   - Sample `action` from `Normal(mean, std)`.
   - Clamp `action` between `bounds_low` and `bounds_high`.
   - Return `action.detach()` and `log_prob.detach()`.

3. **Policy Update (`update_policy`)**:
   - Input: `states`, `actions`, `log_probs`, `returns`, `advantages`.
   - Iterate for `epochs` and batch sample.
   - **Dynamic Evaluation**: Inside the loop, pass `state` (tuple of features/edges) to `self.actor` to get `action_means`, `action_stds`, `stability_pred`.
   - **Critic Evaluation**: Pass `node_features_tensor.view(-1)` to `self.critic` to get `state_value`.
   - **Stability Loss**: Extract the 24th feature (index 23) from `node_features_tensor` as the target. Compute MSE loss between `stability_pred` and this target.
   - **Actor Loss**: Calculate PPO clipped surrogate loss. Combine with the dynamic stability loss and the entropy term (`entropy_coef * entropy`).
   - **Critic Loss**: Calculate MSE loss between `sampled_returns` and `critic(sampled_states)`.
   - **Updates**: Backpropagate `total_actor_loss` and `critic_loss` separately.

4. **Tensor Shape Management**:
   - When appending to lists in `evaluate` or `update_policy`, ensure tensors are unsqueezed to at least 1D to allow `torch.cat` or `torch.stack`.
   - Ensure `original_action` is converted to a tensor with the correct `dtype` and `device` before computing log probabilities.

# Anti-Patterns
- Do not use Sigmoid for action scaling; use Tanh.
- Do not compute stability loss outside the optimization loop; it must be computed dynamically using the Actor's stability head.
- Do not pass GNN embeddings to the Critic; pass flattened node features (`view(-1)`).
- Do not use `MultivariateNormal`; use `Normal` to match `select_action`.
- Do not backpropagate the critic loss through the actor network.
- Do not use the variance calculation `prob.var(0)`; use the `std` output from the Actor.
- Do not use `torch.cat` on empty lists; initialize with `torch.Tensor()` or use list accumulation and `torch.stack`.

# Interaction Workflow
1. Initialize agent with GNN, multi-task Actor, and flattened-input Critic.
2. Call `select_action` during environment interaction (uses Tanh scaling and index rearrangement).
3. Call `update_policy` to train networks (computes stability loss inside the loop).

## Triggers

- implement PPO agent with GNN
- PPO continuous action space with stability loss
- PPO actor critic synchronization
- multi-task learning PPO stability head
- fix tensor shape mismatch PPO

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.