agent-response-human-style-smoke-test.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. 'use strict';
  2. const assert = require('assert/strict');
  3. const {
  4. replyStyleViolations,
  5. enforceHumanReplyStyle,
  6. enforceTabooFreeReply,
  7. enforceSingleFinalReply,
  8. } = require('../mcp/src/core/response-human-style');
  9. function main() {
  10. const inbound = '想了解你们的企业服务怎么收费?';
  11. const clean = '费用要按服务范围确认;您更关心套餐还是人数?';
  12. assert.deepEqual(replyStyleViolations(clean, inbound), []);
  13. const promised = replyStyleViolations('我先帮您核实好再回复您。', inbound);
  14. assert(promised.includes('unverified_commitment'));
  15. const guaranteed = replyStyleViolations('保证给您全网最低价,一定不会更贵。', inbound);
  16. assert(guaranteed.includes('absolute_guarantee'));
  17. const enforced = enforceHumanReplyStyle(
  18. { reply: '我先帮您核实好再回复您。', reason: 'fixture' },
  19. inbound,
  20. {},
  21. { conversationKey: 'human-style-smoke' },
  22. );
  23. assert.notEqual(enforced.reply, '我先帮您核实好再回复您。');
  24. assert.match(enforced.reply, /确定|核|条件|确认|范围|档期/);
  25. assert.doesNotMatch(enforced.reply, /房源|看房|带看|小牛/);
  26. const taboo = enforceTabooFreeReply({
  27. reply: '为了更好地为您服务,我们一直致力于提供优质服务。费用按范围确认。',
  28. });
  29. assert.doesNotMatch(taboo.reply, /为了更好地为您服务|我们一直致力于提供优质服务/);
  30. const collapsed = enforceSingleFinalReply({
  31. reply: '草稿版本。\n最终回复:费用要按服务范围确认,您更关心套餐还是人数?',
  32. });
  33. assert.match(collapsed.reply, /费用要按服务范围确认/);
  34. assert.doesNotMatch(collapsed.reply, /草稿版本/);
  35. process.stdout.write(`${JSON.stringify({ status: 'ok', checks: 6 }, null, 2)}\n`);
  36. }
  37. try { main(); }
  38. catch (error) {
  39. process.stderr.write(`${error.stack || error.message}\n`);
  40. process.exit(1);
  41. }