Scrapling Agent Skill 实战:让 AI Agent 安全地掌握反爬抓取、浏览器自动化与 Spider 框架
本文围绕 Scrapling 仓库中官方发布的 Agent 技能文件 SKILL.md 展开。该技能由库作者本人维护、遵循 AgentSkill 规范,被 OpenClaw、Claude Code 等 agentic 工具直接读取后,就能指导 AI 完成"单次请求到全站爬取"的全部抓取任务。读完本文,你将掌握:技能的 frontmatter 元数据结构与安装方式、防 Prompt Injection 的 --ai-targeted 参数及其底层实现、scrapling extract 命令组的完整选项与升级策略、Fetchers/Sessions/Spiders 的代码级用法,以及技能内置的 references 文档体系与合规护栏。
一、技能定位:为什么要把抓取框架写成"Skill"
SKILL.md 开头声明了 Scrapling 的能力边界:"an adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl"——其解析器能从网站变化中自动学习并重新定位元素,Fetcher 开箱即用地绕过 Cloudflare Turnstile 等反爬系统,Spider 框架支持并发、多会话、暂停/恢复与自动代理轮换。技能的价值在于:把这套能力"封装"成 AI Agent 可理解的操作手册,让 Agent 无需上网搜索、无需猜测 API,即可正确生成抓取代码或执行 CLI 命令。
文件开头的 YAML frontmatter 是技能的核心元数据,直接决定 Agent 何时触发该技能:
---
name: scrapling-official
description: Scrape web pages using Scrapling with anti-bot bypass (like Cloudflare Turnstile), stealth headless browsing, spiders framework, adaptive scraping, and JavaScript rendering. Use when asked to scrape, crawl, or extract data from websites; web_fetch fails; the site has anti-bot protections; write Python code to scrape/crawl; or write spiders.
version: "0.4.13"
metadata:
openclaw:
requires:
bins:
- python3
anyBins:
- pip
- pip3
---
几个关键点:
description即触发条件:当用户"要求抓取/爬取/提取数据"、web_fetch失败、站点有反爬保护、或需要编写 Python 抓取代码与 spider 时,技能应被激活;requires.bins声明运行前置:必须有python3,以及pip或pip3之一;- 技能还附带一段面向"AI 扫描器"的安全说明:Cloudflare 求解走纯浏览器自动化(不需要 solver、凭据或 API),代理与 CDP 模式完全可选且由用户提供,
cdp_url、user_data_dir、proxy auth等参数在库内部做了校验。
技能的安装方式在 agent-skill/README.md 中有完整说明:它遵循 AgentSkill 规范,可被 OpenClaw 与 Claude Code 直接读取,仓库内直接提供了打包好的 Scrapling-Skill.zip。安装渠道包括 Clawhub(clawhub install scrapling-official)和 skills.sh(npx skills add D4Vinci/Scrapling --skill scrapling-official),后者会自动检测本机已安装的 Agent 并把技能注入。
二、环境准备:一次性 Setup 与 Docker 备选
技能给出的 Setup 流程要求 Python 3.10+,只需执行一次:
# 1. 创建虚拟环境(venv 等任意方式)
# 2. 在虚拟环境内安装全功能版本
pip install "scrapling[all]>=0.4.13"
# 3. 下载所有浏览器依赖
scrapling install --force
技能特别提示:如果 scrapling 不在 $PATH 中,需要记录二进制文件的实际路径,后续所有命令都用该绝对路径替代 scrapling。
对于没有 Python 环境(或不希望装 Python)的用户,技能提供了 Docker 备选方案,但只能用于 CLI 命令,不能用来写 Python 代码:
docker pull pyd4vinci/scrapling
# 或
docker pull ghcr.io/d4vinci/scrapling:latest
三、安全核心:--ai-targeted 参数的作用与底层实现
SKILL.md 中用加粗标注了一条"IMPORTANT"规则:
使用命令行抓取命令时,必须带上
--ai-targeted参数来防御 Prompt Injection;对浏览器命令,该参数还会自动启用广告拦截以节省 token。
这条规则不是空话,仓库源码可以完整印证其机制。在 cli.py 的 __Request_and_Save 函数中(第 42–62 行):
def __Request_and_Save(
fetcher_func: Callable[..., Response],
url: str,
output_file: str,
css_selector: Optional[str] = None,
ai_targeted: bool = False,
**kwargs,
) -> None:
...
if ai_targeted:
kwargs.setdefault("block_ads", True) # ① 自动开启广告拦截
response = fetcher_func(url, **kwargs)
Convertor.write_content_to_file(response, str(output_path), css_selector, main_content_only=ai_targeted)
log.info(f"Content successfully saved to '{output_path}'")
可以确认两点实现事实:
- 自动广告拦截:
ai_targeted=True时通过kwargs.setdefault("block_ads", True)默认拦截广告请求(用户显式传参可覆盖),减少无关内容进入上下文; - 主内容提取 + 隐藏元素清洗:保存时
Convertor.write_content_to_file收到main_content_only=ai_targeted,即只提取页面主内容并清理隐藏元素——这正是"防 Prompt Injection"的落点:网页中藏于隐藏 DOM 节点里的指令性文本不会被喂给 AI。
--ai-targeted 在 CLI 中同样挂载于全部 6 个子命令(get/post/put/delete/fetch/stealthy-fetch),源码中每个命令函数都透传了该参数。
技能还给出了 Agent 使用 CLI 的三条操作守则(Notes 一节):读取临时文件后必须清理;优先用 .md 输出提升可读性,只有需要解析结构时才用 .html;用 -s CSS 选择器避免把巨大的 HTML 整块塞给模型,以显著节省 token。
四、CLI 速通:scrapling extract 命令组
scrapling extract 命令组让 AI(或人)不写一行代码即可下载并提取网页内容:
Usage: scrapling extract [OPTIONS] COMMAND [ARGS]...
Commands:
get Perform a GET request and save the content to a file.
post Perform a POST request and save the content to a file.
put Perform a PUT request and save the content to a file.
delete Perform a DELETE request and save the content to a file.
fetch Use a browser to fetch content with browser automation and flexible options.
stealthy-fetch Use a stealthy browser to fetch content with advanced stealth features.
4.1 用文件扩展名选择输出格式
最优雅的设计是输出格式由目标文件扩展名决定,以 get 为例:
# HTML 转 Markdown 保存(适合文档场景)
scrapling extract get "https://blog.example.com" article.md
# 原样保存 HTML
scrapling extract get "https://example.com" page.html
# 保存网页的纯文本版本
scrapling extract get "https://example.com" content.txt
此外,所有命令都支持 -s / --css-selector 只提取页面中匹配的部分(返回所有匹配项)。
4.2 命令选择与升级策略
| 场景 | 命令 |
|---|---|
| 简单网站、博客、新闻文章 | get |
| 现代 Web 应用、动态内容 | fetch |
| 受保护站点、Cloudflare、反爬系统 | stealthy-fetch |
技能给出的升级路径非常实用:不确定时先用 get,失败或返回空内容再升到 fetch,最后才用 stealthy-fetch——后两者速度几乎相同,升级不损失性能。
4.3 HTTP 请求类命令的关键选项
以下选项在 get/post/put/delete 四个命令间共享:
| 选项 | 输入类型 | 说明 |
|---|---|---|
-H, --headers |
TEXT | HTTP 头,格式 "Key: Value",可多次使用 |
--cookies |
TEXT | Cookie 字符串,格式 "name1=value1; name2=value2" |
--timeout |
INTEGER | 请求超时秒数(默认 30) |
--proxy |
TEXT | 代理 URL,格式 "http://username:password@host:port" |
-s, --css-selector |
TEXT | CSS 选择器,提取页面特定内容,返回所有匹配 |
-p, --params |
TEXT | 查询参数 "key=value",可多次使用 |
--follow-redirects / --no-follow-redirects |
None | 是否跟随重定向(默认 "safe":拒绝跳转到内网/私有 IP) |
--verify / --no-verify |
None | 是否校验 SSL 证书(默认 True) |
--impersonate |
TEXT | 模拟的浏览器;可以是单个(如 Chrome)或逗号分隔列表随机选择(如 Chrome, Firefox, Safari) |
--stealthy-headers / --no-stealthy-headers |
None | 使用隐蔽浏览器头(默认 True) |
--ai-targeted |
None | 仅提取主内容并清洗隐藏元素以供 AI 消费(默认 False) |
post 与 put 独享的选项:
| 选项 | 输入类型 | 说明 |
|---|---|---|
-d, --data |
TEXT | 表单数据字符串,如 "param1=value1¶m2=value2" |
-j, --json |
TEXT | JSON 数据字符串 |
其中 --impersonate 的"逗号分隔随机选择"在 cli.py 第 103–105 行有对应实现:参数含逗号时被拆分为列表传入 Fetcher,由库层随机挑选浏览器指纹:
if "impersonate" in kwargs and "," in (kwargs.get("impersonate") or ""):
kwargs["impersonate"] = [browser.strip() for browser in kwargs["impersonate"].split(",")]
典型示例:
# 基础下载
scrapling extract get "https://news.site.com" news.md
# 自定义超时
scrapling extract get "https://example.com" content.txt --timeout 60
# CSS 选择器只提取文章内容
scrapling extract get "https://blog.example.com" articles.md --css-selector "article"
# 携带 Cookie 请求
scrapling extract get "https://scrapling.requestcatcher.com" content.md --cookies "session=abc123; user=john"
# 添加 User-Agent
scrapling extract get "https://api.site.com" data.json -H "User-Agent: MyBot 1.0"
# 多个请求头
scrapling extract get "https://site.com" page.html -H "Accept: text/html" -H "Accept-Language: en-US"
4.4 浏览器类命令的关键选项
fetch 与 stealthy-fetch 共享以下选项:
| 选项 | 输入类型 | 说明 |
|---|---|---|
--headless / --no-headless |
None | 无头模式运行(默认 True) |
--disable-resources / --enable-resources |
None | 丢弃非必要资源以提速(默认 False) |
--network-idle / --no-network-idle |
None | 等待网络空闲(默认 False) |
--real-chrome / --no-real-chrome |
None | 启用本机已安装的 Chrome 实例(默认 False) |
--timeout |
INTEGER | 超时毫秒数(默认 30000) |
--wait |
INTEGER | 页面加载后的额外等待毫秒(默认 0) |
-s, --css-selector |
TEXT | CSS 选择器,返回所有匹配 |
--wait-selector |
TEXT | 继续执行前等待的 CSS 选择器 |
--proxy |
TEXT | 代理 URL |
-H, --extra-headers |
TEXT | 额外请求头 "Key: Value",可多次使用 |
--dns-over-https / --no-dns-over-https |
None | 经 Cloudflare DoH 解析 DNS,防止使用代理时的 DNS 泄漏(默认 False) |
--block-ads / --no-block-ads |
None | 拦截约 3,500 个已知广告/跟踪域名(默认 False) |
--executable-path |
TEXT | 自定义 Chromium 兼容浏览器可执行文件路径;未设置时回退到环境变量 SCRAPLING_EXECUTABLE_PATH |
--ai-targeted |
None | 仅提取主内容并清洗隐藏元素(默认 False),同时自动启用广告拦截 |
fetch 独有:--locale(指定用户区域,默认跟随系统);stealthy-fetch 独有:
| 选项 | 输入类型 | 说明 |
|---|---|---|
--block-webrtc / --allow-webrtc |
None | 完全阻断 WebRTC(默认 False) |
--solve-cloudflare / --no-solve-cloudflare |
None | 自动求解 Cloudflare 挑战(默认 False) |
--allow-webgl / --block-webgl |
None | 是否允许 WebGL(默认 True) |
--hide-canvas / --show-canvas |
None | 对 canvas 操作添加噪声(默认 False) |
典型示例:
# 等待 JS 加载完成且网络空闲
scrapling extract fetch "https://scrapling.requestcatcher.com/" content.md --network-idle
# 等待特定内容出现
scrapling extract fetch "https://scrapling.requestcatcher.com/" data.txt --wait-selector ".content-loaded"
# 可视化浏览器调试 + 屏蔽资源提速
scrapling extract fetch "https://scrapling.requestcatcher.com/" page.html --no-headless --disable-resources
# 绕过基础保护
scrapling extract stealthy-fetch "https://scrapling.requestcatcher.com" content.md
# 求解 Cloudflare 挑战并按选择器提取
scrapling extract stealthy-fetch "https://nopecha.com/demo/cloudflare" data.txt --solve-cloudflare --css-selector "#padded_content a"
# 代理匿名访问
scrapling extract stealthy-fetch "https://site.com" content.md --proxy "http://proxy-server:8080"
五、代码级能力:Fetchers 与三种会话模型
SKILL.md 明确指出:CLI 无法覆盖全部功能(也不能全部自定义),写代码是解锁 Scrapling 全部能力的唯一方式。技能给出四类基本用法,仓库的 examples/ 目录提供了对应的完整可运行脚本。
5.1 HTTP 请求与会话(Fetcher / FetcherSession)
from scrapling.fetchers import Fetcher, FetcherSession
with FetcherSession(impersonate='chrome') as session: # 使用最新版 Chrome 的 TLS 指纹
page = session.get('https://quotes.toscrape.com/', stealthy_headers=True)
quotes = page.css('.quote .text::text').getall()
# 或一次性请求
page = Fetcher.get('https://quotes.toscrape.com/')
quotes = page.css('.quote .text::text').getall()
配套示例 01_fetcher_session.py 展示了用单个 FetcherSession 连续抓取 quotes.toscrape.com 全部 10 页的场景,并标注适用边界:"static or semi-static sites, APIs, pages that don't require JavaScript"。
5.2 高级隐身模式(StealthyFetcher / StealthySession)
from scrapling.fetchers import StealthyFetcher, StealthySession
with StealthySession(headless=True, solve_cloudflare=True) as session: # 浏览器保持打开直到结束
page = session.fetch('https://nopecha.com/demo/cloudflare', google_search=False)
data = page.css('#padded_content a').getall()
# 一次性请求风格:为此请求开一个浏览器,结束后关闭
page = StealthyFetcher.fetch('https://nopecha.com/demo/cloudflare')
data = page.css('#padded_content a').getall()
03_stealthy_session.py 的注释补充了选型依据:StealthySession 基于 Patchright 隐身浏览器,自动绕过 Cloudflare Turnstile、指纹识别等反爬,"适用于防护严密的站点、Cloudflare 门控页面、会检测 Playwright 的站点"。
5.3 完整浏览器自动化(DynamicFetcher / DynamicSession)
from scrapling.fetchers import DynamicFetcher, DynamicSession
with DynamicSession(headless=True, disable_resources=False, network_idle=True) as session:
page = session.fetch('https://quotes.toscrape.com/', load_dom=False)
data = page.xpath('//span[@class="text"]/text()').getall() # 偏好 XPath 时
page = DynamicFetcher.fetch('https://quotes.toscrape.com/') # 一次性风格
data = page.css('.quote .text::text').getall()
02_dynamic_session.py 演示了 headless=False, disable_resources=True 的组合:浏览器窗口在整个会话期间保持打开以提升效率,同时跳过图片/字体加载提速,适合 JS 密集页与 SPA。
5.4 异步会话管理
FetcherSession 是上下文感知的,同一实例既可同步也可异步使用;异步场景还有 AsyncStealthySession、AsyncDynamicSession:
import asyncio
from scrapling.fetchers import FetcherSession, AsyncStealthySession, AsyncDynamicSession
async with FetcherSession(http3=True) as session: # 同步/异步两用
page1 = session.get('https://quotes.toscrape.com/')
page2 = session.get('https://quotes.toscrape.com/', impersonate='firefox135')
async with AsyncStealthySession(max_pages=2) as session: # 标签页池并发
tasks = [session.fetch(url) for url in ['https://example.com/page1', 'https://example.com/page2']]
print(session.get_pool_stats()) # 浏览器标签池状态(busy/free/error)
results = await asyncio.gather(*tasks)
async with AsyncDynamicSession(capture_xhr=r"https://api\.example\.com/.*") as session: # 捕获 XHR/fetch
page = await session.fetch('https://example.com')
for xhr in page.captured_xhr: # 每个都是完整 Response 对象
print(xhr.url, xhr.status, xhr.body)
六、Spider 框架:从单页到全站爬取
技能的 Spider 章节给出了一条完整的"爬虫演化路径":基础 Spider → 多会话 → 断点续爬 → 开发缓存 → 规则化爬取 → 平台模板。
6.1 基础 Spider:并发 + robots.txt
from scrapling.spiders import Spider, Request, Response
class QuotesSpider(Spider):
name = "quotes"
start_urls = ["https://quotes.toscrape.com/"]
concurrent_requests = 10
robots_txt_obey = True # 遵守 robots.txt 规则
async def parse(self, response: Response):
for quote in response.css('.quote'):
yield {
"text": quote.css('.text::text').get(),
"author": quote.css('.author::text').get(),
}
next_page = response.css('.next a')
if next_page:
yield response.follow(next_page[0].attrib['href'])
result = QuotesSpider().start()
print(f"Scraped {len(result.items)} quotes")
result.items.to_json("quotes.json")
仓库示例 04_spider.py 还演示了爬取完成后的实时统计输出:result.stats.items_scraped、requests_count、elapsed_seconds、requests_per_second,以及 to_json("quotes.json", indent=True) 导出。
6.2 多会话路由:一个 Spider 内混用多种 Fetcher
from scrapling.spiders import Spider, Request, Response
from scrapling.fetchers import FetcherSession, AsyncStealthySession
class MultiSessionSpider(Spider):
name = "multi"
start_urls = ["https://example.com/"]
def configure_sessions(self, manager):
manager.add("fast", FetcherSession(impersonate="chrome"))
manager.add("stealth", AsyncStealthySession(headless=True), lazy=True)
async def parse(self, response: Response):
for link in response.css('a::attr(href)').getall():
if "protected" in link:
yield Request(link, sid="stealth") # 受保护页面走隐身会话
else:
yield Request(link, sid="fast", callback=self.parse)
6.3 断点续爬与开发模式缓存
QuotesSpider(crawldir="./crawl_data").start()
按 Ctrl+C 会优雅暂停并自动保存进度;下次传入相同 crawldir 即从断点恢复。调试 parse() 逻辑时可给 Spider 类设置 development_mode = True:首次运行把响应缓存到磁盘,之后反复重跑不再访问目标服务器;缓存默认位于 .scrapling_cache/{spider.name}/,可用 development_cache_dir 覆盖——技能特别提醒"交付前务必关闭该开关"。
6.4 规则化与平台模板:CrawlSpider / SitemapSpider / FeedSpider / ShopifySpider
from scrapling.spiders import CrawlSpider, CrawlRule, LinkExtractor
class BlogCrawler(CrawlSpider):
name = "blog"
start_urls = ["https://example.com"]
def rules(self):
return [
CrawlRule(LinkExtractor(allow=r"/posts/"), callback=self.parse_post),
CrawlRule(LinkExtractor(allow=r"/page/\d+/")), # 跟翻页,无回调
]
async def parse_post(self, response):
yield {"title": response.css("h1::text").get()}
技能进一步指出(完整参考见 generic-templates.md):
SitemapSpider:复用同一套rules()API,抓取sitemap_urls、递归进入 sitemap index、把每个 URL 分发给规则;把robots.txtURL 直接放进sitemap_urls时,会自动解析其中的每条Sitemap:指令;XMLFeedSpider:设itertag为节点名并覆写parse_node(response, node),每个匹配节点以剥离命名空间的lxml元素传入(如node.findtext("title"));CSVFeedSpider:覆写parse_row(response, row),每行以字典传入,支持headers/delimiter/quotechar适配非标准格式。两者都能自动解压 gzip 流;ShopifySpider:子类化后设置target_website为商店域名,即可通过 Shopify 的 JSON API 提取全部商品变体,完全不碰 HTML(见 platform-templates.md)。
七、高级解析与导航:Agent 最常调用的一组 API
SKILL.md 的 Advanced Parsing 一节浓缩了 Selector 的选择与导航能力:
from scrapling.fetchers import Fetcher
page = Fetcher.get('https://quotes.toscrape.com/')
quotes = page.css('.quote') # CSS 选择器
quotes = page.xpath('//div[@class="quote"]') # XPath
quotes = page.find_all('div', {'class': 'quote'}) # BeautifulSoup 风格
quotes = page.find_all('div', class_='quote')
quotes = page.find_all(class_='quote')
quotes = page.find_by_text('quote', tag='div') # 按文本内容查找
quote_text = page.css('.quote')[0].css('.text::text').get()
quote_text = page.css('.quote').css('.text::text').getall() # 链式选择
first_quote = page.css('.quote')[0]
author = first_quote.next_sibling.css('.author::text') # 兄弟节点
parent_container = first_quote.parent # 父节点
similar_elements = first_quote.find_similar() # 相似元素
below_elements = first_quote.below_elements() # 下方元素
不发起请求也可以直接使用解析器:
from scrapling.parser import Selector
page = Selector("<html>...</html>") # 之后用法完全一致
八、references 文档体系:技能的"知识底座"
技能自称"几乎把官方文档全部内容封装成了 Markdown,未经用户允许不要查外部来源或上网搜索"。其知识底座就是 references/ 目录,SKILL.md 的 References 一节按主题组织了索引:
| 文档 | 覆盖主题 |
|---|---|
| mcp-server.md | MCP 服务器工具、持久会话管理、基于 CDP 的远程浏览器、鉴权与能力边界 |
| parsing/ | HTML 解析的一切(主类、选择器、自适应解析) |
| fetching/ | 抓取网站与会话持久化(静态/动态/隐身三类 Fetcher 选型) |
| spiders/ | Spider 编写、代理轮换与高级特性,遵循类 Scrapy 的组织格式 |
| integrations/scrapy.md | 通过 scrapling_response 装饰器在现有 Scrapy 项目中使用 Scrapling 解析 API |
| migrating_from_beautifulsoup.md | Scrapling 与 BeautifulSoup 的 API 快速对照 |
如果 references 内容显得不够新,技能最后一条指引指向仓库内官方文档目录 docs/(Markdown 全文,与本技能同仓库共存,如 mcp-server.md、migrating_from_beautifulsoup.md)。这套"技能主文档 → 专题 references → 仓库官方文档"的三级结构,保证了 Agent 从速查到深究都有据可依,且全部证据在本地仓库内闭环。
九、Guardrails:技能的合规护栏
SKILL.md 以 "Guardrails (Always)" 一节收尾,给出了五条始终生效的行为约束,这也是评估一个抓取类技能是否"可信任"的关键指标:
- 只抓取你有权访问的内容;
- 尊重 robots.txt 与 ToS——在 Spider 上设置
robots_txt_obey = True可自动强制执行; - 大规模爬取要加延迟(
download_delay),或设autothrottle_enabled = True让 Spider 按域名自适应选择延迟、并在网站开始拦截时自动退避; - 未经授权不绕过付费墙或鉴权;
- 绝不抓取个人/敏感数据。
这套护栏与 --ai-targeted 的防注入设计、内部参数校验(cdp_url/proxy auth 等)一起,构成了技能声明的"无需凭据、无需密钥、全程可控"的安全模型。
小结
SKILL.md 展示了"Agent 技能"的完整范式:frontmatter 声明触发条件与运行前置,正文给出从 Setup、CLI 命令组(含全部选项表与示例)、代码级 Fetchers/Spiders 用法到 references 知识索引的闭环路径,并以安全护栏收尾。对 AI Agent 而言,它把"何时用、怎么用、边界在哪"三个问题一次讲清;对开发者而言,--ai-targeted 的实现细节、impersonate 列表随机选择、多会话 Spider 与断点续爬等机制都可以在 scrapling/cli.py、scrapling/spiders/ 等源码中得到验证,配合 examples/ 中的四个可运行脚本,可以直接复现技能描述的每一项能力。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0622
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00