【Agent从入门到实践】10 决策模块:Agent如何“思考问题”

文章目录

目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步。想要系统学习AI知识的朋友可以看看我的教程 http://blog.csdn.net/jiangjunshow,教程通俗易懂,风趣幽默,从深度学习基础原理到各领域实战应用都有讲解。

前言

各位小伙伴,上一节我们聊了感知模块,Agent能"看到"周围的信息了对吧?但光看不行啊,就像咱们看到美食,得想"吃不吃、怎么吃";看到路口,得想"往左走还是往右走"------这就是决策模块要干的活儿!

今天咱们就扒一扒Agent的"大脑核心":决策模块到底是怎么帮Agent"思考问题"的?全程大白话,不搞复杂公式,还会带大家写个简单的决策代码,看完你就懂啦~

一、先搞懂:决策模块的本质------"输入信息→输出选择"

咱们先举个生活例子:你家小孩(或者你自己)早上起床,面临两个选择:

  • 选项A:先刷牙再吃早饭
  • 选项B:先吃早饭再刷牙

这时候你会怎么"决策"?肯定是先想:"哪个更健康?""有没有时间?"------其实Agent的决策模块也是这么干的!

它的核心逻辑超简单:

  1. 接收"感知模块"传来的外部信息(比如"现在是早上7点""牙刷在卫生间""早饭在桌子上");
  2. 结合自身的"目标"(比如"要健康""要准时上学");
  3. 经过一套"思考规则",最终选出一个"最优动作"(比如"先刷牙再吃早饭")。

用一句话总结:决策模块就是Agent的"指挥官",根据"看到的情况"和"想要的目标",拍板"接下来该干啥"

二、决策模块的3个关键步骤(通俗版拆解)

咱们用"Agent帮你买奶茶"这个场景,一步步看它是怎么决策的:

步骤1:明确目标(知道"要啥")

首先得让Agent知道"最终要达成什么"------目标可以是明确的,也可以是有优先级的。

比如买奶茶的目标:

  • 核心目标:买到"三分糖、加珍珠"的珍珠奶茶;
  • 次要目标:价格不超过20元;
  • 底线目标:15分钟内拿到。

Agent的目标通常是咱们提前设定的,就像给小孩说"去冰箱拿一瓶牛奶",目标越明确,决策越简单~

步骤2:分析现状(知道"有啥条件")

这一步是拿感知模块的信息来"算账"------哪些条件满足,哪些不满足,有哪些可选方案。

比如Agent买奶茶时,感知到的信息:

  • 附近有3家奶茶店:A店(距离500米,三分糖珍珠奶茶18元,需等10分钟)、B店(距离300米,只有全糖珍珠奶茶15元,需等5分钟)、C店(距离1公里,三分糖珍珠奶茶22元,需等8分钟);
  • 你现在的状态:只有20元,赶时间。

这时候Agent会把这些信息整理成"可选方案+约束条件",就像咱们列清单一样~

步骤3:执行规则(选出"最优解")

这是决策的核心!Agent会按照提前设定的"规则",从可选方案里挑最好的。

比如买奶茶的规则:

  1. 先满足核心目标(三分糖+珍珠),不满足的直接排除;
  2. 再满足次要目标(价格≤20元);
  3. 最后满足底线目标(时间≤15分钟)。

咱们一步步算:

  • 排除B店(只有全糖,不满足核心目标);
  • 排除C店(价格22元,超预算);
  • 剩下A店:满足所有目标→选A店!

你看,Agent的决策过程和咱们平时做事的逻辑几乎一样,只是它更"死板"------严格按照规则来,不会像人一样临时变卦~

三、代码实战:写一个"奶茶选购Agent"的决策模块

光说不练假把式,咱们用Python写个简单的决策代码,一看就懂!

python 复制代码
# 1. 定义目标和规则(提前设定好)
target = {
    "core": ["三分糖", "珍珠"],  # 核心目标
    "secondary": "price <= 20",   # 次要目标
    "bottom_line": "time <= 15"   # 底线目标
}

# 2. 感知模块传来的现状(可选奶茶店信息)
milk_tea_shops = [
    {"name": "A店", "sugar": "三分糖", "topping": "珍珠", "price": 18, "time": 10},
    {"name": "B店", "sugar": "全糖", "topping": "珍珠", "price": 15, "time": 5},
    {"name": "C店", "sugar": "三分糖", "topping": "珍珠", "price": 22, "time": 8}
]

