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