怎么构建Agent?Agent教程入门到精通,收藏这一篇就够了

Agent指令编排 博客一开始提出了一个具体的问题:“原告是安利股份的案件审理法院是哪家法院?这个问题涉及多个数据源和处理步骤,如何将其转化为大模型可以执行的指令序列(Routine)是关键。 阅读详情

有句非洲谚语很有名:一个人可以走得很快,一群人才能走得更远。

还有句话是:没有人能在所有领域都成为专家,我觉得这两句话说的是一个道理。团队合作,分工明确,大家齐心协力,各尽其职才能把事情做好。

同样的道理,用在 LLM 上也很合适。我们没必要让一个 LLM 去搞定所有复杂的任务。我们可以把不同的 LLM 或者 AI Agent 组合起来,让每个 Agent 都专注于它最擅长的领域。这样,大家各司其职,效率和效果都会更好。

这种方式可以构建出一个更加健壮的系统,生产出来的东西质量也更高,结果也更可靠。

#01

系统整体工作流程

在进入编码部分之前,我们先对本文构建的系统的主要组件有一个清晰的理解。

自主 AI Agent 工作流程

这个工作流程包含四个 Agent,每个 Agent 都有专门的技能。

  • 首先,用户的请求被提交到系统。

  • Agent 1 或视频分析器在互联网上进行深入的研究,使用 YouTube 频道搜索等外部工具查找与用户请求相关的信息。该 Agent 的结果会发送给下一个 Agent 进行进一步处理。

  • Agent 2 或博客文章撰写者利用前一个 Agent 的结果撰写一篇全面的博客文章。

  • 类似地,Agent 3 和 Agent 4 分别创建吸引人的 LinkedIn 帖子和推文。

  • Agent2、Agent3 和 Agent 4 的回应会分别保存到不同的 Markdown 文件中,供最终用户使用。

#02

为什么我们要关注 AI Agent 而不是单个 LLM?

我们都知道这儿的任务是指一个整体任务,意味着 LLM 被要求完成一个单一的目标,即数据提取。

这种方法在处理更复杂、多步骤的任务时的局限性变得很明显。下面列举了其中的一些局限性:

  • 任务执行的灵活性

  • 单个提示的 LLM 需要为每个任务仔细编写提示词,当任务需求发生变化时,更新这些提示可能会变得麻烦。

  • AI Agent 将这些复杂性分解为子任务,能够适应任务变化,而不需要在提示词工程上投入大量精力。

  • 任务的连续性和上下文保留

  • 单个提示的 LLM 可能会丢失之前互动中的重要上下文。这是因为它们主要在单个对话回合的限制内运行。

  • AI Agent 则具备在不同互动之间保持上下文的能力,每个 Agent 可以参考前一个 Agent 的响应来完成它们预期的任务。

  • 专业化和互动

  • 单个提示的 LLM 可能在经过大量微调后具备专业领域的知识,但这可能既耗时又昂贵。

  • 另一方面,AI Agent 可以设计为由多个专门模型组成的团队,每个模型专注于一个特定任务,例如研究者、博客撰写者、社交媒体专家。

  • 互联网访问

  • 单个 LLM 依赖于预定义的知识库,这不可能总是最新的,导致产生幻觉或信息访问有限。

  • AI Agent 则可以访问互联网,使它们能够提供更为实时的信息,从而做出更好的决策。

#03

构建内容创建工作流程

在本节中,我们将探讨如何利用智能体工作流程来创建一个系统,该系统在对用户主题进行深入研究后,撰写博客文章、LinkedIn 内容、Twitter 帖子。

代码结构如下图所示:

project  
   |  
   |---Multi_Agents_For_Content_Creation.ipynb  
   |  
  data  
   |  
   |---- blog-post.md  
   |---- linkedin-post.md  
   |---- tweet.md
  • project 文件夹是根文件夹,包含 data 文件夹和 notebook。

  • data 文件夹目前是空的,但在整个工作流程执行后应该包含以下三个 Markdown 文件:blog-post.md、linkedin-post.md 和 tweet.md。

  • 每个 Markdown 文件都包含相应 Agent 完成任务的结果。

