I would look at IDEs, specifically feature requests that are the same across platforms, the same in every forum from Eclypse to Amethyst 2. Specifically features that don't tend to be implemented because they're just a bit too complex to be rule based.
IMHO an agent is the wrong way and discovery (like in Emacs) or a status/hint line is the way to go. Keeping it unobtrusive enough not to be annoying, but still present enough to be helpful when needed. AKA be more like Alfred from Batman and less like Ace Ventura.