Designing a source-level debugger for cognitive agent programs

Journal Article (2017)
Author(s)

Vincent J. Koeman (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Koen V. Hindriks (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Catholijn M. Jonker (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Research Group
Interactive Intelligence
DOI related publication
https://doi.org/10.1007/s10458-016-9346-4 Final published version
More Info
expand_more
Publication Year
2017
Language
English
Research Group
Interactive Intelligence
Issue number
5
Volume number
31
Pages (from-to)
941-970
Downloads counter
256
Collections
Institutional Repository
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

When an agent program exhibits unexpected behaviour, a developer needs to locate the fault by debugging the agent’s source code. The process of fault localisation requires an understanding of how code relates to the observed agent behaviour. The main aim of this paper is to design a source-level debugger that supports single-step execution of a cognitive agent program. Cognitive agents execute a decision cycle in which they process events and derive a choice of action from their beliefs and goals. Current state-of-the-art debuggers for agent programs provide insight in how agent behaviour originates from this cycle but less so in how it relates to the program code. As relating source code to generated behaviour is an important part of the debugging task, arguably, a developer also needs to be able to suspend an agent program on code locations. We propose a design approach for single-step execution of agent programs that supports both code-based as well as cycle-based suspension of an agent program. This approach results in a concrete stepping diagram ready for implementation and is illustrated by a diagram for both the Goal and Jason agent programming languages, and a corresponding full implementation of a source-level debugger for Goal in the Eclipse development environment. The evaluation that was performed based on this implementation shows that agent programmers prefer a source-level debugger over a purely cycle-based debugger.