锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 人工智能 / 大型AI智能体Agent快速掌握方法:Python开源项目和DeepSeek结合
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft
微信公众号
微信扫一扫,新经验快学到
服务方向
人工智能数据处理
人工智能培训
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
软件开发
视觉检测
建筑视觉检测
养殖视觉检测
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发

锐英源精品原创文章,禁止转载和任何形式的非法内容使用,违者必究


大型AI智能体Agent快速掌握方法:Python开源项目和DeepSeek结合


用WorkBuddy这类平台生成Skill能处理数据,但完整的AI智能体Agent是代码平台,Skill不懂编程的学一学,也能开发出来,但是真正的AI智能体Agent需要很复杂的架构和细节,需要一定的编程水平。

大型AI智能体Agent快速掌握方法需要几个阶段:理论、理解代码、二次开发、全新开发和产品调试雇售后。

学理论可以用DeekSeek,其它的AI大模型网站,比如百度文心、豆包、千问和腾讯的AI大模型,都可以,DeepSeek只是泛指,国外的AI大模型也行。

DeepSeek和AI大模型搜索输出很全面,里面的要点记清楚,理论上就算达标了。比如DeepSeek的搜索结果:

 

下面我为你独立生成一个完整的、可运行的 Agent 项目,基于 OpenAI API + 原生 ReAct 循环,支持工具调用(Tool Calling),并带有完整的项目结构和交互式命令行界面。

这个 Agent 具备:

  • 推理能力(ReAct 模式)

  • 内置工具:当前时间数学计算网页搜索(DuckDuckGo)

  • 自动循环调用工具直至得出最终答案

  • 清晰的日志打印,展示思考过程

这个项目完全独立,不依赖 LangChain 等重型框架,核心逻辑清晰,非常适合学习或作为生产 Agent 的脚手架。你可以直接复制使用。有问题随时问我。

这个对话里DeepSeek生成的源代码,由于篇幅关系,就不列举代码了,看看代码,对比理论,记好要点,手工输入下代码,为下一步大型AI智能体Agent快速掌握打下基础。

记要点,下面用两段代码进行说明。

Python在AI开发里有明显的优势,这来自于Python的数据结构简化能力,不管是矩阵、图形或字典,Python里的表达很直接,代码用量还少,比如下面:

rows = [[('name', 'Tom'), ('age', 18)], [('name', 'Jerry'), ('age', 19)]]
result = [dict(row) for row in rows]
# 结果:[{'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 19}]

这类代码可以直接处理数据表读取的记录行,转换非常快,但用高级语言C++和C来做,就很麻烦,代码不容易看到架构和结构。比如下面的转换:

vectors = np.asarray(
        list(model.embed([chunk["content"] for chunk in chunks])),
        dtype=np.float32,
    )

model是大模型,embed是大模型处理数据函数,embed处理的是个集合,参数里集合形式是[]代表集合,返回的结果是list,list也列表集合,np.asarray是转换成array形式的集合,这些转换都是上层需要,这些转换内部怎么处理,Python都会对应兼容处理。这用高级语言来实现太困难,就是C#和Java也不完全是这样,没有达到这么方便的层次。

下一步就要找个自己熟悉的行业的开源Agent来研究下,锐英源软件因为关注视觉检测算法,就使用了Liquid Quality Agent。Liquid Quality Agent用YOLO识别图片,识别结果传入Agent,让Agent智能体判断合格不合格,要不要复检。具体的文章点链接:Liquid Quality Agent,网页里对Liquid Quality Agent的优势特点描述非常好,微信公众号看文章可以搜索以前发布的文章,在AI人工智能合集里。

Liquid Quality Agent文档相对全面,但关于代码的是没有网页来描述,锐英源软件自己分析形成的文档有一些,在锐英源软件网站和微信公众号会进行公开一部分。Liquid Quality Agent的代码二次开发,锐英源软件完成了视觉检测方面的混合架构智能处理,后续对整体的数据流程和架构调整做一定工作。

大型AI智能体Agent的大型体现在架构复杂,比如Liquid Quality Agent里视觉检测是个微服务,前台有接口,文档和两个健康接口。Liquid Quality Agent里代码安排在不同目录下,合理地设计了模块,用import进入了导入模块使用模块。下面是图模块的分析和理论文档,后面看情况会公布其它模块。

