news 2025/12/23 14:57:47

Gemini 3 实战揭秘:AI智能体的循环 + LLM 原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Gemini 3 实战揭秘:AI智能体的循环 + LLM 原理

如果你见过 AI 智能体编辑文件、运行代码、修正自身错误,并且能像早已规划好一样持续工作……它看起来确实像魔法。但实际原理远没有那么复杂。

这里没有秘密技巧。
没有秘密算法。
更没有神秘的“智能体大脑”。

本质上,智能体的构成只有三点:

一个循环(Loop)+ 一个大语言模型(LLM)+ 一些工具(Tools)
就是这么简单。

只要你能写出 Python 中基础的while True循环,就已经成功了一半。

本指南会一步步带你用 Gemini 3 构建真正的智能体——从基础的文本调用,到能读取文件、写入文件并智能响应的命令行助手。

内容会保持简洁实用,不含多余信息。

(按回车键或点击可查看完整尺寸图片)

什么是智能体(Agent)?

传统软件就像流程图:
步骤 A → 步骤 B → 步骤 C → 结束。

智能体不遵循固定步骤,而是会根据实际情况选择下一步行动。可以将其理解为围绕大语言模型构建的小型系统,具备以下能力:

  • • 规划(plan)

  • • 执行行动(take actions)

  • • 对结果做出反应(react to results)

  • • 持续迭代直到任务完成(keep iterating until the job is done)

因此,它不是严格的脚本,更像是一个“智能循环”。

无论多么复杂的智能体,都包含四个基础组件:

1. 模型(Model)——“大脑”

本文中使用的是 Gemini 3 Pro。它会分析用户需求,并决定下一步该做什么。

2. 工具(Tools)——“手和眼睛”

指模型可以调用的函数,例如:

  • • 读取文件、列出目录

  • • 发送邮件、调用 API

  • • 其他任何可执行的功能

3. 上下文(Context)——“工作区”

指模型在任意时刻能获取的信息。高效管理上下文的过程被称为“上下文工程(Context Engineering)”。

4. 循环(Loop)——“生命周期”

遵循“观察(Observe)→ 思考(Think)→ 行动(Act)→ 重复(Repeat)”的逻辑,直到任务完成。

这就是智能体的全部核心结构。

循环(Loop)的实际工作原理

几乎所有智能体都遵循以下流程:

  1. 1. 向模型描述可用的工具。

  2. 2. 将用户需求和工具定义发送给 Gemini 3。

  3. 3. 模型做出判断:

    • • 直接返回正常响应;

    • • 或调用工具并传入结构化参数。

  4. 4. 用 Python 代码执行该工具。

  5. 5. 将工具的执行结果反馈给 Gemini。

  6. 6. 模型基于新信息决定下一步行动。

  7. 7. 持续循环,直到模型提示“任务已完成”。

接下来开始实际构建。

步骤 1:基础聊天机器人(起点)

首先为 Gemini 3 API 创建一个简单的包装类,本质是实现一个持久化的对话功能。

from google import genai from google.genai import types class Agent: def __init__(self, model: str): self.model = model self.client = genai.Client() # 初始化 Gemini 客户端 self.contents = [] # 存储对话历史 def run(self, contents: str): # 将用户输入添加到对话历史 self.contents.append({"role": "user", "parts": [{"text": contents}]}) # 调用 Gemini 模型生成响应 response = self.client.models.generate_content( model=self.model, contents=self.contents ) # 将模型响应添加到对话历史 self.contents.append(response.candidates[0].content) return response # 初始化智能体并测试 agent = Agent(model="gemini-3-pro-preview") response1 = agent.run( "你好,德国最值得游览的 3 个城市是什么?只需返回城市名称。" ) print(response1.text)

这个代码能运行……但它只是个聊天机器人。
它没有“手”,无法执行任何实际操作。

接下来我们解决这个问题。

步骤 2:为智能体添加工具(手和眼睛)

工具本质是 Python 函数,再加上一个用于向 Gemini 描述该工具的 JSON schema。

我们将添加三个基础工具:

  • read_file(读取文件)

  • write_file(写入文件)

  • list_dir(列出目录内容)

第一步:定义工具描述(JSON schema)

