This document discusses the PROFETA tool for programming autonomous systems. PROFETA provides a set of classes to represent basic beliefs, goals, and actions. It includes a declarative language based on AgentSpeak(L) to express an agent's behavior. A PROFETA program defines beliefs and goals as subclasses, defines actions by subclassing Action and overriding the execute() method, and writes rules using the declarative syntax. The engine executes the behavior by matching events to rules and executing corresponding actions. Special features like reactors and singleton beliefs are also discussed.