共计 1830 个字符,预计需要花费 5 分钟才能阅读完成。
Tavily Skill 基本概念
Tavily Skill 是一种允许开发者构建智能交互能力的平台,类似于 Alexa Skills 或 Google Actions。通过 Tavily Skill,你可以创建能够理解自然语言、执行任务并提供响应的智能应用。

- 核心组件:包括意图(Intents)、话语(Utterances)、槽位(Slots)和响应(Responses)
- 典型应用场景:智能家居控制、信息查询、娱乐互动、生产力工具等
- 优势特点:
- 低代码开发体验
- 自然语言处理内置
- 多平台部署能力
开发环境准备
- 注册开发者账号
- 访问 Tavily 开发者门户
-
完成邮箱验证和基本信息填写
-
安装必要工具
- Node.js 16+(推荐使用 nvm 管理版本)
- Tavily CLI:
npm install -g @tavily/cli -
代码编辑器(VS Code 推荐)
-
初始化项目
mkdir my-first-skill cd my-first-skill tavily init
创建第一个技能
1. 定义技能基本信息
在 skill.json 中配置:
{
"name": "天气查询",
"description": "查询指定城市的当前天气",
"invocationName": "天气助手"
}
2. 创建意图处理逻辑
在 handlers/weather.js 中:
// 天气查询处理程序
export const handler = {canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'WeatherIntent';
},
async handle(handlerInput) {
// 获取城市参数
const city = handlerInput.requestEnvelope.request.intent.slots.city.value;
// 调用天气 API(伪代码)const weather = await getWeather(city);
// 构建响应
return handlerInput.responseBuilder
.speak(`${city}的当前天气是 ${weather}`)
.getResponse();}
};
3. 配置交互模型
在 models/en-US.json 中定义:
{
"interactionModel": {
"languageModel": {
"intents": [
{
"name": "WeatherIntent",
"slots": [
{
"name": "city",
"type": "AMAZON.City"
}
],
"samples": ["{city}的天气",
"查询 {city} 的天气情况"
]
}
]
}
}
}
测试与调试
-
本地测试
tavily simulate "查询北京的天气" -
调试工具
- 使用
tavily logs查看实时日志 -
配置
.env文件设置调试模式:DEBUG=true -
测试技巧
- 边界测试:空值、特殊字符、超长输入
- 语音识别测试:不同发音和口音
部署到生产环境
-
构建技能包
tavily build -
部署命令
tavily deploy --env production -
注意事项
- 确保所有环境变量已正确配置
- 检查 API 调用配额限制
- 设置合适的超时时间(建议 <5 秒)
常见问题解答
-
Q:如何处理未识别的意图?
A:创建 FallbackIntent 处理未知请求export const fallbackHandler = {canHandle() {return true;}, handle(handlerInput) { return handlerInput.responseBuilder .speak("抱歉,我没听懂您的请求") .reprompt("请再说一次?") .getResponse();} }; -
Q:如何添加多语言支持?
A:在models/目录下创建对应语言的文件(如zh-CN.json) -
Q:技能响应太慢怎么办?
A: - 检查外部 API 响应时间
- 实现数据缓存
- 使用异步响应模式
后续学习建议
- 官方文档:Tavily 开发者文档
- 示例项目库:GitHub 上的
tavily/skill-samples - 进阶主题:
- 用户会话状态管理
- 账户链接实现
- 技能数据分析
通过这个基础技能开发流程,你应该已经掌握了 Tavily Skill 的核心开发方法。建议从简单功能开始,逐步增加复杂性。遇到问题时,开发者社区和官方论坛都是很好的求助渠道。
正文完
发表至: 技术教程
近三天内
