news 2026/5/17 9:48:50

基于AI智能体的渗透测试框架:从自动化到智能协同的范式转变

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于AI智能体的渗透测试框架:从自动化到智能协同的范式转变

1. 项目概述:一个面向渗透测试的智能体框架

最近在整理自己的工具链时,发现了一个挺有意思的项目,叫GH05TCREW/pentestagent。乍一看这个名字,你可能会觉得这又是一个“缝合怪”式的自动化渗透工具,把Nmap、SQLmap之类的脚本打包一下。但实际深入后,我发现它的定位和设计思路,和我们传统认知里的“自动化工具包”有很大不同。它更像是一个为渗透测试工程师打造的“智能副驾驶”框架,核心目标不是替代人工,而是通过智能体(Agent)技术来增强和辅助我们完成那些重复、繁琐但又至关重要的信息收集、漏洞验证和报告整理工作。

简单来说,你可以把它理解为一个专为安全测试场景设计的“乐高积木”平台。它提供了一套标准化的接口和运行环境,让你能够将各种安全工具(无论是命令行工具如nucleiffuf,还是自定义的Python脚本)封装成一个个具备特定能力的“智能体”。然后,你可以通过一个统一的“大脑”(通常是基于大语言模型,如GPT、Claude或本地模型)来指挥这些智能体协同工作,完成一个复杂的测试任务。比如,你只需要告诉它“请对目标域名example.com进行一次基础的Web应用安全扫描”,它就能自动调度子域名枚举、端口扫描、目录爆破、漏洞检测等一系列智能体,并最终给你一份结构化的结果。

这个项目特别适合两类人:一是日常需要执行大量重复性手动测试的渗透测试工程师或安全研究员,它能显著提升工作效率,把我们从机械劳动中解放出来,专注于更复杂的逻辑分析和漏洞利用;二是对AI在安全领域应用感兴趣的开发者,它提供了一个绝佳的、开箱即用的实验平台,让你能快速验证自己的想法,比如“让AI自动分析扫描结果并给出修复建议”是否可行。

2. 核心架构与设计思路拆解

2.1 从“自动化脚本”到“智能体协作”的范式转变

传统的自动化渗透工具,比如我们自己写的Bash或Python脚本,其执行流程是线性的、预设好的。脚本A跑完,把结果传给脚本B,脚本B再传给脚本C。这种模式的优点是逻辑清晰、可控性强,但缺点也非常明显:僵化。一旦中间某个环节失败(比如某个端口扫描工具超时),整个流程就可能中断,或者需要人工介入处理异常。此外,它缺乏“决策”能力,无法根据上一步的结果动态调整下一步的行动策略。

pentestagent采用的智能体范式,则引入了“规划-执行-观察”的循环。在这个框架下,一个中央的“规划器”(Planner,通常由大语言模型驱动)负责理解你的自然语言指令(例如:“检查example.com是否存在SQL注入和XSS漏洞”),并将其分解成一个任务序列(Task List)。然后,一个“执行器”(Executor)会调度相应的工具智能体(Tool Agent)去执行具体任务。每个智能体执行完毕后,会将结果(Observation)反馈给规划器。规划器根据这些反馈,决定下一步是继续执行序列中的下一个任务,还是因为发现了关键漏洞而调整策略,亦或是任务已完成可以生成报告。

这种架构带来了几个关键优势:

  1. 动态适应性:如果子域名枚举发现了大量新子域,规划器可以动态决定是否要对所有子域进行深度扫描,还是只针对特定特征的子域。
  2. 自然交互:测试人员可以用最自然的语言描述测试目标,降低了使用复杂命令行参数的门槛。
  3. 可解释性:整个决策和执行过程可以被记录和追溯,你能够清楚地知道“为什么AI决定在这个时候运行这个工具”,这对于安全审计和结果复核至关重要。

2.2 项目核心组件深度解析

为了理解如何用好它,我们需要拆开看看它的几个核心“齿轮”是如何啮合的。

智能体(Agent):这是框架的基本执行单元。一个智能体通常对应一个具体的安全工具或一项原子能力。项目已经预置了不少常用智能体,比如:

  • NmapScannerAgent: 封装了Nmap,用于端口和服务发现。
  • SubdomainEnumerationAgent: 可能整合了subfinderamass等工具进行子域名枚举。
  • VulnerabilityScannerAgent: 可能调用nuclei或自定义POC进行漏洞扫描。
  • ReportGeneratorAgent: 负责将分散的结果汇总成格式统一的报告。

