CrewAI可自动处理FAQ问答,通过四个智能体协同完成问题理解、知识检索、答案合成与格式校验。需准备faq.md知识库、配置Tavily API密钥,并按步骤定义Agent、Task及Crew流程。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让AI自动回答用户提出的常见问题,不依赖人工值守,还能根据知识库内容动态生成准确回复。CrewAI能帮你把这项任务拆解成“理解问题→检索答案→组织语言→输出回复”四个角色协同完成,整个流程无需硬编码逻辑,靠智能体间自然协作就能跑通。
第一步:准备知识库与环境
新建一个项目目录,用Python 3.9+创建虚拟环境并激活。
安装核心依赖:pip install crewai langchain-openai tavily-python python-dotenv。Tavily用于实时补充外部信息,【必须申请免费API密钥并写入.env文件】,否则搜索工具会静默失败。
把FAQ内容整理成纯文本或Markdown文件,放在./data/faq.md路径下。内容不需要结构化,但每条问答之间用空行隔开,例如:“Q: 如何重置密码?\nA: 进入设置页点击‘忘记密码’…”。
第二步:定义四个协作智能体
打开agents.py,依次创建以下Agent:
方法一:问题理解专员
角色设为“FAQ语义解析员”,目标是“精准识别用户提问的核心意图和关键实体”,背景故事强调“专注处理模糊、口语化、带错别字的用户输入”。必须赋予llm实例,否则无法做语义判断。
方法二:知识检索员
角色设为“FAQ精准匹配专家”,目标是“从本地faq.md文件中定位最相关的1–3条原始问答”,工具列表只加FileReaderTool(file_path="./data/faq.md")。注意:【不要同时加载网络搜索工具,本地匹配优先级必须高于联网】。
方法三:答案合成编辑
角色设为“专业客服文案师”,目标是“将检索到的原始问答改写成自然、简洁、带人情味的回复”,背景设定为“有5年在线客服经验,擅长把技术语言转成用户能秒懂的话”。禁用所有工具,纯靠LLM重组语言。
方法四:格式校验员(可选)
角色设为“回复合规审查员”,目标是“检查最终回复是否包含敏感词、是否超出200字、是否遗漏必要联系方式”。这一步能避免AI自由发挥导致的合规风险,上线前建议启用。
第三步:编排任务流水线
在tasks.py中按顺序定义任务:
① 第一步:让问题理解专员分析原始提问,输出结构化字段{"intent": "重置密码", "entities": ["邮箱", "验证码"]}。
② 第二步:将上步输出作为上下文,交给知识检索员执行检索任务。这一步必须显式声明context=[task1],否则检索会变成无锚点乱搜。
③ 第三步:把检索结果和原始提问一起喂给答案合成编辑,要求输出严格遵循expected_output="一段不超过180字的完整回复,以‘您好!’开头,结尾带‘祝您使用愉快!’"。
④ 第四步(若启用校验员):接收合成后的回复,返回布尔值{"is_compliant": true, "issues": []}。任何is_compliant为false的输出都会被拦截,不会进入最终响应流。
第四步:组装团队并启动执行
新建crew.py,导入所有Agent和Task,然后初始化Crew对象:
crew = Crew(agents=[parser, retriever, editor, validator], tasks=[task1, task2, task3, task4], process=Process.sequential)。
调用crew.kickoff(inputs={"question": "我登不上账号,提示密码错误咋办?"}),等待3–8秒,终端就会打印出格式合规、语义准确、带温度感的自动回复。
这一步操作起来很简单,直接把文件拖进去就行。如果返回空结果,先检查faq.md里是否有“密码错误”相关条目,再确认.env中Tavily密钥是否拼写正确。

















