完整题目
请设计并实现一个基于大语言模型的简单Agent系统,要求具备任务规划、工具调用和结果反思的能力
本文目录
答案要点
- ReAct思维链设计(Thought-Action-Observation循环)
- 工具注册与动态调用机制
- 反思模块的实现(检查工具结果、自我修正)
- 状态管理与上下文维护
- 错误处理与重试策略
核心架构:ReAct 循环
Agent = LLM + 工具 + 记忆 + 控制循环,采用 Thought → Action → Observation → ... → Finish 的推理模式。
关键模块实现
1. 工具注册与调用
class ToolRegistry:
def __init__(self):
self.tools = {}
def register(self, name, func, description, params):
self.tools[name] = {
"func": func, "desc": description,
"params": params # JSON Schema
}
def get_tool_prompt(self):
# 生成工具描述给LLM
return "\n".join([
f"{name}: {t['desc']}, 参数: {t['params']}"
for name, t in self.tools.items()
])
def execute(self, name, args):
return self.tools[name]["func"](**args)