每个智能体都需要明确定义它的“能力”(Capabilities)描述,告诉规划器“我能干什么”,以及它的输入/输出格式。这就像给每个工具贴上了标准化的说明书。

任务规划器(Task Planner):这是整个系统的大脑。它接收用户的自然语言指令,并利用大语言模型的理解和推理能力,将其转化为一个有序的智能体调用序列。规划器的质量直接决定了整个测试过程的智能程度。pentestagent通常会支持接入OpenAI API、Azure OpenAI或本地部署的Ollama(运行Llama 2、CodeLlama等模型)作为规划引擎。

工作流引擎与上下文管理:这是容易被忽视但至关重要的部分。它负责维护整个测试会话的“上下文”(Context)。当一个智能体发现了目标的IP是192.168.1.100,并开放了80端口,这个信息会被存入上下文。后续的DirbustingAgent(目录爆破智能体)在运行时,就不需要你再指定目标,它可以直接从上下文中读取http://192.168.1.100作为目标。这种隐式的信息传递,使得智能体之间的协作变得非常流畅。

工具集成层:这是框架与具体安全工具之间的桥梁。它需要处理诸如命令行调用、输出解析、错误处理、超时控制等脏活累活。一个好的集成层应该能让开发者以最小的代价,将任何命令行工具封装成智能体。

注意:在架构设计上,pentestagent通常采用松耦合的设计。这意味着你可以轻松替换其中的组件,例如,把默认的OpenAI规划器换成响应更快的Claude,或者把报告生成模块从Markdown输出改为直接对接Jira生成工单。这种灵活性是评估一个框架是否成熟的重要指标。

3. 环境搭建与核心配置实战

理论讲得再多,不如动手搭一个。下面我将以一个典型的本地开发环境为例,带你一步步搭建并配置pentestagent,这里我会假设你使用Linux/macOS系统,并已经安装了Python 3.8+和Docker。

3.1 基础环境与项目初始化

首先,我们需要获取代码并创建独立的Python环境,避免依赖冲突。

# 克隆项目仓库 git clone https://github.com/GH05TCREW/pentestagent.git cd pentestagent # 创建并激活虚拟环境(推荐使用venv或conda) python -m venv .venv source .venv/bin/activate # Linux/macOS # 对于Windows: .venv\Scripts\activate # 安装项目依赖 pip install -r requirements.txt

这一步通常会安装langchainopenaidocker等核心库。如果遇到某些依赖安装失败,很可能是版本冲突或系统缺少编译工具。一个常见的坑是psutilcryptography这类需要本地编译的包安装失败。解决方法通常是安装系统级的开发工具包,例如在Ubuntu上运行sudo apt-get install build-essential python3-dev libssl-dev

3.2 关键配置详解:连接AI大脑与工具

框架的核心配置通常通过一个配置文件(如config.yaml.env文件)来完成。这里有两个最关键的配置项:

1. 大语言模型(LLM)配置:这是智能体的“大脑”。你可以选择云端API或本地模型。

  • 使用OpenAI API(简单,但需付费和网络): 在.env文件中设置:
    OPENAI_API_KEY=sk-your-actual-api-key-here LLM_PROVIDER=openai LLM_MODEL=gpt-4-turbo-preview # 或 gpt-3.5-turbo
  • 使用本地Ollama(免费,隐私性好): 首先,确保你已经在本地运行了Ollama服务(ollama serve),并拉取了模型,例如ollama pull llama2:7b。 然后在配置中指向本地服务:
    LLM_PROVIDER=ollama OLLAMA_BASE_URL=http://localhost:11434 LLM_MODEL=llama2:7b

    实操心得:对于渗透测试这种需要一定逻辑推理的场景,建议至少使用gpt-3.5-turbollama2:13b及以上规模的模型。7B参数的小模型在复杂任务规划和结果理解上容易“胡言乱语”,导致工作流混乱。实测中,gpt-4在任务分解的准确性和工具选择的合理性上远胜于小模型。

2. 安全工具路径与参数配置:框架需要知道你的工具安装在哪里。虽然有些工具可以通过Docker动态调用,但将常用工具本地化配置能获得更快的响应速度。

# 示例 config.yaml 片段 tools: nmap: path: /usr/bin/nmap default_args: "-sV -sC -T4" # 默认使用服务版本探测和默认脚本扫描,速度级别4 nuclei: path: /usr/local/bin/nuclei templates_path: /root/nuclei-templates # 指定漏洞模板库路径 ffuf: path: /usr/local/bin/ffuf

