Coze智能体学习

Rudy 2025-10-21 10 10/21

一、基础入门

Coze智能体学习

1.Agent介绍

AI Agent是能够感知环境、自主决策、使用工具完成任务的智能体

Coze智能体学习

2.Coze介绍

零代码/低代码开发

网址:扣子编程,你的 AI 开发伙伴, Vibe Coding 基础设施,自然语言对话开发智能体、工作流、网页应用、移动应用,一键部署上线

特点:1.快速搭建 2.插件丰富 3.工作流强大 4.免费使用 5.多渠道发布

3.Agent案例实践

Coze智能体学习

Step 1让 Bot 听懂人话提示词工程,优化指令让模型准确理解用户意图

Step 2让 Bot 专业RAG 应用,接入外部知识库,提供精准、专业的领域知识

Step 3让 Bot 做事插件制作,让 Bot 调用外部工具 / API,完成实际业务操作

Step 4让 Bot 工作工作流编排,串联多步骤任务,实现复杂自动化流程

Step 5让 Bot 应用发布运营,将 Bot 部署到线上场景,触达真实用户并持续迭代

二、提示词

1.提示词知识

角色定位:明确 Bot 身份,塑造专业形象。

技能描述:清晰定义任务目标,明确工作范围。

约束条件:限制不当行为,保障交互安全合规。

输出格式:规范回复结构,保证输出统一清晰。

2.Coze提示词操作

常用方式:编写提示词+AI调优

Coze智能体学习

Coze智能体学习

Coze智能体学习

3.实战:高情商职场回复助手

点击提示词库

Coze智能体学习 Coze智能体学习

操作:用AI优化提示词,人工审核

三、RAG技术

01 RAG原理

RAG是一种结合知识检索和语言生成的人工智能技术,主要用于解决大型语言模型幻觉问题

Coze智能体学习

基本原理:在生成回答时,先从知识库中检索相关文档,将检索到的文档与原始问题一起输入LLM,LLM基于检索内容生成最终答案。

02 知识库构建

知识库构建:

文档准备

1.文档类型 2.表格类型 3.照片类型

文档预处理:清理无关内容(广告、水印)- 按主题分类整理 - 文件命名规范(含关键信息)

文档切片

为了适应大语言模型的上下文长度限制,并提升检索的精确度和效率

1.按字符数切分:固定长度(如每300字一段)

2.按符号切分:按照句号、换行符、感叹号等

3.按语义切分:识别主题变化点智能切分

文档向量化

将切分后的文本进行向量数字化,便于计算问题和文档的相似性。

03 LOL助手知识库

Coze智能体学习

4 LOL-RAG应用

1.创建智能体bot

2.构建提示词

3.选择知识库

4.结果验证

Coze智能体学习

四、Function Calling

1.工作原理

Coze智能体学习 Coze智能体学习

让大模型具备调用外部工具的能力。

流程:用户请求-》 大模型判断是否调用函数 -》 函数结果返回大模型 -》 给出答案

2. 旅游规划助手实操

业务:AI旅行规划助手

目标:基于现有插件,帮我规划去北京旅游的行程

Coze智能体学习

Coze智能体学习

可以用模型自动优化提示词

Coze智能体学习

3 天气查询插件制作

01 Coze自定义插件

Coze智能体学习

插件:get_weather

from runtime import Args
# 导入 requests 库,用于发送 HTTP 请求(调用天气 API)
import requests

# 若你的 Coze 模板里自带 Args,则保留;如果没有可删掉 ": Args"
def handler(args: Args):
    """
    天气查询插件:
    根据城市地址查询天气信息,例如输入“北京”,输出{
        high: "高温 7℃",
        low: "低温 -1℃",
        weather: "晴",
        week: "星期二"
    }
    """

    # === 1. 解析输入 ===
    try:
        # 从 args.input 中获取 location 字段,并去除首尾空格
        location = args.input.location.strip()
    except Exception:
        # 若获取 location 失败(如字段不存在、输入非对象等),设为空字符串
        location = ""

    # === 2. 城市编码映射(仅北京、天津、上海) ===
    city_code_map = {
        "北京": "101010100",   # 北京市天气 API 编码
        "天津": "101030100",   # 天津市天气 API 编码
        "上海": "101020100"    # 上海市天气 API 编码
    }

    # 根据用户输入的城市名,查找对应编码;若找不到则返回 None
    city_code = city_code_map.get(location)

    # 不支持的城市(如输入为空或未配置) -> 返回空值结构
    if not city_code:
        args.logger.warning(f"Unsupported location: {location}")
        return {
            "high": None,
            "low": None,
            "weather": None,
            "week": None
        }

    # === 3. 调用天气 API ===
    # 拼接完整 API 请求 URL
    url = f"http://t.weather.itboy.net/api/weather/city/{city_code}"

    try:
        # 发起 GET 请求,设置超时 5 秒
        response = requests.get(url, timeout=5)

        # 若 HTTP 状态码非 2xx,主动抛出异常
        response.raise_for_status()

        # 将响应体解析为 JSON 字典
        data = response.json()

        # 检查 API 业务状态码(该 API 约定 status=200 表示成功)
        if data.get("status") != 200:
            raise ValueError("Weather API returned non-200 status")

        # 提取今日天气预报(forecast 列表第 0 项即为当天)
        forecast = data["data"]["forecast"][0]

        # 返回天气基本信息
        return {
            "high": forecast["high"],      # 例如 "高温 7℃"
            "low": forecast["low"],        # 例如 "低温 -1℃"
            "weather": forecast["type"],   # 例如 "晴"
            "week": forecast["week"]       # 例如 "星期二"
        }

    except Exception as e:
        # 记录错误日志,便于调试
        args.logger.error(f"Weather query failed for '{location}': {e}")

        # 统一返回空值结构,保证插件健壮性
        return {
            "high": None,
            "low": None,
            "weather": None,
            "week": None
        }

