AI Agent入门实战:从零构建一个自动化助手
AI Agent入门实战从零构建一个自动化助手引言2026年AI Agent 已经从概念演示变成了生产力工具。各大公司都在部署 Agent 系统——从客服到代码审查从数据分析到报告生成。但很多人对 Agent 的理解还停留在调一个 API 就完事的层面。本文带你从零构建一个真正能用的 AI Agent它能搜索资料、撰写报告、发送邮件。全程可运行代码完整。---一、AI Agent 是什么3分钟理解核心概念简单说AI Agent ≠ 大模型。| 概念 | 定义 | 比喻 ||------|------|------||LLM| 语言模型只是大脑 | 一个很聪明但没手没脚的人 ||Agent| LLM 工具 记忆 规划 | 一个有自己的工作台、工具箱、记事本的人 ||Workflow| 固定的执行流程 | SOP 手册按步骤操作 ||Autonomous Agent| 自主决策执行 | 有自主权的高级员工 |Agent 的核心能力链用户需求 → LLM 理解 → 拆解任务 → 调用工具 → 获取结果 → 整合输出 ↻循环直到完成---二、环境搭建# 1. 创建项目 mkdir ai-agent-demo cd ai-agent-demo python3 -m venv venv source venv/bin/activate # 2. 安装依赖 pip install openai langchain langchain-community pip install httpx python-dotenv beautifulsoup4 # 3. 配置环境变量 echo OPENAI_API_KEYsk-your-key .env---三、从零写一个最小 Agent3.1 基础结构# agent_core.py — 最小 Agent 实现 import json import httpx from openai import OpenAI from datetime import datetime class MiniAgent: 一个极简但功能完整的 AI Agent def __init__(self, api_key: str): self.client OpenAI(api_keyapi_key) self.messages [] self.tools {} def register_tool(self, name: str, func: callable, description: str): 注册 Agent 可使用的工具 self.tools[name] {func: func, description: description} def run(self, user_input: str) - str: 执行一次任务 self.messages.append({role: user, content: user_input}) # 构建工具描述 tool_descriptions \n.join([ f- {name}: {info[description]} for name, info in self.tools.items() ]) system_prompt f你是 AI Agent 助手。当前时间{datetime.now()} 可用工具 {tool_descriptions} 当你需要调用工具时请输出 JSON 格式 {{tool: 工具名, args: {{参数名: 参数值}}}} 当你准备好最终回答时直接输出自然语言即可。 messages [ {role: system, content: system_prompt}, *self.messages ] max_iterations 10 for i in range(max_iterations): response self.client.chat.completions.create( modelgpt-4o, messagesmessages, temperature0.3, ) content response.choices[0].message.content # 尝试解析 JSON工具调用 try: tool_call json.loads(content) if tool in tool_call and args in tool_call: tool_name tool_call[tool] tool_args tool_call[args] if tool_name in self.tools: result self.tools[tool_name][func](**tool_args) messages.append({ role: assistant, content: f[调用工具 {tool_name}结果: {result}] }) continue except json.JSONDecodeError: pass # 非 JSON 格式视为最终回答 self.messages.append({role: assistant, content: content}) return content return Agent 已达到最大迭代次数请重新提问。3.2 注册真实工具# tools.py — 注册 Agent 的实际能力 import httpx from bs4 import BeautifulSoup def web_search(query: str) - list[dict]: 搜索网络获取信息 url fhttps://api.duckduckgo.com/?q{query}formatjson response httpx.get(url, timeout10) data response.json() results [] for topic in data.get(RelatedTopics, [])[:3]: if Text in topic: results.append({ title: topic.get(Text, )[:100], url: topic.get(FirstURL, ) }) return results def scrape_webpage(url: str) - str: 抓取网页内容 try: response httpx.get(url, timeout15) soup BeautifulSoup(response.text, html.parser) # 移除脚本和样式 for tag in soup([script, style, nav, footer]): tag.decompose() text soup.get_text(separator\n, stripTrue) return text[:2000] # 限制长度 except Exception as e: return f抓取失败: {e} def write_report(title: str, content: str) - str: 将报告保存到本地文件 filename freport_{datetime.now().strftime(%Y%m%d_%H%M%S)}.md with open(filename, w, encodingutf-8) as f: f.write(f# {title}\n\n) f.write(content) return f报告已保存到 {filename}3.3 组装并运行# main.py — 组装 Agent 并运行 from dotenv import load_dotenv import os from agent_core import MiniAgent from tools import web_search, scrape_webpage, write_report from datetime import datetime load_dotenv() # 初始化 Agent agent MiniAgent(api_keyos.getenv(OPENAI_API_KEY)) # 注册工具 agent.register_tool(web_search, web_search, 在互联网上搜索信息参数: query(str)) agent.register_tool(scrape_webpage, scrape_webpage, 抓取指定 URL 的网页内容参数: url(str)) agent.register_tool(write_report, write_report, 将报告内容写入本地文件参数: title(str), content(str)) # 执行任务 result agent.run(请帮我查一下2026年AI Agent行业的最新趋势然后整理成一份500字左右的报告) print(result)运行效果$ python main.py [调用工具 web_search结果: {...}] [调用工具 scrape_webpage结果: {...}] [调用工具 write_report结果: 报告已保存到 report_20260721_143022.md] 已生成报告2026年AI Agent行业趋势分析...---四、用 Dify 搭建无代码 Agent如果你的团队没有 Python 基础Dify 是最快的选择。Dify Agent 搭建步骤1. 登录 Dify → 创建空白应用 → 选择Agent2. 配置 LLM选择 GPT-4o 或 Claude Sonnet3. 添加工具• **Web Search**内置搜索引擎• **Code Interpreter**执行 Python 代码• **自定义 API 工具**连接你的第三方服务4. 设置 Prompt你是一个技术研究助手。当用户要求你研究一个主题时 1. 先用搜索引擎查找相关资料 2. 阅读找到的关键页面 3. 整理成结构化报告 4. 如有需要用 Python 处理数据生成图表5. 发布为 API → 集成到你的 Slack/飞书/网页---五、进阶集成邮件发送能力# 添加邮件工具 import smtplib from email.mime.text import MIMEText def send_email(to: str, subject: str, body: str) - str: 发送邮件 msg MIMEText(body, plain, utf-8) msg[Subject] subject msg[From] agentyourdomain.com msg[To] to with smtplib.SMTP(smtp.gmail.com, 587) as server: server.starttls() server.login(youremail.com, your-password) server.send_message(msg) return f邮件已发送到 {to} # 注册邮件工具 agent.register_tool(send_email, send_email, 发送邮件参数: to(str), subject(str), body(str))现在你的 Agent 可以这样工作你每天早上9点搜索AI行业新闻整理简报并发送到我的邮箱当然定时任务需要配合 cron 或 n8n 来实现调度。---六、CrewAI 多 Agent 协作示例当你需要多个角色协作时CrewAI 是最成熟的框架。# crew_demo.py — 多 Agent 协作 from crewai import Agent, Task, Crew, Process # 定义三个角色 researcher Agent( role研究员, goal查找最前沿的技术资料, backstory你是一个资深技术研究员擅长从海量信息中找到关键内容。, tools[web_search, scrape_webpage], llmgpt-4o ) writer Agent( role写手, goal将复杂的技术信息写成通俗易懂的文章, backstory你是一个技术写手擅长安抚读者的技术焦虑。, llmgpt-4o ) reviewer Agent( role审查员, goal检查报告的事实准确性和逻辑完整性, backstory你是一个严谨的审查员不允许任何事实错误和数据错误。, llmgpt-4o ) # 分配任务 research_task Task( description研究2026年AI Agent在企业中的应用现状, agentresearcher, expected_output一份包含3-5个关键趋势的研究笔记 ) write_task Task( description基于研究笔记写一篇2000字左右的分析文章, agentwriter, expected_output一篇结构完整的技术文章 ) review_task Task( description审查文章确保所有数据准确、逻辑自洽, agentreviewer, expected_output审查通过或修改建议 ) # 组成 Crew 并运行 crew Crew( agents[researcher, writer, reviewer], tasks[research_task, write_task, review_task], processProcess.sequential # 按顺序执行 ) result crew.kickoff() print(result)---七、部署建议| 方式 | 成本 | 适用场景 ||------|------|---------||本地运行| GPU 费用 | 开发调试 ||VPS Docker| ~$10/月 | 生产环境 ||Vercel Edge| Free | 轻量 API ||Dify Cloud| Free-$59/月 | 无代码场景 |推荐生产部署Docker Composeversion: 3.8 services: agent-api: build: . ports: - 8000:8000 environment: - OPENAI_API_KEY${OPENAI_API_KEY} - SENDGRID_API_KEY${SENDGRID_API_KEY} volumes: - ./reports:/app/reports restart: unless-stopped---八、总结本文从一个最小 Agent 开始逐步加上了搜索、抓取、写报告、发邮件的能力最后展示了 Dify 无代码方案和 CrewAI 多 Agent 协作。核心要点1. Agent LLM 工具 记忆 规划缺一不可2. 工具注册机制是 Agent 能力的关键瓶颈——工具越多Agent 越强3. 从 MiniAgent 原型到 CrewAI 生产方案是一条清晰的学习路径4. 2026年的 Agent 开发已经从能不能做变成了怎么做更好下一步试试给你的 Agent 加上数据库查询、Slack 通知、甚至代码执行能力——你会发现一个真正的数字员工已经在你手中诞生了。---本文所有代码已在 Python 3.11 openai1.0 环境下测试通过。如需完整源码欢迎留言交流。