重要提醒:务必检查每个工具的路径是否正确,并且当前运行pentestagent的用户有权限执行这些工具。特别是像nmap的SYN扫描(-sS)需要root权限,你需要决定是让整个agent以特权运行,还是调整扫描策略使用不需要root的TCP连接扫描(-sT)。

3.3 首次运行与验证

完成基础配置后,我们可以运行一个简单的命令来测试框架是否正常工作。通常项目会提供一个基础的CLI入口或示例脚本。

# 假设项目提供了一个交互式命令行界面 python cli.py # 或者在代码中简单测试 from pentestagent.core.agent_runner import AgentRunner runner = AgentRunner(config_path="./config.yaml") # 尝试一个最简单的指令 result = runner.run("请用ping测试一下8.8.8.8的通畅性") print(result)

如果一切顺利,你应该能看到框架尝试理解你的指令,调度相应的PingAgent(如果存在)或直接调用系统ping命令,并返回结果。如果遇到错误,最常见的通常是:

  1. API密钥错误:检查.env文件中的OPENAI_API_KEY是否正确,或Ollama服务是否真的在运行(curl http://localhost:11434/api/tags)。
  2. 依赖缺失:尽管安装了requirements.txt,但某些间接依赖可能缺失。仔细查看错误日志,用pip install补充安装。
  3. 配置文件路径错误:确保运行时代码能正确找到你的config.yaml.env文件,有时需要指定绝对路径。

4. 核心智能体工作流与自定义开发

4.1 剖析一个预置智能体的执行流程

以项目自带的NmapScannerAgent为例,我们来看看一个智能体是如何从“出生”到“完成任务”的。

1. 智能体定义:在agents/nmap_scanner.py中,会有一个类继承自基础的BaseToolAgent。这个类必须实现几个关键方法:

  • get_description(): 返回一段自然语言描述,告诉规划器“我是一个端口扫描器,可以识别开放端口和服务版本”。
  • get_parameters(): 定义这个智能体需要哪些输入参数,例如target(目标IP/域名)、ports(端口范围)、scan_type(扫描类型)。
  • execute(): 核心执行方法。在这里,它会将传入的参数(如target=“example.com“, ports=“1-1000”)拼接成具体的命令行nmap -p 1-1000 -sV example.com,然后使用subprocess模块去执行,最后捕获并解析输出。

2. 输出解析:这是体现智能体“智能”的关键一步。原始的Nmap输出是文本,需要被解析成结构化的数据(通常是JSON),才能被规划器和其他智能体理解。解析器会提取出开放端口服务名称版本号可能的CPE等信息。一个健壮的解析器还需要处理各种边缘情况,比如扫描被防火墙拦截、目标不存活等。

3. 结果交付:解析后的结构化数据会被放入“工作上下文”中。同时,智能体也会生成一段自然语言的“执行摘要”,比如“在目标example.com上发现3个开放端口:80/http (nginx), 443/https (nginx), 22/ssh (OpenSSH)”。这段摘要会被规划器阅读,用于决策后续步骤。

4.2 如何打造你自己的专属智能体

预置的智能体可能无法满足你所有的需求。比如,你公司内部有一个自研的、用于检测特定OA系统漏洞的Python脚本,你想把它集成进去。以下是自定义智能体的步骤:

步骤一:创建智能体文件agents/目录下新建一个文件,例如custom_oavuln_scanner.py

步骤二:定义智能体类

from .base_agent import BaseToolAgent import subprocess import json class CustomOAVulnScannerAgent(BaseToolAgent): name = "OA系统漏洞扫描器" def get_description(self): return “我是一个专门用于检测XX-OA系统常见漏洞(如SQL注入、文件上传)的扫描器。我需要一个目标URL作为输入。” def get_parameters(self): return { "target_url": { "type": "string", "description": "待扫描的OA系统登录页面URL,例如 http://oa.target.com/login.jsp", "required": True } } def execute(self, target_url: str) -> dict: """ 执行自定义扫描脚本。 """ # 1. 构建命令。假设你的脚本是 /tools/internal/oascan.py cmd = ["python3", "/tools/internal/oascan.py", "--url", target_url, "--format", "json"] # 2. 执行命令,并设置超时(例如300秒) try: result = subprocess.run( cmd, capture_output=True, text=True, timeout=300 ) except subprocess.TimeoutExpired: return { "success": False, "error": "扫描执行超时(5分钟)", "raw_output": "" } # 3. 处理结果 if result.returncode == 0: # 假设你的脚本成功时输出JSON try: scan_results = json.loads(result.stdout) # 将结果结构化 findings = [] for vuln in scan_results.get("vulnerabilities", []): findings.append({ "type": vuln["type"], "location": vuln["url"], "severity": vuln["level"], "description": vuln["detail"] }) return { "success": True, "summary": f"在目标 {target_url} 上发现 {len(findings)} 个潜在漏洞。", "data": { "target": target_url, "findings": findings }, "raw_output": result.stdout[:1000] # 保留部分原始输出供调试 } except json.JSONDecodeError: # 如果脚本输出不是JSON,则按文本处理 return { "success": True, "summary": f"扫描完成,原始输出已捕获。", "data": {"raw_text": result.stdout}, "raw_output": result.stdout } else: # 脚本执行失败 return { "success": False, "error": f"扫描脚本执行失败,返回码:{result.returncode}", "stderr": result.stderr, "raw_output": result.stdout }

步骤三:注册智能体需要在框架的某个注册中心(可能是agents/__init__.py中的一个列表,或通过装饰器)添加你的新智能体,这样规划器才能发现并调用它。

步骤四:测试你的智能体编写一个简单的测试脚本,直接实例化你的CustomOAVulnScannerAgent并调用execute方法,确保它能正确工作,输出格式符合框架预期。

避坑指南:自定义智能体时,错误处理超时控制至关重要。网络工具极易因目标无响应而挂起,必须设置合理的超时时间。此外,返回的数据结构应尽量保持统一,例如始终包含successsummarydata这几个关键字段,这有利于上游规划器进行统一处理。

5. 实战演练:构建一个完整的Web应用渗透测试工作流

现在,让我们把所有的零件组装起来,看一个从指令下达到报告生成的全流程例子。假设我们的目标是:“对testphp.vulnweb.com(一个知名的故意留漏洞的测试网站)进行一次全面的Web安全评估,重点查找SQL注入和跨站脚本漏洞。”

5.1 工作流分解与智能体调度推演

当你将这个指令提交给pentestagent后,背后的推演过程大致如下:

  1. 规划器理解与分解:规划器(LLM)首先理解“Web安全评估”、“全面”、“重点SQL注入和XSS”这些关键词。它会规划出一个可能的工作流:

    • 任务1:信息收集。调用SubdomainEnumerationAgent(虽然这里目标明确,但习惯性收集),调用NmapScannerAgent进行端口扫描,确认Web服务(80/443)。
    • 任务2:Web目录与文件发现。调用DirbustingAgent(可能封装ffufgobuster)进行目录爆破,寻找后台、敏感文件。
    • 任务3:漏洞扫描。调用VulnerabilityScannerAgent(封装nuclei),加载与SQL注入、XSS相关的模板进行扫描。同时,可能会调度一个SQLiDetectorAgent(封装sqlmap)对已发现的表单进行深度测试。
    • 任务4:结果分析与报告。调用ReportGeneratorAgent,汇总所有发现,按风险等级排序,生成报告。
  2. 上下文传递NmapScannerAgent发现目标开放80端口,运行着Apache。这个信息{"open_ports": [{"port":80, “service”:“http”}]}被存入上下文。后续的DirbustingAgentVulnerabilityScannerAgent无需再询问用户目标是什么,直接从上下文中读取http://testphp.vulnweb.com:80作为目标。

  3. 动态调整:如果DirbustingAgent发现了/admin/login.php,规划器可能会动态插入一个新任务:调度一个LoginBruteforceAgent(如果存在)尝试弱口令爆破,或者标记该路径需要重点进行漏洞扫描。

5.2 实操配置与执行命令

在框架中,启动这样一个工作流可能通过一个YAML配置文件或直接通过CLI命令。

方式一:使用预定义的工作流模板许多框架支持用YAML定义可重复使用的工作流。

# web_assessment_workflow.yaml name: “标准Web应用渗透测试流程” description: “对单个Web目标进行信息收集、漏洞扫描和报告生成。” tasks: - agent: “SubdomainEnumerationAgent” inputs: domain: “{{ target }}” condition: “always” # 总是执行 - agent: “NmapScannerAgent” inputs: target: “{{ target }}” ports: “80,443,8080,8443” - agent: “DirbustingAgent” inputs: url: “http://{{ target }}” wordlist: “/usr/share/wordlists/dirb/common.txt” depends_on: [“NmapScannerAgent”] # 依赖端口扫描完成 - agent: “NucleiVulnScannerAgent” inputs: target: “http://{{ target }}” templates: “/root/nuclei-templates/vulnerabilities/” depends_on: [“DirbustingAgent”] - agent: “ReportGeneratorAgent” inputs: format: “markdown” output_path: “./reports/{{ target }}_{{ timestamp }}.md”

然后通过CLI运行:python cli.py --workflow web_assessment_workflow.yaml --target testphp.vulnweb.com

方式二:自然语言指令驱动(更体现智能)直接运行交互式CLI,输入我们的自然语言指令。框架的规划器会实时将其转化为上述任务序列并执行。

python cli.py --interactive > 请对 testphp.vulnweb.com 进行一次全面的Web安全评估,重点查找SQL注入和跨站脚本漏洞。 [INFO] 规划器:已理解任务。将按以下步骤执行:1.子域名枚举 -> 2.端口扫描 -> 3.目录爆破 -> 4.专项漏洞扫描(SQLi/XSS) -> 5.生成报告。 [INFO] 开始执行任务1:子域名枚举... ...

5.3 结果解读与报告分析

执行完毕后,ReportGeneratorAgent会生成一份报告。一份好的AI生成报告应该包含:

  • 执行摘要:概述测试目标、时间、范围及发现的风险总数。
  • 详细发现:按风险等级(高危、中危、低危)或漏洞类型分类列出。
    • 每个发现应包含:漏洞类型、受影响URL、请求/响应片段(或Payload)、风险描述、修复建议。
    • 报告中应引用来自哪个智能体的发现(例如:[由 NucleiVulnScannerAgent 发现]),方便溯源。
  • 附录:包含使用的工具列表、扫描策略等元信息。

关键点:不要100%相信AI生成的修复建议。它可能基于通用知识库,不一定完全贴合目标的实际技术栈。报告的价值在于高效聚合和初步分析信息,最终的漏洞确认、风险定级和修复方案,必须由安全工程师进行人工复核。AI在这里的角色是“超级助手”,而不是“终极裁判”。

6. 性能调优、安全考量与常见问题排查

6.1 性能瓶颈分析与优化策略

当目标范围较大时(例如对一个/24网段进行测试),原始的串行调度方式会非常慢。你需要关注以下几个优化点:

  1. 并发控制:检查框架是否支持智能体的并发执行。例如,NmapScannerAgent扫描一个C段时,可以拆分成多个任务并发执行。你需要在配置中调整并发 worker 的数量。

    executor: max_workers: 5 # 同时最多运行5个智能体任务

    注意:并发数不是越高越好。过多的并发可能导致:1) 自身网络或CPU过载;2) 对目标造成拒绝服务攻击(DoS),这在授权测试中是绝对禁止的;3) 触发目标的安全防护机制(如WAF的CC攻击防护)。

  2. 智能体执行超时:为每个智能体设置合理的超时时间。对于网络扫描类任务,超时时间可以设长一些(如10分钟);对于简单的信息查询,可以设短一些(30秒)。

    # 在智能体的execute方法中 def execute(self, ...): try: result = subprocess.run(cmd, timeout=600, ...) # 10分钟超时 ```
  3. LLM调用优化:LLM API调用通常是最大的延迟和成本来源。

    • 缓存:对相同的指令或中间结果进行缓存,避免重复询问LLM。
    • 精简上下文:传递给LLM的上下文(如之前的工具输出)要精简,只保留关键信息,避免达到Token上限。
    • 使用更快的模型:在任务规划阶段使用能力强的模型(如GPT-4),在结果摘要生成等简单任务上使用更便宜、更快的模型(如GPT-3.5-Turbo)。

