
一个为安全行动的语音和聊天代理提供框架:决策模型读取,代码决策,每个操作都经过策略门。
概览
人们打电话来支付账单、报告故障或安排预约,他们会根据一个标准来评判你的IVR或聊天机器人:它是否理解他们。大型语言模型终于让真正的理解成为可能,生成技术随之而来。DialogWright拆解了这些:理解是灵活的,代理说的和做的都是可预测的。你的代理不需要谈论所有事情。它需要彻底理解自己的领域,并安全地行动。 DialogWright 是一个面向语音和聊天代理的开源 TypeScript 框架。快速的决策模型会读取来电者所说并回答打字问题(判断,非生成文本),使来电者自然地交流。代理说的每一行都经过书写和批准,确定性代码决定下一步,每个操作都经过一个策略门,强制执行身份等级、范围、确认和尝试次数限制,每个决策都会被记录在哈希链审计日志中。
概述(AI 翻译)
没人打电话给IVR聊天。 人们打电话来付账单、报告故障或安排约会,他们用一个标准来评判你的IVR或聊天机器人:它是否理解他们。大型语言模型终于让真正的理解成为可能,生成技术也随之而来。DialogWright拆解了它们:理解是灵活的,代理说的和做的都是可预测的。你的代理不需要说所有事情。它需要彻底理解自己的领域,并安全地行动。
DialogWright 是一个开源的 TypeScript 框架,面向语音和聊天代理。快速决策模型会读取来电者所说并回答打字问题(判断,非生成文本),使来电者自然地交流。代理说的每一行都经过书写和批准,确定性代码决定下一步,每个操作都经过一个策略门,强制执行身份等级、范围、确认和尝试次数限制,每个决策都会被记录在哈希链审计日志中。回复很快,因为决策是一个简短的打字问题,而非一个完整的回答。
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
Nobody calls an IVR to chat. People call to pay a bill, report an outage or move an appointment, and they judge your IVR or chatbot by one thing: whether it understood them. Large language models finally made real understanding possible, and generation came bundled with it. DialogWright unbundles them: understanding is flexible, and what the agent says and does is predictable. Your agent does not need to talk about everything. It needs to understand its own domain thoroughly and act on it safely.
DialogWright is an open-source TypeScript framework for voice and chat agents. A fast decision model reads what the caller said and answers typed questions (judgments, never generated text), so callers talk naturally. Every line the agent says is written and approved, deterministic code decides what happens next, and every action goes through a policy gate that enforces identity levels, scope, confirmation and attempt limits, with each decision recorded in a hash-chained audit log. Replies are fast, because a decision is a short typed question and not a composed answer. An app is a folder: YAML for what is data (intents, forms, prompts, policy, identity, locales, a knowledge base of approved answers) and TypeScript for what runs (tools, hooks, rules of its own), so the same engine runs a clinic’s appointment line, a utility’s outage line or yours.
Try it, with no keys
You need git, Node 22.19 or later and pnpm 9 (corepack enable gives the version this repository pins). Nothing here needs an account or a key: a stub stands in for the decision model.
git clone https://github.com/DialogWright/dialogwright.git
cd dialogwright
pnpm install
pnpm --filter @dialogwright/example-clinic cli --client heuristic --today 2026-09-18
That is the text console of the example clinic, Example Family Practice (a fictional appointment line). Type what a caller would say (“I need to move my appointment”, “cancel”, “can I talk to someone”) and it prints each question the model was asked, what came back, the gate’s decision and the line the caller hears. --client heuristic answers from keywords, so it understands less than the real model; --today pins the day that “Tuesday” is read against. Then replay the clinic’s scripted calls and labelled lines against their baseline:
pnpm --filter @dialogwright/example-clinic regress
推荐工具
换一个关键词,或者移除筛选条件。
安装
npx skillfish add dialogwright/dialogwright