Agent的前身Function Calling,让大模型具备了调用外部工具的能力,可这显然还不能构成一个能帮助我们干活的智能体。作为一个智能系统,应该要具备自主感知、决策与行动能力,通过观察环境并利用可用工具采取行动,以实现特定目标。一个智能体的核心架构包括三部分:

  • 模型:作为“大脑”,承担推理、规划和决策功能。
  • 工具:作为“手脚”,扩展智能体的行动能力。
  • 编排:作为“神经系统”,管理任务流程与状态切换。通过循环执行“感知→思考→行动→观察”实现动态决策。

编排是什么

模型和工具自然不必多说,接下来重点介绍下编排,它借助快速发展的prompt engineering及相关框架引导推理与规划,使智能体能更高效地与环境交互并完成任务,目前也有很多相关技术:

  • ReAct:为语言模型提供“推理并行动”的思维策略,支持在有/无上下文示例的情况下处理用户问题。
  • CoT:通过中间步骤实现推理能力的提示工程框架。其子技术包括self-consistency、active-prompt和multimodal CoT,各自针对特定应用场景有不同优劣。
  • ToT:适用于探索性或战略前瞻任务的提示工程框架。它扩展了思维链提示技术,允许模型探索多种思维链作为中间步骤,从而通过语言模型实现通用问题求解。

环境动态变化且需实时交互的场景(如智能家居控制、机器人导航)中,可选择ReAct;当任务高度结构化、逻辑明确(如数学题、法律条文分析),且无需外部数据时,可选择CoT;需全局优化或创意发散的任务(如产品设计、战略规划),可容忍较高计算成本时,可选择ToT。

ReAct

ReAct 包含了 Reason 思考与 Act行动 两个部分,它会让大模型把大问题拆分成小问题,一步步地解决,每一步都会尝试调用外部工具来解决问题,并且还会根据工具的反馈结果,思考工具调用是否出了问题。如果判断出问题了,大模型会尝试重新调用工具。这样经过一系列的工具调用后,最终完成目标。

实际上要想赋予大模型ReAct能力,就需要向其提供ReAct Prompt,来引导它一步步地思考如何解决问题。我们可以在LangChain官方提供的ReAct Prompt基础上做一些修改:

{instructions}
TOOLS:
------
You have access to the following tools:
{tools}
To use a tool, please use the following format:
\```
Thought: Do I need to use a tool? Yes
Action: the action to take, should be one of [{tool_names}]
Action Input: the input to the action
Observation: the result of the action
\```
When you have a response to say to the Human, or if you do not need to use a tool, you MUST use the format:
\```
Thought: Do I need to use a tool? No
Final Answer: [your response here]
\```
Begin!
New input: {input}

这段Prompt首先告诉大模型,你可以使用某个工具,然后在回答用户的问题之前,执行N次思考-行动-输入提取-观察工具结果一系列步骤,直到得到最终的答案,再将其返回给用户。

下面我们就来一步一步实现一个简单的Agent吧,首先将前面的Prompt赋值给变量REACT_PROMPT,然后我们还是借用之前定义过的查询天气的工具:

tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather of an location, the user shoud supply a location first",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
}
},
"required": ["location"]
},
}
},
]
def get_weather(location):
# 内置city代码
cities = {
"北京": "101010100",
"上海": "101020100",
"成都": "101270101"
}
# api地址
url = 'http://t.weather.sojson.com/api/weather/city/'
# 通过城市的中文获取城市代码
city_code = cities.get(location)
# 网络请求,传入请求api+城市代码
response = requests.get(url + city_code)
# 将数据以json形式返回,这个d就是返回的json数据
d = response.json()
res = str(d)
return res

最后我们可以将Agent的思考过程和工具调用结合到一起,值得注意的是工具的调用仍然需要人为介入,而且要通过正则表达式从大模型的回复中提取函数名及输入参数。

client = OpenAI(
api_key=API_KEY,
base_url="https://api.deepseek.com",
)
def send_messages(messages):
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
tools=tools
)
return response.choices[0].message
instructions = "你是一个天气查询助手,可以查询天气"
query = "成都今日的温度是多少?"
prompt = REACT_PROMPT.format(instructions=instructions, tools=tools, tool_names="get_weather", input=query)
messages = [{"role": "user", "content": prompt}]
while True:
response = send_messages(messages)
response_text = response.choices[0].message.content
print("大模型的回复:")
print(response_text)
final_answer_match = re.search(r'Final Answer:\s*(.*)', response_text)
if final_answer_match:
final_answer = final_answer_match.group(1)
print("最终答案:", final_answer)
break
messages.append(response.choices[0].message)
action_match = re.search(r'Action:\s*(\w+)', response_text)
action_input_match = re.search(r'Action Input:\s*({.*?}|".*?")', response_text, re.DOTALL)
if action_match and action_input_match:
tool_name = action_match.group(1)
params = json.loads(action_input_match.group(1))
if tool_name == "get_weather":
observation = get_weather(params['location'])
print("人类的回复:Observation:", observation)
messages.append({"role": "user", "content": f"Observation: {observation}"})

从下面的输出中, 我们可以看到模型经历了两轮思考,第一轮面对用户的问题,使用了天气查询工具,获取了天气信息,在第二轮由于已经有了答案,因此就直接返回结果了。

总结

通过上面的例子,我们实现了一个基于ReAct的简易Agent,不过现在的市面上已经有很多可视化的Agent平台了,我们完全可以借助它们来快速搭建自己的应用,之后会逐步介绍目前比较流行的平台。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