#04

Agent 的创建及其角色与任务

现在我们已经探讨了每个 Agent 的角色,接下来我们看看如何实际创建它们,以及它们的角色和任务。

在此之前,让我们设置一些前提条件,以便更好地实现这些角色和任务。

前提条件

代码是在 Google Colab notebook 中运行的,我们的用例只需要两个库:openai 和 crewai[tools],可以通过以下方式安装它们。

%%bash    
pip -qqq install 'crewai[tools]'    
pip -qqq install youtube-transcript-api    
pip -qqq install yt_dlp

成功安装库后,下一步是导入以下必要的模块:

import os  
from crewai import Agent  
from google.colab import userdata  
from crewai import Crew, Process  
from crewai_tools import YoutubeChannelSearchTool  
from crewai import Task

每个 Agent 都利用了 OpenAI 的 GPT-4o 模型,我们需要通过以下方式设置访问模型的权限:

OPENAI_API_KEY = userdata.get('OPEN_AI_KEY')  
model_ID = userdata.get('GPT_MODEL')  
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY  
os.environ["OPENAI_MODEL_NAME"] = model_ID

环境变量及其值

  • 首先,我们使用内置的 userdata.get 函数从 Google Colab Secrets 中获取 OPEN_AI_KEY 和 GPT_MODEL。

  • 然后,我们使用 os.environ 函数设置 OPEN AI KEY 和 GPT-4o 模型。

  • 在完成上述两步后,使用该模型创建 Agent 应该不会有任何问题。

Agent 及其角色

通过 Agent 类,我们可以通过提供以下属性来创建一个 Agent:role,goal,backstory 和 memory。

只有 Agent 1 或 Video Analyzer 具有额外的属性:tools 和 allow_delegation。

大多数属性是自解释的,但我们还是来了解它们的具体含义。

  • role 类似于职位名称,定义了 Agent 的具体角色。例如,Agent 1 的角色是主题研究员。

  • goal 告诉 Agent 其角色的具体目标。

  • backstory 进一步详细说明了 Agent 的角色,使其更加具体。

  • memory 属性是一个布尔值。设置为 True 时,允许 Agent 记住、推理并从过去的互动中学习。

  • tools 是 Agent 执行任务时使用的工具列表。

  • allow_delegation 是一个布尔值,表示 Agent 的结果是否必须交给其他 Agent 进一步处理。

现在,让我们开始创建所有 Agent。

但是,在此之前,我们设置需要由第一个 Agent 使用的工具,以探索我的个人 YouTube 频道。

这是通过提供句柄 @techwithzoum 的 YouTubeChannelSearchTool 类实现的。

# The tool used by the topic researcher  
youtube_tool = YoutubeChannelSearchTool(youtube_channel_handle='@techwithzoum')

1、Agent1 — 主题研究员

topic_researcher = Agent(  
    role='Topic Researcher',  
    goal='Search for relevant videos on the topic {topic} from the provided YouTube channel',  
    verbose=True,  
    memory=True,  
    backstory='Expert in finding and analyzing relevant content from YouTube channels, specializing in AI, Data Science, Machine Learning, and Generative AI topics.',  
    tools=[youtube_tool],  
    allow_delegation=True  
)
  • 我们首先将该 Agent 的角色定义为 Topic Researcher。

  • 然后,我们要求 Agent 使用提供的 {topic} 查找提到该主题的相关视频。

  • 最后,我们将第一个 Agent 定义为使用 YouTube 搜索工具查找和分析关于 AI、数据科学、机器学习和生成式 AI 主题的相关内容的专家。

在当前 Agent 定义中,后续 Agent 的定义与此相似,只是属性值有所不同。一旦理解了这一点,后续 Agent 的定义就不再需要解释。

2、Agent 2 — 博客撰写者

blog_writer = Agent(  
    role='Blog Writer',  
    goal='Write a comprehensive blog post from the transcription provided by the Topic Researcher, covering all necessary sections',  
    verbose=True,  
    memory=True,  
    backstory='Experienced in creating in-depth, well-structured blog posts that explain technical concepts clearly and engage readers from introduction to conclusion.',  
    allow_delegation=False  
)