Coze智能体学习

查询

Coze智能体学习

5 工作流搭建

01 工作流原理

工作流作用:将一个复杂的任务分解成一系列可管理的、按顺序或按条件执行的步骤,并通过图形化的界面将这些步骤连接起来

工作流:业务逻辑的可视化执行

Coze的两种工作流类型:对话流和工作流

工作流的核心组件:节点-特定功能的独立组件,负责处理数据、执行任务

02 对话助手基本流程

Coze智能体学习

Coze智能体学习

步骤:选择Agent对话流

创建对话流

03 意图识别插件

from runtime import Args
import random
"""
Each file needs to export a function named `handler`. This function is the entrance to the Tool.

Parameters:
args: parameters of the entry function.
args.input - input parameters, you can get test input value by args.input.xxx.
args.logger - logger instance used to print logs, injected by runtime.

Remember to fill in input/output in Metadata, it helps LLM to recognize and use tool.

Return:
The return data of the function, which should match the declared output parameters.
"""
def handler(args)->dict:
    """
    基于固定短语匹配的跨境电商问答处理器
    
    Args:
        query: 用户输入的问题
        
    Returns:
        Dict: 包含回复类型、回复内容等信息的字典
    """
    # 去除首尾空格
    query = args.input.query.strip()

    # 打招呼相关的固定短语
    greeting_phrases = {
        # 基本问候
        "你好", "您好", "hi", "hello", "嗨", "哈喽", "哈罗",
        "早上好", "下午好", "晚上好", "上午好", "中午好", "晚安",
        "早", "午安", "good morning", "good afternoon", "good evening",
        # 询问身份
        "你是谁", "你是什么", "你叫什么", "你的名字", "介绍一下自己", 
        "自我介绍", "你是什么东西", "你是哪个", "你是啥",
        # 询问状态
        "你好吗", "怎么样", "还好吗", "你还好吗", "最近怎么样",
        "你在吗", "在不在", "还在吗", "在线吗", "你在线吗",
        # 询问能力
        "你能干什么", "你会做什么", "你能做什么", "你的功能", 
        "你有什么用", "你的作用", "你的职责", "你的用途",
        "你能帮我什么", "你可以做什么", "你会什么", "你懂什么",
        "能力介绍", "功能介绍", "你的能力", "你有什么功能",
        # 开始对话
        "开始", "开始咨询", "开始对话", "开始聊天", "我想咨询",
        "我有问题", "我想问问题", "我想了解", "咨询一下",
        # 测试类
        "测试", "试试", "试一试", "test", "testing", "试试看",
        "测试一下", "看看", "检查一下"
    }
    
    # 礼貌用语
    thank_phrases = {
        "谢谢", "感谢", "多谢", "谢了", "thanks", "thank you", 
        "thx", "3q", "3x", "谢谢你", "感谢你", "多谢了",
        "非常感谢", "十分感谢", "万分感谢", "太感谢了"
    }
    
    goodbye_phrases = {
        "再见", "拜拜", "bye","byebye","goodbye", "88", "走了", "告辞",
        "先走了", "下次见", "回头见", "有空再聊", "改天聊",
        "see you", "拜", "溜了", "闪了", "slip away"
    }
    
    # 人工服务相关短语
    human_service_phrases = {
        # 直接要求人工服务
        "人工服务", "人工客服", "人工坐席", "人工咨询", "人工帮助",
        "人工支持", "人工答疑", "人工解答", "人工回复", "人工对话",
        # 转接相关
        "转人工", "找人工", "要人工", "转接人工", "转接客服",
        "切换人工", "接入人工", "联系人工","答疑入口",
        # 真人服务
        "真人服务", "真人客服", "真人咨询", "真人对话", "真人帮助",
        "活人", "真人", "人类", "人工", "真的人",
        # 客服相关
        "客服", "在线客服", "联系客服", "找客服", "客服电话",
        "客服微信", "客服qq", "官方客服",
        # 老师/导师
        "联系老师", "找老师", "咨询老师", "请教老师", "老师帮忙",
        "专业老师", "课程老师", "指导老师",
        # 专业服务
        "专人服务", "专人客服", "专业咨询", "专业服务", "专家咨询",
        "顾问咨询", "一对一服务", "专属服务",
        # 投诉和问题
        "投诉", "举报", "反馈问题", "意见反馈", "服务投诉",
        "质量问题", "服务问题", "系统问题",
        # 售后相关
        "退款", "退货", "售后", "售后服务", "退换货", "申请退款",
        "退费", "取消订单", "订单问题",
        # 不满意
        "不满意", "有问题", "出问题", "不行", "太差了", "服务差",
        "回答不对", "答非所问", "听不懂", "不准确"
    }
    
    # 固定回复
    greeting_response = "你好,很高兴为您服务!我是您的跨境电商学习小助手,专业为您答疑解惑。"
    
    polite_responses = {
        "thank": [
            "不用客气,随时为您服务!", 
            "很高兴能帮助到您!", 
            "这是我应该做的,有问题随时找我哦!",
            "客气了,有什么问题尽管问!",
            "不客气,祝您跨境电商生意兴隆!"
        ],
        "goodbye": [
            "再见!期待下次为您服务!", 
            "祝您生活愉快,有问题随时来找我!", 
            "再见!祝您跨境电商生意兴隆!",
            "拜拜!有问题随时回来咨询!",
            "再见!祝您学习愉快!"
        ]
    }
    
    human_service_response = "同学,点击 https://www.123.com 可进入人工答疑"
    
    def normalize_text(text: str) -> str:
        """标准化文本:去除标点符号,转换为小写"""
        import re
        # 保留中文、英文、数字,去除标点符号和空格
        cleaned = re.sub(r'[^\w\u4e00-\u9fff]', '', text.lower().strip())
        return cleaned
    
    def exact_match_check(query_text: str, phrase_set) -> bool:
        """精确匹配检查"""
        normalized_query = normalize_text(query_text)
        
        for phrase in phrase_set:
            normalized_phrase = normalize_text(phrase)
            if normalized_phrase == normalized_query:
                return True
        return False
    
    def contains_match_check(query_text: str, phrase_set) -> bool:
        """包含匹配检查(用于短查询中包含关键短语的情况)"""
        normalized_query = normalize_text(query_text)
        
        # 只有当查询很短时才使用包含匹配(避免误匹配)
        if len(normalized_query) <= 10:
            for phrase in phrase_set:
                normalized_phrase = normalize_text(phrase)
                if normalized_phrase in normalized_query or normalized_query in normalized_phrase:
                    return True
        return False
    
    # 处理输入
    query = query.strip()
    if not query:
        return {
            "type": "error",
            "response": "请输入您的问题。",
            "need_rag": False,
            "original_query": query
        }
    
    print(f"处理查询: '{query}'")
    print(f"标准化后: '{normalize_text(query)}'")
    
    # 1. 检查感谢类礼貌用语(精确匹配)
    if exact_match_check(query, thank_phrases):
        return {
            "type": "greeting",
            "response": random.choice(polite_responses["thank"]),
            "need_rag": False,
            "original_query": query
        }
    
    # 2. 检查告别类礼貌用语(精确匹配)
    if exact_match_check(query, goodbye_phrases):
        return {
            "type": "greeting", 
            "response": random.choice(polite_responses["goodbye"]),
            "need_rag": False,
            "original_query": query
        }
    
    # 3. 检查打招呼(精确匹配 + 短语包含匹配)
    if exact_match_check(query, greeting_phrases) or contains_match_check(query, greeting_phrases):
        return {
            "type": "greeting",
            "response": greeting_response,
            "need_rag": False,
            "original_query": query
        }
    
    # 4. 检查人工服务请求(精确匹配 + 短语包含匹配)
    if exact_match_check(query, human_service_phrases) or contains_match_check(query, human_service_phrases):
        return {
            "type": "human_service",
            "response": human_service_response,
            "need_rag": False,
            "original_query": query
        }
    
    # 5. 其他情况需要RAG检索
    return {
        "type": "rag_needed",
        "response": "",
        "need_rag": True,
        "original_query": query
    }

Coze智能体学习

04 完整对话流

Coze智能体学习

Coze智能体学习

05 微信发布

授权发布即可。

完整文档可见仓库地址:RudyGo8/Coze_Study

 

 

- THE END -
最后修改:2026年3月21日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论