跳转至

智能体经典范式构建

第四章 智能体经典范式构建

ReAct 走一步看一步

代码的运行结果

代码都是该项目原始发布的状态,没有修改。 这里展现的是一些运行问题,这就是前两年业界搞纯 Prompt Agent 时的日常折磨,后续的Function Calling可以解决该类问题。

智谱:

点击展开查看运行结果
工具 'Search' 已注册。

--- 第 1 步 ---
🧠 正在调用 ZhipuAI/GLM-5 模型...
✅ 大语言模型响应成功:
Thought: 用户询问华为最新的手机型号及其主要卖点...
Action: `Search[华为最新手机型号 2024]`

--- 第 2 步 ---
❌ 调用LLM API时发生错误: 'NoneType' object is not subscriptable
已达到最大步数,流程终止。

以上运行结果反映出: 1. 正则表达式匹配过于严格——re.match 默认从字符串的最开头进行匹配 2. History 上下文记录存在漏洞——正确的 Action 没能执行

MiniMax:

点击展开查看运行结果

大模型写完 Action: Search[华为最新手机型号] 之后,按照正常逻辑,它应该停下来,等代码把搜索结果填进去。但是,因为没有给它设置"刹车"(Stop Words),且它发现 ] 后面是接 Observation,于是它自己顺着编,不仅编造了网页搜索结果,甚至连最后的 Finish[最终答案] 都一口气幻觉出来了。

两个 Bug 负负得正,代码居然跑通了。。

依靠自然语言和正则去解析工具指令,实在是太脆弱、太不可控了。

Plan-and-Solve 按图索骥

点击展开查看运行结果
问题: 一个水果店周一卖出了15个苹果。周二卖出的苹果数量是周一的两倍。
周三卖出的数量比周二少了5个。请问这三天总共卖出了多少个苹果?

计划:
1. 确认周一卖出的苹果数量为15个
2. 计算周二卖出的苹果数量(是周一的二倍)
3. 计算周三卖出的苹果数量(比周二少5个)
4. 将三天卖出的苹果数量相加得到总销量

执行:
步骤1: 15个
步骤2: 30个
步骤3: 25个
步骤4: 70个

最终答案: 70个

架构清晰明了,不多赘述。

Reflection 自我审核

架构清晰明了,不多赘述。