# 读取文件工具的描述 read_file_definition = { "name": "read_file", "description": "读取文件并返回其内容。", "parameters": { "type": "object", "properties": { "file_path": {"type": "string"} # 必需参数:文件路径 }, "required": ["file_path"], # 标记必填参数 }, } # 列出目录工具的描述 list_dir_definition = { "name": "list_dir", "description": "列出指定目录下的所有文件。", "parameters": { "type": "object", "properties": { "directory_path": {"type": "string"} # 必需参数:目录路径 }, "required": ["directory_path"], }, } # 写入文件工具的描述 write_file_definition = { "name": "write_file", "description": "将内容写入指定文件。", "parameters": { "type": "object", "properties": { "file_path": {"type": "string"}, # 必需参数:文件路径 "contents": {"type": "string"} # 必需参数:要写入的内容 }, "required": ["file_path", "contents"], }, }

第二步:实现工具的 Python 函数

import os # 需导入 os 模块以操作文件/目录 def read_file(file_path: str) -> dict: with open(file_path, "r") as f: return f.read() # 返回文件内容 def write_file(file_path: str, contents: str) -> bool: with open(file_path, "w") as f: f.write(contents) # 将内容写入文件 return True # 写入成功返回 True def list_dir(directory_path: str) -> list[str]: return os.listdir(directory_path) # 返回目录下的文件列表

第三步:整合工具

file_tools = { "read_file": {"definition": read_file_definition, "function": read_file}, "write_file": {"definition": write_file_definition, "function": write_file}, "list_dir": {"definition": list_dir_definition, "function": list_dir}, }

步骤 3:闭合循环——构建真正的智能体

现在扩展Agent类,使其具备以下能力:

  • • 检测工具调用请求

  • • 用 Python 执行匹配的工具

  • • 将结果反馈给 Gemini

  • • 持续循环直到 Gemini 完成任务

class Agent: def __init__(self, model: str, tools: dict, system_instruction="你是一个有帮助的助手。"): self.model = model self.client = genai.Client() self.contents = [] # 对话历史 self.tools = tools # 智能体可使用的工具 self.system_instruction = system_instruction # 系统指令 def run(self, contents): # 将用户输入添加到对话历史(兼容文本和工具结果格式) if isinstance(contents, list): self.contents.append({"role": "user", "parts": contents}) else: self.contents.append({"role": "user", "parts": [{"text": contents}]}) # 配置模型:传入系统指令和工具定义 config = types.GenerateContentConfig( system_instruction=self.system_instruction, tools=[types.Tool( function_declarations=[ tool["definition"] for tool in self.tools.values() ] )], ) # 调用 Gemini 模型 response = self.client.models.generate_content( model=self.model, contents=self.contents, config=config ) # 将模型响应添加到对话历史 self.contents.append(response.candidates[0].content) # 若模型请求调用工具 if response.function_calls: functions_response_parts = [] # 遍历所有工具调用请求 for tool_call in response.function_calls: print(f"[函数调用] {tool_call}") # 执行工具(若工具存在) if tool_call.name in self.tools: result = {"result": self.tools[tool_call.name]["function"](**tool_call.args)} else: result = {"error": "工具未找到"} print(f"[函数响应] {result}") # 整理工具结果格式,用于反馈给模型 functions_response_parts.append( {"functionResponse": {"name": tool_call.name, "response": result}} ) # 将工具结果反馈给模型,继续循环 return self.run(functions_response_parts) # 若无需调用工具,直接返回模型响应 return response

测试智能体

# 初始化智能体(指定模型、工具和系统指令) agent = Agent( model="gemini-3-pro-preview", tools=file_tools, system_instruction="你是一个有帮助的编程助手,用 Linus Torvalds(Linux 创始人)的风格回应。" ) # 发送用户请求 response = agent.run("能列出当前目录下的文件吗?") print(response.text)

如果所有配置正确,Gemini 会调用list_dir工具、获取目录内容,然后返回最终答案。
至此,你已经拥有了一个能工作的智能体。

步骤 4:将智能体转为命令行工具(CLI)

只需用一个循环包装智能体,即可实现交互式命令行功能:

# 初始化智能体 agent = Agent( model="gemini-3-pro-preview", tools=file_tools, system_instruction="你是一个有帮助的编程助手,用 Linus Torvalds 的风格回应。" ) print("智能体已就绪。输入内容即可交互(输入 'exit' 退出)。") while True: user_input = input("你:") # 检测退出指令 if user_input.lower() in ['exit', 'quit']: break # 运行智能体并打印响应 response = agent.run(user_input) print("Linus:", response.text, "\n")

只需几行代码,这个智能体就具备了令人惊讶的实用能力。

构建智能体的最佳实践

掌握基础后,遵循以下原则可大幅提升智能体的可靠性:

1. 简洁清晰的工具定义

