很多人第一次接触 AI是跟 ChatGPT 聊天。它能写诗、写代码、写周报甚至能跟你辩论哲学。但你有没有发现一个现象它很聪明但从不主动做事。你问它“帮我查一下今天的天气”它会告诉你“我无法访问实时数据”你让它“帮我把这份 PDF 转成 Word”它会说“我无法直接操作文件”。这不是它笨而是它的设计目标就是对话不是执行。什么是 AgentAgent智能体的核心定义是一个能感知环境、做出决策、调用工具、执行动作并达成目标的自主系统。拆解一下感知环境接收输入文字、图片、API 返回、传感器数据等做出决策根据目标判断下一步该做什么调用工具不只是“说”而是“做”——查数据库、发邮件、调 API、写文件执行动作真正改变外部世界哪怕只是生成一个文件达成目标有明确的结果导向比如“完成一份销售报告”、“订好明天上午的会议”Chatbot 是“问答机器”Agent 是“任务执行者”。Chatbot vs Agent一张表看懂本质区别维度ChatbotAgent核心能力回答提问执行任务交互模式一问一答多轮规划 工具调用是否改变外部世界否仅输出文本是可写文件、调接口、发邮件是否有记忆通常无或极短有短期长期记忆是否有目标无有比如“完成周报”是否自主决策否被动响应是主动规划步骤Agent 的最小骨架用 50 行 Python 跑通你的第一个 Agent我们不依赖任何框架就用最原始的 Python 大模型 API写一个能“动手做事”的 Agent。目标让 Agent 接收一个指令“获取当前时间并告诉我”它能理解指令决定调用哪个工具get_current_time执行工具返回结果第一步准备环境你需要Python 3.10一个 DeepSeek / 通义千问 / GLM 的 API Key任选其一安装 requests 库pip install requests第二步写代码import requests import json # 配置你的 API Key 和基础 URL这里以 DeepSeek 为例其他平台类似 API_KEY 你的API_KEY BASE_URL https://api.deepseek.com/v1/chat/completions def get_current_time(): 模拟一个工具获取当前时间 from datetime import datetime return datetime.now().strftime(%Y-%m-%d %H:%M:%S) def call_llm(messages): 调用大模型 API headers { Authorization: fBearer {API_KEY}, Content-Type: application/json } payload { model: deepseek-chat, messages: messages, temperature: 0.0 } response requests.post(BASE_URL, headersheaders, jsonpayload) response.raise_for_status() return response.json()[choices][0][message][content] def agent_run(user_input): Agent 主循环接收输入 → 决策 → 执行 → 返回结果 # 1. 初始化对话 messages [ {role: system, content: 你是一个能调用工具的智能体。你可以调用 get_current_time() 来获取当前时间。请用 JSON 格式返回你的决策{\action\: \get_current_time\} 或 {\action\: \none\}}, {role: user, content: user_input} ] # 2. 让模型做决策 decision call_llm(messages) print(f[模型决策] {decision}) try: decision_json json.loads(decision) action decision_json.get(action) except: action none # 3. 执行工具 if action get_current_time: result get_current_time() print(f[执行结果] {result}) return f当前时间是{result} else: return 抱歉我没有理解你的指令无法执行。 # 测试 if __name__ __main__: user_input 获取当前时间并告诉我 output agent_run(user_input) print(f[最终输出] {output})第三步运行看看当你运行这段代码你会看到[模型决策] {action: get_current_time} [执行结果] 2025-09-03 14:23:45 [最终输出] 当前时间是2025-09-03 14:23:45恭喜你你已经写出了第一个能“动手做事”的 Agent。它不是在跟你聊天而是在执行一个任务——调用工具、获取结果、返回答案。常见错误 排坑指南模型返回的不是 JSON​→ 在 system prompt 里明确要求“必须用 JSON 格式返回”并设置temperature0.0降低随机性。工具函数没定义或报错​→ 先确保工具函数能独立运行再集成进 Agent。API 调用失败401/429​→ 检查 API Key 是否正确是否超限是否需要设置代理。模型“瞎编”工具名​→ 在 system prompt 里明确列出可用工具不要用模糊描述。课后作业修改代码让 Agent 能调用两个工具get_current_time()和send_email(to, subject, body)模拟发送邮件打印即可。尝试让 Agent 理解更复杂的指令比如“帮我查下现在几点然后发邮件告诉老板我迟到了”提示你需要拆成两步。思考如果模型决策错误你怎么加入“人工确认”机制总结这一讲我们学会了Agent ≠ Chatbot它是能“做事”的系统最小 Agent 感知 → 决策 → 执行 → 反馈用 50 行 Python API 就能跑通一个能调用工具的 Agent避坑关键明确工具定义、控制输出格式、降低温度下一讲我们将深入如何稳定调用大模型 API包括流式输出、超时重试、token 统计、成本意识——这些都是生产级 Agent 的必备基本功。 开发之余处理 Base64、JWT 解析、JSON 格式化、Crontab 计算、PDF 合并压缩这些碎片需求我常用一个纯前端本地工具箱zz365.top子页 PDF 大师PDF 大师 - zz365工具箱。所有计算在浏览器完成文件不上传服务器关页即清。免费、无登录、无广告适合开发者当常驻标签页。