Agent详解(学习内容整理)
Laiyong Wang Lv6

Agent 核心机制补充

upload successful

Agent 的本质理解

LLM 自主决策 + 工具使 + 上下文记忆。

ReAct 核心逻辑

遵循以下范式循环执行:

  • Thought
  • Action
  • Action Input
  • Observation
  • Final Answer

工程衔接的关键点

依赖 Observation 作为 stop 信号,实现模型思考与代码执行的交替。

本质上是一个持续循环的过程:

不断执行,直到出现 Final Answer 为止。

架构演进思路(混合架构)

在稳定的 Workflow 中:

  • 将确定性流程交给代码控制
  • 将异常处理与复杂推理交给 Agent 节点

Demo级 Agent 实现原理

参考实现:
https://github.com/kid0317/crewai_mas_demo/blob/main/m1l2/m1l2_raw_agent.py

核心逻辑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 1. 生成系统提示词和用户提示词
system_prompt = self.generate_system_prompt()
user_prompt = self.generate_user_prompt(description, expected_output)

# 2. 初始化消息列表(对话历史)
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt}
]

# 3. 初始化 LLM
llm = AliyunLLM(
model="qwen-turbo",
api_key=os.getenv("QWEN_API_KEY"),
region="cn", # 使用 region 参数,可选值: "cn", "intl", "finance"
)

# 4. 核心循环:不断调用 LLM,直到得到 Final Answer
response = llm.call(messages, stop=["Observation:"])

while "Final Answer:" not in response:
# 4.1 解析 LLM 返回的 Action(工具名称和输入)
tool_name = self.parse_tool_name(response)
tool_input = self.parse_tool_input(response)

# 4.2 执行工具,获取结果
tool_result = self.execute_tool(tool_name, tool_input)

# 4.3 将工具执行结果作为 Observation 添加到对话历史
# 格式:之前的 response + "\nObservation:" + 工具结果
content = response + "\nObservation:" + tool_result
messages.append({"role": "assistant", "content": content})

# 4.4 再次调用 LLM,传入包含 Observation 的完整对话历史
response = llm.call(messages, stop=["Observation:"])

# 5. 提取并返回最终答案
final_answer = self.extract_final_answer(response)
return final_answer

单 Agent 的典型问题

  1. 上下文长度爆炸:ReAct 会不断追加工具执行结果,多次搜索与读取后很容易突破数万 Tokens,导致推理速度和指令遵循能力断崖式下降。

  2. 上下文内容污染:模型极易受前文影响,在同一上下文中进行“生成 + 评价”时会出现自我强化,导致结果失去客观性。

  3. 多指令挑战:单 Agent 同时承担多工具、多任务时,工具描述占用大量上下文,且容易因注意力分散选错工具或生成错误参数,导致流程卡死。

ReAct 在生产环境的典型问题(精简版)

  1. 需要支持多模型接入与切换,在效果与成本之间做动态权衡。
  2. 模型调用不稳定,必须设计重试与 fallback 机制。
  3. 容易陷入死循环,需要限制最大执行轮次与超时。
  4. 需要引入 memory 机制以支持用户偏好和上下文延续。
  5. 模型存在不确定性,关键操作必须加安全控制与校验。
  6. 缺乏可观测性,需要完善日志、监控与执行链路追踪。
  7. Agent 具备执行能力,必须通过 sandbox 做环境隔离。