6.2 安全与合规性红线

将AI引入渗透测试,安全与合规是重中之重,绝不能越界。

  1. 授权!授权!授权!:这是铁律。必须在pentestagent的配置或启动流程中,强制要求输入明确的授权书编号目标范围确认。可以在工作流开始前,让LLM向用户再次确认目标是否在授权范围内。框架本身应设计为拒绝执行对私有IP段(如10.0.0.0/8)或某些敏感域名的测试,除非有明确的白名单。
  2. 操作审计与不可抵赖性:框架必须记录完整的操作日志,包括:谁在什么时间发出了什么指令、规划器生成了什么任务序列、每个智能体的具体命令行执行记录及其原始输出。这些日志需要安全存储,用于事后审计和复盘。
  3. 数据隐私:如果你使用云端LLM API(如OpenAI),意味着你的扫描目标、发现的漏洞细节等敏感信息会被发送到第三方服务器。这存在严重的数据泄露风险。对于内部或高敏感度测试,必须使用本地部署的LLM(如Ollama+本地模型)
  4. 速率限制与温和扫描:在你的自定义智能体中,必须为所有主动扫描工具(如ffuf,sqlmap)加入速率限制(--rate-limit)、延迟(--delay)等参数,避免对目标业务造成冲击。

6.3 常见问题与故障排查实录

