恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

入门agent,一些必要的基础python代码结构你要会看懂

  • 首页
  • 资讯中心
  • /
  • 入门agent,一些必要的基础python代码结构你要会看懂

相关资讯

STM32调试时卡死在HAL_Delay?SysTick与调试器机制全面解析 2026/8/31 22:34:42
SPI帧结束检测的实用指南:协议缺陷、DMA中断与工程方案 2026/8/31 22:34:42
大厂运维笔试揭秘:爱奇艺真题拆解与核心考点清单 2026/8/31 22:34:42

最新资讯

基于PyTorch的图神经网络海域风速预测研究检测与识别系统设计与实现【Python完整源码+预训练模型】
高精度YOLO模型海洋生物目标检测系统识别系统源码|深度学习Transformer架构+模型权重文件【完整版】
【2027最新】基于TensorFlow的YOLOv人脸面部表情识别系统分析系统源码+Python+Jupyter Notebook
【2027最新】基于TensorFlow的毛笔字分析系统分析系统源码+Python+Jupyter Notebook
LGA20测试适配器设计:0.5mm间距转接板制作与焊接指南
16位数字化仪硬核解析:从ADC精度选型到工程调试实践

今日推荐

MCU无DAC如何用定时器+DMA 2D输出高保真任意波形
Cortex-M3 Flash下载失败?从编程错误标志到供电瞬态排查
STM32 TouchGFX屏幕切换Transition优化:原理、配置与排障实战

本周热门

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析
数字电路时序基石:深入理解建立时间与保持时间
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

入门agent,一些必要的基础python代码结构你要会看懂

