wa-audit
wa-audit
针对你的 WhatsApp 商业号码的商业审计。 将其指向一个 WAHA 实例,它会导出完整的 聊天记录,构建干净的对话语料库,运行一次 LLM 分析——该分析在到达你之前已对照语料库进行验证——并交付一份多工作表 XLSX 报告:响应时间、真实常见问题、客户画像、异议、机器人实际能解决什么——附带一张方法论工作表,记录验证过程驳斥了什么。
一切都在你自己的机器上运行。整个流水线中唯一的外发流量是第 4 阶段对你配置的 LLM 提供商的调用——即使这一点也可以通过 llm.provider: "mock" 或自托管的 OpenAI 兼容端点消除,实现完全离线运行。
Leé esto en castellano: README.es.md.
⚠️ 请先阅读
本项目与 WhatsApp、Meta Platforms Inc. 或其任何子公司没有任何关联、附属、授权、认可或任何形式的官方联系。"WhatsApp" 和 "Meta" 及相关名称、标志和图像均为其各自所有者的商标。WhatsApp 官方网站为 https://whatsapp.com。
本项目也与 WAHA 项目无关。此工具仅消费你运营的 WAHA 实例的 HTTP API;它不重新分发、捆绑或修改 WAHA(WAHA 为 Apache-2.0 许可,可从其官方仓库获取)。
WAHA 使用非官方方法访问 WhatsApp。WhatsApp 不允许其平台上有机器人或非官方客户端,并且无法保证你的账号不会被封禁。本项目的维护者不纵容任何违反 WhatsApp 服务条款的使用行为,并明确反对群发消息、垃圾信息、跟踪软件或对他人进行监视。对于关键业务集成,请考虑官方的 WhatsApp Business API。预期用途是企业分析其自身的对话历史。
个人数据: 聊天记录是第三方的个人数据。你有全部责任确保拥有处理这些数据的合法依据,并遵守适用于你的法律(GDPR、LGPD、Ley 25.326 等)。处理过程发生在你自己的基础设施上,本项目不会向其作者传输任何内容。唯一的外发流程是分析阶段,它会将语料库摘要发送给你配置的 LLM 提供商——使用本地或 mock 提供商则完全没有外发。请据此选择你的提供商。
本软件按"AS IS"提供,不附带任何形式的担保。
Related MCP server: Wasapi MCP Server
为什么验证器才是关键
这个流水线是为一个真实业务构建的:11,782 条消息,610 个对话,8 个月的历史。LLM 分析在 7 个维度上产生了 60 条发现。然后每个维度都经过一个独立的验证器,它对照语料库重新定位每一条引文并重新统计每一个论断。
验证器驳斥了 60 条发现中的 34 条。
看似合理、文笔流畅、数字自信的发现——其中超过一半经不起数据的检验。没有验证环节的 LLM 业务分析不是分析;它只是格式漂亮的虚构。这就是为什么在本项目中:
每条发现必须引用逐字证据(
thread_id+ 引文),并且一个确定性的代码检查会驳斥任何引文在语料库中不存在的发现——模型对此没有投票权;第二次、独立的 LLM 遍历会重新统计每一个频率论断,并驳斥那些经不起原样陈述检验的内容;
模式使裁决成为必填项:没有记录验证环节的分析在结构上就是无效的;
报告的方法论工作表会打印被驳斥的发现,这样就不会有人在之后重新引用那些错误数字。
两种分析视角:商业 + FATE 行为分析
该分析附带两套维度,两者都受同样的强制验证约束:
商业(7 个维度):真实常见问题、响应时间和运营、客户画像、产品和话题、异议和摩擦点、机器人机会、语气和风格。
FATE 行为分析(5 个维度,
npm run analyze -- --dimensions fate):业务如何吸引注意力(Focus)、如何展现确定性并信守承诺(Authority)、如何让客户感到被理解(Tribe)、如何触及情感层面而不是倾倒规格参数(Emotion),以及如何读取客户状态信号——仅限聚类,先给出良性解释,只描述状态,绝不对个体下结论。灵感来自 Chase Hughes 所著 The Behavior Ops Manual 中的 FATE 模型(原创表述;与作者无关联,也未获其认可)。先访谈你的运营人员,然后填入business-context.json——参见 analysis/PLAYBOOK.md。
两分钟试用(无需 WhatsApp)
git clone https://github.com/Leandrozz/wa-audit && cd wa-audit
npm install
npm run demo该演示会生成一个合成语料库,启动一个 mock WAHA 服务器,针对它运行整个流水线(探测 → 导出 → 语料库 → 已验证分析 → 报告),使用 mock LLM,并将报告以全部三种格式留在 out/demo/ 中——XLSX(客户电子表格)、HTML(可分享的单个文件)和 DOCX(Word)。无需密钥、无需网络、无需真实数据。
针对你的真实 WhatsApp 运行
你需要一个正在运行的 WAHA 实例,并已连接你的商业号码——参见 docs/waha-setup.md 了解那些让我们耗费数天的陷阱(引擎选择、fullSync、设备槽位、@lid)。
cp waha.env.example waha.env # fill in WAHA_BASE_URL + WAHA_API_KEY
# 0. read-only probe: right engine? how deep does the history go?
node --env-file=waha.env src/probe.mjs
# 2. dump the raw history (resumable)
node --env-file=waha.env src/export.mjs <session-name>
# 3. clean corpus: threads.json + messages.csv + summary.json
node --env-file=waha.env src/threads.mjs --session <session-name>
# 4. LLM analysis with mandatory verification (needs ANTHROPIC_API_KEY,
# or any OpenAI-compatible endpoint — see Configuration)
node --env-file=waha.env src/analyze.mjs
# 5. the report, in any or all formats
node src/report-xlsx.mjs && node src/report-html.mjs && node src/report-docx.mjs更愿意用你自己的智能体(Claude Code、Cursor 或任何其他工具)而不是内置引擎来运行分析?那是一条一等公民路径:analysis/PLAYBOOK.md。
官方 API 路径(Kapso)
如果该号码通过 Kapso 运行在官方 WhatsApp Business Platform 上,则完全跳过 WAHA——没有非官方客户端、此数据源没有 ToS 免责声明、没有 @lid:
cp kapso.env.example kapso.env # KAPSO_API_KEY + KAPSO_PHONE_NUMBER_ID
npm run export:kapso
node src/threads.mjs --session kapso --no-net同样的语料库、同样的验证器、同样的报告。一个诚实的权衡:官方平台没有追溯性回填,因此历史记录只覆盖号码在 Kapso 上连接之后流经它的数据。详情以及无需账号即可试用的 mock 服务器:docs/kapso-setup.md。
或者让 Claude 驱动整个过程(MCP)
npm run mcp 启动一个 MCP 服务器,将 Claude Desktop / Claude Code / ChatGPT / Cursor 变成审计引擎:智能体会访谈你、指导 WAHA 设置、直接在聊天中显示配对 QR 码、导出历史记录并自行运行分析。服务器在结构上保持诚实——submit_dimension 会拒绝任何没有记录验证裁决的维度,每条证据引文都会在服务器端对照语料库重新检查,聊天内容作为不可信数据提供。它永远不会发送 WhatsApp 消息。设置:docs/mcp-setup.md。
流水线
probe ──► export ──► threads ──► analyze ──► report-xlsx
(0) (2) (3) (4) (5)
read-only raw dump clean LLM + two- 11-sheet XLSX
sanity JSONL, corpus, layer with styles,
check resumable @lid verifier frozen panes &
resolution a methodology
+ metrics sheet每个阶段都读写普通的本地文件(默认为 data/wa-history/),因此你可以在不重复之前阶段的情况下重新运行任何阶段——不会因为解析错误而重新抓取转储。
配置
复制 wa-audit.config.json 并编辑,或使用环境变量覆盖(环境变量优先)。要点如下:
键 | 默认值 | 作用 |
|
| 打印在报告上的名称 |
|
| 自有线路,从客户指标中排除 |
|
| 标记内部线路的 CRM 邮箱 |
|
| 无前缀的 CRM 号码所属国家 |
|
| 本地时间戳的固定偏移 |
|
| 报告中的数字格式 |
|
| 可选的 CRM CSV( |
|
|
|
|
|
|
密钥仅通过环境变量提供:WAHA_BASE_URL、WAHA_API_KEY(第 4 阶段还需要 ANTHROPIC_API_KEY 或 LLM_API_KEY)。WAHA_BASE_URL 故意没有默认值——指向错误的实例是最昂贵的错误。
报告的行文目前是西班牙语(es-AR 预设);底层的数据契约是英语。行文的多语言化已在路线图上。
数据契约
threads.json、summary.json 和 analysis.json 都有版本号(schema_version: 1),并在 docs/data-contract.md 中有文档说明。分析契约在 analysis/analysis.schema.json 中正式化(npm run check:analysis):任何能产出有效 analysis.json 的引擎——LLM、规则、SQL、甚至人类——都可以无需修改地接入报告。
诚实的局限
WAHA 的批量历史端点只存在于 NOWEB/GOWS 引擎上;WEBJS 需要逐聊天导出(此处不支持——探测阶段会告诉你)。
超过约 3 个月的历史深度需要在转储之前以
noweb.store.fullSync创建会话(docs/waha-setup.md)。响应时间中位数以每个入站消息突发的第一条消息为锚点,且出站消息不区分人类与机器人——两者都在报告的方法论工作表中说明。
媒体没有可分析的文本(
downloadMedia=false):照片和语音消息会显示为已输入但内容为空。xlsx@0.18.5(已锁定版本:样式后处理依赖它)有一个已知的上游安全公告(针对不可信电子表格的原型污染 / ReDoS)。本项目只写入 XLSX 并读回自己的输出,因此该攻击向量不适用——但npm audit会标记它,我们宁愿告诉你而不是隐瞒。XLSX 样式通过将文件作为 ZIP 进行后处理来实现——这是刻意的、有文档记录的黑魔法:docs/xlsx-postprocess.md。
开发
npm test # unit + two end-to-end lanes against goldens
node fixtures/generate.mjs # regenerate the deterministic synthetic fixture
node test/record-golden.mjs # re-record goldens (review the diff like a spec)fixtures/ 中的一切都是合成的、虚构的。本仓库中不存在任何真实业务的实际对话、电话号码或姓名。
许可证
MIT。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceConnects AI assistants to the official Meta WhatsApp Cloud API for managing conversations and sending various message types through natural language. It provides tools for media management, template messages, and real-time webhook processing without the risk of account bans.184323MIT
- AlicenseBqualityAmaintenanceEnables managing WhatsApp Business accounts through natural language, including sending messages, managing contacts, and querying conversations.6216ISC
- AlicenseBqualityCmaintenanceEnables AI assistants to manage WhatsApp business operations including chatbots, broadcasts, campaigns, and contacts through 120+ MCP tools.10039MIT
- AlicenseAqualityBmaintenanceGoverns and automates WhatsApp messaging for AI agents with security controls like recipient allowlisting, secret scanning, rate limiting, and audit logging.5MIT
Related MCP Connectors
Brand visibility auditing across LLMs, AI search, and answer engines with GEO reports and scores.
Drive your real WhatsApp inbox from Claude — send, reply, label, assign, and triage via TimelinesAI.
Manage AI assistants, history, calls, campaigns, contacts, knowledge, messaging, and automations.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Leandrozz/wa-audit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server