Ratting Anomalies

Is there a bot that can farm anomalies in a given route of systems?

there are not yet, but you can combile anomalies ratting bot with autopilot bot to do that

1 Like

Expanding on the idea of @briancorner:

Let’s find a ratting bot and an autopilot bot to combine.

Here is a combat anomaly bot: FrontendWeb.Main
And here is an autopilot bot: FrontendWeb.Main

These both use the same decision tree framework to pick the next action. Since both bots use the same leaf type in their decision trees, we can take any decision trees branch and insert it into the other one.

Which node should we replace with another branch? It helps to think of the relative priority of the two bots that we want to combine. To understand the relative priorities, we look at a scenario in which both bots would emit an action: In this scenario, we have an anomaly to enter and an autopilot route on which we could travel. In this case, the ratting should have priority. To encode this priority, we place the ratting branch closer to the combined decision tree’s root.

We can start coding the combined bot from the anomaly ratting bot code and then insert the autopilot branch where we see that no anomalies are remaining.
So we replace this node:

Here is the resulting combined bot:

Note to engineering: This scenario illustrates the use of two tools:

  • Integrate function from one app into another app: Automatically collect all the parts the given root (in this case, the autopilotBotDecisionRoot function) depends on and copy these over. Support prefixing all these imported declarations names with a common string: We might need to automatically change between upper and lower cases for this prefix, depending on whether a declaration is a type or a function.
  • Remove code parts unused in a set of sessions: Remove parts of the code as long as it does not affect the apps’ behavior in a given set of scenarios. For example: After running the combined app for fifty hours, we might use the detailed session recordings to decide which parts of the program code we can remove without affecting the results. After removing part of the code, we can replay all sessions to check if the app responses are still the same. In the example, this automated trimming would improve readability because parts of the integrated autopilot are not reachable from where we integrated it.