Graph分析
get_analysis_graph
@app.post("/agent/analyze", tags=["Agent"])
api.py里应该是接口代码,但是Graph怎么和其它模块结合的?应该是在http请求调用上下文里。
analysis_graph: QualityAnalysisGraph | None = None
record.record_id,
request.request,
_authoritative_decision_basis分析关键信息
Graph围绕AgentState,使用里面的属性。
理论
Agent中的Graph(图)是其执行核心,它将传统Agent的线性或简单循环逻辑,升级为一个高度可控、有状态、可灵活编排的智能工作流。
它的核心思想是,将Agent的思考与行动过程,拆解为一张由节点(Nodes)、边(Edges) 和状态(State) 构成的有向状态图(StateGraph)。
🎯 Graph要实现什么?
Graph的核心目标是让Agent的决策过程变得可控、可观测且可追溯。与传统的线性链(Chain)相比,Graph通过状态图模型,能实现更复杂的逻辑:
• 复杂流程编排:支持条件分支、循环、并行执行等,能处理需要多轮“思考-行动”的复杂任务。
• 状态持久化与记忆:通过全局State在节点间传递信息,实现短期工作记忆和长期记忆。
• 增强可观测性:将执行流程可视化,每个节点的输入输出都清晰可查,便于调试和优化。
🏗️ 一般架构:三大核心组件
一个LangGraph Agent的架构由以下三个核心组件构成:
1. 状态 (State):一个在节点间流动的共享数据结构,是Graph的“工作内存”。它通常是一个TypedDict或Pydantic模型,定义了Graph的输入输出格式,所有节点的读写都基于此。
2. 节点 (Nodes):Graph中的执行单元,是具体的Python函数。每个节点接收当前的State,执行特定任务(如调用LLM、执行工具、处理数据),然后返回更新后的State
1. 边 (Edges):定义了节点间的连接与执行流向。
o 固定边:从一个节点无条件指向下一个节点。
o 条件边:根据当前State动态决定下一个要执行的节点,是实现if-else分支和循环的关键。
一个Graph在运行前需要先编译(Compile),这个过程会检查图结构合法性,并配置检查点(Checkpointer)等运行时参数。
🔄 输入与输出
Graph的输入输出由其定义的State结构决定。
• 输入 (Input):启动Graph时,传入一个符合State定义的字典。一个典型输入至少包含用户的任务或问题(通常在"messages"字段中)。
• 输出 (Output):Graph执行完成后,返回最终状态的字典。它通常包含:
o 最终答案:Agent生成的最终回复。
o 完整消息历史:记录了完整的“思考”与“行动”轨迹。
o 中间步骤与证据:包含调用工具的结果、检索到的文档等,用于支撑最终结论。
💡 一个典型的工作流示例
一个基于LangGraph的Agent工作流可能如下:
1.
2. 入口 (START):接收用户输入,初始化State。
3. 理解节点 (LLM):LLM分析意图,决定是直接回答、检索知识还是调用工具。
4. 条件边:根据LLM的决策,路由到不同节点。
5. 执行节点 (Action):若需调用工具,则执行相应工具(如搜索、计算)并更新State。
6. 结果处理节点 (Observation):处理工具返回结果,更新State。
7. 循环或结束:通过条件边判断任务是否完成,未完成则返回步骤2继续,完成则进入结束节点。
8. 结束 (END):整理State中的信息,生成最终答案输出。
总的来说,Graph提供了一种结构化的方式,将复杂的决策过程拆解为清晰、可控的步骤,是实现可靠、可解释Agent的关键。
对应代码
D:\liquid-quality-agent\py311_env\Lib\site-packages\langgraph\graph,是库提供的,前辈们实现过的。
图的初始化:
def _build(self):
builder = StateGraph(AgentState)
builder.add_node("load_record", self._load_record)
builder.add_node("retrieve_knowledge", self._retrieve_knowledge)
builder.add_node("generate_analysis", self._generate_analysis)
builder.add_node("validate_output", self._validate_output)
builder.add_edge(START, "load_record")
builder.add_conditional_edges(
"load_record",
self._record_route,
{"found": "retrieve_knowledge", "missing": END},
)
builder.add_edge("retrieve_knowledge", "generate_analysis")
builder.add_edge("generate_analysis", "validate_output")
builder.add_edge("validate_output", END)
return builder.compile()
图的使用:
def invoke(self, record_id: str, request: str) -> dict:
state = self.graph.invoke(
{"record_id": record_id, "request": request}
)
return state["result"]
对图概念理解下,实现不困难。

 

这些总结是按我的思维来写的,如果哪里不明白,请咨询锐英源软件。

学会模仿,记住框架和要点,就可以做全新开发了,记好接口约束,逐个模块开发,最后联调就成功了。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州市金水区文化路97号郑州大学北校区院内原校办工厂楼101室