3、Agent 3 — LinkedIn 帖子创建者

# LinkedIn Post Agent  
linkedin_post_agent = Agent(  
    role='LinkedIn Post Creator',  
    goal='Create a concise LinkedIn post summary from the transcription provided by the Topic Researcher.',  
    verbose=True,  
    memory=True,  
    backstory='Expert in crafting engaging LinkedIn posts that summarize complex topics and include trending hashtags for maximum visibility.',  
    allow_delegation=False  
)

4、智能体 4 — Twitter 帖子创建者

twitter_agent = Agent(  
    role='Twitter Content Creator',  
    goal='Create a short tweet from the transcription provided by the Topic Researcher that capture key points and insights',  
    verbose=True,  
    memory=True,  
    backstory='Specializes in distilling complex information into concise, impactful tweets that resonate with a tech-savvy audience.',  
    allow_delegation=False  
)  

我们注意到最后三个智能体都不再委托任务,这是因为它们的结果不需要被其他 Agent 处理。

完美!现在我们的 Agent 已经准备好了解对它们的期望了,这是通过 Task 类来实现的。

任务

人类在接到任务指示后会执行任务来交付结果。

同样,Agent 也需要执行任务并交付结果,所需的属性如下:

  • description 对应需要 Agent 执行的任务的明确描述。描述越清晰,模型的输出就越好。

  • expected_output 是对 Agent 预期结果的文本描述。

  • agent 是执行特定任务的 Agent 占位符。

  • tools 类似于角色定义部分,并非每个 Agent 都使用工具。在我们的用例中,只有主题研究员使用了工具。

  • output_file 是文件名及其格式。仅对需要将任务结果保存为文件的 Agent 指定,例如 Markdown 文件,博客撰写者的文件名可以是 blog-post。md。

接下来,我们来看这些任务的 Python 实现。

1、Agent 1 — 主题研究员

research_task = Task(  
    description="Identify and analyze videos on the topic {topic} from the specified YouTube channel.",  
    expected_output="A complete word by word report on the most relevant video found on the topic {topic}.",  
    agent=topic_researcher,  
    tools=[youtube_tool]  
)

2、Agent 2 — 博客撰写者

blog_writing_task = Task(  
    description=""" Write a comprehensive blog post based on the transcription provided by the Topic Researcher.  
                    The article must include an introduction , step-by-step guides, and conclusion.  
                    The overall content must be about 1200 words long.""",  
    expected_output="A markdown-formatted of the blog",  
    agent=blog_writer,  
    output_file='./data/blog-post.md'  
)

3、Agent 3 — LinkedIn 帖子创建者

linkedin_post_task = Task(  
    description="Create a LinkedIn post summarizing the key points from the transcription provided by the Topic Researcher, including relevant hashtags.",  
    expected_output="A markdown-formatted of the LinkedIn post",  
    agent=linkedin_post_agent,  
    output_file='./data/linkedin-post.md'  
)

4、Agent 4 — Twitter 帖子创建者

twitter_task = Task(  
    description="Create a tweet from the transcription provided by the Topic Researcher, including relevant hastags.",  
    expected_output="A markdown-formatted of the Twitter post",  
    agent=twitter_agent,  
    output_file='./data/tweets.md'  
)

对于每个 Agent,属性都是自解释的,其结果为:

  • 第一个 Agent 生成的结果是供后三个 Agent 使用的原始文本数据。

  • 第二个 Agent 的结果是一个名为 blog-post.md 的 Markdown 文件。

  • 第三个 Agent 的结果是一个名为 linkedin-post.md 的 Markdown 文件。

  • 最后一个 Agent 的结果也是一个名为 tweets.md 的 Markdown 文件。

#05

让 Agent 开始工作

最后,我们协调 Agent 团队,按照如下方式执行任务:

