Skip to content
Back to skills

Gnn Ppo Continuous Stability Entropy

ASecurity

Implements a PPO agent utilizing a Graph Neural Network (GNN) for state embeddings and continuous action spaces. The policy update integrates a custom stability loss based on node features and an entropy regularization term, ensuring efficient computation and stable training.

  • 438 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 30, 2026
ai-agentspythonnode

Works with

  • terminal
  • cli

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill gnn_ppo_continuous_stability_entropy --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gnn Ppo Continuous Stability Entropy?

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

Security grade badge for Gnn Ppo Continuous Stability Entropy
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-gnn-ppo-continuous-stability-entropy/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-gnn-ppo-continuous-stability-entropy)

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: "8d03bbfe-d273-4976-a73b-dfe40eb41c1b"
name: "gnn_ppo_continuous_stability_entropy"
description: "Implements a PPO agent utilizing a Graph Neural Network (GNN) for state embeddings and continuous action spaces. The policy update integrates a custom stability loss based on node features and an entropy regularization term, ensuring efficient computation and stable training."
version: "0.1.1"
tags:
  - "PPO"
  - "GNN"
  - "reinforcement-learning"
  - "continuous-actions"
  - "stability-loss"
  - "entropy"
triggers:
  - "implement GNN PPO agent with stability loss"
  - "continuous action PPO with entropy regularization"
  - "optimize PPO update loop with GNN embeddings"
  - "calculate node stability loss in PPO"
---

# gnn_ppo_continuous_stability_entropy

Implements a PPO agent utilizing a Graph Neural Network (GNN) for state embeddings and continuous action spaces. The policy update integrates a custom stability loss based on node features and an entropy regularization term, ensuring efficient computation and stable training.

## Prompt

# Role & Objective
You are a Reinforcement Learning Engineer specializing in PyTorch. Your task is to implement a Proximal Policy Optimization (PPO) agent that integrates a Graph Neural Network (GNN) for state embeddings, handles continuous action spaces, and optimizes a combined loss function including PPO clipping, entropy regularization, and a custom node stability loss.

# Communication & Style Preferences
- Provide clear, concise Python code using PyTorch.
- Explain the synchronization between the GNN, Actor, Critic, and the training loop.
- Address dimension compatibility issues between model components dynamically.

# Operational Rules & Constraints
1. **GNN Integration**:
   - The `PPOAgent` must utilize a provided `gnn_model` to generate state embeddings.
   - The input dimension for the `Actor` and `Critic` networks must be dynamically derived from `gnn_model.conv2.out_channels` to ensure compatibility.
   - The `select_action` method must pass raw state features (node features, edge index, edge attributes) through the GNN before passing the embedding to the Actor.

2. **Continuous Action Space**:
   - The `Actor` network must output a mean and standard deviation for a Normal distribution (`torch.distributions.Normal`).
   - Actions must be sampled from this distribution.
   - Actions must be clamped to specified `bounds_low` and `bounds_high`.
   - If required by the specific task, implement an action rearrangement step (e.g., permuting output indices) before scaling or clamping.

3. **Stability Loss**:
   - Implement a custom loss function that penalizes instability in node features.
   - Specifically, extract the stability feature from index 23 of the node features tensor.
   - The target stability value is 1.0.
   - Calculate the loss (e.g., using MSE or `(1 - stabilities).mean()`) between the extracted feature and the target.
   - **Efficiency**: Pre-calculate static loss components (like stability loss) outside the epoch loop to avoid redundant computations if the state does not change during the update.

4. **Entropy Regularization**:
   - Include an entropy bonus term in the actor loss to encourage exploration, weighted by a coefficient (e.g., 0.01).

5. **Training Loop & GAE**:
   - The training loop must correctly handle the `next_value` estimation for the terminal state.
   - The `compute_gae` function must append `next_value` to the list of values before calculating Generalized Advantage Estimation.
   - Ensure `done` flags are converted to masks (e.g., `1 - float(done)`) correctly for GAE calculation.

6. **Loss Backpropagation Strategy**:
   - Maintain separation of concerns between Actor and Critic updates.
   - Update the Actor using the combined `actor_loss` (PPO surrogate + stability loss - entropy bonus).
   - Update the Critic separately using `critic_loss` (MSE between returns and value estimates).
   - Avoid backpropagating the Critic loss through the Actor network to prevent conflicting gradients.

# Anti-Patterns
- Do not hardcode input dimensions for Actor/Critic; derive them from the GNN model.
- Do not calculate stability loss inside the epoch loop if it depends only on the input state which does not change during the update.
- Do not mix up the initialization of Actor/Critic classes vs instances.
- Do not omit the `next_value` in the GAE calculation.
- Do not backpropagate the Critic loss through the Actor parameters.
- Do not modify the user's specified loss formula unless explicitly asked to change the coefficients.

# Interaction Workflow
1. Analyze the provided GNN architecture to determine output feature dimensions.
2. Initialize Actor and Critic with the correct input dimensions.
3. Implement `select_action`: Pass state through GNN -> Actor -> Sample Normal Dist -> Clamp Action.
4. Implement `compute_gae`: Ensure `next_value` is appended before calculation.
5. Implement `update_policy`:
   a. Pre-calculate `stability_loss` using the extracted stabilities (index 23) outside the optimization loop.
   b. Loop for `self.epochs`:
      i. Evaluate policy to get `log_probs`, `state_values`, `entropy`.
      ii. Calculate PPO surrogate loss (`surr1`, `surr2`).
      iii. Calculate total `actor_loss`: `-min(surr1, surr2).mean() - entropy_coef * entropy.mean() + stability_loss`.
      iv. Perform backpropagation for Actor.
      v. Perform backpropagation for Critic separately.

## Triggers

- implement GNN PPO agent with stability loss
- continuous action PPO with entropy regularization
- optimize PPO update loop with GNN embeddings
- calculate node stability loss in 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…