Rather than relying on an external service agent to monitor these changes and then interact with SharePoint why not use a SharePoint timer job?
With a SharePoint timer job you are using a key piece of the SharePoint platform which supports periodic execution of tasks. You could simply create a solution that deploys a timer job to monitor a fileshare for change using simple .Net functionality to examine files newer than the time the job last ran.
string files = Directory.GetFiles(dirName);
foreach (string file in files)
FileInfo fi = new FileInfo(file);
if (fi.LastAccessTime < DateTime.Now.AddMonths(-3))
This way you can monitor the job directly from SharePoint central admin. You can also log to the ULS or against the job and view the results. Finally, everything would run as your service account for SharePoint and restart / resume during farm reboots etc without any maintenance of external programs such as your proposed agent.