在实际使用中,你肯定会遇到各种问题。下面是我踩过的一些坑和解决方法:

问题现象可能原因排查步骤与解决方案
规划器输出的任务序列混乱,逻辑错误1. LLM模型能力不足。
2. 给LLM的指令或上下文不清晰。
3. 智能体的“能力描述”写得太模糊。
1. 升级模型(如从GPT-3.5换到GPT-4)。
2. 优化你的指令,更具体、分步骤。例如,不说“全面测试”,而说“先进行端口扫描,然后对发现的HTTP服务进行目录爆破和漏洞扫描”。
3. 重写智能体的get_description()方法,使其能力描述更精确。
智能体执行成功,但输出无法被后续智能体理解智能体返回的数据格式不符合框架约定,或解析器出错。1. 检查该智能体的execute()方法返回值,确保是结构化的字典,并且包含successsummary,data等关键字段。
2. 查看原始输出(raw_output),手动验证解析逻辑是否正确。可能需要增强解析器的鲁棒性。
工作流执行到一半卡住,无响应1. 某个智能体命令卡死(如nmap扫描一个不响应的IP)。
2. LLM API调用超时或失败。
3. 并发死锁。
1.首先检查超时设置:确保每个subprocess.run和网络请求都有合理的timeout参数。
2. 查看具体卡在哪一步的日志。在智能体中加入更详细的日志输出。
3. 对于并发问题,暂时将max_workers设为1,改为串行执行以定位问题。
报告内容空洞,只罗列工具输出,没有分析报告生成智能体只是简单拼接结果,缺乏LLM的深度总结和分析。1. 确保ReportGeneratorAgent在生成报告前,将所有关键发现以清晰的格式传递给LLM,并明确要求其“分析风险”、“排序优先级”、“给出修复建议”。
2. 为报告生成单独使用一个更强大的LLM模型。
错误信息:Tool [XXXAgent] not found智能体未正确注册,或类名拼写错误。1. 检查智能体类是否在agents/__init__.py__all__列表中,或是否使用了正确的装饰器注册。
2. 检查规划器调用的工具名是否与智能体name属性完全一致(注意大小写)。

