A while back I blogged about how impressive the Encarta Instant Answers messenger agent is and in another post I talked about how slick the experience was of finding out who in Microsoft developed it.  With expertise location and presence it was stunningly easy to find the lead developer and arrange to have an IM interview.  Building live agents is a fascinating blend of integration, natural language interfaces and real-time collaboration infrastructure.  My thanks to ‎‎François for this fascinating insight.

--------------------------------------------------

François HuetOK welcome to OfficeRocker blog! Please introduce yourself and what you do if you would be so kind..

‎‎Thanks Darren! I'm François Huet and I'm a lead developer in the Windows Live Agents (WLA) team. We joined Microsoft last year through an acquisition, but the technology behind agents originated in early 2000. The definition for Windows Live Agents is a platform that allows end users to interact with a system via a text conversation... generally it doesn't really mean anything to people, but when we show one of our agents people light up.

I know you worked on the Encarta Instant Answers bot which I love. What other WLAs exist in Microsoft?

We have tons, and the list keeps growing. The most popular and the eldest is probably SmarterChild, which you can talk on WLM at "smarterchild@hotmail.com". We have a list we try to keep up to date on the WLA blog: http://windowsliveagents.spaces.live.com We also have a variety of agents in other languages (Encarta is available in English, French, Spanish, German, Japanese and Dutch).

So how big was the team on the Encarta agent and how long was the project to build it?

We're building a platform and we give our clients the choice of developing agents themselves or to use our professional services. If you only count the development of the agent itself, the project took 6 people (one person for each language).

As far as development time, we follow up on Agents for quite a while after they're released.

The core development might have lasted 2 months, but because you never know how people will react to your agents, what questions they'll ask you have to keep tweaking it, improving it based on conversations audits.

It's not like building a product with a few restricted entry points: people are free to ask anything they want to your agent, and you have to try and accommodate the most popular requests.

it looks like a great addition to a helpdesk to have an agent. Presumably they start with a database of information with layers on top of that. If you were building say a helpdesk agent could you describe the building blocks of the architecture at a high level?

One of the key things to understand with agents is that the end user is in complete control: the ultimate goal is that the end user should be able to ask the agent any question they want, and the agent should answer. Because of that, as you are developing your agent, you have to work as much as possible not from the data you have, but from the data the end user wants.

Anticipating on end user requests, soft launching your product to get an early look at what questions people are actually interested in is the key.

Once you have a good idea of what type of questions your agent is supposed to answer, you can get started implementing it. We offer a series of tools so that you don't have to start completely from scratch: we have libraries that can handle the initial greetings, recognize the most common chit chat that might occur in a conversation, and most importantly allow you to "program your agent by example", by letting you type examples of input questions. The system looks at these input questions and is able to identify when a user query has a similar meaning.

wow that is amazing

We have experimented a lot with the format for our scripts during the past 7 years, and while "regular expressionesque" formulas look impressive, they're hard to code, hard to maintain, hard to translate. That's why we've pushed to try to make the system do the heavy lifting of understanding similarities in meaning between sentences.

If you have in your code a reference sentence like "I want to get the url for Darren's blog?" the platform, with the help of our libraries, is able to identify that it is very similar in meaning to "Can you show me the url of Darren's blog please?"

This takes a lot of the burden of recognizing user sentences from the agent developer, who can focus more on the depth and personality (yes!) of the agent.

So if a company wanted to build an agent, how would they go about it?

Well, we currently have a small pilot program opening up where developers can get access to our SDK and have their agents hosted for free under certain conditions. Details of the offer are below: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1882710&SiteID=1

If you want us to develop an agent for your company, pricing really depends on the scope and the complexity of the agent, so you should contact our sales team

If a company wanted to use an agent internally is it just as easy to have it run on LCS/OCS instead of WLM?

Yes, we do support LCS

Internal facing agents are a side of the business we'd like to develop, and there are lots of opportunities there for self service applications presented as an agent that answers questions rather than a web page with hard to navigate information

Typical example is an HR agent to which you can just ask "how many vacations days do I have left?"

rather than having to navigate through 10 pages to find that info (or call your HR representative!)

Are you also working with the speech recognition people? like Exchange Voice Access?

Not yet, but we see a lot of possibilities of convergence with other technologies at Microsoft. The recent acquisition of TellMe for instance was interesting because they had a similar model (hosted platform, offering professional services and a developer toolkit etc.) except they deal with voice and we deal with text.

Sounds like an exciting synergy. How can folk progress being part of the pilot you mentioned?

Our forum has details on the business side of the offer. We have a private beta of our new SDK that we'll give to developers who enroll in the pilot, and we have documentation on how to get started, a template to quickly get up and running, and even training videos on our blog.

and I see that you feature personally on the posted video lectures so if people want to learn more, there looks like you’ve created great resources.

That's for the Windows Live Agents side of our business (think marketing agents, mainly on Windows Live Messenger). Details on the Microsoft Automated Service Agent side (our sister group using the same technology for helpdesk type agents) can be found on their page: http://www.microsoft.com/serviceproviders/solutions/asa.mspx

Thanks so much for taking time out to talk to me. Really interesting stuff

I enjoyed it. Thanks for reaching out!

thanks ‎‎François