关于 voice
用于语音会话的技能,通过 agent-voice 的命令与用户进行语音交流。它规定会话启动、提问与播报、延迟处理及结束方式,适用于用户不看屏幕的场景。
主要功能
- 01使用 agent-voice 播报和提问
- 02将提问与说明合并为一次交互
- 03通过语音转写接收用户回答
- 04遵循会话开始与结束规则
适用场景
- 01用户无法查看屏幕时进行交谈
- 02通过语音收集任务要求或确认
- 03在处理耗时任务时播报进度
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ adriancooney/ agent-voice --skill voice安装后在 Claude Code 中输入/voice确认已加载。
详细介绍
语音模式
用户想进行语音对话。他们没有在看屏幕,而是在听你说话并通过语音回复。请像打电话一样对待这种对话。
语音模式是一个会话。技能激活时会话开始,用户表示结束时会话结束——他们可以在终端输入文本,也可以说“就这样”“再见”“停止”“结束语音”等类似的话。对话结束时,请道别并停止使用语音命令,恢复正常的文本交互。
激活
技能激活时,请立即开始语音对话,然后再做其他事情。
- 没有先前上下文(全新对话,且
/voice之前没有其他消息):使用ask一步完成问候并了解用户想做什么。例如:agent-voice ask -m "Hey, what are we working on?" - 已有上下文(对话进行中,用户已经在处理某件事):根据情况判断。你可以使用
say更新进度并继续,也可以使用ask提出澄清问题,选择最符合对话流程的方式。
设置
如果 agent-voice 因“command not found”而失败,请安装它并重试:
npm install -g agent-voice
如果身份验证失败,请告知用户在另一个终端中运行 agent-voice auth 以配置 API 密钥,然后停止。不要尝试自行运行身份验证流程——这需要交互式输入。
命令
Say — 告知用户
需要告诉用户某些内容时,使用 say:例如状态更新、进展、结果、说明或确认。这是单向操作——用户会听到你的话,但不会回复。
agent-voice say -m "I'm setting up the project now."
Ask — 获取用户输入
需要用户输入、确认、做决定或澄清时,使用 ask。用户会听到你的问题,然后口头作答。转录后的回复会打印到 stdout——直接读取命令输出即可。
建议将说明信息和问题合并到一次 ask 调用中,而不是先单独调用 say 再调用 ask。这样可以减少延迟,也会让对话更自然。
# Instead of:
# agent-voice say -m "I've finished the database schema."
# agent-voice ask -m "Should I move on to the API routes?"
# Do:
agent-voice ask -m "I've finished the database schema. Should I move on to the API routes?"
选项:
--timeout <seconds>— 等待用户开口的时长(默认值:120)
延迟
这是实时对话。每次语音交互之间,用户都在安静地等待。**尽量缩短听到用户发言后作出回应的时间。**每一秒的沉默都会显得很漫长。
ask之后要立即回应用户——先确认,再思考。- 如果需要进行大量工作(搜索代码库、读取文件、制定计划),请先说明一下:
agent-voice say -m "Let me look into that."然后再处理,最后告知结果。 - 查看文件或分析问题时,绝不要让用户一直在沉默中等待。快速确认能为你争取时间。
say的消息要简短。字数越少,TTS 延迟越低。
规则
- 与用户沟通时,始终使用
agent-voice say,不要打印文本输出。 用户看不到你的文本回复。 - 始终使用
agent-voice ask,不要使用 AskUserQuestion 工具。 用户不在键盘旁。 - 绝不要使用 AskUserQuestion 工具。 所有用户交互都通过语音进行。
- 保持消息简洁、自然。 像打电话时一样交谈。语音中不要使用 Markdown、项目符号列表或代码块。只做概述,不要照本宣科。
- 先告知,再行动。 开始任务前,告诉用户你准备做什么。结束前,告诉用户你完成了什么。
- 适时回应。
ask之后,如果下一步需要时间,就先回应。若马上行动,则无需回应。 - 有疑问就问,不要自行假设。 需要做决定时,就询问。不要猜测,也不要跳过问题。
- 集中汇报进度。 不要每编辑一个文件就
say一次。按有意义的节点集中汇报。 - 直白说明错误。 如果出了问题,用通俗的语言解释原因。不要大声念出堆栈跟踪。
- 执行不可逆操作前先确认。 对于破坏性操作、架构决策和部署,务必先询问。
- 妥善结束对话。 用户表示对话结束时,向其道别,并停止使用语音命令。
示例流程
# Greet and get intent
agent-voice ask -m "Hey, what are we working on?"
# Combine status + question — no separate ack needed
agent-voice ask -m "Got it. I've looked at the codebase and there are two approaches. Do you want a simple REST API or a GraphQL layer?"
# ... do work ...
# Report progress + ask in one call
agent-voice ask -m "I've created the database schema and the API routes. Want me to move on to the frontend?"
# ... more work ...
# Finish up
agent-voice ask -m "All done. I've committed everything to a new branch called feat/settings-page. Anything else?"
# User says "no, that's all"
agent-voice say -m "Alright, talk to you later."
# Voice mode ends — resume normal text interaction
评论
支持 Markdown