Type something to search...
转变 AI 开发:我在 14 岁时与 Langgraph 的旅程,构建一个反思型 AI 代理

转变 AI 开发:我在 14 岁时与 Langgraph 的旅程,构建一个反思型 AI 代理

起点:LangChain Agents

最初,我爸爸给了我一个项目,其中涉及使用 LangChain 加载和检索数据。我们使用 LangChain 加载器从 PDF 和 GitHub 存储库中导入内容。然后,使用 LangChain agent,我们将这些加载的内容连接到一个 AI 模型,该模型可以根据检索到的信息动态地回答问题。

以下是我爸爸给我的一个基本的 LangChain agent 设置片段:

## Load PDF documents
pdf_files = glob("./pdfs/*.pdf")
pdf_documents = []
for pdf_file in pdf_files:
    loader = PyPDFLoader(pdf_file)
    pdf_documents.extend(loader.load())

## Load GitHub repository documents
github_loader = GithubFileLoader(
    repo="langchain-ai/langgraph",
    branch="main",
    github_api_url="https://api.github.com",
    access_token="<YOUR_ACCESS_TOKEN>",
    file_filter=lambda file_path: file_path.startswith("examples/multi_agent") and file_path.endswith(".ipynb")
)
github_documents = github_loader.load()
## Initialize LangChain agent
tools = [
    Tool(
        name="pdf_search",
        func=lambda q: pdf_retriever.invoke(q),
        description="Searches PDF documents for answers."
    ),
    Tool(
        name="github_search",
        func=lambda q: github_retriever.invoke(q),
        description="Searches GitHub repo examples."
    )
]

agent = initialize_agent(
    tools,
    llm,
    agent=AgentType.OPENAI_FUNCTIONS,
    verbose=True,
)

这个基本的 agent 运行良好,但它有局限性——它并没有真正地反映或改进其答案。

选择 LangGraph 架构

为了升级我的聊天机器人,我选择了 LangGraph 的高级架构,称为 “具有反射和批判的多 agent 系统”。这个系统更智能,因为它包含自我改进和反射能力。这意味着我的聊天机器人现在可以检查和增强自己的答案。

1. 构建更智能的 Supervisor

第一步是创建一个更智能的 supervisor,根据问题类型选择最佳 agent(PDF 或 GitHub)。

这是我改进后的 supervisor 函数:

## Supervisor decides the best agent based on the question
def supervisor(state: AgentState) -> AgentState:
    prompt = ChatPromptTemplate.from_template("""
    Choose the agent for answering this question:
    - pdf: theory notes or PDF documents
    - github: practical code examples

Question: {question}

Answer exactly one word (pdf/github):
    """)
    decision = llm.invoke(prompt.format(question=state["question"]))
    next_agent = decision.content.strip().lower()
    return {"next": next_agent if next_agent in ["pdf", "github"] else "pdf"}

2. 反射和批判

接下来,我实现了反射和批判功能,允许聊天机器人评估和改进自己的答案。在最初的回复之后,聊天机器人会自我批判,以确保答案清晰、准确和实用。

以下是我的反射函数的样子:

## Reflection to critique and improve chatbot answers
def reflect(state: AgentState) -> AgentState:
    iteration = state.get("iteration", 0) + 1
    state["iteration"] = iteration

last_response = state["messages"][-1].content
    critique_prompt = f"""
        Critique this response:
        {last_response}

Provide exactly three improvements:
        1. Factual correction or clarification
        2. Structure or readability improvement
        3. Practical applicability suggestion
    """

critique = llm.invoke(critique_prompt)

refine_prompt = f"""
        Original answer:
        {last_response}

Critique points:
        {critique.content}

Incorporate these improvements into a refined answer.
    """

refined = llm.invoke(refine_prompt)

if refined.content.strip() == last_response.strip() or iteration >= 2:
        next_step = "finalize"
    else:
        next_step = "reflect"

return {"messages": state["messages"] + [AIMessage(refined.content)], "next": next_step}

3. 使用 LangSmith 进行可观察性

然后,我将我的聊天机器人连接到 LangSmith,这是一个强大的工具,可以跟踪聊天机器人的每个动作。使用 LangSmith,我可以实时观察聊天机器人的整个思维过程——从最初的答案到详细的反射。

我学到的

在此过程中,我学到了:

  • 语义分块:将大文档拆分成更小、可搜索的部分。
  • 向量数据库:有效地存储和检索信息块。
  • 反射和批判:自动改进其答案的 AI agent。
  • 使用 Docker 进行容器化:使用 Docker 允许我和我爸爸轻松协作并一致地运行我们的聊天机器人,确保我们都在使用相同的库和软件设置,没有任何兼容性问题。

LangSmith 可观察性

通过 LangSmith 观察我的聊天机器人令人兴奋。我可以清楚地看到聊天机器人采取的每个步骤,更好地理解 AI agent 如何思考、反射和改进。

Chatbot Response- Github Agent

LangSmith Traceability with tracking of each Steps

[## GitHub - ishveen-ai/learnaiagents

Contribute to ishveen-ai/learnaiagents development by creating an account on GitHub.

github.com](https://github.com/ishveen-ai/learnaiagents)

Related Posts

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

AI 研究报告和论文写作 合并两个系统指令以获得两个模型的最佳效果 Perplexity AI 的 Deep Research 工具提供专家级的研究报告,而 OpenAI 的 ChatGPT-o3-mini-high 擅长推理。我发现你可以将它们结合起来生成令人难以置信的论文,这些论文比任何一个模型单独撰写的都要好。你只需要将这个一次性提示复制到 **

阅读更多
让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

Non members click here作为一名软件开发人员,多年来的一个发现总是让我感到惊讶,那就是人们还在 Excel

阅读更多
使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

10 个常见问题解答 本文是我推出的一个名为“10 个常见问题解答”的新系列的一部分。在本系列中,我旨在通过回答关于该主题的十个最常见问题来分解复杂的概念。我的目标是使用简单的语言和相关的类比,使这些想法易于理解。 图片来自 [Solen Feyissa](https://unsplash.com/@solenfeyissa?utm_source=medium&utm_medi

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

在AI军备竞赛中分辨事实与虚构 DeepSeek AI真的是它所宣传的游戏规则改变者,还是仅仅聪明的营销和战略炒作?👀 虽然一些人将其视为AI效率的革命性飞跃,但另一些人则认为它的成功建立在借用(甚至窃取的)创新和可疑的做法之上。传言称,DeepSeek的首席执行官在疫情期间像囤积卫生纸一样囤积Nvidia芯片——这只是冰山一角。 从其声称的550万美元培训预算到使用Open

阅读更多
Type something to search...