my_crew = Crew(  
    agents=[topic_researcher, linkedin_post_agent, twitter_agent, blog_writer],  
    tasks=[research_task, linkedin_post_task, twitter_task, blog_writing_task],  
    verbose=True,  
    process=Process.sequential,  
    memory=True,  
    cache=True,  
    max_rpm=100,  
    share_crew=True  
)
  • agents 对应于我们所有 Agent 的列表。

  • tasks 是每个 Agent 需要执行的任务列表。

  • 我们将 verbose 设置为 True 以查看完整的执行跟踪。

  • max_rpm 是我们的团队为避免速率限制而每分钟最多可以执行的请求数。

  • 最后,share_crew 表示 Agent 共享资源来执行任务。这对应于第一个 Agent 与其他 Agent 共享其响应。

在协调了 Agent 之后,是时候通过 kickoff 函数触发它们了,该函数接收一个输入字典作为参数。在这里,我们搜索的是我录制的关于 GPT3.5 Turbo 微调与图形界面的一个视频。

topic_of_interest = 'GPT3.5 Turbo Fine-tuning and Graphical Interface'  
result = my_crew.kickoff(inputs={'topic': topic_of_interest})

成功执行上述代码将生成我们上面指定的三个 Markdown 文件。

以下是每个文件内容的结果显示。作为录制视频的人,这些内容与教程中涉及的内容完全一致。

博客 Agent 未能提供百分之百的分步指南,用户在执行代码时可能会遇到问题,但它提供了对教程范围的极好理解。

对于 LinkedIn 和 Twitter 帖子,结果非常出色!

你可以在下面链接中查看所有文件的内容。

https://github.com/keitazoumana/LLMs/tree/main/ai_agents_outputs

#06

评估 Agent

我对 Agent 的上述评估基于我对内容的个人熟悉程度。然而,在投产之前,需要更客观且可扩展的评估方法。

以下是一些有效评估这些 AI Agent 的策略。

  • 基准测试可以用来评估每个 Agent 在不同任务上的表现,使用已建立的数据集如 GLUE 和 FLASK,可以进行与不同最先进模型的标准化比较。

  • 事实准确性测量评估 Agent 在多个领域提供事实性回答的能力。

  • 上下文感知相关性评分可以用来量化 Agent 的响应与给定提示词的对齐程度。

可以利用多个框架来执行这些评估,其中包括:

  • DeepEval,这是一个开源工具,用于量化 LLM 在不同指标上的性能。

  • MMLU(大规模多任务语言理解)是一个测试模型在零样本和单样本设置下的多学科知识的框架。

  • OpenAI evals 也是一个用于评估 LLM 或任何基于 LLM 系统的框架。

#07

总结

本文简要介绍了如何利用 AI Agent 有效完成高级任务,而不是让一个大语言模型单打独斗。

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

四、AI大模型商业化落地方案

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

Agent实战系列:多Agent 编排的常见范式及实现方式[实现动态编排、静态编排] 阅读详情

相关推荐