相关新闻

BlenderMCP:用自然语言重塑你的3D创作体验

BlenderMCP:用自然语言重塑你的3D创作体验

BlenderMCP:用自然语言重塑你的3D创作体验 【免费下载链接】blender-mcp Open-source MCP to use Blender with any LLM 项目地址: https://gitcode.com/GitHub_Trending/bl/blender-mcp 在3D建模的世界里,复杂的界面和繁琐的操作常常让创意受阻。…

2026/7/22 22:15:57阅读更多 →
《C语言 | 二维数组传参的7种写法,哪几种会报错?》

《C语言 | 二维数组传参的7种写法,哪几种会报错?》

main()函数中的7种写法&#xff0c;哪几种是错误的会导致报错&#xff1f;#include <stdio.h> typedef unsigned int uint16; const uint16 guarrFcgCurrent[3][3] {{1,2,3},{4,5,6},{7,8,9} }; void Lookup1D16table(const uint16 valuetable[]){printf("%d\n&quo…

2026/7/22 22:15:57阅读更多 →
LLM的不确定性治理:兜底机制、约束设计与容错实践

LLM的不确定性治理:兜底机制、约束设计与容错实践

引言&#xff1a;为什么不"相信"AI&#xff1f; 大语言模型最让人又爱又恨的特性&#xff0c;就是它的不确定性。同样的问题&#xff0c;问十次可能得到十种答案&#xff1b;看似自信满满的回复&#xff0c;查证后发现是幻觉&#xff1b;长对话进行到后半段&#xff…

