👋 你好,我是 daner。
一个美好得故事
今天认识了Agent
一、一句话总结
在探索任何一个复杂概念时,我们最好从一个简洁的定义开始。在人工智能领域,智能体被定义为任何能够通过传感器(Sensors)感知其所处环境(Environment),并自主地通过执行器(Actuators)采取行动(Action)以达成特定目标的实体。
二、为了解决什么问题创造出来得
为了解决 “智能”与“世界”的交互问题而创造出来的。
1. 解决传统AI模型的“被动性”和“孤立性”问题
- 传统模型(如ChatGPT初代):
它们更像是一个“百科全书式”的大脑。你问,它答。它非常被动,只能在接收到明确的指令(提示词)后,在一个孤立的“会话”中生成文本。它无法主动感知环境、无法记忆长期目标、无法通过行动改变环境。 - Agent 要解决的问题: 我们需要的不是一个只会回答问题的“大脑”,而是一个能主动进入世界、感知环境、执行动作、并最终完成一个复杂目标的“手脚并用的智能体”。比如,你无法命令ChatGPT“帮我把下个月去杭州最便宜的机票买了”,但一个旅行预订Agent可以自动完成这个多步骤任务。
2. 解决复杂任务的“多步骤规划”问题
- 单一任务 vs. 复杂任务:识别一张图片里的猫是一个单一任务。但“为我针对科技领域每天自动发布一篇技术前沿知识卡片”就是一个由多个子任务(搜集话题、依据制作内容、定时发布)组成的复杂任务。
- Agent 要解决的问题: Agent 的核心能力是规划。它能够将一个宏大的目标(比如“开发一个软件”)分解成一系列可执行的小任务(设计架构 -> 编写模块A -> 测试模块A -> 编写模块B -> 集成 -> 部署),并动态地调整计划。这模仿了人类解决问题的方式。
3. 解决与现实世界的“动态交互”问题
- 静态环境 vs. 动态环境:下围棋的棋盘规则是固定的,环境是静态的。但现实世界是动态变化的——股票价格在波动、交通状况在实时更新、软件API可能会改变。
- Agent 要解决的问题: Agent 被设计为能够通过工具使用来与动态环境交互。它不仅可以调用搜索引擎获取最新信息,还可以操作软件(点击按钮、填写表单)、控制物理设备。当计划A行不通时,它能感知到环境的变化(比如“支付失败”),并启动备选计划(比如“尝试另一种支付方式”)。
4. 解决“记忆”和“持续学习”问题
- 无状态的会话 vs. 有状态的协作:传统聊天机器人每次会话都是“从零开始”,它不记得你上次说过什么(除非在短时上下文内)。
- Agent 要解决的问题:Agent 通常被赋予长期记忆能力。它可以记住用户的长远目标、个人偏好和过去的交互历史。这使得Agent能够成为一个真正的个人助手,与你进行长期、连续、个性化的协作,而不是每次都要重新介绍一遍背景。
传统AI模型(如大语言模型) 像是一个世界上知识最渊博的顾问。
Agent(智能体) 则像是一个配备了这位顾问作为大脑的顶级执行官或助手。
三、怎么用
1准备用哪个大模型,登陆官网,获取api-key
2 明确智能体目标
3 功能规格设计(以新闻收集智能体为例)
输入: RSS源 + 当前时间
处理: 收集 → 分析 → 整理 → 生成
输出: 结构化Markdown报告
特性: 定时任务 + 错误处理 + 可扩展
4 技术栈选择
TECH_STACK = { "核心语言": "Python 3.8+", "网络请求": "requests", "HTML解析": "BeautifulSoup4", "RSS处理": "feedparser", "AI能力": "智谱GLM-4.6 API", "任务调度": "schedule", "配置管理": "python-dotenv"}5 项目结构创建
tech-news-agent/├── src/│ ├── agents/ # 智能体核心│ ├── utils/ # 工具函数│ └── config/ # 配置管理├── data/ # 数据存储├── outputs/ # 输出文件├── tests/ # 测试代码└── docs/ # 文档6 配置管理系统
# 环境变量 + 默认配置 + 验证逻辑class Config: RSS_FEEDS = [] # RSS源配置 API_KEYS = {} # 第三方API密钥 OUTPUT_SETTINGS = {} # 输出格式配置7 数据收集器
class DataCollector: def fetch_rss_feeds(self) # RSS源获取 def parse_articles(self) # 文章解析 def enhance_content(self) # 内容增强 def remove_duplicates(self) # 数据去重8 AI能力集成
class AIClient: def analyze_trends(self) # 趋势分析 def summarize_articles(self) # 文章摘要 def generate_insights(self) # 深度洞察 def handle_errors(self)以一段结合几个新闻趋势分析的代码展示具体实现仅展示关键逻辑 不同版本逻辑可能有出入 具体以官网提供的使用说明为准
def chat_completion(self, messages: List[Dict[str, str]], temperature: float = 0.7, stream: bool = False) -> Dict[str, Any]: """ # do some thing response = self.client.chat.completions.create( model=self.model, messages=messages, temperature=temperature, max_tokens=self.max_tokens, top_p=0.7, stream=stream ) # do some thing ``````plaintext def analyze_tech_trends(self, articles: List[Dict]) -> Dict[str, Any]: """专用方法:分析科技趋势""" titles = [article['title'] for article in articles[:25]] content = "\n".join([f"{i + 1}. {title}" for i, title in enumerate(titles)]) prompt = f"""你是一名专业的科技行业分析师。请分析以下科技新闻标题,识别主要技术趋势、热点领域和潜在机会。新闻标题列表:{content}请以JSON格式返回分析结果,包含以下字段:- "main_trends": 主要技术趋势(如AI大模型、量子计算、自动驾驶等)- "emerging_technologies": 新兴技术领域- "market_analysis": 市场动态分析- "risk_warnings": 潜在风险提示- "investment_opportunities": 投资机会建议- "summary": 总体摘要(200字内)请确保返回纯JSON格式,不要有其他文字。""" messages = [ { "role": "system", "content": "你是一名拥有10年经验的科技行业首席分析师,擅长从海量信息中提取关键洞察。" }, { "role": "user", "content": prompt } ] result = self.chat_completion(messages, temperature=0.8) print(result) if result["success"]: try: analysis = json.loads(result["content"]) analysis["api_usage"] = result.get("usage", {}) return analysis except json.JSONDecodeError: # JSON解析失败,返回文本格式 return { "success": True, "text_analysis": result["content"], "json_error": True } else: return result9 内容生成器
class ContentGenerator: def format_markdown(self) # Markdown格式化 def apply_template(self) # 模板应用 def save_output(self) # 文件保存10 主控制器
class MainAgent: def __init__(self): # 初始化组件 def run_pipeline(self): # 执行完整流程 def handle_errors(self): # 全局错误处理 def schedule_tasks(self): # 定时任务管理11工作流程
工作流程 = [ "1. 验证RSS源可用性", "2. 并行获取多个源数据", "3. 数据清洗和去重", "4. AI分析和摘要生成", "5. 报告模板渲染", "6. 输出文件保存", "7. 任务状态记录"]12 测试
13 部署与使用
14 扩展优化
开发哲学 = {
“单一职责”: “每个组件只做一件事”,
“开闭原则”: “对扩展开放,对修改关闭”,
“依赖倒置”: “依赖抽象而非具体实现”,
“接口隔离”: “专接口专用,不强迫依赖”
}
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。