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 环境下测试通过。如需完整源码欢迎留言交流。

相关新闻

OpenMower终极指南:如何用700欧元打造智能RTK GPS割草机器人

OpenMower终极指南:如何用700欧元打造智能RTK GPS割草机器人

OpenMower终极指南:如何用700欧元打造智能RTK GPS割草机器人 【免费下载链接】OpenMower Lets upgrade cheap off-the-shelf robotic mowers to modern, smart RTK GPS based lawn mowing robots! 项目地址: https://gitcode.com/GitHub_Trending/op/OpenMower …

2026/7/22 22:18:09 阅读更多 →
终极指南:如何用700欧元打造你的智能割草机器人 - OpenMower完整教程

终极指南:如何用700欧元打造你的智能割草机器人 - OpenMower完整教程

终极指南:如何用700欧元打造你的智能割草机器人 - OpenMower完整教程 【免费下载链接】OpenMower Lets upgrade cheap off-the-shelf robotic mowers to modern, smart RTK GPS based lawn mowing robots! 项目地址: https://gitcode.com/GitHub_Trending/op/Open…

2026/7/22 22:17:09 阅读更多 →
熵权法结合层次分析法组合权重➕模糊综合评价根据体育教师胜任力作为案例

熵权法结合层次分析法组合权重➕模糊综合评价根据体育教师胜任力作为案例

层次分析法(AHP)熵权法模糊综合评价 完整实操框架(适配你体育教师胜任力案例)一、组合逻辑(一句话讲透)AHP算主观专家权重、熵权法算客观数据权重,二者耦合得到组合权重,再代入模糊综合评价,实现…

2026/7/22 22:17:09 阅读更多 →

最新新闻

终极指南:如何用Universal x86 Tuning Utility完全释放你的硬件性能潜力 [特殊字符]

终极指南:如何用Universal x86 Tuning Utility完全释放你的硬件性能潜力 [特殊字符]

终极指南:如何用Universal x86 Tuning Utility完全释放你的硬件性能潜力 🚀 【免费下载链接】Universal-x86-Tuning-Utility Your Hardware. Your Rules. Open. Powerful. Unrestricted Tuning. 项目地址: https://gitcode.com/gh_mirrors/un/Universa…

2026/7/22 23:48:19 阅读更多 →
爬虫转大模型:把边界和取舍讲清楚

爬虫转大模型:把边界和取舍讲清楚

聊《我用爬虫经验做了次 AI 项目,最先失效的是旧方法》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做&…

2026/7/22 23:48:19 阅读更多 →
Windows 2000/XP系统进程详解与优化指南

Windows 2000/XP系统进程详解与优化指南

1. Windows 2000/XP系统进程全解析作为一名从Windows NT时代就开始折腾系统的老鸟,我至今还记得当年在Windows 2000服务器上排查进程问题的日日夜夜。今天我就来详细梳理下这两个经典系统的进程体系,这份经验对现在还在维护老旧系统的朋友应该会很有帮助…

2026/7/22 23:48:19 阅读更多 →
用 Ace Data Cloud 接入 Veo API:把一句镜头描述变成可交付的视频素材

用 Ace Data Cloud 接入 Veo API:把一句镜头描述变成可交付的视频素材

用 Ace Data Cloud 接入 Veo API:把一句镜头描述变成可交付的视频素材 过去,想做一条“看起来有制作感”的短视频,往往要先写分镜、找素材、拍摄、剪辑、调色,再反复修改。对于内容团队、电商团队、SaaS 产品团队来说,…

2026/7/22 23:47:18 阅读更多 →
磨针c盘清理官网,千万不要去李鬼网站,以防被骗

磨针c盘清理官网,千万不要去李鬼网站,以防被骗

磨针c盘清理官网,千万不要去李鬼网站,以防被骗由于磨针c盘清理效果突出,很多网站假冒磨针c盘清理的官网,这也是大家对磨针的认可,请搜索“磨针工具网站”即可找到磨针c盘清理的官网。很多电脑用户都会遇到一个棘手问题…

2026/7/22 23:47:18 阅读更多 →
Grizzly入门教程:5分钟上手Jsonnet定义Grafana仪表盘,告别手动配置

Grizzly入门教程:5分钟上手Jsonnet定义Grafana仪表盘,告别手动配置

Grizzly入门教程:5分钟上手Jsonnet定义Grafana仪表盘,告别手动配置 【免费下载链接】grizzly A utility for managing Jsonnet dashboards against the Grafana API 项目地址: https://gitcode.com/gh_mirrors/griz/grizzly Grizzly(简…

2026/7/22 23:47:18 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/7/22 12:54:44 阅读更多 →

月新闻