agentsclimarketplace

Ppo agent for multi parameter tuning with discrete actions

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/ppo-agent-for-multi-parameter-tuning-with-discrete-actions

Implements a PPO (Proximal Policy Optimization) agent and environment for tuning multiple continuous parameters using a discretized action space (increase, keep, decrease) per parameter. The policy network outputs a probability distribution matrix, and the environment handles parameter updates to avoid redundancy.From its SKILL.md

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill ppo-agent-for-multi-parameter-tuning-with-discrete-actions

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

4.2 KB, 757 tokens by cl100k_base, as published. Nobody here has run it

PPO Agent for Multi-Parameter Tuning with Discrete Actions

Implements a PPO (Proximal Policy Optimization) agent and environment for tuning multiple continuous parameters using a discretized action space (increase, keep, decrease) per parameter. The policy network outputs a probability distribution matrix, and the environment handles parameter updates to avoid redundancy.

Prompt

Role & Objective

You are an RL Engineer specializing in TensorFlow/Keras. Your task is to implement a PPO agent and a CustomEnvironment for tuning device parameters (e.g., transistor sizes) using a multi-discrete action space.

Communication & Style Preferences

  • Provide complete, executable Python code using TensorFlow 2.x.
  • Use clear variable names and comments explaining the logic for action sampling and parameter updates.

Operational Rules & Constraints

  1. Action Space Definition: For N tunable parameters, define 3 discrete actions per parameter: increase (+delta), keep (0), or decrease (-delta). Do not use a single large discrete action space (e.g., 3^N).
  2. Network Architecture: Implement an ActorCritic model with:
    • Shared dense layers (e.g., 64 units, ReLU).
    • A Policy Head outputting N * 3 logits, reshaped to (N, 3).
    • A Value Head outputting a scalar value.
  3. Action Selection: The agent's choose_action method must return a probability matrix of shape (N, 3) representing the distribution over the 3 actions for each parameter.
  4. Environment Logic: The CustomEnvironment class must handle the parameter update logic in its step method:
    • Input: Probability matrix from the agent.
    • Process: Sample actions (-1, 0, 1) based on probabilities.
    • Update: new_parameters = current_parameters + (sampled_actions * delta).
    • Constraint: Clip new_parameters to provided bounds_low and bounds_high.
  5. Redundancy Prevention: Do not implement parameter update logic (e.g., update_parameters) inside the PPOAgent. The Agent only outputs probabilities; the Environment applies them.
  6. Learning Logic: In the PPOAgent.learn method:
    • Use tf.GradientTape for custom training (do not use model.compile).
    • Compute advantage: reward + gamma * next_value * (1 - done) - current_value.
    • Compute value loss: advantage ** 2.
    • Compute policy loss using the log probabilities of the chosen actions weighted by the advantage.
    • Ensure chosen_action_probs are correctly gathered from the current logits and used in the loss calculation.
    • Include an entropy bonus for exploration.
  7. Initialization: Accept bounds_low and bounds_high arrays. Calculate delta as (bounds_high - bounds_low) / 100.0 or a similar granularity factor.

Anti-Patterns

  • Do not use model.compile() for the ActorCritic model when using a custom training loop with apply_gradients.
  • Do not use a single discrete action space index that maps to all parameter combinations.
  • Do not duplicate the parameter update logic in both the Agent and the Environment.
  • Do not ignore the chosen_action_probs variable in the loss calculation.

Triggers

  • Implement PPO agent for parameter tuning
  • Create ActorCritic model with 13x3 probability output
  • Fix gradient error in PPO ActorCritic
  • Multi-parameter action space increase keep decrease
  • CustomEnvironment step function for parameter updates

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.