让AI自动了解你的小程序 ------ AgentForge-WX的autoContext设计思路
上次发了篇《5分钟给你的微信小程序加个AI助手》,有开发者问了一个好问题:AI接入之后,对自己小程序的功能一无所知,用户问"这个App能干嘛",AI只能胡扯。
这确实是个痛点。传统的AI聊天组件就是个"陪聊",对你的产品一无所知。用户想要的不是聊天,是有人教他用这个小程序。
所以我想了一个方案:让AI自动了解你的小程序。
痛点:AI是个"外人"
想象一下这个场景:
erlang
用户:这个小程序能干嘛?
AI:我是一个AI助手,可以回答你的问题、聊天、写文案...
用户:...我是问这个小程序有什么功能
AI:抱歉,我不太了解这个小程序的功能
尴尬。AI就像一个刚入职的客服,什么都没培训就上岗了。
最初方案:让开发者配置
我的第一反应是让开发者手动配置:
js
const agent = new Agent({
appContext: {
appName: '花销记事本',
features: [
{ name: '快速记账', desc: '手动输入金额和分类,3秒记一笔', page: '/pages/add/add' },
{ name: '账单导入', desc: '导入微信/支付宝账单文件自动解析', page: '/pages/import/import' },
// ...还要写更多
],
faq: [
{ q: '怎么记一笔花销?', a: '首页点右下角+号,输入金额选分类' },
// ...还要写更多
]
}
});
写完之后我看了看------这谁会用? 引入框架本来是为了省事,结果配置比写代码还麻烦。我是个开发者,我要的是"复制粘贴就能跑",不是"填20行配置才能用"。
转变思路:让AI自己"看懂"小程序
既然不想让开发者写配置,那就让AI自己发现信息。
微信小程序运行时,页面的路由、tabBar、标题这些信息本来就存在。AI需要的不是"被告诉",而是"自己看"。
方案:自动扫描 + 一行开关
开发者在 app.js 的 globalData 里声明功能信息(这是小程序开发本身就有的数据):
js
// app.js --- 小程序本来就有的文件
App({
globalData: {
// 你本来就要写的应用数据
appName: '花销记事本',
// 加这一段就行
agentforge: {
pages: [
{ name: '记账', desc: '快速记一笔', path: '/pages/add/add' },
{ name: '统计', desc: '月度花销图表', path: '/pages/stats/stats' },
],
tabBar: {
list: [
{ text: '首页', pagePath: '/pages/index/index' },
]
}
}
}
});
组件加一个属性:
html
<agent-chat name="ai_main" autoContext />
就这样,完事。
实现原理
整个流程分三步:
第1步:小程序端自动收集
agent-chat 组件初始化时,自动从 getApp().globalData.agentforge 读取配置,随每次请求发给云函数:
js
// 组件内部自动执行,开发者不需要写
attached() {
const appContext = getApp().globalData.agentforge;
this._client = new AgentClient({ appContext });
// 之后每次聊天自动带上appContext
}
第2步:云函数自动注入systemPrompt
框架收到 appContext 后,自动拼一段"产品说明书"注入到AI的systemPrompt:
markdown
## 你当前所在的小程序信息
小程序名称:花销记事本
### 功能页面:
- 记账:快速记一笔(路径:/pages/add/add)
- 统计:月度花销图表(路径:/pages/stats/stats)
### 底部Tab导航:
- 首页(/pages/index/index)
### 重要指令:
- 用户问"这个小程序能干嘛"时,列出功能页面
- 需要帮用户跳转到某个页面时,使用navigate工具
- Tab页面用switchTab跳转,其他页面用navigate跳转
AI瞬间就"懂了"这个小程序。
第3步:navigate工具实现页面跳转
AI不仅能"说",还能"做"。注册了一个内置的 navigate 工具:
php
用户:帮我看统计
AI:→ 调用 navigate({ path: '/pages/stats/stats', type: 'switchTab' })
客户端收到指令 → wx.switchTab({ url: '/pages/stats/stats' })
AI回复:帮你打开统计页面了 📊
关键设计:navigate工具在云函数端不实际跳转(云函数没这个能力),而是返回一个跳转指令,由小程序端执行。这样保持了前后端职责分离。
效果
markdown
用户:这个小程序能干嘛?
AI:花销记事本有2个核心功能👇
1. 记账 --- 快速记一笔花销
2. 统计 --- 月度花销图表和分类占比
你想用哪个?我教你怎么操作
用户:怎么导入账单?
AI:点击首页的"导入"按钮,选择微信或支付宝账单文件上传就行。
我帮你直接跳过去?👉
用户:好
AI:→ 自动跳转到 /pages/import/import
已帮你打开导入页面!
为什么这是杀手级功能
| 传统AI框架 | AgentForge-WX + autoContext |
|---|---|
| AI对你小程序一无所知 | AI自动了解功能和页面 |
| 用户问功能不会答 | 精确列出功能列表 |
| 想跳转页面?自己点 | AI直接帮你跳 |
| 需要写大量配置 | 一行 autoContext 搞定 |
AI不应该只是聊天机器人,它应该是产品的智能导航员。
这才是AI助手该有的样子------不需要教用户怎么用,AI直接带他们去。
仓库地址
- 🔧 框架源码:gitee.com/yufuwu/agen...
- 📦 npm:
npm install agentforge-wx agentforge-wx-client
欢迎 Star ⭐ 欢迎 PR 🤝
如果这篇文章对你有帮助,点个赞👍让更多人看到,谢谢!