agent interface