In most experiments with user interface agents to date, it has been necessa
ry either to implement both the agent and the application from scratch, or
to modify the code of an existing application to enable the necessary commu
nication. Instead, we would like to be able to 'attach' an agent to an exis
ting application, while requiring only a minimum of advance planning on the
part of the application developer. Commercial applications an increasingly
supporting the use of 'application programmers' interfaces' and scripting
languages as means of achieving external control of applications. Are these
mechanisms sufficient for software agents to achieve communication with ap
plications? This paper reports some preliminary experiments in developing a
gent software that works with existing, unmodified commercial applications
and agents that work across multiple applications. We describe a programmin
g by example agent, ScriptAgent, that uses a scripting language, Applescrip
t, to record example procedures that are generalized by the agent. Another
approach is examinability, where the application grants to the agent the ri
ght to examine internal data structures. We present another kind of learnin
g agent, Tatlin, that compares successive application states to infer inter
face operations. Finally, we discuss broader systems issues such as paralle
lism, interface sharing between agent and application, and access to object
s. (C) 1998 Published by Elsevier Science B.V. All rights reserved.