最后一点个人体会pentestagent这类框架最大的价值,在于它为我们提供了一种人机协同的新工作模式。它最适合处理的是那些“已知模式”的重复性劳动。对于全新的、复杂的逻辑漏洞(如业务逻辑缺陷),它目前还难以替代人类的直觉和经验。我的工作流已经变成了:让pentestagent去完成初期的信息收集、常规漏洞扫描和报告草稿撰写,而我则集中精力去分析它提供的数据,寻找那些自动化工具发现不了的“深水区”漏洞。把它当作一个不知疲倦、效率极高的初级安全工程师来用,你会打开新世界的大门。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/17 9:47:48

构建内容生成中间层利用Taotoken实现模型降级与成本优化

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 构建内容生成中间层:利用Taotoken实现模型降级与成本优化 1. 场景与挑战 对于拥有稳定内容生成需求的中大型应用而言&…

作者头像 李华
网站建设 2026/5/17 9:46:50

3大突破性功能:如何用QtScrcpy彻底改变你的Android投屏体验

3大突破性功能:如何用QtScrcpy彻底改变你的Android投屏体验 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy 你是否曾经为了在电脑上操作手机而烦恼?无论是游…

作者头像 李华
网站建设 2026/5/17 9:43:04

Onekey:一键获取Steam游戏清单的智能工具

Onekey:一键获取Steam游戏清单的智能工具 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 你是否曾经为备份心爱的Steam游戏而烦恼?是否因为复杂的清单获取流程而望而却步…

作者头像 李华
网站建设 2026/5/17 9:42:45

MemPrivacy:面向端云智能体的隐私保护个性化记忆管理框架

之前文章介绍过:89.2%攻击成功率!腾讯、字节研究发现 OpenClaw Agent 存在可利用结构性漏洞 今天介绍一个 MemPrivacy 项目,来自 MemTensor、荣耀和同济大学的联合团队。 他们的研究让云端智能体能正常"记住你",但永远看…

作者头像 李华