# 3. 决策模块核心逻辑:筛选最优方案
def decision_module(shops, target):
    best_choice = None
    # 遍历所有可选方案
    for shop in shops:
        # 第一步:满足核心目标
        core_ok = all(requirement in [shop["sugar"], shop["topping"]] for requirement in target["core"])
        if not core_ok:
            continue  # 不满足核心目标,直接跳过
        # 第二步:满足次要目标(价格)
        secondary_ok = eval(f"{shop['price']} {target['secondary'].split(' ')[1]} {target['secondary'].split(' ')[2]}")
        if not secondary_ok:
            continue
        # 第三步:满足底线目标(时间)
        bottom_line_ok = eval(f"{shop['time']} {target['bottom_line'].split(' ')[1]} {target['bottom_line'].split(' ')[2]}")
        if bottom_line_ok:
            best_choice = shop
            break  # 找到满足所有条件的,直接返回
    return best_choice

# 4. 执行决策
result = decision_module(milk_tea_shops, target)
print(f"Agent的决策结果:去{result['name']}买奶茶!")
print(f"理由:满足{target['core'][0]}+{target['core'][1]},价格{result['price']}元(≤20元),等待{result['time']}分钟(≤15分钟)")

运行这段代码,输出结果就是:

复制代码
Agent的决策结果:去A店买奶茶!
理由:满足三分糖+珍珠,价格18元(≤20元),等待10分钟(≤15分钟)

是不是超简单?这个代码就是决策模块的"简化版"------实际的Agent决策模块会更复杂(比如考虑多个目标冲突、不确定因素),但核心逻辑和这个一样:按规则筛选最优解

四、常见的决策"思路"(Agent的3种"思考方式")

不同的Agent,决策逻辑也不一样,就像有的人做事果断,有的人喜欢犹豫~ 咱们介绍3种最常见的:

1. 规则式决策(最直接)

就像咱们刚才写的奶茶代码------提前定好"if-else"规则,Agent照着执行。

  • 优点:简单、速度快,容易理解;
  • 缺点:不够灵活,遇到没见过的情况就"懵了"(比如奶茶店出了"五分糖",规则里没写,就没法决策);
  • 适用场景:简单任务(比如自动回复、简单筛选)。

2. 目标导向决策(有明确方向)

Agent知道最终要达成的"目标",会主动寻找"能实现目标的路径"。

比如:Agent的目标是"帮你找到最近的咖啡店",它会先查附近的咖啡店位置,再算距离,最后选最近的------哪怕中间遇到"修路"(突发情况),也会重新规划路径。

  • 优点:灵活,能应对突发情况;
  • 缺点:需要提前明确目标,计算量比规则式大;
  • 适用场景:复杂任务(比如导航、智能助手)。

3. 学习式决策(会"总结经验")

这种Agent最厉害------它没有固定的规则,而是通过"学习"慢慢总结经验,越用越聪明!

比如:Agent一开始不知道"三分糖奶茶卖得最好",但它卖了100次奶茶后,发现选三分糖的客户最多,就会默认优先推荐三分糖------这就是机器学习的思路~

  • 优点:超级灵活,能适应新环境;
  • 缺点:需要大量数据学习,一开始可能会"犯错";
  • 适用场景:高级任务(比如推荐系统、自动驾驶)。

五、总结:决策模块的核心是什么?

其实不管是哪种决策方式,核心都离不开3件事:

  1. 知道"要啥"(目标);
  2. 知道"有啥"(现状);
  3. 知道"怎么选"(规则/学习经验)。

就像咱们教育小孩一样:告诉他们"要好好学习"(目标),让他们知道"自己现在的成绩"(现状),再教他们"怎么制定学习计划"(规则)------小孩就会慢慢学会"自己思考问题"~

下一节,咱们会聊Agent的执行模块:Agent如何"完成动作"(输出层,与外部系统交互的方式),比如奶茶Agent选了A店,怎么去买?记得持续关注哦!

如果觉得这篇文章好懂,别忘了点赞、转发,咱们一起把AI入门学明白~

相关推荐
qq_527887872 小时前
联邦经典算法Fedavg实现
人工智能·深度学习
天天讯通2 小时前
数据公司与AI五大主流合作模式
人工智能
Clarence Liu2 小时前
AI Agent开发(2) - 深入解析 A2A 协议与 Go 实战指南
开发语言·人工智能·golang
综合热讯2 小时前
AUS GLOBAL 荣耀赞助 2026 LIL TOUR 高尔夫嘉年华
人工智能
小饼干超人3 小时前
详解向量数据库中的PQ算法(Product Quantization)
人工智能·算法·机器学习
砚边数影3 小时前
AI数学基础(一):线性代数核心,向量/矩阵运算的Java实现
java·数据库·人工智能·线性代数·矩阵·ai编程·金仓数据库
互联网科技看点3 小时前
诸葛io获认可:金融分析智能体赛道领航者
大数据·人工智能·金融
engchina4 小时前
自然语言转 SQL 并不是“魔法”
数据库·人工智能·sql·text2sql·nl2sql·自然语言转sql
少林码僧4 小时前
2.30 传统行业预测神器:为什么GBDT系列算法在企业中最受欢迎
开发语言·人工智能·算法·机器学习·ai·数据分析