using System; using System.Collections.Generic; using MLAgents.Sensors; namespace MLAgents { /// /// IPolicy is connected to a single Agent. Each time the agent needs /// a decision, it will request a decision to the Policy. The decision /// will not be taken immediately but will be taken before or when /// DecideAction is called. /// internal interface IPolicy : IDisposable { /// /// Signals the Brain that the Agent needs a Decision. The Policy /// will make the decision at a later time to allow possible /// batching of requests. /// /// /// void RequestDecision(AgentInfo info, List sensors); /// /// Signals the Policy that if the Decision has not been taken yet, /// it must be taken now. The Brain is expected to update the actions /// of the Agents at this point the latest. /// float[] DecideAction(); } }