langgraph-reflection

news/2025/11/2 0:03:37/文章来源:https://www.cnblogs.com/lightsong/p/19184074

langgraph-reflection

https://github.com/fanqingsong/langgraph-reflection

DescriptionArchitecture
This reflection agent uses two subagents:
- A "main" agent, which is the agent attempting to solve the users task
- A "critique" agent, which checks the main agents work and offers any critiques

The reflection agent has the following architecture:

1. First, the main agent is called
2. Once the main agent is finished, the critique agent is called
3. Based on the result of the critique agent:
- If the critique agent finds something to critique, then the main agent is called again
- If there is nothing to critique, then the overall reflection agent finishes
4. Repeat until the overall reflection agent finishes
Reflection Agent Architecture

We make some assumptions about the graphs:

    • The main agent should take as input a list of messages
    • The reflection agent should return a user message if there is any critiques, otherwise it should return no messages.

 

https://python.langchain.ac.cn/docs/how_to/tool_calling/#typeddict-class

LangChain 工具

LangChain 还实现了一个 `@tool` 装饰器,允许进一步控制工具模式,例如工具名称和参数描述。有关详细信息,请参阅 此处的 操作指南。

Pydantic 类

您可以使用 Pydantic,无需附带函数即可等效地定义模式。

请注意,除非提供默认值,否则所有字段都是 `required`(必需的)。

from pydantic import BaseModel, Field


class add(BaseModel):
"""Add two integers."""

a: int = Field(..., description="First integer")
b: int = Field(..., description="Second integer")


class multiply(BaseModel):
"""Multiply two integers."""

a: int = Field(..., description="First integer")
b: int = Field(..., description="Second integer")
 

TypedDict 类

 
需要 `langchain-core>=0.2.25`

或者使用 TypedDicts 和注解

from typing_extensions import Annotated, TypedDict


class add(TypedDict):
"""Add two integers."""

# Annotations must have the type and can optionally include a default value and description (in that order).
a: Annotated[int, ..., "First integer"]
b: Annotated[int, ..., "Second integer"]


class multiply(TypedDict):
"""Multiply two integers."""

a: Annotated[int, ..., "First integer"]
b: Annotated[int, ..., "Second integer"]


tools = [add, multiply]
 

要将这些模式实际绑定到聊天模型,我们将使用 `.bind_tools()` 方法。这会处理将 `add` 和 `multiply` 模式转换为模型所需的正确格式。每次调用模型时,都会传入工具模式。

 

 

https://github.com/langchain-ai/openevals

Much like tests in traditional software, evals are an important part of bringing LLM applications to production. The goal of this package is to help provide a starting point for you to write evals for your LLM applications, from which you can write more custom evals specific to your application.

If you are looking for evals specific to evaluating LLM agents, please check out agentevals.

 

 

https://github.com/langchain-ai/agentevals

Agentic applications give an LLM freedom over control flow in order to solve problems. While this freedom can be extremely powerful, the black box nature of LLMs can make it difficult to understand how changes in one part of your agent will affect others downstream. This makes evaluating your agents especially important.

This package contains a collection of evaluators and utilities for evaluating the performance of your agents, with a focus on agent trajectory, or the intermediate steps an agent takes as it runs. It is intended to provide a good conceptual starting point for your agent's evals.

If you are looking for more general evaluation tools, please check out the companion package openevals.

 

https://zhuanlan.zhihu.com/p/26791319223

随着大型语言模型(LLM)在各类应用中的广泛使用,如何科学、系统地评估这些模型的表现成为一个重要课题OpenEvals 是一个由 LangChain

团队推出的开源项目,专为 LLM 应用程序提供全面的评估工具,帮助开发者快速验证模型效果、优化输出质量。这一工具库不仅功能强大,还具备高度灵活性,适合多种场景。

核心亮点与功能:

  1. LLM 作为评判员 OpenEvals 提供了一个创新思路:利用另一个 LLM 对模型输出进行评分。
    1. 支持多维度评估:如正确性、简洁性、虚构性等。
    2. 极高的灵活性:开发者可以自定义提示模板、选择不同的模型以及评分标准。
  2. 结构化输出评估 对于需要生成结构化数据(如工具调用、文本提取等)的任务,OpenEvals 提供了精准的评估方式:
    1. 支持 精确匹配LLM 评判,确保输出符合预期。
  3. 多样化评估指标 除了 LLM 评判,OpenEvals 还内置了常用的评估方法:
    1. 精确匹配:适用于对严格一致性要求的任务。
    2. 编辑距离:衡量生成文本与目标文本的相似程度。
    3. 嵌入相似度:通过向量化方法评估语义相似性。
  4. 异步支持 所有评估器均支持 Python 的异步模式,大幅提升评估效率,适合处理大量任务的场景。
  5. 与 LangSmith 集成 OpenEvals 无缝对接 LangSmith 平台,支持记录评估结果,用于实验跟踪与性能分析。
  6. 测试集成 开发者可以直接将 OpenEvals 的评估功能集成到常见的测试框架中(如 pytest、Vitest、Jest),实现自动化测试。

 

 

https://github.com/microsoft/pyright

Static Type Checker for Python

Pyright is a full-featured, standards-based static type checker for Python. It is designed for high performance and can be used with large Python source bases.

Pyright includes both a command-line tool and an extension for Visual Studio Code.

 

 

 

 

 

https://github.com/microsoft/pyright

Static Type Checker for Python

Pyright is a full-featured, standards-based static type checker for Python. It is designed for high performance and can be used with large Python source bases.

Pyright includes both a command-line tool and an extension for Visual Studio Code.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/953111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习日报11.2

