你有没有遇到过这样的困境?
想转型,但不知道怎么做。
这篇文章分享一下这个智能体的搭建过程,帮助大家了解一下工作流架构和LLM应用开发的玩法。
AI转型是产品经理最迫切的需求之一,但也是最难系统化的。
所以我做了这个智能体:通过AI分析你的岗位背景、经验级别、学习方向、时间安排和转型周期,为你生成一份专属的AI转型学习计划。
定位&整体交互
产品定位
核心价值:通过AI分析用户背景,生成个性化的、可执行的AI转型学习计划
支持不同转型周期(1个月、3个月、6个月)
交互流程非常简单直观:
整个智能体基于工作流架构搭建,分为三个核心阶段:
处理流程:
- 岗位类型收集(卡片选择):电商/社交/B端/工具/其他
- 工作经验收集(卡片选择):0-1年/1-3年/3-5年/5年以上
- 学习方向收集(卡片选择):推荐系统/NLP/CV/通用/需要建议
- 学习时间收集(卡片选择):<30分钟/30-60分钟/1-2小时/2小时以上
- 转型周期收集(卡片选择):1个月/3个月/6个月
阶段2:智能分析与计划生成
1、用户画像分析:
- 综合描述用户的基本情况
- 分析用户的学习背景和特点
- 评估用户的学习能力和时间条件
- 如果用户选择了“需要建议”,根据岗位类型推荐最适合的学习方向
3、学习计划生成:
- 1个月:按周划分(4个阶段)
- 3个月:按月划分(3个阶段)
- 6个月:按2个月划分(3个阶段)
4、计划参数适配:
- 根据每日学习时间调整任务量
- 如果任务时间过长,标记需要拆分
- 添加适配说明
主要功能:
技术实现细节
1. 卡片选择与信息标准化
卡片选择组件的特点:
- 用户点击卡片即可选择,体验流畅
- 只能有一个输出变量,不能有多个输出变量
- 节点2-6的每个节点都只有一个输出变量(如:job_type、experience_raw、direction_raw、study_time_raw、cycle_raw)
defmain(params: dict) -> dict:
job_type = params.get(‘job_type’) or”
direction_raw = params.get(‘direction_raw’) or”
cycle_raw = params.get(‘cycle_raw’) or”
experience_info = experience_mapping.get(experience_raw, {‘level’: ‘初级’, ‘years’: ‘1-3年’})
experience_years = experience_info[‘years’]
learning_direction = direction_raw if direction_raw else’通用’
# 转换学习时间
‘少于30分钟’: {‘time’: ‘少于30分钟’, ‘minutes’: 20},
‘1-2小时’: {‘time’: ‘1-2小时’, ‘minutes’: 90},
}
daily_study_time = study_time_info[‘time’]
# 转换转型周期
‘1个月’: {‘cycle’: ‘1个月’, ‘months’: 1, ‘intensity’: ‘高强度’},
‘6个月’: {‘cycle’: ‘6个月’, ‘months’: 6, ‘intensity’: ‘从容’}
cycle_info = cycle_mapping.get(cycle_raw, {‘cycle’: ‘3个月’, ‘months’: 3, ‘intensity’: ‘标准’})
cycle_months = cycle_info[‘months’]
return {
‘experience_level’: experience_level,
‘learning_direction’: learning_direction,
‘daily_study_time’: daily_study_time,
‘transformation_cycle’: transformation_cycle,
‘intensity’: intensity
关键设计:
- 卡片选择组件只能有一个输出变量,所以需要信息汇总转换节点来转换为多个标准化变量
- 转换逻辑要处理各种可能的输入格式,确保后续节点能正确使用
整个工作流中,大部分LLM节点输出JSON格式:
“user_message”:”用户看到的内容(Markdown格式)”,
// 后续节点需要的结构化数据
}
关键设计:user_message必须是对当前步骤执行结果的概括,而不是”正在处理”等过程性提示,这样用户能实时看到进度。
import json
defmain(params: dict) -> dict:
ifnot input_str:
# 处理可能被markdown代码块包裹的情况
input_str = re.sub(r’“`\s*$’, ”, input_str, flags=re.MULTILINE)
try:
context_data = parsed_data.get(‘context_data’, {})
return {
‘user_message’: user_message
except json.JSONDecodeError:
关键细节:
- 处理可能被markdown代码块包裹的JSON(去除“`json标记)
- JSON解析失败时的降级处理(返回空字典)
- 确保提取的字段都有默认值,避免后续节点报错
每个LLM节点都有详细的提示词,包含:
- 角色设定:明确LLM扮演的角色(如”你是一个用户画像分析助手”)
- 输入说明:清晰说明输入变量的含义和格式
- 输出格式:严格要求输出格式,提供示例
- 风格要求:强调专业性、实用性、个性化等
你是一个用户画像分析助手。请基于用户提供的信息,生成用户画像摘要和分析。
– 岗位类型:{{job_type}}
– 学习方向:{{learning_direction}}
– 转型周期:{{transformation_cycle}}({{intensity}})
1. **用户画像摘要**(100-150字):
– 分析用户的学习背景和特点
– 如果needs_suggestion为true,需要根据岗位类型给出学习方向建议
– 根据岗位类型,分析用户最需要的AI能力
– 根据学习方向,确定重点学习内容
– 评估每日学习时间是否充足
– 给出学习强度建议
请严格按照以下JSON格式返回:
“user_message”: “使用Markdown格式输出…”,
“context_data”: {
“profile_summary”: “…”,
“condition_assessment”: {…}
}
4. 错误处理与容错
JSON解析失败时的降级处理:
try:
context_data = parsed_data.get(‘context_data’, {})
except json.JSONDecodeError:
return {‘context_data’: {}}
# 确保study_time_minutes和cycle_months是int类型
if study_time_minutes isNone:
else:
study_time_minutes = int(study_time_minutes)
study_time_minutes = 45
# 如果任务预计时间超过每日学习时间,需要拆分或调整
ifisinstance(estimated_time, str):
# 尝试从字符串中提取数字
estimated_time = int(estimated_time.replace(‘分钟’, ”).replace(‘min’, ”).strip)
except:
# 如果任务时间过长,标记需要拆分
task[‘needs_split’] = True
实际效果展示
- 用户选择“电商产品经理”、“1-3年”、“推荐系统方向”、“30-60分钟”、“3个月”
- 生成的用户画像摘要
- 匹配的学习计划模板
- 最终生成的完整学习计划(包含总体目标、学习阶段、资源推荐、实战建议)
拓展和延伸
场景延伸
类似的玩法可以延伸到:
- 职业规划:为不同职业的人生成职业发展路径
- 技能学习:为不同背景的人生成技能学习计划
- 项目管理:为不同项目生成项目执行计划
- 内容创作:为不同主题生成内容创作计划
工作流架构的优势在于模块化和可扩展性:
- 知识库增强:可以为不同岗位类型添加专门的知识库,提高计划生成的准确性
- 多维度匹配:可以增加更多匹配维度(如行业、公司规模、个人兴趣等),让计划更加个性化
- 进度跟踪:可以增加学习进度跟踪功能,让用户能够记录学习进度和成果
- 社区功能:可以支持用户分享学习计划、交流学习心得、互相监督学习
为了让用户真正感受到”量身定制”,我在提示词中强调:
- 根据岗位类型分析最需要的AI能力:不同岗位对AI能力的需求不同
- 根据经验级别确定学习计划的起点和深度:新手和高级PM的学习路径完全不同
- 根据学习方向确定重点学习内容:推荐系统、NLP、CV的学习重点不同
- 根据学习时间和转型周期调整计划强度:时间有限时需要更聚焦的学习计划
- 推荐的学习资源要符合用户背景和需求:确保资源实用性和可获取性
因为过程中选择了结构化输出,没办法实现流式输出,为了让用户的体验相对好一点,我在关键节点提供阶段性输出。
关于智能体平台
最关键的是,你可以把搭建好的智能体直接发布到小程序,不需要自己搞备案、买服务器,用户体验流畅,价值完全不同。
这个智能体的核心价值不在于技术有多复杂,而在于它把”AI转型规划”这件事的门槛降低了。
如果你也想搭建类似的智能体,或者对技术实现细节感兴趣,欢迎交流。
https://yuanqi.tencent.com/webim/#/chat/vvQFvw?appid=2006199404765244416
题图来自Unsplash,基于CC0协议
