从"陪聊机器人"变成"产品导航员"

让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.jsglobalData 里声明功能信息(这是小程序开发本身就有的数据):

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直接带他们去。


仓库地址

欢迎 Star ⭐ 欢迎 PR 🤝


如果这篇文章对你有帮助,点个赞👍让更多人看到,谢谢!

相关推荐
px不是xp19 小时前
【灶台导航】优化纠错实录
javascript·微信小程序
爱勇宝1 天前
我做了一个亲子成长小程序:想把“催孩子”变成“看见孩子”
微信小程序·产品·全栈
克里斯蒂亚诺更新1 天前
微信小程序体验版可以获取当前位置但是正式版不可以-办法解决
微信小程序·小程序
巴巴博一1 天前
uni-app / 微信小程序中 open-type=“share“ 按钮样式异常,和普通 view 无法齐平的解决方案
微信小程序·uni-app·notepad++
资深前端之路1 天前
微信小程序节点最大限制为5000个
微信小程序·小程序
wuxia21182 天前
微信小程序单击元素切换元素的显示和隐藏
javascript·微信小程序·setdata
silvia_Anne2 天前
微信小程序之渲染商品列表
微信小程序·小程序
草根站起来3 天前
微信小程序request net:ERR_CERT_DATE_INVALID
微信小程序·小程序
double_eggm4 天前
微信小程序7
微信小程序·小程序