调研日期:2026-08-06。
实现状态:本轮已在通用包独立实现 P0 的生成前销售动作规划、可配置 Journey/动作账本、分句级未来承诺校验、同会话生成串行和 stale reply 丢弃。实现没有复制第三方受限源码,也没有引入房产业务阶段。
没有发现一个开源项目已经提供经过独立验证、可直接复制的“房产经纪人销冠话术”。企微项目主要解决消息接入、幂等、会话隔离和渠道限制;回复自然度和销售推进能力主要来自成熟客服框架的条件化规则、对话阶段、动作状态、事实约束、人工接管和多轮评测。
本项目应保留现有确定性 qualityScore/qualityChecks 作为最终硬门,在生成前新增“本轮唯一销售动作”规划,在发送前新增“真实动作证据、旧回复过期和虚假未来承诺”检查。通用包只实现可配置引擎;房产阶段、带看目标、学区和产权规则继续留在业务 overlay。
develop 最近提交日期为 2026-07-10,Apache-2.0。值得学习:
condition -> action,每轮只注入当前相关规则,避免所有话术长期堆在 system prompt。不直接照搬完整 Python 运行时或多轮 LLM guideline matcher。当前 Node 架构只需独立实现规则匹配、优先级、Journey 状态和动作账本;现有事实硬门继续保留。
develop 最近提交日期为 2026-08-05。值得学习:
temperature=0 重写,强制保留姓名、数字、日期、链接、警告、已完成动作和 citation 顺序。许可边界:Captain 核心位于 enterprise/,受 Chatwoot Enterprise License 限制。只可独立实现同类机制,不复制其生产代码或模板。
值得学习:
不照搬航空业务和演示中的随机业务编号;其输出仍需经过本项目现有质量门。
值得学习:每个阶段拥有自己的目标、工具和转移条件;工具成功后才迁移阶段;人工接管前生成客户诉求、已知事实和失败原因摘要。只迁移状态思想,不引入语音传输栈,也不做线性问卷。
值得学习:用不同客户画像连续运行多轮场景;每个场景有明确成功、失败条件和最大轮次;逐项检查重复提问、工具调用和下一步推进。LLM 裁判只用于离线评测,不接入实时发送链。
| 项目 | 主要价值 | 采用边界 |
|---|---|---|
| CowAgent | 微信客服回调先 ACK、按 open_kfid 串行、cursor 原子持久化、冷启动不重放历史、会话并发为 1 |
通道可靠性强;没有可验证的销冠话术或完整人工接管 |
| LangBot | WeCom/微信客服适配、唯一 msgid、个人目标限制、pipeline/session 隔离、限流和内容过滤测试 | 可参考协议与测试;回复策略仍依赖上层 Agent |
| openclaw-china | cursor + msgid 双重幂等、冷启动 prime、统一 envelope、空 payload 不发送 | 仓库未发现许可证;默认开放策略不适合本项目白名单默认值 |
| WxJava / go-wecom | 成熟企业微信 API、客服 bot/人工状态、消息去重和统计模型 | 适合作为协议参考,不提供回复质量逻辑 |
| 能力 | 当前状态 | 结论 |
|---|---|---|
| 首句直答、最多一个问题、阶段下一步 | 已实现 | 保留 |
| 事实证据、敏感承诺、风险人工审核 | 已实现确定性门 | 保留并继续作为 hard gate |
| 一次质量重写、失败降 review | 已实现 | 保留 |
| 纯确认/致谢静默 | 已实现 | 优于 Parlant 的持续回复默认,不改 |
动态 condition -> action guideline |
已实现 | 每轮稳定选择一个 primaryMove,跟踪规则只在未确认时命中 |
| 可跳转 Journey 和持久阶段 | 已实现可配置引擎 | 支持跳过、回退、重入;行业阶段由项目覆盖层提供 |
| 已执行销售动作账本 | 已实现 | planned/executed/confirmed 显式持久化,已确认 guideline 不重复执行 |
| 虚假未来工作承诺 | 已实现 | future_promise_evidence 与 performed_action_evidence 为 hard check |
| 模型运行期间新消息到达 | 已实现 | 入站先入库、同会话串行;生成后和自动发送前校验最新 inbound |
| 会话 episode 边界 | 缺失 | 人工结束、长间隔或业务完成后建立边界 |
| 风格适配和短语重复 | 只拦完整回复重复 | 新增语气画像与短语/动作重复检查 |
| 多轮模拟评测 | 现有 48 条以单轮/固定上下文为主 | 增加多轮客户模拟,不替代人工盲评 |
“销冠感”不等于提高 temperature、增加热情词或随机套话,应由以下可验证行为形成:
标准化企微入站
-> 每会话串行 + stale-message guard
-> episode / Journey 状态恢复
-> 画像事实与 applied-action ledger 更新
-> 匹配少量 active guidelines
-> 选择本轮唯一 sales move
-> 按需执行工具
-> 生成自然 response acts
-> 事实 / 重复 / future-promise / 风险质量门
-> review 或真实发送
-> 仅在工具/发送/人工接管成功后提交阶段和动作状态
建议内部结构:
Guideline: condition, action, stage, priority, criticality, track。JourneyState: stage, completedActions, blockedBy, evidenceRefs, candidateNextActions。ResponsePlan: primaryMove, knownFactRefs, askField, cta, humanAction, styleProfile。AppliedAction: actionKey, sourceMessageId, status=planned|executed|confirmed, evidenceRefs。StyleProfile: sentenceTarget, formality, addressing, emojiPolicy, verbosity。这些字段是内部状态,不外发固定标题。最终客户回复仍是自然的 1-3 个短句。
agent-sales-move-planner.js:结构化 Guideline、六类通用动作、唯一 primaryMove 和规则命中审计。agent-conversation-journey.js:可跳转 Journey 与 planned/executed/confirmed 状态机。conversation_journeys / conversation_applied_actions:当前阶段和动作账本的显式 SQLite 持久化。response-future-promise-verifier.js:分句识别核实、通知、回电、交接、处理等声明;证据必须同动作、成功且作用域匹配。AgentWorkbenchService:每会话 Promise 队列、agent_response_stale_discarded 审计、auto/autopilot 发送前 stale guard。QiweiAgentRuntime:生成前注入本轮唯一销售动作,工具轮次后重新规划;现有确定性质量门仍为最终发送门。可选配置为 QIWEI_AGENT_REQUIRED_PROFILE_FIELDS、QIWEI_AGENT_SALES_GUIDELINES_JSON 和 QIWEI_AGENT_JOURNEY_JSON。未配置行业 Journey 时使用单一通用 active 阶段,不硬编码房产流程。
planner 每轮只输出一个 primaryMove:回答、顾虑承接、补一个关键字段、给方案、处理异议、推进下一步或人工接管。responseGuidelines/guardrails/specialistPlaybook,通用包不硬编码房产阶段。enterprise/ 代码或提示模板。agent:smoke 48/48、runtime:smoke 25/25。这些是确定性工程回归,不代表真实客户自然度或销售转化率。拟人表达的真实增益仍需多轮同输入模型候选和独立盲评确认。