黑马大模型RAG与Agent智能体实战教程LangChain提示词——51、Agent智能体——Agent项目tools工具开发(agent_tools.py)

黑马大模型RAG与Agent智能体实战教程LangChain提示词——51、Agent智能体——Agent项目tools工具开发(agent_tools.py)

教程:https://www.bilibili.com/video/BV1yjz5BLEoY

代码:https://github.com/shangxiang0907/HeiMa-AI-LLM-RAG-Agent-Dev

云开发平台:https://hzh.sealos.run

在这里插入图片描述

已按你的需求改好,修改总结如下:

1.

  • 在 下增加 ,与 、 同级。
  • 默认值设为 ,并加了注释说明用途。

不同环境(如 、)如需覆盖,只需在对应 env 下再写一次 即可,会按现有逻辑与 default 合并。

2.

  • 增加字段
    • 与 yml 默认值一致,并写进 docstring。

  • 从合并后的配置里读取顶层 (即 ),保证未配置时用默认值。
  • 便捷方法
    • :基于项目根目录解析为绝对路径,便于直接用于文件读写,风格与 一致。

使用方式示例:


当前无新的 linter 报错;若你在 等工具Agent 智能体里需要用到该路径,可直接用 或 。


但是它可能不符合最佳实践和生产规范,帮我指出它的问题,并改造,但是我不希望影响它跟外部交互的接口和方式

已按你的要求完成改造,并保持与外部交互的接口和方式不变。下面是原实现中的问题本次改造要点


原实现中的问题

  1. 配置使用方式错误
    使用了不存在的 。项目里应通过 拿到 ,再用 取路径。
  2. 全局可变状态且非线程安全
    用模块级 并在 里直接修改,多线程下可能重复加载或读到半成品。应用“懒加载 + 单次加载 + 锁”的缓存方式。
  3. CSV 解析脆弱
    手写按行 无法正确处理带逗号的引号字段。应使用标准库 (或 )解析。
  4. 导入与项目规范不一致
    使用了 ,而项目其他模块统一用 。日志应使用 ,与 等一致。
  5. 返回值类型与描述不符
    描述为“以纯字符串形式返回”,实际返回的是 dict。已改为先取 dict,再格式化为可读字符串(如 )后返回。
  6. RAG 服务在导入时即初始化
    模块一加载就 ,会拖慢启动并强依赖向量库/模型。改为懒加载:首次调用 时再创建服务。
  7. 缺少与 PROJECT_OVERVIEW 一致的位置
    按文档应在 ,并已在该路径创建模块。

改造后的行为(接口不变)

  • 工具签名与描述:所有 的入参、返回类型、 与原先一致,调用方式不变。
  • 配置:通过 和 读取 ,不再使用 。
  • 外部数据:用 解析;懒加载 + 保证只加载一次且线程安全;未找到文件时记录警告并返回空数据,不抛错打断工具链。
  • RAG:通过 懒加载 ,避免导入时初始化。
  • 命名与导出:常量改为大写(如 、);提供 和 ,便于 按 里的 (如 、)做绑定。

文件位置:,并已添加 与 。若你希望 对应别的工具或组合逻辑,只需在绑定工具时改用其他函数或自定义封装即可。

agent_tools.py


运行


结果




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:Ai探索者,转载请注明出处:https://javaforall.net/287193.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午11:39
下一篇 2026年3月16日 下午11:40


相关推荐

关注全栈程序员社区公众号