今天,我想和你一起聊聊 Agent(智能体),从它的起源、特点,到关键的知识点,以及现实中的应用和实现原理。希望能帮助你更深入地了解这个既有趣又重要的领域。
前排提示,文末有大模型AGI-CSDN独家资料包哦!
你可能会问,Agent 到底是什么呢?简单来说,Agent 就是能够在一定环境中自主感知、决策和行动的实体。它可以是一个软件程序、一个机器人,甚至是一个复杂的系统。Agent 的核心在于 自主性,也就是能够自主完成特定的任务。
举个例子,我们日常使用的智能语音助手,比如 Siri、Alexa 或者小爱同学。当你对它说话时,它能理解你的意思,回答你的问题,甚至帮你完成一些操作。这些智能助手就是典型的 Agent,它们能够感知你的指令,进行处理,然后采取相应的行动。
那什么样的实体才能称为 Agent 呢?一般来说,Agent 具备以下几个基本属性:
自主性(Autonomy)
社会性(Social Ability)
反应性(Reactivity)
主动性(Pro-activeness)
这些属性使得 Agent 能够在复杂多变的环境中有效运作,完成传统程序难以处理的任务。
早期的探索
Agent 的概念并非最近才出现,它的历史可以追溯到计算机科学和人工智能的早期阶段。早在 1956 年,人工智能的概念刚刚诞生时,科学家们就开始幻想计算机能像人一样思考。这听起来有点疯狂,对吧?
概念的演变
进入 90 年代,互联网的快速发展为 Agent 技术带来了新的契机。多智能体系统(Multi-Agent Systems) 的概念开始流行,人们开始关注多个 Agent 之间如何协作完成复杂任务。这一时期,Agent 被应用于电子商务、网络管理、信息检索等领域。
随着人工智能和机器学习技术的进步,Agent 的能力得到了大幅提升。特别是近年来,深度学习和强化学习的发展,使得 Agent 具备了学习和适应的能力。比如,在自动驾驶领域,车辆需要实时感知环境,做出决策,并采取行动,这正是 Agent 技术的典型应用。
独立运行和决策的能力
首先,自主性 是 Agent 最核心的特点之一。所谓自主性,就是指 Agent 能够在不需要外部干预的情况下,自主地运行和做出决策。它们根据自身的感知和内部的策略,来判断应该采取什么行动。
举个生活中的例子,当你的智能空调根据室内温度自动调节到舒适的温度,这就是自主性的体现。它不需要你手动调节温度,而是根据环境变化自主运行。
自主性使得 Agent 能够在复杂多变的环境中独立工作,减少了对人类的依赖,提高了效率和可靠性。
与其他 Agent 或人类的交互
社会性 意味着 Agent 不仅能独立运行,还能与其他 Agent 或人类进行交互和协作。
比如,在多智能体系统(Multi-Agent Systems)中,多个 Agent 可以相互通信,共同完成复杂的任务。一个现实中的例子就是无人机编队表演。多架无人机需要相互协调,才能在空中完成各种复杂的队形变化和动作表演。
在我们的日常生活中,客服聊天机器人也是一个具有社会性的 Agent。它们能够理解我们的语言,与我们进行对话,解答疑问,甚至提供情感上的支持。
社会性使得 Agent 能够更好地适应人类社会,与人类协同工作,提供更智能、更人性化的服务。
对环境的感知和响应
反应性 指的是 Agent 能够感知环境的变化,并对其做出及时的响应。当你的导航软件根据实时路况为你重新规划路线时,这就是反应性的体现。或者在当前自动驾驶汽车为例,它需要实时监测道路状况、交通信号、行人和其他车辆的位置。一旦前方出现障碍物,它必须立即做出反应,采取制动或避让等措施。
主动性
主动性 则是指 Agent 不仅仅被动地响应环境,还能够主动采取行动,实现自身的目标。它们会根据内在的目标和规划,预先采取行动,而不只是等待外界的刺激。
比如,智能推荐系统会根据你的浏览历史,主动向你推荐你可能感兴趣的商品。它们不会等到你明确表达需求,而是提前预测你的喜好。
反应性和主动性的结合,使得 Agent 能够既及时应对环境变化,又能积极推进目标的实现,在复杂的环境中表现出色。
学习和适应新环境的能力
适应性 使得 Agent 能够通过学习和经验积累,不断优化自身的行为和决策,以适应新的环境和任务需求。就像是在教一只小狗,通过奖励和惩罚让它学会新的技能。
例如、前段时间OpenAI推出的ChatGPT O1 就是使用了 强化学习 方法,来训练o1模型对于外界的适应能力。在训练过程中,模型通过大量的人类反馈,不断改进自身的表现,以提供更准确、有用和符合人类期望的回复。这使得 ChatGPT O1 能够理解各种不同的提问方式,适应不同的上下文和用户需求,提供高质量的回答,甚至适应不同的语言和文化背景。
Agent 是如何工作的?
多个 Agent 的协同工作机制
多智能体系统(Multi-Agent Systems, MAS)是由多个相互协作的 Agent 组成的系统。想象一下蜂群或蚁群,每只蜜蜂或蚂蚁都是一个独立的个体,但它们通过协作,能够完成单个个体无法完成的任务。
在 MAS 中,每个 Agent 都有自己的目标和能力,但它们需要通过 通信协议 和 协作策略,来共享信息、分配任务、协调行动。这样,整个系统就能高效地完成任务,甚至在某些 Agent 出现故障时,仍能保持系统的稳定性和可靠性。
现在已经有很多人通过多个 Agent 协同工作的方式在现代工作场景中得到了更实际的应用。例如,通过工具平台 Coze 、 飞书 和 AI 虚拟员的结合,应用于日常信息处理中。不同的 AI Agent 分别负责如信息总结、产品调研等具体任务,这些 Agent 之间通过共享信息和协同合作,极大提高了团队的工作效率,尤其在知识管理和信息共享方面。
学习策略的优化过程
强化学习(Reinforcement Learning, RL)是机器学习中的一个重要分支,它在 Agent 技术中起着关键的作用。强化学习的核心思想是让 Agent 通过与环境的交互,不断尝试和学习,以找到最佳的策略来实现目标。
就像是在教一只小狗,通过奖励(小零食)和惩罚(严厉的语气),让它学会坐下、握手等技能。
Agent 如何理解和处理信息
要让 Agent 具备智能,它必须能够表示和处理知识。这就涉及到知识表示和推理的问题。
知识表示是指如何以一种计算机可以理解和处理的形式,来表达现实世界中的信息。推理则是指 Agent 基于已有的知识,通过逻辑推导,得出新的结论或决策。
实现目标的路径和方法选择
Agent 在执行任务时,通常需要制定一系列的行动计划,以最有效的方式实现目标。这需要考虑各种约束条件,如时间、资源、环境变化等。
在了解了 Agent 的基本概念和特点之后,或许你已经迫不及待地想要尝试自己动手实现一个 Agent。那么,如何才能快速地创建一个属于自己的 Agent 呢?幸运的是,如今已经有许多工具和平台可以帮助我们轻松实现这一目标。接下来,我将为你介绍几款热门的 AI Agent 搭建工具,让你无需从零开始,快速上手。
Coze 是一款既适合普通用户,又适合专业开发者的 AI Agent 平台。它的亮点在于提供了无限免费的 GPT-4 调用,非常适合对成本敏感的用户。
特点:
低编程门槛:无需复杂的编程,或者只需少量代码,就能创建 Agent。
知识库(Knowledge)和工作流程(Workflow)功能:可以链接信息源,实现工作流程的自动化。
语音交互:支持多种语言和音色的语音交互,增强了 Agent 的可用性。
我的体验:
我用 Coze 创建了一个简单的金融客服机器人,过程非常顺利。尤其是它的知识库功能,能够让 Agent 具备特定领域的知识,非常实用。
如果你是专业开发者,或者希望构建一个完整的 AI 应用,那么 Dify.AI 值得关注。它提供了从开发到部署的一站式解决方案,支持多种主流的大语言模型。
特点:
多模型支持:兼容 GPT、Claude、文心、百川、通义等多家 AI 模型,支持本地模型部署解决了隐私问题。
快速构建和部署:开源且提供了丰富的开发工具,加速应用的上线。
适合团队协作:支持多人协作开发,适合小型创业团队。
我的体验:
我尝试用 Dify.AI 创建了一个简单的金融客服机器人,整个过程非常顺畅。和Coze类似,基本上你会了Coze也就会适用它了。它提供的工具和文档都很完善,减少了很多繁琐的配置工作。
最关键的是它开源免费、支持本地模型 数据更可控。
以上两款都是低代码的平台,那也可以通过代码自己开发 Agent 或 Multi Agent。
例如:
Ollama(等本地部署大模型) + Agent
vllm(等本地部署大模型) + Agent
百度千帆(等云部署大模型) + Agent
Agent开发也有很多开发框架,例如:
CrewAI: https://www.crewai.com/
MetaGPT:https://docs.deepwisdom.ai/main/zh/
autoGPT:https://agpt.co/
CAMEL:https://www.camel-ai.org/
除了以上框架,我们还可以手撸一个。
为了更直观地理解 Agent 的工作方式,我手撸了一个简单的多 Agent 系统,模拟财经短视频脚本的自动生成流程。
信息抓取 Agent:从互联网上抓取当日财经热点信息。
编辑 Agent:根据抓取的热点信息,撰写短视频脚本稿件。
审稿 Agent:审核稿件内容,确保其符合中国的国情和合规性要求。
总编 Agent:整合审核通过的稿件,生成最终的短视频脚本。
信息抓取:信息抓取 Agent 从财经网站获取热点新闻标题。
撰写稿件:编辑 Agent 根据标题,撰写一段生动有趣的稿件。
合规审核:审稿 Agent 对稿件进行敏感词过滤,确保内容合规。
最终生成:总编 Agent 整合稿件,生成标准格式的脚本。
整个项目采用模块化的代码组织方式,主要包含以下部分:
app``├── main.py 主程序:项目的入口文件,负责协调和管理各个 Agent 的工作流程。``├── agents Agent 代码目录。存放各个 Agent 的实现代码,每个 Agent 执行特定的任务。``│ ├── info_crawler_agent.py 信息抓取 Agent,用于从指定来源获取信息。``│ ├── editor_agent.py 编辑 Agent,负责对信息进行编辑和润色。``│ ├── reviewer_agent.py 审稿 Agent,负责审查编辑后的内容,确保质量。``│ └── chief_editor_agent.py 总编 Agent,最终审核并确认内容的发布。``└── prompts Prompt 文件目录。存放各个 Agent 使用的Prompts,便于统一管理和修改。` `├── info_crawler_prompt.txt 信息抓取 Agent 使用的提示语。` `├── editor_prompt.txt 编辑 Agent 使用的提示语。` `├── reviewer_prompt.txt 审稿 Agent 使用的提示语。` `└── chief_editor_prompt.txt 总编 Agent 使用的提示语。
通过以上结构,我们能够清晰地组织代码,便于后续的维护和功能扩展。
功能描述:从指定的财经网站抓取当日的热点信息。
文件路径: prompts/info_crawler_prompt.txt
你是信息抓取 Agent,请按照以下步骤完成任务:`` ``1. **思考数据源**:选择3-5个可信的财经新闻网站作为数据来源。例如:` `- 新浪财经:https://finance.sina.com.cn/` `- 腾讯财经:https://finance.qq.com/` `- 网易财经:https://money.163.com/` `- 凤凰财经:https://finance.ifeng.com/` `- 和讯网:https://www.hexun.com/`` ``2. **获取数据**:从每个网站获取当日最新的财经热点新闻标题和摘要。`` ``3. **数据处理**:` `- 去除重复的新闻条目,确保每条新闻都是独一无二的。` `- 筛选出与财经主题高度相关的新闻,排除无关内容。` `- 根据热度或重要性对新闻进行排序,确保最有价值的内容排在前面。`` ``4. **输出**:将整理后的新闻列表提供给下一步的编辑 Agent。`` ``请确保获取的信息准确、及时、可靠。
文件路径:agents/info_crawler_agent.py
# agents/info_crawler_agent.py`` ``import openai``import os``import logging``import requests``from bs4 import BeautifulSoup``from urllib.parse import urlparse`` ``class InfoCrawlerAgent:` `def __init__(self):` `openai.api_key = os.getenv("OPENAI_API_KEY")` `self.hot_topics = []` `self.sources = []` `# 配置日志` `logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')`` ` `def generate_thought_process(self):` `"""` `使用 Prompt 模拟 CoT 思维过程,选择数据源。` `"""` `logging.info("开始思考数据源")` `with open('prompts/info_crawler_prompt.txt', 'r', encoding='utf-8') as f:` `prompt = f.read()`` ` `response = openai.Completion.create(` `engine="text-davinci-003",` `prompt=prompt,` `max_tokens=500,` `temperature=0.5,` `top_p=1,` `n=1,` `stop=None` `)`` ` `thought_process = response.choices[0].text.strip()` `logging.info(f"思维过程:\n{thought_process}")`` ` `# 从思维过程提取数据源` `self.sources = self.extract_sources_from_thought(thought_process)`` ` `def extract_sources_from_thought(self, thought_process):` `"""` `从思维过程文本中提取数据源 URL。` `"""` `sources = []` `lines = thought_process.split('\n')` `for line in lines:` `if 'http' in line:` `# 简单解析,实际应用中需更健壮的解析方法` `parts = line.split(':')` `if len(parts) >= 2:` `name = parts[0].strip('- ').strip()` `url = parts[1].strip()` `sources.append({'name': name, 'url': url})` `return sources`` ` `def fetch_hot_topics(self):` `"""` `执行完整的信息抓取流程,结合 CoT 思维步骤。` `"""` `# 1. 思考数据源` `self.generate_thought_process()`` ` `all_topics = []`` ` `# 2. 获取数据` `logging.info("开始获取数据")` `for source in self.sources:` `try:` `logging.info(f"从 {source['name']} 获取数据")` `topics = self.get_data_from_source(source)` `all_topics.extend(topics)` `except Exception as e:` `logging.error(f"从 {source['name']} 获取数据失败: {e}")`` ` `# 3. 数据处理` `logging.info("开始数据处理")` `self.hot_topics = self.process_data(all_topics)`` ` `# 4. 输出结果` `logging.info("信息抓取完成")` `return self.hot_topics`` ` `def get_data_from_source(self, source):` `"""` `从单个数据源获取数据。` `"""` `response = requests.get(source['url'], timeout=10)` `if response.status_code == 200:` `topics = self.parse_source(response.content, source)` `return topics` `else:` `raise Exception(f"请求失败,状态码:{response.status_code}")`` ` `def parse_source(self, html_content, source):` `"""` `解析不同来源的数据。` `"""` `soup = BeautifulSoup(html_content, 'html.parser')` `topics = []` `domain = urlparse(source['url']).netloc`` ` `if 'sina.com.cn' in domain:` `# 解析新浪财经` `news_list = soup.find_all('a', {'target': '_blank'})` `for news in news_list:` `title = news.get_text().strip()` `link = news['href']` `topics.append({'title': title, 'link': link})` `elif 'qq.com' in domain:` `# 解析腾讯财经(示例,需根据实际页面结构调整)` `news_list = soup.find_all('a', {'class': 'linkto'})` `for news in news_list:` `title = news.get_text().strip()` `link = news['href']` `topics.append({'title': title, 'link': link})` `else:` `# 其他来源的解析(可扩展)` `pass`` ` `return topics`` ` `def process_data(self, topics):` `"""` `数据处理:去重、筛选、排序。` `"""` `# 去重` `unique_topics = {topic['title']: topic for topic in topics}.values()`` ` `# 筛选与财经主题高度相关的新闻` `filtered_topics = [topic for topic in unique_topics if self.is_relevant(topic['title'])]`` ` `# 排序(根据标题长度模拟热度排序,可根据实际需求调整)` `sorted_topics = sorted(filtered_topics, key=lambda x: len(x['title']), reverse=True)`` ` `# 取前5条热点` `return sorted_topics[:5]`` ` `def is_relevant(self, title):` `"""` `判断新闻标题是否与财经主题高度相关。` `"""` `# 简单的关键词匹配,实际应用中可使用 NLP 技术` `keywords = ['财经', '经济', '股票', '基金', '央行', '货币', '金融', '市场', '投资', '债券']` `return any(keyword in title for keyword in keywords)
功能描述:根据热点信息,撰写短视频脚本稿件。
文件路径: prompts/editor_prompt.txt
你是编辑 Agent,请按照以下步骤完成任务:`` ``1. **阅读并思考**:仔细阅读以下热点新闻标题,思考其背后的意义和受众兴趣。` `标题:《{title}》`` ``2. **选题确定**:确定以该标题为主题,考虑其独特性和重要性。`` ``3. **撰写稿件**:` `- **开头**:用引人入胜的方式引入主题,吸引观众注意。` `- **主体**:详细阐述新闻内容,加入背景信息、数据和实例,增强说服力。` `- **结尾**:总结观点,引发观众思考或行动。`` ``4. **创意表达**:运用幽默、比喻等修辞手法,使稿件更生动有趣。`` ``5. **自我检查**:` `- **内容**:确保信息准确、无误导。` `- **语言**:检查语法、拼写和标点,确保语言流畅。` `- **逻辑**:确保稿件结构清晰,逻辑严谨。`` ``请撰写一篇既有深度又有趣味的短视频脚本稿件,字数在500字以内。
文件路径:agents/editor_agent.py
# agents/editor_agent.py`` ``import openai``import os``import logging`` ``class EditorAgent:` `def __init__(self):` `openai.api_key = os.getenv("OPENAI_API_KEY")` `# 配置日志` `logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')`` ` `def write_script(self, hot_topic):` `"""` `执行稿件撰写的完整流程` `"""` `logging.info(f"开始撰写稿件:《{hot_topic['title']}》")`` ` `# 1. 阅读并思考` `logging.info("阅读并思考热点内容")` `# 由于只有标题,此处模拟思考过程` `thought_process = f"考虑标题《{hot_topic['title']}》,思考其背后的意义和受众兴趣。"`` ` `# 2. 选题确定` `logging.info("确定选题")` `selected_topic = hot_topic['title']`` ` `# 3. 撰写稿件` `logging.info("撰写稿件")` `script = self.generate_script(selected_topic)`` ` `# 4. 自我检查` `logging.info("自我检查稿件")` `checked_script = self.self_check(script)`` ` `return checked_script`` ` `def generate_script(self, topic_title):` `"""` `使用 OpenAI 的 GPT-3 生成稿件` `"""` `with open('prompts/editor_prompt.txt', 'r', encoding='utf-8') as f:` `prompt_template = f.read()`` ` `prompt = prompt_template.format(title=topic_title)`` ` `response = openai.Completion.create(` `engine="text-davinci-003",` `prompt=prompt,` `max_tokens=500,` `temperature=0.7,` `top_p=1,` `n=1,` `stop=None` `)`` ` `script = response.choices[0].text.strip()` `return script`` ` `def self_check(self, script):` `"""` `对稿件进行自我检查和修改` `"""` `# 此处可以添加语法检查、逻辑性检查等功能` `# 为简化示例,假设自我检查通过,不做修改` `return script
功能描述:审核稿件内容,确保其符合中国的国情和合规性要求。
文件路径:prompts/reviewer_prompt.txt
你是审稿 Agent,请按照以下步骤完成任务:`` ``1. **全面阅读**:通读以下稿件,理解内容和主旨。`` ``稿件内容:``{script}`` ``2. **合规性检查**:`` ``- 评估稿件内容是否符合中国的法律法规、政策和社会道德标准。`` ``3. **内容审核**:`` ``- **事实核实**:判断稿件中的数据、引用和事实陈述是否准确、真实。`` ``- **逻辑性**:检查稿件的论证是否合理,是否存在逻辑漏洞。`` ``4. **价值导向**:确保稿件传递积极、正面的信息,符合主流价值观。`` ``5. **提供反馈**:`` ``- 如果存在问题,详细列出需要修改的部分,并提供具体的修改建议。`` ``- 如果稿件合格,确认审核通过,并给予肯定反馈。`` ``请在反馈中明确指出问题所在,并提供可操作的修改建议。
文件路径:reviewer_banned_words.txt
赌博``暴力``色情``政治敏感词
文件路径:agents/reviewer_agent.py
# agents/reviewer_agent.py`` ``import openai``import os``import logging``import re`` ``class ReviewerAgent:` `def __init__(self):` `openai.api_key = os.getenv("OPENAI_API_KEY")` `# 从文件中读取敏感词列表` `with open('prompts/reviewer_banned_words.txt', 'r', encoding='utf-8') as f:` `self.banned_words = [line.strip() for line in f.readlines() if line.strip()]` `# 编译敏感词的正则表达式模式` `self.patterns = [re.compile(re.escape(word), re.IGNORECASE) for word in self.banned_words]` `# 配置日志` `logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')`` ` `def review_script(self, script):` `logging.info("开始审稿")`` ` `# 1. 使用 LLM 进行审核` `llm_approved, llm_feedback = self.llm_review(script)`` ` `# 2. 使用检查工具进行敏感词过滤` `compliance_result, compliance_feedback = self.check_compliance(script)`` ` `# 3. 综合审核结果` `if llm_approved and compliance_result:` `final_result = True` `feedback = "稿件审核通过。"` `else:` `final_result = False` `feedback = "稿件未通过审核。\n"` `if not llm_approved:` `feedback += "LLM 审核结果:\n" + llm_feedback + "\n"` `if not compliance_result:` `feedback += "敏感词检测结果:\n" + compliance_feedback`` ` `return final_result, feedback`` ` `def llm_review(self, script):` `"""` `使用 LLM 对稿件进行审核` `"""` `with open('prompts/reviewer_prompt.txt', 'r', encoding='utf-8') as f:` `prompt_template = f.read()`` ` `prompt = prompt_template.format(script=script)`` ` `try:` `response = openai.Completion.create(` `engine="gpt-3.5-turbo",` `prompt=prompt,` `max_tokens=500,` `temperature=0,` `top_p=1,` `n=1,` `stop=None` `)`` ` `review_feedback = response.choices[0].text.strip()`` ` `# 判断审核结果` `if "审核通过" in review_feedback:` `return True, review_feedback` `else:` `return False, review_feedback`` ` `except Exception as e:` `logging.error(f"LLM 审核发生错误:{e}")` `return False, "LLM 审核失败,请稍后重试。"`` ` `def check_compliance(self, script):` `"""` `使用敏感词列表对稿件进行合规性检查` `"""` `issues = []` `for pattern in self.patterns:` `matches = pattern.findall(script)` `if matches:` `issues.extend(matches)`` ` `if issues:` `unique_issues = set(issues)` `feedback = f"稿件包含不合规内容:{', '.join(unique_issues)}。"` `return False, feedback` `else:` `return True, "未发现敏感词。"
功能描述:整合审核通过的稿件,生成最终的短视频脚本。
文件路径:prompts/chief_editor_prompt.txt
你是总编 Agent,请按照以下步骤完成任务:`` ``1. **阅读稿件**:仔细阅读以下稿件,全面理解内容。` `稿件内容:` `{script}`` ``2. **格式调整**:` `- 按照短视频脚本的标准格式,调整段落、对白和场景描述。` `- 确保稿件结构清晰,便于制作团队理解和使用。`` ``3. **内容优化**:` `- **语言润色**:精炼语言,使表达更加精准、有力。` `- **突出重点**:强化稿件的核心信息和亮点,确保观众能抓住关键点。`` ``4. **全面校对**:` `- 检查是否有遗漏的细节或需要补充的信息。` `- 确保稿件无任何语法、标点或格式错误。`` ``5. **最终确认**:` `- 确认稿件已达到最高质量标准。`` ``请将优化后的最终稿件输出。
文件路径:agents/chief_editor_agent.py
# agents/chief_editor_agent.py`` ``import openai``import os``import logging`` ``class ChiefEditorAgent:` `def __init__(self):` `self.final_scripts = []` `openai.api_key = os.getenv("OPENAI_API_KEY")` `# 配置日志` `logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')`` ` `def compile_script(self, script):` `logging.info("开始总编流程")`` ` `# 1. 阅读稿件` `logging.info("阅读稿件")` `# 此处可添加对稿件的理解和分析`` ` `# 2. 格式调整` `logging.info("调整稿件格式")` `formatted_script = self.format_script(script)`` ` `# 3. 内容优化` `logging.info("优化稿件内容")` `optimized_script = self.optimize_script(formatted_script)`` ` `# 4. 全面校对` `logging.info("进行全面校对")` `final_script = self.proofread_script(optimized_script)`` ` `# 5. 最终确认` `logging.info("最终确认稿件")` `self.final_scripts.append(final_script)`` ` `return final_script`` ` `def format_script(self, script):` `"""` `调整稿件格式,符合短视频脚本的标准` `"""` `# 简单示例,实际应用中可根据具体格式要求调整` `formatted_script = script.strip()` `return formatted_script`` ` `def optimize_script(self, script):` `"""` `优化稿件内容,进行语言润色和重点突出` `"""` `with open('prompts/chief_editor_prompt.txt', 'r', encoding='utf-8') as f:` `prompt_template = f.read()`` ` `prompt = prompt_template.format(script=script)`` ` `response = openai.Completion.create(` `engine="text-davinci-003",` `prompt=prompt,` `max_tokens=500,` `temperature=0.5,` `top_p=1,` `n=1,` `stop=None` `)`` ` `optimized_script = response.choices[0].text.strip()` `return optimized_script`` ` `def proofread_script(self, script):` `"""` `对稿件进行最终校对` `"""` `# 此处可以添加拼写检查、语法检查等功能` `# 为简化示例,假设校对通过` `return script
功能描述:协调各个 Agent,完成整个流程。
文件路径:main.py
# main.py`` ``from agents.info_crawler_agent import InfoCrawlerAgent``from agents.editor_agent import EditorAgent``from agents.reviewer_agent import ReviewerAgent``from agents.chief_editor_agent import ChiefEditorAgent``import logging`` ``def main():` `# 配置日志` `logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')`` ` `# 初始化各个 Agent` `crawler = InfoCrawlerAgent()` `editor = EditorAgent()` `reviewer = ReviewerAgent()` `chief_editor = ChiefEditorAgent()`` ` `# 信息抓取` `hot_topics = crawler.fetch_hot_topics()` `print("抓取到的热点信息:")` `for topic in hot_topics:` `print(f"- {topic['title']}")`` ` `# 处理每个热点` `for topic in hot_topics:` `print(f"\n正在处理热点:《{topic['title']}》")` `try:` `# 编辑撰稿` `script = editor.write_script(topic)` `# 审稿` `is_approved, review_message = reviewer.review_script(script)` `print(f"审稿结果:{review_message}")` `if is_approved:` `# 总编终审` `final_script = chief_editor.compile_script(script)` `print("最终稿件生成成功。")` `print("【最终稿件】\n")` `print(final_script)` `print("\n——稿件结束——")` `else:` `print("稿件未通过审核,已弃用。")` `except Exception as e:` `logging.error(f"处理热点《{topic['title']}》时发生错误:{e}")`` ``if __name__ == "__main__":` `main()
运行 main.py
,程序将依次输出抓取到的热点信息,并对每个热点生成稿件、进行审核和生成最终稿件。
示例输出:
2023-10-21 12:00:00,000 - INFO - 开始思考数据源``2023-10-21 12:00:01,000 - INFO - 思维过程:``1. 选择数据源:` `- 新浪财经:https://finance.sina.com.cn/` `- 腾讯财经:https://finance.qq.com/` `- 网易财经:https://money.163.com/``2023-10-21 12:00:01,500 - INFO - 开始获取数据``2023-10-21 12:00:02,000 - INFO - 从 新浪财经 获取数据``2023-10-21 12:00:03,000 - INFO - 从 腾讯财经 获取数据``2023-10-21 12:00:04,000 - INFO - 从 网易财经 获取数据``2023-10-21 12:00:05,000 - INFO - 开始数据处理``2023-10-21 12:00:05,500 - INFO - 信息抓取完成``抓取到的热点信息:``- 全球股市迎来普涨行情,投资者信心回暖``- 某科技公司发布新一代智能手机,股价大涨``- 国际油价持续下跌,能源板块承压``- 央行宣布下调存款准备金率,释放流动性``- 人民币汇率创近期新高,外贸企业受益`` ``正在处理热点:《全球股市迎来普涨行情,投资者信心回暖》``2023-10-21 12:00:06,000 - INFO - 开始撰写稿件:《全球股市迎来普涨行情,投资者信心回暖》``2023-10-21 12:00:06,500 - INFO - 阅读并思考热点内容``2023-10-21 12:00:07,000 - INFO - 确定选题``2023-10-21 12:00:07,500 - INFO - 撰写稿件``2023-10-21 12:00:09,000 - INFO - 自我检查稿件``2023-10-21 12:00:09,500 - INFO - 开始审稿``2023-10-21 12:00:10,000 - INFO - 开始审稿``2023-10-21 12:00:10,500 - INFO - 审稿结果:稿件审核通过。``审稿结果:稿件审核通过。``2023-10-21 12:00:11,000 - INFO - 开始总编流程``2023-10-21 12:00:11,500 - INFO - 阅读稿件``2023-10-21 12:00:12,000 - INFO - 调整稿件格式``2023-10-21 12:00:12,500 - INFO - 优化稿件内容``2023-10-21 12:00:14,000 - INFO - 进行全面校对``2023-10-21 12:00:14,500 - INFO - 最终确认稿件``最终稿件生成成功。``【最终稿件】`` ``大家好,欢迎收看今天的财经速递!全球股市近日迎来普涨行情,投资者信心明显回暖。究竟是什么原因促成了这一趋势呢?`` ``首先,主要经济体发布了积极的经济数据,显示全球经济复苏势头强劲。这为市场注入了强心剂,投资者情绪高涨。`` ``其次,国际贸易关系出现缓和迹象,各国间合作意愿增强,降低了市场的不确定性风险。`` ``最后,各国央行的宽松货币政策持续推进,流动性充裕,资金大量涌入股市,推动股指上扬。`` ``对于投资者来说,现在是关注优质资产配置的好时机。但也要谨慎行事,注意风险管理。`` ``感谢收看,我们下期再见!`` ``——稿件结束——`` ``正在处理热点:《某科技公司发布新一代智能手机,股价大涨》``2023-10-21 12:00:15,000 - INFO - 开始撰写稿件:《某科技公司发布新一代智能手机,股价大涨》``2023-10-21 12:00:15,500 - INFO - 阅读并思考热点内容``2023-10-21 12:00:16,000 - INFO - 确定选题``2023-10-21 12:00:16,500 - INFO - 撰写稿件``2023-10-21 12:00:18,000 - INFO - 自我检查稿件``2023-10-21 12:00:18,500 - INFO - 开始审稿``2023-10-21 12:00:19,000 - INFO - 开始审稿``2023-10-21 12:00:19,500 - INFO - 审稿结果:稿件审核通过。``审稿结果:稿件审核通过。``2023-10-21 12:00:20,000 - INFO - 开始总编流程``2023-10-21 12:00:20,500 - INFO - 阅读稿件``2023-10-21 12:00:21,000 - INFO - 调整稿件格式``2023-10-21 12:00:21,500 - INFO - 优化稿件内容``2023-10-21 12:00:23,000 - INFO - 进行全面校对``2023-10-21 12:00:23,500 - INFO - 最终确认稿件``最终稿件生成成功。``【最终稿件】`` ``大家好!今天要为大家带来一条科技圈的重磅消息。某知名科技公司刚刚发布了新一代智能手机,引发市场强烈关注。受此利好消息影响,该公司股价应声大涨,创下历史新高。`` ``这款新手机有哪些亮点呢?据悉,它搭载了最新的处理器,性能大幅提升;摄像头功能也有突破性的改进,拍照效果更加出色。此外,电池续航和充电速度也得到了优化。`` ``业内人士表示,这款产品的发布,不仅巩固了该公司在智能手机市场的地位,还为整个行业带来了新的发展方向。`` ``您对这款新手机有什么期待呢?欢迎在评论区留言,分享您的看法!`` ``——稿件结束——`` ``...`` ``(后续热点处理过程类似,省略)`` ``
模块化设计:将整个流程拆分为不同的 Agent,每个 Agent 负责特定的功能,符合单一职责原则,方便维护和扩展。
Prompt 管理:将各个 Agent 的提示语(Prompt)单独存放,便于统一管理和修改,提高代码的可读性和灵活性。
多 Agent 协作:各个 Agent 通过方法调用和数据传递进行协作,模拟了现实中的工作流程。
合规性检查:通过敏感词过滤,模拟审稿环节中的合规性审核。
经过以上的探讨,我们一起深入了解了 Agent 的起源、特点、关键知识点、现实应用以及实现原理,也手搓了一个Demo,想必大家对于 Agent 是有一定的认知了。那 Agent 技术作为人工智能领域的重要组成部分,正日益影响着你我的生活和工作。
展望未来,Agent 技术将继续朝着更加智能化、自主化和协作化的方向发展。随着深度学习、强化学习等技术的不断进步,Agent 将具备更强的学习和适应能力,能够处理更加复杂的任务。
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】