所花时间:1h 代码量:0 搏客量:2 所学知识点:今天所学的内容是有关于中级软件设计师备考内容 关于上午题 由于所学知识点比较多,且杂乱,就简单叙述一下,大致是有关于有限自动机,一个叫状态图的认识,刚开始比较…

2025CSP-S游记

DAY -13 脱产了。正好还是运动会,到时候会有人来一起在机房。 DAY -12~-10 运动会,感觉好青春啊 hhh。这个气温也是迅速下降,好在机房还是冬暖夏凉。 DAY -9~-5 一个人在机房,但其实也还好,主要就是做同学的好题题…

获取网页logo图标(ico文件)

怎么获取网页logo图标的URL链接 第一种方法:最常用的方法(适用于90%的站点)是,直接在访问网址首页链接后加上上/favicon.ico,例如:https://www.baidu.com/favicon.ico 第二种方法:按F12,进入开发者模式。以wi…

题解:P6811 「MCOI-02」Build Battle 建筑大师

设 $f_i$ 为匹配到第 $i$ 为的序列个数,令 $last_{x,i}$ 表示从第 $i$ 为往前第一个出现 $x$ 的位置,可以得到转移 $f_i=\sum_{j=last_{a_i,i}}^{i-1}{f_j}$。最后答案即为 $\sum{f}$。 由于本题 $a$ 的特殊性,所有…

[KaibaMath]1017 关于收敛数列与其子数列之间的关系定理的证明

[KaibaMath]1017 关于收敛数列与其子数列之间的关系定理的证明收敛数列的任意子数列必收敛,且极限与原数列的极限一致。反之,若一个数列存在发散的子数列,或存在两个极限不同的子数列,则该数列必发散。下面给出收敛…

Day9综合案例一

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">…

学习日报11.1

所花时间:2h 代码量:200 所学知识点: 今日核心知识点总览 有限自动机(FA):含核心五要素(状态集合、输入符号集合等),区分 DFA 与 NFA,掌握 NFA 转 DFA 的子集构造法及字符串识别流程。 上下文无关文法:明确…

团队展示选题:KFCoder✅日常健康打卡系统

项目 内容这个作业属于哪个课程 ->点我进入课程主页这个作业要求在哪里 ->点我查看作业要求这个作业的目标 成立团队并完成选题,初步确立团队计划Github仓库链接 zhiyuxinxuan/KFCoder一、团队展示 队名:KFCod…

UE:快速创建一个地图

这里只讨论如何快速创建一个可用的标准地图,不包括世界分区地图。 先Ctrl+空格呼出内容浏览器,鼠标右击选择关卡打开窗口->环境光照混合器依次点击这些按钮就能创建一个完整的标准地图,方便又快捷。 如果要创建地…

以数据为中心的计算机视觉模型性能分析工具-FiftyOne -1

提高数据质量和了解模型的故障模式是提高模型性能的最有效方法。 FiftyOne是一个开源工具,为数据集标记和计算机视觉模型分析提供了强大的图形界面。“提高数据质量和了解模型的故障模式是提高模型性能的最有效方法。…

23 种设计模式完整指南 - C++实现详解

23 种设计模式完整指南 - C++实现详解 目录设计模式概览 创建型模式 结构型模式 行为型模式 实践应用 总结设计模式概览 设计模式是解决软件设计中常见问题的可重用方案。它们提供了经过验证的解决方案,帮助开发者编写…

[Linux] Linux创建用户流程

[Linux] Linux创建用户流程$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");目录以创建用户组和用户 mgter 为例: 以创建用户组和用户 mgter 为例: #!/bin/…

Zabbix 数据库 history_uint 表损坏修复

使用CentOS 9部署Zabbix 7.0使用一段时间后,查询历史数据时出现报错,Zabbix图形历史数据显示异常。并且Zabbix对接了Grafana,在Grafana历史图形中出现图像数据不连续的现象。Zabbix前端Top hosts by CPU untilizati…

Azure MCP Server 1.0 正式发布

Microsoft 宣布了 Azure MCP Server 1.0.0 的稳定版本,并将其描述为云自动化和人工智能驱动开发新阶段的开始。 Microsoft MCP 是一个全面的模型上下文协议(MCP)实现,用于连接 AI Agent 与 Microsoft Azure 服务和…

dify+LLM+echarts打造智能可视化数据分析AI助手

以往遇到一些数据分析需求,比如:业务给了1份excel数据,需要开发做个报表对其进行分析,并以图表展示。通常需要得了解数据逻辑,进行适当开发。现在有了AI后,可以用dify搭建个智能数据分析助手,全自动处理。 1. 准…

[CSP-S 2025] 员工招聘

大概再也没法作为选手体验 OI 赛制的比赛了。。。不知道是好事还是坏事(退役了可以对着题目毫无心理压力地bb好爽( CF1437F Emotional Fishermen 带给我们的启示:带限制的排列计数问题一般都很困难,我们可以使用 d…

操作系统软考复习总结

今天学习了操作系统的相关知识,主要是对今天所学的进行总结: 在整个系统自上而下为应用软件、系统软件、操作系统、计算机硬件;后续还学写了PV操作信号量,P为申请一个资源 V是进行释放一个资源,PV操作对于后续再实…

2025 年 11 月废水蒸发器厂家权威推荐榜:MVR/薄膜刮板/单效/双效/三效/多效/高盐/含盐/降膜/结晶/mvr母液/氯化钠/硫酸铵/垃圾渗滤液/化工废水刮板/强制循环/废水脱盐蒸发器厂家精选

2025 年 11 月废水蒸发器厂家权威推荐榜:MVR/薄膜刮板/单效/双效/三效/多效/高盐/含盐/降膜/结晶/mvr母液/氯化钠/硫酸铵/垃圾渗滤液/化工废水刮板/强制循环/废水脱盐蒸发器厂家精选 一、行业技术发展现状 随着环保政…