发布时间:2026/8/31 22:34:42
入门agent,一些必要的基础python代码结构你要会看懂 前置最近公司在做简单的agent智能体研发其中当然少不了工作流中代码组件因为里面使用的是python语言所以自己总结了一些必须看懂的代码结构方便砸门入门agent如果有java基础可以看看这个PythonJava 里最像作用listArrayList存一组有顺序的数据dictHashMapkey → valuetuple没有完全对应类似不可变的List一组不能修改的数据setHashSet存不重复的数据strString字符串intint / Integer整数Nonenull没有值1.dict—— Agent 开发最重要的数据结构这个一定要熟。state { user_input: 帮我查一下北京天气, messages: [], result: None }取数据user_input state[user_input]修改state[result] 晴天也经常看到取数据state.get(result)2.list—— 消息、工具、历史记录都经常用例如messages [ {role: user, content: 你好}, {role: assistant, content: 你好有什么可以帮你} ]遍历for message in messages: print(message[content])添加messages.append({ role: user, content: 帮我查天气 })Agent 中经常看到messages[-1]意思就是获取最后一条消息。3.def—— Agent 的每个节点基本都可以理解成函数例如def search_weather(city): result weather_api(city) return result工作流用户输入 ↓ 意图识别 ↓ 搜索天气 ↓ 生成回答对应def intent_node(state): ... def weather_node(state): ... def answer_node(state): ...所以你看到def xxx(state):第一反应应该是这是一个工作流节点/工具/处理函数。4.return—— 搞懂数据怎么在 Agent 节点之间流动比如def weather_node(state): weather 晴天 return { weather: weather }然后下一个节点def answer_node(state): weather state[weather] return { answer: f今天是{weather} //没有f的话直接输出今天是{weather} }你要建立一个非常重要的概念函数输入 ↓ state ↓ 函数内部处理 ↓ return ↓ 下一个节点这对理解 LangGraph 之类的 Agent 工作流特别重要。5.if—— Agent 决策逻辑例如if user_input 天气: return weather elif user_input 新闻://python中直接比较的是值 return news else: return chatAgent 工作流里面经常就是┌→ Weather Agent 用户 → 意图判断 ┤ ├→ Search Agent │ └→ Chat AgentPythonif intent weather: ... elif intent search: ... else: ...所以条件判断 Agent 路由逻辑的基础。6.for—— 批量处理数据例如搜索返回results [ {title: 新闻1}, {title: 新闻2}, {title: 新闻3} ]处理for result in results: print(result[title])Agent 中特别常见for tool in tools: ...或者for message in messages: ...或者for document in documents: ...7.try / except—— Agent 必须会因为 Agent 会疯狂调用LLM ↓ 搜索 API ↓ 数据库 ↓ 第三方 API ↓ 工具任何一步都可能报错。所以try: result api.call() except Exception as e: print(e)更实际一点try: result await llm.ainvoke(messages) except Exception as e: return { error: str(e) }你以后看到except Exception as e:要知道这里是在兜底处理 Agent 运行过程中的异常。四、class—— Agent 框架代码里非常重要这个可能是刚入门 Python 最容易懵的。比如class WeatherTool: def __init__(self, api_key): self.api_key api_key def run(self, city): return 北京晴天使用tool WeatherTool(xxx) result tool.run(北京)你需要理解三个东西class定义一个对象/组件。__init__初始化。self代表当前对象。Agent 框架里经常把Tool Memory Agent Retriever Model State封装成 class。所以看到class XXX:你要能基本看懂。五、async / await—— Agent 开发必须补上的知识这个非常重要。普通函数result llm.invoke(prompt)异步result await llm.ainvoke(prompt) llm.ainvoke(prompt)调用 LLM让大模型根据 prompt 生成结果。async await 一般只能出现在 async def 函数里面等待 llm.ainvoke(prompt) 这个异步任务返回结果然后再继续执行当前这行后面的代码。函数async def call_llm(): result await llm.ainvoke(prompt) return result理解成async def ↓ 这个函数里面存在异步操作 await ↓ 等待这个操作完成因为 Agent 经常需要LLM ↓ API ↓ 数据库 ↓ 搜索很多都是 IO 操作所以异步代码非常常见。六、装饰器—— Agent 框架里会大量出现例如tool def search_weather(city: str): return 北京晴天你可能会问tool是什么简单理解tool def search_weather(): ...相当于告诉框架把这个 Python 函数注册成一个 Agent 可以调用的 Tool。以后你还会看到app.route(...)staticmethodproperty以及各种框架自己的装饰器。所以至少要看懂装饰器是什么不需要一开始深入研究装饰器底层实现。七、类型提示 —— Agent 代码里特别常见例如def search(city: str) - str: ...意思city ↓ 应该是 str 函数返回 ↓ 应该是 str再比如def process(state: dict) - dict: ...以及from typing import List, Optional def search( query: str, top_k: int 5 ) - List[str]: ... query 参数应该是字符串类型 top_k 应该是整数如果调用函数时不传它就默认使用 5。 这个函数预计返回一个 List[str]也就是“字符串列表”。 这个 : 表示函数定义结束下面缩进的代码属于这个函数。 有返回你想要的值那么结果返回None。这些你一定要能读懂。八、Pydantic—— Agent 开发非常值得学后面你做结构化输出的时候会经常遇到from pydantic import BaseModel class UserInfo(BaseModel): name: str age: int city: str然后user UserInfo( name张三, age25, city北京 )它解决的问题就是规定 Agent 输入/输出的数据结构。比如让 LLM 输出{ name: 张三, age: 25, city: 北京 }而不是张三今年25岁住在北京哈哈。所以做 Agent 后Pydantic 很值得掌握。九、环境变量 —— API Key 基本离不开你会经常看到import os api_key os.getenv(OPENAI_API_KEY)或者from dotenv import load_dotenv load_dotenv().envOPENAI_API_KEYxxxx然后os.getenv(OPENAI_API_KEY)这套东西一定要会。十、最后是这些“进阶但很常见”的结构列表推导式names [user[name] for user in users]等价于names [] for user in users: names.append(user[name])Agent 数据处理经常用。lambdaresults.sort(keylambda x: x[score])看到不用害怕。简单理解lambda 临时定义一个很短的小函数。*argsdef test(*args): print(args)允许传任意数量的位置参数。**kwargsdef test(**kwargs): print(kwargs)允许传任意数量的关键字参数。Agent 框架里非常常见def invoke(input, **kwargs): ...所以至少要能看懂。yield流式输出的时候会碰到def stream(): yield 你好 yield 我是 yield AIAgent/LLM Streaming你 ↓ 好 ↓ ↓ 我 ↓ 是 ↓ AI就可能涉及yield。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号