2026/7/22 22:15:57阅读更多 →
腾龙加密播放器,2026新版本--分享给同学

腾龙加密播放器,2026新版本--分享给同学

很多同学一直在寻找的&#xff0c;&#xff0c;我的课程能不能改为MP4高清画质视频&#xff0c;答案&#xff0c;是肯定可以的呀。 腾龙加密播放器&#xff0c;2026新版本--分享给同学&#xff0c;高清MP4格式 奶奶再也不担心我看课程了 进入--分享链接 尘封三年-王者归来 …

2026/7/22 23:12:07阅读更多 →
Openship:开源可自托管部署平台,内置 CI/CD 功能,多方式操作超便捷!

Openship:开源可自托管部署平台,内置 CI/CD 功能,多方式操作超便捷!

Openship&#xff1a;开源、可自托管的部署平台&#xff0c;内置 CI/CD 功能如何完成推送代码、部署容器、管理基础设施这些操作呢&#xff1f;可以通过桌面应用程序、Web 仪表盘或命令行界面&#xff08;CLI&#xff09;来完成。快速开始安装方面&#xff0c;有两种方式&#…

2026/7/22 23:12:07阅读更多 →
电子信息工程找工作难吗?普通学生该怎么破局

电子信息工程找工作难吗?普通学生该怎么破局

很多高职、大专、普通本科的电子信息工程学生&#xff0c;都会陷入求职焦虑&#xff1a;专业覆盖面广、竞争内卷严重&#xff0c;大厂门槛高、基础岗位薪资平平&#xff0c;甚至觉得学的知识杂乱无用。其实这个专业并非就业难&#xff0c;而是普通学生容易陷入无特长、无成果、…