模型的判断几乎完全依赖你对工具的描述。

  • • 使用直观的工具名称(如read_file而非rf

  • • 明确说明工具的使用场景(如“当需要读取文件内容时调用”)

  • • 返回简单易懂的错误信息(如“文件不存在”而非“Error 404”)

2. 谨慎管理上下文

不要将庞大的数据库直接传入模型,而是:

  • • 按需加载数据(just-in-time)

  • • 总结过长的对话历史

  • • 将临时笔记存储在模型上下文之外

3. 保持简洁

在单个智能体未被充分利用前,避免开发“多智能体系统”。

4. 添加安全护栏

某些高风险操作(如发送邮件、执行代码)应要求用户确认后再执行。

5. 记录所有日志

调试工具调用记录是优化智能体行为的主要方式。

总结思考

初次接触时,构建智能体似乎令人望而生畏,但理解其结构后会发现,原理简单到甚至有些“枯燥”。

它只是一个循环。
一个内置了超智能模型的循环。

理解这一点后,你就能创建出看似“有生命”的智能体。

如果想进一步扩展功能,可以添加:

  • • 网页搜索

  • • 数据库查询

  • • Shell 命令执行

  • • 云服务操作

  • • 长期记忆

  • • 工作流

  • • 任务调度

  • • 多步骤规划

但所有扩展都基于同一个简单的核心逻辑:

观察(Observe)→ 思考(Think)→ 行动(Act)→ 重复(Repeat)

这就是所有现代智能体的核心。

要不要我帮你整理一份完整可运行的 Python 代码文件?文件会包含文中所有代码,并标注关键注释,方便你直接测试和修改。

最后

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。

我整理出这套 AI 大模型突围资料包:

  • ✅AI大模型学习路线图
  • ✅Agent行业报告
  • ✅100集大模型视频教程
  • ✅大模型书籍PDF
  • ✅DeepSeek教程
  • ✅AI产品经理入门资料

如果你也想通过学大模型技术去帮助自己升职和加薪,可以扫描下方链接👇👇
​​

为什么我要说现在普通人就业/升职加薪的首选是AI大模型?

人工智能技术的爆发式增长,正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议,到全国两会关于AI产业发展的政策聚焦,再到招聘会上排起的长队,AI的热度已从技术领域渗透到就业市场的每一个角落。


智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200%,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。

AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。

​​

资料包有什么?

①从入门到精通的全套视频教程

包含提示词工程、RAG、Agent等技术点

② AI大模型学习路线图(还有视频解说)

全过程AI大模型学习路线

③学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的

④各大厂大模型面试题目详解


⑤ 这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念‌,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势‌,构建起"前沿课程+智能实训+精准就业"的高效培养体系。

课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

​​​​

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/23 14:57:41

eide中查看反汇编与内存布局:系统学习

深入eide:反汇编与内存布局的实战解析你有没有遇到过这样的场景?程序莫名其妙重启,串口没输出,调试器一连上就停在HardFault_Handler;或者RAM眼看还够用,却总在某个函数调用后崩溃。这时候,打印…

作者头像 李华
网站建设 2025/12/23 14:56:53

精准测试深度解析:如何用代码变更分析实现测试用例的智能筛选与优化?

从“广撒网”到“精确制导”的测试进化在软件迭代日益频繁、交付周期不断压缩的当下,传统的测试策略正面临严峻挑战。庞大的回归测试集与有限的测试资源之间的矛盾日趋尖锐,“全量回归”成本高昂且效率低下,“凭经验选择”又可能遗漏关键缺陷…

作者头像 李华
网站建设 2025/12/23 14:55:45

【稀缺资源】Open-AutoGLM内部实现文档首次公开,限时解读

第一章:Open-AutoGLM项目背景与架构概览 Open-AutoGLM 是一个开源的自动化通用语言模型(General Language Model, GLM)推理优化框架,旨在降低大模型在边缘设备和本地服务器上的部署门槛。该项目由社区驱动开发,聚焦于模…

作者头像 李华
网站建设 2025/12/23 14:55:40

【稀缺资源】Open-AutoGLM 2.0内测版下载通道开放?仅限前1000名开发者

第一章:Open-AutoGLM 2.0怎么下载 获取 Open-AutoGLM 2.0 是使用该开源大语言模型自动化工具的第一步。该项目托管在 GitHub 上,支持通过 Git 克隆或直接下载发布版本的方式获取源码。 访问官方代码仓库 Open-AutoGLM 2.0 的源代码托管于 GitHub&#x…

作者头像 李华