5分钟搞定Unity+Visual Studio开发环境配置(含C#游戏开发工作负载)

本文提供了一份详细的Unity与Visual Studio开发环境配置指南,帮助开发者在5分钟内完成C#游戏开发工作负载的设置。从Unity Hub安装到Visual Studio关键组件选择,再到常见问题排查,全面覆盖环境搭建的各个环节,显著提升游戏开发效率。

weixin_29014237的博客 248

手把手教你从零搭建Agent框架

无论是环境的反馈,还是人类的指令,Agent 都需要完成一个对接收到的信息进行“理解”,并依据得到的理解进行意图识别,转化为下一步任务的过程。真正让人惊讶的是大模型在推理上的能力涌现。推理,一般指根据几个已知的前提推导得出新的结论的过程,区别于理解,推理一般是一个“多步骤”的过程,推理的过程可以形成非常必要的“中间概念”,这些中间概念将辅助复杂问题的求解。不同的智能体有不同的推理提示风格、不同的输入方式以及不同的解析输出方式,依赖于用户对应用的自定义,说白了就是对大模型进行一层封装更方便管理。

ytt0523_com的博客 5778

K-近邻算法: k-nearest neighbor classification (kNN) 详细介绍

@创建于:2020.04.09 @修改于:2020.04.09,2024.06.22 文章目录1、kNN介绍2、k近邻法的三要素详解2.1 距离度量2.2 k值的选择2.3 分类决策规则3、k近邻法的实现:kd树4、Python实现过程5、优缺点6、常见问题 1、kNN介绍 kNN是一个基本而简单的分类算法,作为监督学习,那么KNN模型需要的是有标签的训练数据,对于新样本的类别由与新样本距离最近的k个训练样本点按照分类...

chenhepg的博客 9万+

Agent!多工具智能编排应用创建教程

Tools工具创建:让任何人都可以将自己的工具/插件/模型接入到AI Studio平台中,发布至工具中心,供开发者在项目、应用、大模型社区应用中使用。请注意:“调用工具的返回输出” 暂未与“直接对话的大模型”做上下文关联,若需求大模型对工具的输出进行分析,请复制粘贴进行提示。Tools工具挂载:将官方准备好的工具/插件、自行接入的工具/插件,挂载至应用中,将根据用户输入自动调用不同的工具/插件。若无满足需求的工具,支持自行UGC接入API创建工具(由于内测阶段,UGC工具需人工把控,遂暂不开放)

tong9811的博客 2226

告别迷茫!用ETAS RTA-OS配置你的第一个AUTOSAR OS任务(含VRTA虚拟ECU实战)

本文详细介绍了如何使用ETAS RTA-OS工具链在VRTA虚拟ECU上配置和运行第一个AUTOSAR OS任务。通过从XML配置到任务调度的全流程实战,帮助开发者快速掌握嵌入式操作系统开发的核心步骤,特别适合刚接触AUTOSAR的开发者快速上手。

weixin_42533622的博客 418

从零构建智能监控系统:ZLMediaKit与SpringBoot的RTSP流处理实战

本文详细介绍了如何从零构建智能监控系统,结合ZLMediaKit与SpringBoot实现RTSP流处理。通过多协议支持、高性能架构设计及工业级部署优化,解决传统监控方案的兼容性差、延迟高等问题,适用于物联网和智能安防领域。

weixin_29002209的博客 370

5种常见Agent构建方法(保姆级教程)从零基础到实战精通,看这一篇就够了!

给你学习,我国在这方面的相关人才比较紧缺,大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。实际上,不同的任务需要不同的“思维方式”。Agent面对复杂任务时,先制定详细的执行计划,将大任务分解为可管理的子任务,然后逐一执行并检查完成情况,直到整个任务完成。

xiaoganbuaiuk的博客 1134

开源AI数字人DUIX:从零构建你的智能交互助手

本文详细介绍了如何利用开源AI数字人DUIX从零构建智能交互助手。文章阐述了DUIX作为开源项目的核心优势,包括低成本启动、低网络依赖和高度可定制性,并提供了从开发环境搭建、核心模块(AI模型、语音、形象)配置到个性化业务逻辑开发与最终部署的完整实践指南,帮助开发者快速掌握构建专属AI数字人的全流程。

weixin_29051811的博客 504

怎么构建Agent?Agent教程入门到精通,收藏这一篇就够了_agent流程图

有句非洲谚语很有名:一个人可以走得很快,一群人才能走得更远。 还有句话是:没有人能在所有领域都成为专家,我觉得这两句话说的是一个道理。团队合作,分工明确,大家齐心协力,各尽其职才能把事情做好。 同样的道理,用在 LLM 上也很合适。我们没必要让一个 LLM 去搞定所有复杂的任务。我们可以把不同的 LLM 或者 AI Agent 组合起来,让每个 Agent 都专注于它最擅长的领域。这样,大家各司其职,效率和效果都会更好。 这种方式可以构建出一个更加健壮的系统,生产出来的东西质量也更高,结果也更可靠。

2401_85378759的博客 1395

modbus

从机地址 功能码 起始地址高位 起始地址低位 数量高位 数量低位 字节数 0001H高位 0001H低位 0002H高位 0002H低位 CRC高位 CRC低位。每个输入寄存器的长度为2个字节。其中,CDH对应线圈0013H到001AH的内容,01H对应线圈001B到001CH的内容,未使用位用0填充。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。

lunhuicnm的博客 9750

FileZilla Server目录显示失败的处理方法

这两天河南大暴雨挺严重导致多处停电,我远在郑州机房的服务器也断网连不上了。一直到今天下午才恢复,影响较大,有些客户要数据,可是数据因为断网拿不到。于是我想,要是能把服务器的数据备份到其他地方,比如我的本机或者另外一台电脑该多好。 于是今天一整天我都在找远程备份数据的方法,把一台服务器上的数据实时同步到另外一台上。或者两台服务器互相同步。 找了半天发现了FreeFileSync这个宝藏软件,它的原理很简单是通过ftp传输数据。 我得先在服务器上安装个ftp服务,首选filezilla server,安..

两天打鱼三天晒网 4453

从零构建AI Agent框架教程(非常详细),从入门到精通,收藏这一篇就够了!

本教程将带你从零开始,一步步构建一个具备工具调用能力的简单 Agent 框架。即使你是编程新手,也能跟着教程完成并能成功运行代码。

m0_59235945的博客 637

【应用】打造你的安全本地AI购物助手:OpenClaw + 淘宝MCP部署全攻略

本文介绍了在Ubuntu虚拟机中配置OpenClaw连接Windows宿主机的淘宝MCP服务的两种方案。核心原理是通过修改MCP服务监听地址或SSH隧道转发,实现跨网络访问。方案1推荐修改MCP服务绑定0.0.0.0并配置防火墙放行端口,适合长期使用;方案2通过SSH隧道转发,适合临时测试。文章详细说明了环境准备、配置文件修改及两种互通方案的具体实施步骤,重点解决了虚拟机与宿主机网络互通的关键问题。

海兰 1323

OpenClaw记忆系统实战教程(非常详细),AI Agent持久记忆构建从入门到精通,收藏这一篇就够了!

深入剖析 OpenClaw 开源项目的 Memory 模块——一套融合向量检索、全文搜索与时间衰减的混合记忆引擎,看一个开源团队如何让 AI 真正"记住"你。

m0_59163425的博客 1039

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

LangChain + LangGraph 实战教程(非常详细),构建生产级多模态Agent从入门到精通,收藏这一篇就够了!

在多模态 AI 应用开发中,开发者常面临三大核心痛点:工具调用顺序混乱、步骤结果无法传递、架构集成复杂。传统的基于大语言模型的 BaseAgent,因其随机决策的特性,难以保障复杂任务的可靠执行。本文将深入探讨如何结合 LangChain(能力组件库)与 LangGraph(流程操作系统),设计一个可以闭环集成到现有架构的 **WorkflowAgent**,以解决这些问题,并通过实战案例展示其从设计到落地的全过程。

m0_59164520的博客 927

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OpenClaw记忆系统实战教程(非常详细):AI Agent持久记忆构建从入门到精通,收藏这一篇就够了!

OpenClaw记忆系统用SQLite加BM25与向量混合检索,让AI Agent跨会话记住项目偏好。本文从TaoToken统一Key接入讲起,含可复制配置、记忆写入与多轮对话验证,并排查401、FTS5等常见报错。官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_42581846的博客 78

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Manus团队通用Agent构建教程(非常详细),放弃Fine-tuning新思路从入门到精通,收藏这一篇就够了!

在 LLM 应用开发中,通常面临两条路径: * • Fine-tuning:训练端到端模型。缺点是反馈循环慢(周级),且容易被基座模型的升级淘汰。 * • In-Context Learning:基于强基座模型进行语境构建。

Python_cocola的博客 158

Manus团队通用Agent构建教程(非常详细):放弃Fine-tuning,用Context Engineering从入门到精通,收藏这一篇就够了!

用一份可复制的 Agent 配置模板跑通通用 Agent:先配好 Base URL、Key、Model ID 三件套,再用 TaoToken 统一 API 通道接入模型,配合 KV-Cache 与 Todo Recitation 等上下文工程策略,端到端验证并排查 401 等常见报错。官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_42594419的博客 168

打造超强知识 Agent:KARL 强化学习构建指南(保姆级教程),从入门到精通,收藏这一篇就够了!

一个基于GLM 4.5 Air微调的开源模型,在六项知识检索与推理任务上,以约三分之一的成本达到了Claude Opus 4.6同等水平的表现——这是Databricks最新发布的KARL系统交出的成绩单。在当前各家大模型厂商竞相堆叠参数和推理预算的背景下,KARL用强化学习证明了一条更经济的路径:与其让通用模型暴力搜索,不如教会模型高效地搜。

m0_59235245的博客 379

【2025版】最新Dify入门教程,零基础入门到精通,收藏这篇就够了

官方中文地址:Dify.AI · 生成式 AI 应用创新引擎产品简介 - Dify Docs开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。比 LangChain 更易用。Dify提供的有2个版本,分别是:社区版商业版对于我们来说我们使用社区版本就可以了,因为我们最终还是需要把Dify部署到我们的本地来使用的。官方提供的工具在某些场景下并不能满足我们的需求。

leah126的博客 2万+

2025总结10大构建Agent工具,零基础入门到精通,收藏这篇就够了

后台回复"资料",即可获取整理好的算法面试题(大模型、深度学习、机器学习)Pydantic-AI:类型安全的革命Pydantic-AI 为人工智能生成的输出带来了类型安全和结构化验证。通过与 Pydantic 模型集成,它确保了输出的一致性,减少了幻觉和意外响应。🔥 核心优势:输出质量可靠地符合你定义的模式。⚠️ 潜在问题:更高的 token 消耗意味着你需要留意预算。Pure Python:极简主义者的首选许多资深开发者完全摒弃框架,转而采用纯 Python 实现。

leah126的博客 1373

2分钟速通5种常见 Agent 构建方法,从零基础入门到精通,收藏这一篇就够了!

智能Agent就像数字世界里的“超级助理”,相信小伙伴们在构建通用、垂直领域Agent都或多或少遇到框架设计的逻辑问题。实际上,不同的任务需要不同的“思维方式”。接下来带你速通主流的Agent系统构建方法~AI首先生成初始回答,然后将其传递给自己或另一个模型进行"反思"评估,通过迭代改进最终向用户提供更优质的回答。任务:策划一次家庭旅游逻辑:AI先给出旅行计划,然后进行反思优化,改进不合理之处。例子:AI初步安排去海边,但反思后发现家人不喜欢晒太阳,于是调整为森林露营计划。

Python单行客的博客 1221

AI Agent全面解析(深度剖析)从入门到精通,收藏这一篇就够了!

这篇CB Insights报告系统梳理了AI Agent的发展前景与未来趋势,提出了2026年六大关键预测,绘制了完整生态版图,涵盖创业公司、基础设施提供商及营收增长型企业。报告深入解析了市场格局与技术栈演进,通过企业级应用视角,展示了AI Agent如何重塑代码生产、客户服务与后台运营方式。报告系统梳理了AI Agent的发展前景与未来趋势,提出了面向2026年的六大关键预测,并绘制出完整的生态版图,涵盖最值得关注的创业公司、基础设施提供商及快速崛起的营收增长型企业。

xiaoganbuaiuk的博客 1146

Agent开发从入门到精通,两周就够了!收藏这篇保姆级教程就够了!

我是在10月份第一次真正看到“Agent”的潜力。 当时就一个念头——这玩意儿,未来肯定有戏。

Python_cocola的博客 1375

什么是Agent?入门到精通,看这一篇就够了

同时课程详细介绍了。

2401_85116933的博客 1504
上一篇: 学计算机专业可以找什么工作?零基础入门到精通,收藏这一篇就够了
下一篇: 运维必备!30条勒索病毒处置原则 出事绝不后悔,零基础入门到精通,收藏这一篇就够了
网络安全大白
博客等级 码龄5年 7305粉丝 698原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值