| Windows Live Ag... 的个人资料Windows Live Agents照片日志列表 | 帮助 |
|
8月31日 Console User Release Notes 4.2Console User Release Notes 4.2 1 IntroductionThese notes include broad descriptions of the major changes to the Management Console for version 4.2. They are primarily targeted at the users of the Management Console; however, they are of interest to agent developers as well. 2 General UI Improvements2.1 “Arrange By” in ListboxesWe have added the ability to group the elements in a listbox. The idea was to create an additional way to quickly visualize the elements in the listbox. It is essentially a collapsible sort, as shown below: The user may elect to turn on the “arrange by” feature by using the listbox configuration menu (the wrench icon in the upper right of the listbox). If a listbox supports the feature, additional menu items will be visible showing the various ways the list may be arranged. The user may collapse the groups by clicking on them, and may toggle the state of all of the groups by shift-clicking (or right-clicking and selecting the “Collapse/Expand All Groups” item from the context menu. The console remembers whether you turned on the feature across console sessions (it is saved with your user profile). This feature is currently implemented in the following places: · Knowledge Editor: Manage Topics, Manage Response Fragments and Approve Changes · Task List 3 Knowledge Editor3.1 Enabled Column in Manage TopicsThere is a new column in the “Manage Topics” navigation list, called “Enabled”. It shows whether a topic is enabled or disabled (as of today). The column is sortable. 3.2 Procedural Topic SearchThere several new search methods in “Manage Topics”, in addition to the existing “matching query” and “string search” methods already available in 4.1. They are generally functions based on simple heuristics that find common and useful sets of topics. · Insufficient Natural Language Comprehension: Selects topics that have too few reference questions (and they are too long to be general). User provides a threshold. · Find Topics with No Response: Selects topics that have no “response” field set at all. Optionally, the user may provide a search string to limit the search to topics that contain that string as well. Additionally, agent developers may add new search methods by overriding the GetSearchFuncList() method and providing additional functions to call. See the specification “Procedural Topic Search” for more details. 3.3 Talk to Agent: Restart SessionIn “Talk to Agent”, you may now restart the current user’s session by clicking on the “Restart Session” button in the upper right corner of the http-msm’s user interface. 4 Quality Analysis4.1 Improved Task Analysis in Session AuditsConsole users who perform or browse audits and have the “own tasks” role and the “create tasks” role may now do more sophisticated task creation within session audits. When users with “own task” and “create tasks” see session transcripts in a session audit, they also see “add task” icons on the right side of the elements of the transcript: When clicked, the “Add Task” dialog opens and allows users to directly create new tasks for queries and topics without having to create an unanalyzed session task and analyze it later. 4.2 Non-Evaluation AuditsWe have introduced the notion of “non-evaluation” audits. These audits are exactly like normal audits, but you may not vote on them. They are replacing the “Session Search” component completely; as such: · There is no longer a “Session Search” component · Existing session searches will appear in Quality Analysis as non-evaluation session audits To create a new non-evaluation audit, clear the checkbox near the auditor popup labeled “Allow Evaluations”. When creating a non-evaluation audit, there is no need to specify an auditor. A new column is available in the audit listbox called “Eval” which shows whether an audit allows evaluations or not. NOTE: You may not create a non-evaluation audit series, since the purpose of audit series are to track evaluation trends over time. 4.3 Preset AuditsIn the “Create New Audit” page, there is a new popup called “Preset”. Choosing a preset (besides “custom”) fills in predetermined parameters of the audit. For instance, choosing “poor matches” (the only preset so far) does the following: · Sets the type to “query” · Turns off evaluations · Adds the filter “only include queries whose match score is less than 50” All other parameters are left alone. Changing any of the parameters of a preset will switch the preset popup back to “custom”. The console remembers that an audit was created as a preset, and a new column in the listbox called “preset” allows users to sort by preset to quickly find their preset audits. NOTE: Presets can be defined in the qa_config.xml file for an agent. See a console management developer for more information. “Poor Matches” is defined in the javascript and is always available. NOTE: Presets are not available in audit series. 5 Task List5.1 Session Summary in Task SummaryIn session tasks, we now display the first several exchanges of the session in the task summary pane (to allow users to quickly see the content of the session without jumping into analysis): 5.2 Add Task Dialog: Pre-Analyze Query TasksIn the “Add Task” dialog, console users who have the “own tasks” role may pre-analyze query tasks. If the user has that role, he will additional fields in the dialog to pre-select an analysis (and supporting information): The “analysis” popup contains the values “none” (no pre-analysis), “add new topic” (the user must provide a new topic name), or “custom” (the user must supply an explanation). Note that the user may not find another matching topic (to do this kind of analysis, the task list is necessary). This dialog change applies to creating tasks from both session audits (see “Improved Task Analysis in Audits” above) and query audits. 5.3 New FiltersUsers may now filter by comment and by analysis. The filters (available in “Additional Filters”) are case-sensitive string searches in the respective fields. It is NOT a keyword search (that is, users may not enter a list of comma-separated words and search for any or all of them). 5.4 Task Creators May See Created TasksIn the past, users who only had the “create tasks” role had trouble going to the task list component and viewing the list of their created tasks. This has been fixed. 5.5 Task Editing is Limited to the OwnerTask editing is now limited to the owner of the task. Exceptions: · Any user (who has a task list role) may add a comment to a task · Any user who has the “manage tasks” role may reassign a task 6 Usage Reporting6.1 Scheduled Delivery of Usage Reports in Excel Format By EmailPLEASE NOTE: This feature is only available on deployments on Windows boxes (due to the required libraries). The console now has the ability to periodically generate Excel 2007 (.xlsx) files of various sections of the usage reporting data for an agent, and e-mail those generated files to a group of usage users. In usage reporting, console users with the “manage scheduled reports” role can see a new command called “Scheduled Reports”. Clicking on the command takes the user to the scheduled report subcomponent: Schedules are similar to audit series in that they create objects periodically on some given schedule. Schedules have the following properties: · The Owner: the creator of the schedule. The owner can add and remove recipients. · The start date: when to begin generating reports (this date may be in the past, the present or the future). If the start date is in the past, all reports from that date to the present will be created at once to “catch up”. · The frequency: determines what time frame to use for usage data in the report, as well as how often to generate the report (and the send the e-mails). The possible frequencies are: o Every day: generate usage reports every day for the previous calendar day o Every week: generate usage reports every seven days for the previous seven days o Every month: generate usage reports every month for the previous month (no matter how many days are in the month) · The recipients: the list of people who should receive the generated report. These users must be console users whose username is an e-mail address and who have the “view usage reports” role. · The usage section paths: the list of sections of the usage reporting interface that should be included in the reports. Each path consists of a particular choice of tabs in the usage interface (e.g., “All Entry Points->Volume Summary”). · The generated reports: once a report is generated, it is e-mailed to current recipients, and is stored for future reference (clicking on a generated report in the UI will download the report to the local machine). Schedules may be suspended and resumed (once resumed, they will generate all missing reports since the suspension). NOTE: a user may remove himself/herself from a schedule at any time (although only an owner may add a recipient). NOTE: adding a recipient only affects generated reports going forward (old reports are not e-mailed to the new recipient). 7 Server Management7.1 Edit BMD.confNOTE: This feature is only available to users with the “admin” (superuser) role and should be used with extreme caution. In “Server Management”, there is a new command to edit the bmd.conf file from the console. The page provides a simple edit text that contains the body of the bmd.conf file. NOTE: Passwords are shown encrypted, and any clear text passwords saved will be re-encrypted before saving. 7.2 Update AgentsNOTE: This feature is only available to users with the “admin” (superuser) role and should be used with extreme caution. In “Server Management”, there is a new command to allow admins to “resurrect” a machine that has a bmd.conf, but needs to re-checkout all the agents. This can happen when a machine dies, and the bmd.conf is transferred to a new machine with a clean build, but no agents are checked out on the machine. 7.3 View Active UsersThis command allows console users with the “View Active Users” role to see other “active” (i.e., logged in) users on the same console. A user may only see users with a subset of the roles of the requesting user; the rest are aggregated into a count. This feature is also available in the “Lock KMS” page of the Knowledge Editor. 8 Other Features8.1 “Functional” hyperlinks and onclicks in Session TranscriptsWhen session transcripts are displayed (in Task List session analysis and Quality Analysis’s session audits), any existing links (<a href=…></a>) or onclick elements (<span onclick=…></span>) now “function”. When clicked, they open a modal dialog that displays the content of the href or onclick. In the case of hrefs, we allow the user to follow the link. 8.2 HTTP MSM: Session TimeoutThere is a new method of creating a countdown which will clear the transcript window after a specified amount of time. This is different than the normal session timeout, where the user’s session is marked complete, or the user profile purge, where the user’s data is written out to the user profile server. This timeout was created to allow sensitive information (such as financial or medical or other personal information) to be hidden from prying eyes on an idle session. When enabled, the user is notified that the session will expire in a certain amount of time (default is 5 minutes). After a certain amount of time (default is 2 minutes), the user is presented a warning that the session will expire soon: Dismissing the dialog indicates the user is still there, and resets the timer. If the user remains idle, the transcript is cleared, and the user is notified: All messages and timeout values are configurable in the defines.txt file. NOTE: If the http msm for a particular agent implements a “print transcript” or “save transcript”, this transcript should also be cleared when the window transcript is cleared (but since we do not control the code of the various http msms in all the agents, we did not implement that --- as we move those features back into the default http msm, we will implement that then). 8月30日 Developer Release Notes: 4.2For those that currently have access, a new version of our platform and SDK has been released. It is available for download here: https://buddyscript.colloquis.com/protected/down.pl?
Here are the release notes for developers on that version.
Developer Release Notes 4.2 1 Dynamically Changing Agent friendly name, Display Picture and personal message
You can now change the friendly name, icon, and/or personal message of your agent directly from the buddyscript code without having to change the bfg file and restart the agent.
To do so you have to override the following functions that defined in shared/WLMUtilities.pkg · WLMGetAgentFriendlyName() · WLMGetAgentIcon() · WLMGetAgentPersonalMessage()
For example:
function overrides WLMGetAgentFriendlyName() return "Friendly name of agent"
function overrides WLMGetAgentIcon() return "domains:/AgentName/image.jpg.png"
function overrides WLMGetAgentPersonalMessage() return "Your personal message"
You can obviously put a more complex logic in place to allow for thse message and or display picture to change on a schedule.
We recommend using this mechanism going forward rather than using the parameters of the MSN-msm component.
2 Windows Live/Passport Account Profile InformationWhat Can be accessed and whereMSN Messenger users profile information stored with their passport account can now be used in usage reports.
To allow for that information to be accessible during usage reporting The following call has to be made: call LogPassportProfileData()
This will stores the following user’s passport profile data in the session log:
· UserAge · UserGender · UserCountry · UserZipCode
This information is however not accessible to the code of the agent.
Availability of information during development
The actual information for each user will only be available when the agent is deployed within a Windows Live Data Center.
During Testing and if you would like your session logs to actually contain “test” information you can override the PPDIsInDebugMode function to return true.
If you want to simulate more variation in the data, you can also override the PPDGetDebugProfileData(SCREENNAME)function defined in Buddyscript Libs: /Shared_a1/Utilities/UserInfo/UserPUIDUtilities.pkg
3 PUID Access
If you agent needs access to other Windows Live Service using the end user PUID, contact the Windows Live Agents team to discuss your scenario and get access. 8月27日 Best Practices for Developing a Windows Live Agent: part 10Today's post concludes the best practices for developing a windows live agent series. We hope that you found it useful. Most posts from now on will still be best practices, as well as tips and tricks, but this series is officially over.
If you have any questions the best place for them is our forum on: http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1687&SiteID=1. Please do not hesitate to ask on the forum what other topics you would like covered.
Multiple screen names This post covers current functionality. We are looking into making this process more intuitive and less error prone. At that time, there will be a new post with new recommendations.
You should test your agent locally before you submit it to be hosted by Windows Live Agents. You can test much of the functionality of your agent in the IDE, but you’ll need to deploy it on Windows Live Messenger to see how it will act and appear to end users.
To do this, associate a login to a “KnowledgeManagement” filter, using the “Edit Agent Configuration” tab of your local KMS. When launching the web administration console and working with the KMS, the default filter is always “KnowledgeManagement”, and this should generally not be changed. The new service will look like this in the agent’s .bfg file: <service type="MSN" only-in="KnowledgeManagement"> <login> </login> <password> crypto: xxxXXXXxxxxxXX </password> <friendly-name> FriendBot name for knowledge management </friendly-name> </service>
Once your agent is hosted by Windows Live Agents, you will also need a deployment agent that the end users will chat with. You should provide a log in that you will need to associate with the “Deploy” filter and should be a different screen name than the “KnowledgeManagement” filter screen name, since both agents will be logged in at the same time. You will then be able to continue to update and improve your knowledge management agent (which is now on our servers), with the options to publish the changes that you are making to your Deploy agent.
Be aware that once we host your agent, whenever you log in locally with the same log in as the KnowledgeManagement or Deploy agents, you will sign out the agent that is logged in under the same screen name. To avoid this problem, if something now needs to be done locally (e.g. testing a change to an activity window), you should use a different screen name for your agent altogether. 8月13日 Best Practices for Developing a Windows Live Agent: part 9Make Your Agent Chatty Users will chat with your agent about more than the agent's primary content—be prepared. When you start your Agent from the WLATemplate project that ships with the SDK, it will “understand” a lot of Chat questions, but its answers will be generic. You can easily customize these answers to give your Agent its own voice. Customize in priority the answers to the questions you expect to be asked the most often, from “Are you married?” to “Where do you live?” Your users will likely ask absurd questions, make vulgar and inappropriate remarks, and just want to have a friendly chat about nothing in particular, so try to cover all the bases. You can make your answers funny: “Robots can’t get married!”
Personalize Your Agent Make your agent stand out with a display name, personal message, and display picture.
Example: See example photo at the end of this post.
- SmarterChild - *unicef contributing to charity is the display name. Display names are cleaner-looking and stand out more than the raw email address (smarterchild@hotmail.com). Here’s how the display name is set in the .bfg file:
<friendly-name> - SmarterChild - *unicef contributing to charity </friendly-name>
ask me how! is the personal message. Personal messages should be short and should compel end users to initiate a session, either with a call to action or a brief description of the agent’s functionality. If the agent is sponsored by a company, you may want to use their advertising slogan. Here’s how the personal message is set in the .bfg file:
<contact-card> ask me how! </contact-card>
The display image must be a 96x96 static .png, .jpg, or .gif. Here’s how the display image is set in the .bfg file:
<buddyicon> $_BFG_DIR/buddy_icon_01.gif </buddyicon> 8月8日 Best Practices for Developing a Windows Live Agent: part 8Make Your Project Modular Keeping your code modular will save a lot of work and make your code easier to read. Instead of doing everything in a large block, break it up into separate pieces that do specific smaller jobs.
DON’T:
procedure WelcomeMessage() - Hi, I’m FriendBot! if !Exist(G_USER_PROPS.favoriteFood) - What is your favorite food? ? It is FOOD=AFood G_USER_PROPS.favoriteFood = FOOD - Thanks! if !Exist(G_USER_PROPS.favoriteBand) - And what is your favorite music band? ? It is BAND=ABand G_USER_PROPS.favoriteBand = BAND - Great, thanks!
DO:
function UserFavFood() if Exist(G_USER_PROPS.favoriteFood) && G_USER_PROPS.favoriteFood ne "" return G_USER_PROPS.favoriteFood return 0
function UserFavBand() if Exist(G_USER_PROPS.favoriteBand) && G_USER_PROPS.favoriteBand ne "" return G_USER_PROPS.favoriteBand return ""
function AskUserFavFood() - What is your favorite food? ? It is FOOD=AFood. ? My favorite food is FOOD=AFood. - Thanks! return FOOD
function AskUserFavBand() - What is your favorite music band? - Great, thanks! return BAND
function UserFavorites() if !UserFavFood() G_USER_PROPS.favoriteFood = AskUserFavFood() if !UserFavBand() G_USER_PROPS.favoriteBand = AskUserFavBand() return G_USER_PROPS
procedure WelcomeMessage() - Hi, I'm FriendBot! G_USER_PROPS = UserFavorites()
This means more coding initially, but each piece can be used again. In the example below, the CheckMenu function checks a given restaurant to see if their menu contains a food type.
? Would I enjoy restaurant RESTAURANT=ARestaurant? if CheckMenu(RESTAURANT, UserFavFood()) - There is a high chance you will like it. else - I’m not sure, since your favorite food is not on the menu.
In the example above, you could also recommend a restaurant based on the user’s favorite food. The recommendation may come from a list of restaurants that are advertising with your bot.
Also, include patterngroups in your project to avoid copying the same natural language handles over and over.
Example:
patterngroup WhatIsSomeonesEMailAddress<Someone> ? What is Someone’s email address? ? How do I send email to Someone? ? How do I send Someone email? ? How do I email Someone?
You can call the patterngroup in your matching like this:
+- What is Bill’s email address? answers WhatIsSomeonesEMailAddress<Bill> 8月2日 Best Practices for Developing a Windows Live Agent: part 7Be Careful When Using Public Variables When using stored public variables, be careful not to lock the profile and write to them too often. If many users try to lock the profile at once, there is a risk of the agent timing out. Only use public variables if it’s necessary for that information to be available to all users of your agent. Only use stored public variables if that information must be maintained over a long period of time (otherwise, use unstored public variables for which you do not need to lock the profile).
Use Clear Naming Conventions When naming your procedures, variables, functions, etc., use a naming convention that will make sense to everyone—not only those who have worked on your project. If someone outside of your development team needs to troubleshoot an issue, you want him/her to get some idea of what your code does by merely reading the names used.
Do not:
function Horoscope1(VAR) return VAR.day + "-" + VAR.month + "-" + VAR.year
Do:
function GetHoroscopeDateFromObject(DATE) return DATE.day + "-" + DATE.month + "-" + DATE.year |
|
|