Agent指的是一个能够感知其环境并根据感知到的信息做出决策以实现特定目标的系统,通过大模型的加持,Agent比以往任何时候都要更加引人注目。
Agent的本质还是prompt engineering
以Langchain为代表的Agent框架,是目前在国内最被广泛使用的开源框架,LangChain刚开始的设计理念是将工作流设计为DAG(有向无环图),这就是Chain的由来;
随着Muti-Agent理念的兴起和Agent范式的逐渐确立,Agent工作流会越来越复杂,其中包含了循环等条件,需要用Graph图的方式,由此又开发了LangGraph。
"Agent范式"是指在人工智能领域中,特别是在设计和开发智能代理(Autonomous agents 或简称 Agents)时所采用的不同方法和技术。智能代理是指能够在环境中感知、推理并采取行动以完成特定任务的系统。在大型语言模型(LLMs)的背景下,Agent范式通常涉及到如何利用这些模型来提升代理的规划、决策和执行能力。
目前没有一个统一的Agent设计范式,但是有一些常见的设计模式,我们这边选择吴恩达文章中提到的几种设计范式进行介绍:
Reflection是指Agent能够对自己的行为和决策进行推理和分析的能力。这种能力使Agent能够更好地理解自己的行为和决策,并在未来的决策中更好地利用这些信息。

如何在工作流里面嵌入self-reflection?以一个NL2SQL的例子来说明:
第一次交互
question = ''
prompt = f'{question}'
plain_query = llm.invoke(prompt)
try:
df = pd.read_sql(plain_query)
print(df)
except Exception as e:
print(e)
reflection
reflection = f"Question: {question}. Query: {plain_query}. Error:{e}, so it cannot answer the question. Write a corrected sqlite query."