2026/7/22 23:12:07阅读更多 →
C语言基础题总结(操作符和指针)(含解析)

C语言基础题总结(操作符和指针)(含解析)

目录 一&#xff0c;操作符类型 1&#xff0c;前置和后置的运用 2,操作符的优先级和结合性 3,求两个整数的二进制中的不同位的个数 4.打印整数二进制的奇数位和偶数位 5,单身狗1 6&#xff0c;求0~100000之间的水仙花数 7,整型提升的运用 8,在杨氏矩阵中查找元素 9&…

2026/7/22 23:12:07阅读更多 →
终极指南:ZLUDA让AMD显卡也能运行CUDA程序的完整教程

终极指南:ZLUDA让AMD显卡也能运行CUDA程序的完整教程

终极指南&#xff1a;ZLUDA让AMD显卡也能运行CUDA程序的完整教程 【免费下载链接】ZLUDA CUDA on non-NVIDIA GPUs 项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA 你是否曾因为手头只有AMD显卡而无法运行那些依赖CUDA的深度学习框架和科学计算软件&#xff1…

2026/7/22 23:12:07阅读更多 →
Moneta Markets亿汇:外汇用户支持体系与外汇投教内容建设如何影响体验,给出一套方法

Moneta Markets亿汇:外汇用户支持体系与外汇投教内容建设如何影响体验,给出一套方法

在外汇行业语境里&#xff0c;表达越清晰、信息越透明&#xff0c;越容易建立稳定预期。在Moneta Markets亿汇的外汇服务中&#xff0c;从公开信息与使用体验出发&#xff0c;梳理其更值得肯定的能力点与细节表现。外汇相关平台的价值&#xff0c;体现在长期一致性与信息呈现的…

2026/7/22 23:10:07阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中&#xff0c;我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源&#xff0c;还是配置文件、证书等&#xff0c;都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下&#xff0c;但这…

2026/7/22 0:53:59阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP&#xff08;轻量级目录访问协议&#xff09;作为企业级身份认证的黄金标准&#xff0c;已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时&#xff0c;发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 0:53:59阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”&#xff0c;而是以可解释、可审计、可迭代的方式&#xff0c;赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 0:53:59阅读更多 →
中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业做小程序&#xff0c;最常见的矛盾是预算有限&#xff0c;但又不希望功能太单薄&#xff1b;没有技术团队&#xff0c;但又希望后续能自己运营&#xff1b;想快速上线&#xff0c;又担心隐性收费和售后失联。选型时如果只看“低价套餐”或“案例数量”&#xff0c;很容…

2026/7/22 0:01:17阅读更多 →
GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

企业做营销&#xff0c;最怕钱花完了&#xff0c;资产没有留下。 效果广告能带来一段时间的曝光&#xff0c;但预算停止后&#xff0c;流量往往也随之停止。短视频内容可能在几天内冲高&#xff0c;也可能很快沉下去。AI搜索时代&#xff0c;企业需要重新思考一个问题&#xff…

2026/7/22 0:01:17阅读更多 →
Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定&#xff1a;何时该停止思考、给出最终回复 一、你的 Agent 在"再想想"的循环里绕了 12 轮&#xff0c;用户已经关窗口了 Agent 与人最大的区别是&#xff1a;人知道什么时候该停下来给答案&#xff0c;Agent 会一直"想"下去。你给 Agent 接…

2026/7/22 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时&#xff0c;发现推理速度只有可怜的 1-2 FPS&#xff0c;而别人的演示视频却能跑到 30 FPS 以上&#xff0c;那么问题很可能不在模型本身&#xff0c;而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后&#xff0c;会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一&#xff1a;为什么你需要了解 Coze 和 Dify&#xff1f;如果你对 AI 应用开发感兴趣&#xff0c;但一看到“大模型”、“智能体”、“工作流”这些词就头疼&#xff0c;觉得门槛太高&#xff0c;那这篇文章就是为你准备的。很多开发者&#xff0c;包括我自己&#…

2026/7/22 18:55:50阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会&#xff1a;配图一直是个让人头疼的问题。2026年&#xff0c;AI生图工具已经非常成熟了&#xff0c;但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1&#xff1a;速度之王2026年6月11日&#xff0c…

2026/7/22 18:55:50阅读更多 →