AI智能体自我进化:基于Diff机制的自动化优化实践

news2026/5/12 8:24:05
1. 项目概述当AI智能体学会“自我进化”最近在开源社区里一个名为agentdiff的项目引起了我的注意。它的核心想法非常有趣让AI智能体Agent能够像我们人类一样通过“反思”和“对比”来学习和进化。简单来说它不是一个全新的AI模型而是一个为现有智能体系统设计的“进化引擎”或“教练系统”。想象一下你训练了一个AI客服它能回答常规问题但偶尔会给出不准确或冗长的回复。传统的优化方式可能需要你手动标注大量错误案例然后重新训练模型这个过程既耗时又费力。而agentdiff的思路是让智能体自己生成多个不同版本的回复然后通过一套机制比如另一个AI模型或预设规则来评估哪个版本更好最后让智能体学习这个“更好”的版本。这个过程就类似于我们写完一篇文章后会反复修改、对比不同措辞最终选择一个最优表达。这个项目瞄准的核心痛点正是当前AI应用落地中的关键瓶颈如何低成本、自动化地持续提升智能体的表现。它不局限于某个特定领域无论是对话机器人、代码助手、内容创作工具还是决策支持系统只要是基于大语言模型LLM构建的智能体理论上都可以接入agentdiff这套“自我进化”流程。对于开发者、AI应用工程师以及任何希望其AI产品能越用越聪明的人来说这无疑是一个极具吸引力的工具。2. 核心架构与设计哲学拆解2.1 从“静态执行”到“动态进化”的范式转变传统的AI智能体工作流是线性的接收用户输入 - 调用模型生成思考链Chain-of-Thought - 执行工具Tools - 输出最终结果。这个流程是“静态”的智能体每次都以相似的方式处理问题其能力上限在训练完成后就基本固定了。agentdiff引入的是一个闭环的“动态进化”范式。它的核心循环可以概括为生成Generate - 评估Evaluate - 对比Diff - 学习Learn。在这个循环中智能体不再是单次执行的终点而是成为了一个可以被迭代优化的对象。设计哲学的关键在于“Diff”差异对比。这借鉴了软件开发中的版本控制思想如Git Diff。在软件开发中我们通过对比代码的差异来理解改动、审查质量。在AI智能体领域agentdiff试图对智能体的“行为轨迹”包括其内部思考、工具调用序列、最终输出进行版本化管理并通过对比不同版本轨迹的优劣来指导进化方向。这种将复杂、模糊的“表现好坏”问题转化为可比较、可分析的“差异”问题是项目设计上的一个巧妙之处。2.2 核心组件深度解析根据项目描述和常见实践一个完整的agentdiff系统通常包含以下几个核心组件理解它们是如何协同工作的至关重要轨迹记录器Trajectory Recorder这是进化的基础。它必须能够无损地捕获智能体单次运行的完整上下文包括用户查询Query最原始的输入。智能体状态Agent State可能包括记忆Memory、预设指令System Prompt等。思考链Chain of Thoughts模型内部的推理步骤通常以文本形式呈现。工具调用序列Tool Call Sequence调用了哪些工具传入参数是什么返回结果是什么。最终输出Final Output返回给用户的内容。注意记录思考链需要模型本身的支持如OpenAI的GPT-4在API调用中可返回reasoning内容或通过提示工程诱导模型输出其思考过程。这是实现高质量Diff的前提。变体生成器Variant Generator这是进化的“创意来源”。它的任务是基于同一个用户查询和初始状态生成多个不同的智能体行为轨迹。生成策略多种多样提示扰动Prompt Perturbation微调系统指令例如从“你是一个有帮助的助手”改为“你是一个简洁专业的助手”。思维采样Thought Sampling利用LLM的随机性通过temperature参数控制让模型生成多条不同的思考链。工具策略探索Tool Strategy Exploration强制或鼓励智能体尝试使用不同的工具组合来解决问题。参数化策略Parametric Strategies如果智能体本身有可调参数如搜索深度、置信度阈值系统地调整这些参数来生成不同轨迹。评估器Evaluator这是进化的“裁判”。它负责对生成的多条轨迹进行评分或排序找出“更好”的那一个。评估方式决定了进化的方向基于模型的评估LLM-as-a-Judge目前最主流和灵活的方式。使用一个通常是更强的LLM作为裁判根据任务目标如准确性、有用性、安全性、简洁性对轨迹进行评价。可以给出分数也可以直接选出最优。规则/启发式评估Rule-based适用于目标明确的任务。例如对于代码生成可以用单元测试通过率来评估对于问答可以用与标准答案的ROUGE/BLEU分数来评估。人工反馈Human-in-the-loop将多条轨迹呈现给人类标注者选择收集到的偏好数据可以用于训练一个奖励模型Reward Model后续用这个奖励模型来自动化评估。差异分析器与学习器Diff Analyzer Learner这是进化的“大脑”。它接收“优胜轨迹”和“原始轨迹”或其他失败轨迹分析两者之间的关键差异。差异分析不仅仅是比较最终输出文本。更深层次的分析包括思考链中哪一步的转折导致了更好的结果优胜轨迹使用了哪个关键工具而原始轨迹没有系统指令的哪个词语的改动引发了更友好的语气学习机制如何将分析出的“成功经验”固化下来常见方法有提示工程优化将优胜轨迹中的有效模式总结成新的系统指令或少量示例Few-shot Examples更新智能体的配置。微调Fine-tuning如果积累了足够多的“优胜-原始”轨迹对可以用它们来微调底层LLM让模型内化这种更好的行为模式。策略更新如果智能体涉及强化学习RL组件那么评估器的分数可以直接作为奖励信号用于更新策略模型。3. 实战部署构建你的第一个智能体进化循环理论讲得再多不如亲手搭一个。下面我将以一个“技术文档问答助手”智能体为例演示如何利用agentdiff的核心思想搭建一个最小可行进化系统。我们假设这个助手有时回答正确但冗长有时则过于简略而遗漏关键细节。3.1 环境准备与基础智能体搭建首先我们需要一个基础智能体。这里使用 LangChain 框架因为它能方便地组装链条、管理工具和记忆。# 创建项目并安装基础依赖 mkdir agent-evolution cd agent-evolution python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install langchain langchain-openai python-dotenv接下来创建一个.env文件存放你的 OpenAI API 密钥OPENAI_API_KEYyour_api_key_here然后编写基础智能体代码base_agent.pyimport os from dotenv import load_dotenv from langchain_openai import ChatOpenAI from langchain.agents import initialize_agent, AgentType from langchain.agents import Tool from langchain.utilities import SerpAPIWrapper from langchain.memory import ConversationBufferMemory load_dotenv() # 1. 初始化LLM和工具 llm ChatOpenAI(modelgpt-4o-mini, temperature0) search SerpAPIWrapper() # 需要一个SerpAPI的key这里仅为示例你可以替换为其他搜索工具或模拟工具 tools [ Tool( nameSearch, funcsearch.run, descriptionUseful for when you need to answer questions about current events or technical concepts. Input should be a search query. ), ] # 2. 初始化记忆 memory ConversationBufferMemory(memory_keychat_history, return_messagesTrue) # 3. 创建智能体 agent initialize_agent( tools, llm, agentAgentType.CHAT_CONVERSATIONAL_REACT_DESCRIPTION, # 适合对话的Agent类型 memorymemory, verboseTrue, # 输出详细的思考过程便于我们记录轨迹 handle_parsing_errorsTrue ) # 基础系统指令 base_system_message You are a helpful technical documentation assistant. Answer questions about programming and technology based on your knowledge and available search tools. Be accurate and thorough. # 注意在实际的LangChain Agent初始化中系统消息可能需要通过agent.agent.llm_chain.prompt.messages来设置或修改。这个智能体具备了对话记忆和网络搜索能力是我们的“原始版本”。3.2 实现轨迹记录与变体生成现在我们来实现agentdiff的核心——记录一次运行的完整轨迹。我们需要修改或包装智能体的执行过程。创建trajectory_recorder.pyimport json from typing import Dict, Any, List from langchain.schema import AgentAction, AgentFinish class TrajectoryRecorder: def __init__(self): self.current_trajectory { query: , system_prompt: , thoughts: [], tool_calls: [], final_output: } def record_query(self, query: str): self.current_trajectory[query] query def record_system_prompt(self, prompt: str): self.current_trajectory[system_prompt] prompt def record_thought(self, thought: str): self.current_trajectory[thoughts].append(thought) def record_tool_call(self, tool_name: str, tool_input: str, output: str): self.tool_calls.append({ tool: tool_name, input: tool_input, output: output }) def record_final_output(self, output: str): self.current_trajectory[final_output] output def get_trajectory(self) - Dict[str, Any]: return self.current_trajectory.copy() def reset(self): self.current_trajectory { query: , system_prompt: , thoughts: [], tool_calls: [], final_output: } # 包装器用于拦截Agent的中间步骤并记录 def create_agent_with_recorder(base_agent, recorder, system_prompt): 这是一个概念性包装函数实际拦截需要更底层的Hook或Callback实现 # 在实际中你需要使用LangChain的Callbacks来捕获中间步骤。 # 这里为了演示我们假设有一个方法可以设置记录器。 recorder.record_system_prompt(system_prompt) # ... 复杂的回调设置代码 ... # 最终返回一个被监控的agent实例 return monitored_agent由于直接拦截LangChain Agent的中间步骤较为复杂一个更实用的最小化实践是我们通过运行多次每次改变一些条件如系统提示词来模拟“变体生成”。我们创建variant_generator.pydef generate_agent_variants(base_system_prompt, query, num_variants3): 生成不同系统提示词下的智能体变体 variants [ base_system_prompt, # 原始版本 base_system_prompt Prioritize conciseness in your answers., # 变体1强调简洁 base_system_prompt Provide detailed examples and explanations in your answers., # 变体2强调详细 base_system_prompt Structure your answer with clear bullet points and a summary., # 变体3强调结构 ] # 在实际中这里会真正用不同的提示词初始化或修改智能体然后运行并记录轨迹。 # 我们返回的是代表不同配置的“任务” variant_tasks [] for i, prompt in enumerate(variants[:num_variants]): variant_tasks.append({ variant_id: i, system_prompt: prompt, query: query }) return variant_tasks3.3 集成评估器与执行进化循环现在我们有了生成不同任务的能力。接下来需要执行这些任务并用一个评估器来评判结果。我们将使用“LLM-as-a-Judge”的模式。创建evaluator.pyfrom langchain_openai import ChatOpenAI class LLMEvaluator: def __init__(self): self.llm_judge ChatOpenAI(modelgpt-4o-mini, temperature0) def evaluate_responses(self, query: str, responses: list) - dict: 评估多个回复返回评分和排名 # responses 是一个列表每个元素包含 variant_id 和 answer_text prompt f You are an expert evaluator of technical answers. Original User Query: {query} Below are {len(responses)} different answers from an AI assistant. Please evaluate them based on: 1. **Accuracy**: Is the information correct and free from hallucinations? 2. **Completeness**: Does it fully address all parts of the query? 3. **Conciseness**: Is it unnecessarily verbose or efficiently to the point? 4. **Helpfulness**: Overall, how useful and actionable is this answer? For each answer, provide a score from 1 (poor) to 10 (excellent) for each criterion, and an overall score. Finally, rank the answers from best to worst. Format your response as a JSON object with the following structure: {{ evaluations: [ {{ variant_id: id, scores: {{ accuracy: score, completeness: score, conciseness: score, helpfulness: score, overall: average_score }} }} ], ranking: [variant_id_of_best, variant_id_of_second_best, ...] }} Here are the answers: for i, resp in enumerate(responses): prompt f\n\n--- Answer {resp[variant_id]} ---\n{resp[answer_text]} evaluation_text self.llm_judge.invoke(prompt).content # 简单解析JSON实际应用中需要更健壮的解析和错误处理 import json try: return json.loads(evaluation_text.strip()) except json.JSONDecodeError: # 如果模型没有返回标准JSON可以在这里添加启发式解析或降级处理 print(Failed to parse evaluation as JSON. Raw output:, evaluation_text) return {evaluations: [], ranking: []}最后我们创建一个主程序main.py来串联整个流程import json from base_agent import agent, base_system_message from variant_generator import generate_agent_variants from evaluator import LLMEvaluator # 初始化 evaluator LLMEvaluator() query Explain the concept of attention mechanism in transformer models. # 1. 生成变体任务 tasks generate_agent_variants(base_system_message, query, num_variants3) responses [] # 2. 执行每个变体任务模拟 # 注意这里简化了实际需要为每个任务配置不同的agent并运行 for task in tasks: print(f\n Running Variant {task[variant_id]} with prompt ) print(task[system_prompt]) # 在实际中这里应使用对应system_prompt的agent来运行query # simulated_answer agent.run(query) # 需要动态修改agent的prompt # 为了演示我们模拟一个答案 simulated_answers [ The attention mechanism allows a model to focus on different parts of the input sequence when producing each part of the output. Its like highlighting relevant words. Its computed using queries, keys, and values., Attention is a core component in transformers. It helps the model weigh the importance of different input tokens. There are different types like self-attention and cross-attention. Its key for handling long-range dependencies., In transformer models, the attention mechanism dynamically assigns weights (attention scores) to all tokens in the input sequence based on their relevance to the current token being processed. This is achieved through a mathematical operation involving Query, Key, and Value vectors derived from the input embeddings. The scaled dot-product attention formula is: Attention(Q,K,V)softmax(QK^T/√d_k)V. This allows the model to capture contextual relationships regardless of distance, solving limitations of previous RNN-based architectures. ] simulated_answer simulated_answers[task[variant_id] % len(simulated_answers)] print(fSimulated Answer: {simulated_answer[:100]}...) responses.append({ variant_id: task[variant_id], answer_text: simulated_answer, system_prompt_used: task[system_prompt] }) # 3. 评估 print(\n Evaluating Responses ) evaluation_result evaluator.evaluate_responses(query, responses) print(json.dumps(evaluation_result, indent2)) # 4. 分析与“进化” if evaluation_result.get(ranking): best_variant_id evaluation_result[ranking][0] best_response next(r for r in responses if r[variant_id] best_variant_id) worst_variant_id evaluation_result[ranking][-1] worst_response next(r for r in responses if r[variant_id] worst_variant_id) print(f\n Evolution Analysis ) print(fBest variant (ID: {best_variant_id}) used prompt:) print(f {best_response[system_prompt_used]}) print(fWorst variant (ID: {worst_variant_id}) used prompt:) print(f {worst_response[system_prompt_used]}) # 最简单的“学习”将优胜提示词作为新的基础提示词 new_base_prompt best_response[system_prompt_used] print(f\n**Evolution Result**: The system prompt has been updated to the winning variant.) print(fNew base prompt: {new_base_prompt}) # 在实际中你可以将这个 new_base_prompt 保存下来用于后续智能体的初始化。运行这个主程序你会看到一个简单的进化循环生成不同提示词的变体 - 模拟运行 - 评估 - 选出最佳提示词。这就是agentdiff思想的最小化实现。4. 生产级考量与常见陷阱将上述实验性的代码转化为一个稳定、可扩展的生产系统你会遇到一系列挑战。以下是我在实践中总结的关键点和避坑指南。4.1 评估环节的可靠性与成本控制评估器是整个进化循环的“指挥棒”如果它不可靠进化就会跑偏。挑战1评估偏差Evaluation BiasLLM作为裁判本身存在偏见可能偏好某种写作风格如更正式、更冗长而非真正的内容质量。应对策略使用更细致的评估提示Rubric不要只问“哪个更好”。提供清晰、具体、可操作的评价维度如前文的准确性、完整性等并尽可能为每个维度提供示例。集成多模型评估除了主裁判LLM可以用另一个不同家族的模型如Claude进行交叉验证或在关键问题上引入人工抽查。基于规则的校验对于有明确标准的任务如代码需通过编译、答案需包含特定关键词优先使用自动化规则进行初筛LLM评估作为补充。挑战2评估成本与延迟每次进化循环都需要调用多次LLM生成变体 评估如果使用GPT-4等高级模型成本会迅速攀升。应对策略分层评估策略先使用快速、廉价的模型如GPT-3.5-Turbo进行粗筛淘汰明显差的变体再用强模型对Top-K个候选进行精细评估。异步与批处理将多个查询-变体对的评估任务批量发送给API减少请求次数。设计系统时考虑异步执行避免进化循环阻塞主服务。缓存评估结果对于相同的查询 回答对缓存评估结果。如果智能体在进化后再次产生相同或高度相似的输出可以直接使用缓存。4.2 轨迹差异的有效分析与学习找到优胜者之后如何从差异中提取可泛化的“知识”是进化能否成功的关键。挑战差异的噪声与过拟合。优胜轨迹可能因为一些随机因素如LLM采样噪声或特定于当前查询的细节而胜出这些“经验”并不能推广。应对策略聚合多轮进化数据不要基于单次查询的结果就匆忙修改智能体。收集数十或上百个查询的进化数据寻找统计上显著的规律。例如如果发现在80%的查询中“强调结构化的提示词”都优于“原始提示词”那么这个修改才可信。进行A/B测试将进化得到的新配置如新提示词与旧配置在生产流量中进行小比例的A/B测试用真实的用户交互数据如点赞率、问题解决率、会话时长来验证进化的有效性。差异抽象化不要直接记录“优胜轨迹的完整文本”而是尝试让另一个LLM去总结差异的本质。例如“本次优胜的主要原因是在回答概念性问题时先给出了一个精确定义然后再展开解释而失败轨迹则直接开始解释。” 这种抽象后的描述更适合作为进化经验。4.3 系统设计与可观测性一个健壮的agentdiff系统需要良好的工程架构。数据管道设计需要可靠地记录、存储和索引大量的轨迹数据。考虑使用向量数据库如Weaviate, Pinecone来存储轨迹的嵌入向量方便后续进行相似查询的检索和聚类分析。进化策略管理系统应该支持多种变体生成策略提示扰动、工具探索等和评估方案不同LLM裁判、规则集。最好能通过配置文件来管理这些策略便于实验和迭代。全面的监控与日志必须记录每一次进化循环的完整上下文输入查询、所有变体、评估分数、最终选择、以及系统状态的改变。这不仅是调试的需要也是理解系统行为、防止“进化失控”的必要手段。可以设想如果评估器意外地持续偏好某种有害输出没有日志将无法追溯和修复。5. 进阶应用场景与未来展望agentdiff的范式远不止于优化提示词。它的想象力在于为智能体的全生命周期管理提供了自动化工具。场景一工具使用能力的专项进化。假设你的智能体需要学习使用一个新的内部API工具。你可以设计一批需要用到该工具的查询任务然后让agentdiff系统生成不同的工具调用策略例如何时调用、如何解析参数并通过评估最终任务成功率来进化出最优的工具使用策略。场景二安全与合规性的对齐强化。这是一个极其重要的场景。你可以构建一个“红色团队”评估器专门生成具有挑战性的、诱导性、或越狱性的查询。让智能体生成多个回复然后由安全评估器可以是规则引擎安全微调过的LLM选出最安全、最合规的回复。通过持续运行这个循环可以不断强化智能体的安全边界。场景三多智能体协作的涌现行为优化。在由多个智能体组成的复杂系统中如一个负责规划一个负责执行一个负责审核agentdiff可以应用于优化它们之间的协作协议。通过对比不同通信格式、不同责任划分下的整体任务表现来进化出更高效的多智能体协作模式。未来的挑战与方向评估的客观性如何设计无偏、高效、低成本的评估体系仍然是核心挑战。融合人类偏好数据、规则引擎和模型评估的混合系统可能是方向。进化速度与稳定性如何在快速进化和防止性能回退即“忘记”已学会的好技能之间取得平衡。可能需要引入类似“灾难性遗忘”应对机制的技术。可解释性与可控性进化出的行为改变必须是可解释、可干预的。我们需要更好的工具来可视化“Diff”让开发者理解智能体究竟学到了什么并在必要时进行人工校正。从我个人的实践来看agentdiff代表的是一种思维模式的转变从“设计一个智能体”到“培育一个智能体”。它承认了我们无法一次性设计出完美的智能体而是应该建立一个环境让智能体能够在这个环境中自主地、持续地变得更好。虽然目前完整的开源实现和成熟案例还不多但其中蕴含的自动化评估、对比学习的思想已经可以立即应用到你的AI项目中来提升效果。开始记录你智能体的轨迹尝试手动进行一些对比分析你可能会对如何改进它产生全新的见解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2605831.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…