news 2026/9/3 10:05:41

Qwen3.8-27B小模型Agent能力测试天梯全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qwen3.8-27B小模型Agent能力测试天梯全解析

最近在逛技术社区时,很多人都在讨论同一个话题:Qwen3.8-27B 这类的“小模型”到底能不能真正扛起 Agent 任务?大模型做 Agent 成本高、部署重、响应慢,于是 27B、32B 级别的开源模型成了本地化 Agent 方案的热门选择。但“能跑起来”和“能稳定完成任务”是两回事,参数规模缩水之后,模型在任务规划、工具调用、多轮记忆、指令遵循上的真实表现到底如何,不能靠感觉,得靠一套可量化的测试方法。这篇文章要做的,就是围绕“Qwen3.8-27B 小模型 Agent 能力测试天梯”,把这套测试思路、部署流程、接口调用、批量评测和性能观察完整梳理出来。

先给结论:这篇文章不是某个现成工具的下载安装教程,而是一套面向小模型 Agent 能力的评测体系搭建指南。你可以理解为一个“测试天梯”框架,用来回答三个问题:第一,Qwen3.8-27B 在本地部署后能不能稳定完成 Agent 任务;第二,它在工具调用、多轮对话、任务规划这些维度上分别能打多少分;第三,怎样用一套可复现的流程,把不同小模型的 Agent 能力放在同一张榜单上排序对比。

如果你是做 Agent 应用开发的,或者正在评估是否用 27B 级别的开源模型替换云端大模型接口,这篇文章可以直接收藏。下面按部署到评测的顺序展开,先看核心能力速览,再讲环境、启动、测试、API 和排查。

1. 核心能力速览

能力项说明
项目类型Qwen3.8-27B 小模型本地 Agent 能力评测体系与测试方法论
核心目标量化评估小模型在 Agent 任务中的表现,形成可对比的“天梯”排名
主要功能模型本地部署、Agent 基准任务测试、工具调用评测、多轮记忆评估、批量任务跑分、结果汇总
推荐硬件27B 级别模型建议 24GB 显存以上;量化版本可在 12-16GB 显存环境尝试
显存占用需按实际模型版本、量化精度和推理框架测试确认,不能一概而论
支持平台Linux / Windows / macOS(取决于推理框架),推荐 Linux + NVIDIA GPU
启动方式可选用 Ollama、vLLM、Transformers 等框架启动模型服务,再通过测试脚本发起评测
是否支持 API支持,通过 OpenAI 兼容接口或各框架原生 API 发起推理
是否支持批量任务支持,评测天梯本身就需要批量执行多个测试用例
适合场景小模型 Agent 能力评估、开源模型选型、Agent 应用开发前的模型能力摸底

从材料来看,Qwen3.8-27B 这个命名更多是社区讨论中的指代,核心关注点是 27B 级小模型在 Agent 领域的表现。因此,本文提到的“Qwen3.8-27B”默认指代该类开源小模型,实际部署时请以你下载的官方模型文件为准。

2. 适用场景与使用边界

2.1 适合谁用

这套“能力测试天梯”适合三类人。

第一类是 Agent 应用开发者。你正在选型底层模型,不想每个模型都花一周做业务验证,需要一套标准化评测用例快速比较模型 A 和模型 B 在工具调用、多轮记忆上的差距。

第二类是本地部署爱好者。显卡不是 A100,而是 4070、4090 这类消费级显卡,想确认 27B 模型量化后能不能跑、跑得稳不稳、显存会不会爆。

第三类是技术团队的架构或算法工程师。需要为内部 Agent 平台确定基础模型基线,并持续跟踪模型升级前后的能力变化。

2.2 能解决什么问题

这套测试天梯能解决的核心问题是“选型靠跑分,不靠感觉”。它把 Agent 能力拆分成任务理解、工具选择、参数生成、多轮记忆、结果反思等多个维度,每个维度用一批固定测试用例跑分,最后形成一张可横向对比的榜单。

2.3 不适合什么场景

它不适合判断模型在超大上下文任务中的表现,也不适合替代端到端的真实业务评测。27B 模型做 Agent 和 70B、几百 B 的模型在复杂推理上的差距是客观存在的,测试天梯的目的是揭示这个差距有多大,而不是掩盖它。

2.4 使用边界与合规提醒

在搭建和测试过程中,必须注意三点:

  • 部署环境仅限自有测试环境,不要将模型服务暴露到公网。
  • 测试素材和用户输入不得包含个人隐私信息、版权材料和未授权数据。
  • 如果后续将 Agent 能力接入生产系统,务必确认数据安全策略和合规评估。

3. 环境准备与前置条件

3.1 硬件要求

27B 级别模型在 FP16 精度下参数占用约 54GB,直接放到显存里跑需要 60GB 以上显存,这对普通用户来说不现实。实际上更常见的是用 4bit 或 8bit 量化版本,4bit 量化后参数占用约 15-16GB,8bit 量化约 27-28GB,再加上推理时的 KV Cache 和激活值,建议显存配置如下:

部署方式最低显存建议推荐显存
4bit 量化 + 短上下文推理16GB24GB
8bit 量化 + 中短上下文24GB32GB 或以上
FP16 全精度64GB 或以上80GB(A100/H100 级别)

这里特别说明:显存占用与上下文长度、批量大小、并发数直接相关,以上数字是部署规划参考,实际以任务管理器或 nvidia-smi 监控结果为准。

3.2 软件依赖准备

无论用哪个推理框架启动模型服务,系统层面都需要准备以下内容:

  • 操作系统:Linux(Ubuntu 20.04 或更新版本)优先,Windows 可用 WSL2 或者原生 Docker。
  • Python 3.10 或 3.11(主流推理框架均已适配)。
  • NVIDIA GPU 驱动和 CUDA 环境(如果使用 NVIDIA GPU)。
  • 模型文件:从 Hugging Face 或 ModelScope 下载 Qwen3.8-27B 的官方权重或 GGUF 量化文件。
  • 推理框架:Ollama、vLLM、llama.cpp 或 Transformers,任选其一。

3.3 端口规划

模型服务、批量评测脚本、WebUI 会分别占用端口。建议规划为:

服务默认端口说明
Ollama 原生服务11434Ollama 默认端口
OpenAI 兼容接口8000vLLM 常用端口
WebUI / 测试面板7860Gradio 常用端口
批量评测任务监听9000自定义服务端口

启动前先检查端口占用:

# 检查 11434 端口是否被占用 lsof -i :11434 # 或 netstat -ano | grep 11434

4. 安装部署与启动方式

4.1 方案一:Ollama 快速部署

Ollama 是目前最容易上手的小模型本地部署方式,对 GGUF 量化模型支持很好。安装命令:

# Linux / macOS curl -fsSL https://ollama.com/install.sh | sh # Windows 用户从 Ollama 官网下载安装包即可

安装完成后,拉取 Qwen3.8-27B 的量化模型:

# 拉取 4bit 量化版本,具体模型标签以官方仓库为准 ollama pull qwen3.8:27b-q4_K_M

启动服务:

# Ollama 服务会在后台自动启动,监听 11434 端口 ollama serve

验证模型是否可用:

ollama run qwen3.8:27b-q4_K_M "你好,请介绍一下你自己"

如果能看到完整回复,说明模型服务已经正常启动。

4.2 方案二:vLLM 部署(适合高并发批量评测)

如果测试天梯需要并发执行大批量 Agent 任务,vLLM 是更稳的选择,它对吞吐量的优化明显好于 Ollama。先安装依赖:

pip install vllm

启动 OpenAI 兼容服务:

python -m vllm.entrypoints.openai.api_server \ --model ./Qwen3.8-27B \ --quantization awq \ --dtype half \ --max-model-len 8192 \ --gpu-memory-utilization 0.9 \ --port 8000

参数说明:

  • --model:本地模型路径或者 Hugging Face 模型名。
  • --quantization:如果使用 AWQ/GPTQ 量化模型,需要指定对应量化格式。
  • --max-model-len:最大上下文长度,按显存情况调整。
  • --gpu-memory-utilization:允许 vLLM 使用的显存比例。
  • --port:服务端口。

启动后访问http://127.0.0.1:8000/v1/models可以看到模型列表。

4.3 方案三:Transformers 脚本加载

如果需要评测过程中直接访问模型的 hidden state 或做更细粒度的行为分析,用 Transformers 加载更灵活:

from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "Qwen/Qwen3.8-27B" tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto", trust_remote_code=True )

准备好之后,可以通过model.generate()直接做测试,也可以在本地起一个 Flask/FastAPI 服务把推理封装成 API。

5. 功能测试与效果验证

Agent 能力测试天梯的核心是评测用例设计。下面给出一套从基础到进阶的测试维度和用例模板。

5.1 测试维度与指标

测试维度考察内容评分标准
任务理解模型能否准确解析用户指令意图输出是否贴合指令、有无误解
工具选择面对多个可用工具时能否选对工具名是否准确
参数生成能否把用户需求转换为工具参数参数完整性、类型正确性
多轮记忆多轮对话后能否记住关键信息回答是否依赖上文信息
任务规划复杂任务能否拆解成多步执行步骤是否合理、是否遗漏关键步骤
错误恢复工具报错后能否自我修正能否二次调用或换一种方案
格式遵循能否按要求的 JSON 或 Markdown 输出输出能否被程序解析

5.2 基础测试:单轮工具调用

这是 Agent 最基础的能力。测试用例模板:

{ "query": "帮我查询明天北京到上海的航班,出发时间在上午十点之后", "tools": [ {"name": "get_flight_info", "description": "查询航班信息", "parameters": {"origin": "string", "destination": "string", "date": "string"}}, {"name": "get_weather", "description": "查询天气", "parameters": {"city": "string"}} ], "expected_tool": "get_flight_info", "expected_parameters": { "origin": "北京", "destination": "上海", "date": "明天" } }

评测时把这段 JSON 组装成系统提示词和用户消息发送给模型,检查模型返回的 tool_calls 是否符合预期。

在 Ollama 中可以用 curl 直接测试:

curl -X POST http://127.0.0.1:11434/api/chat \ -H "Content-Type: application/json" \ -d '{ "model": "qwen3.8:27b-q4_K_M", "messages": [ {"role": "system", "content": "你是一个智能助手,可以通过工具完成任务。"}, {"role": "user", "content": "帮我查询明天北京到上海的航班,出发时间在上午十点之后"} ], "tools": [ {"type": "function", "function": {"name": "get_flight_info", "description": "查询航班信息"}} ] }'

判断标准:

  • 成功:返回的 tool_calls 中包含get_flight_info,参数包含北京、上海、日期。
  • 失败:模型直接编造航班信息而没有调用工具。
  • 部分成功:调用了工具但参数缺失或错误。

5.3 进阶测试:多轮记忆与上下文追踪

Agent 场景中多轮记忆非常关键。测试用例设计:

用户:我叫张三,我的订单号是 20240615。 助手:好的,已记录您的订单信息。 用户:帮我查一下这个订单的物流状态。 模型预期:应调用查询物流工具,并使用订单号 20240615。

评分要点:

  • 第一轮信息是否被正确存储。
  • 第二轮提问时模型是否从上下文中提取订单号。
  • 如果上下文很长(比如超过 4K token),模型是否依然能准确提取。

5.4 进阶测试:复杂任务规划

给模型一个复合任务,比如:

“帮我整理本周项目周报,包括三个部分:本周完成事项、风险与问题、下周计划。请先列出整理大纲,再等待我的补充信息。”

观察模型是否:

  • 一次性输出完整周报而非拆解步骤。
  • 是否理解“先列出大纲,再等待补充”的指令顺序。
  • 输出格式是否结构化。

Agent 场景中一个常见的失败模式是模型把大任务一次性完成,忽略了用户要求的中间交互。测试天梯要把这类行为记录下来,单独打一个“任务规划合理性”的分。

5.5 批量测试:评测脚本框架

单条测试不够,天梯要做批量评测。下面是一个简化版批量评测脚本:

import json import requests import time API_URL = "http://127.0.0.1:8000/v1/chat/completions" TEST_CASES = "test_cases.jsonl" RESULTS = "results.jsonl" def run_single_test(case): payload = { "model": "qwen3.8-27b", "messages": case["messages"], "tools": case.get("tools", []), "temperature": 0.2, "max_tokens": 1024 } try: response = requests.post(API_URL, json=payload, timeout=120) response.raise_for_status() return response.json() except Exception as e: return {"error": str(e)} def main(): with open(TEST_CASES, "r", encoding="utf-8") as f: cases = [json.loads(line) for line in f if line.strip()] with open(RESULTS, "w", encoding="utf-8") as out: for idx, case in enumerate(cases): print(f"running case {idx + 1}/{len(cases)}") result = run_single_test(case) out.write(json.dumps({"case_id": case.get("id"), "result": result}, ensure_ascii=False) + "\n") time.sleep(0.5) # 防止请求过快 if __name__ == "__main__": main()

批量评测输出的results.jsonl需要再做一层自动评分,根据每条用例的预期输出和模型实际输出计算得分。

6. 接口 API 与批量任务

6.1 OpenAI 兼容接口调用

vLLM 启动后,默认提供 OpenAI 兼容的/v1/chat/completions接口。用 Python 请求:

import requests url = "http://127.0.0.1:8000/v1/chat/completions" payload = { "model": "qwen3.8-27b", "messages": [ {"role": "system", "content": "你是一个具备工具调用能力的 Agent 助手。"}, {"role": "user", "content": "帮我查询上海的天气,然后告诉我适合穿什么衣服。"} ], "tools": [ { "type": "function", "function": { "name": "get_weather", "description": "查询指定城市的当前天气", "parameters": { "type": "object", "properties": { "city": {"type": "string", "description": "城市名称"} }, "required": ["city"] } } } ], "temperature": 0.3, "max_tokens": 512 } response = requests.post(url, json=payload, timeout=180) print(response.json())

如果正常,返回内容中的message.tool_calls字段会包含工具名称和参数。

6.2 评测脚本接入批量任务队列

实际的测试天梯不可能只跑十几条用例,可能需要几百条。建议设计一个简单的批量任务队列:

环节说明
用例文件test_cases/ 目录下按功能模块拆分 jsonl 文件
任务调度Python 脚本按文件顺序逐条执行
结果输出results/ 目录下每条用例一个 json 文件
日志记录logs/ 目录下记录成功、失败、超时和重试次数
失败重试网络超时或服务 5xx 时自动重试 3 次,间隔 5 秒

示例配置:

{ "input_dir": "./test_cases", "output_dir": "./results", "log_dir": "./logs", "api_base": "http://127.0.0.1:8000/v1", "model_name": "qwen3.8-27b", "max_retries": 3, "timeout": 120, "concurrency": 1 }

批量任务中一个值得注意的点是并发数。如果你的显存只够跑单并发推理,脚本里就把并发数设为 1;如果显存充足或使用 vLLM,可以提高到 4-8 并发。建议从低到高逐级测试,找到当前环境下吞吐量和稳定性的平衡点。

6.3 批量评测结果格式

每条测试用例的结果建议统一为以下格式:

{ "case_id": "tool_call_001", "category": "tool_selection", "expected_tool": "get_flight_info", "actual_tool": "get_flight_info", "expected_parameters": "{\"origin\": \"北京\"}", "actual_parameters": "{\"origin\": \"北京\", \"destination\": \"上海\"}", "score": 1, "latency_ms": 3210, "error": null }

score字段可以按规则自动计算:工具名正确得 0.5 分,参数完全匹配再得 0.5 分,累加得到单条用例得分。最终你可以在汇总脚本中按 category 聚合,输出每个维度的平均分,形成“天梯榜单”。

7. 资源占用与性能观察

7.1 显存观察方法

启动模型服务后,用 nvidia-smi 监控显存:

# 监控显存使用情况,每 2 秒刷新一次 watch -n 2 nvidia-smi

主要看两个数字:

  • Memory-Usage:当前显存使用量。
  • GPU-Util:GPU 计算利用率。

如果模型服务刚启动显存就接近上限,说明模型权重和 KV Cache 的预分配已经占满显存,批量任务和长上下文会导致 OOM。这时候需要降低--max-model-len或者换更小位数的量化版本。

7.2 CPU 推理与 GPU 推理的差异

27B 模型不建议 CPU 推理做 Agent 评测,主要原因在于 Agent 任务通常需要多轮调用和工具拼接,单次推理时间过长会极大影响整体评测时间。如果确实没有 GPU,可以准备 32GB 以上内存尝试 llama.cpp 的 CPU 模式,但要做好单次生成耗时几十秒甚至几分钟的准备。

7.3 影响性能的关键因素

因素影响
上下文长度越长,KV Cache 占用越高,推理越慢
批量大小批量越大,吞吐量越高,单请求延迟可能变高
量化精度4bit 比 8bit 显存占用低,但复杂推理准确率可能略有下降
输出长度输出 token 数直接决定单次请求耗时
并发请求数并发过高会导致显存 OOM 或排队时间增加

7.4 降低显存占用的方法

  • 使用 4bit GGUF 或 AWQ 量化模型。
  • 限制最大上下文长度,例如从 8192 降到 4096。
  • 降低--gpu-memory-utilization,为并发请求预留空间。
  • 关闭不需要的 WebUI 进程,释放显存。
  • 如果使用 Transformers,实验torch.cuda.empty_cache()是否有助于回收碎片显存。

8. 常见问题与排查方法

在跑“Qwen3.8-27B 小模型 Agent 能力测试天梯”时,最容易踩的坑集中在这几个环节。

问题现象可能原因排查方式解决方案
启动服务后页面或接口无响应端口被占用、模型未加载完成、依赖缺失检查服务日志、检查端口占用换端口 / 等待模型加载完成 / 按报错补装依赖
显存不足导致进程被 kill模型精度过高、上下文过长、并发请求过多nvidia-smi 查看显存换量化模型 / 降低上下文长度 / 减少并发
模型回答不使用工具而是直接编造提示词中工具描述不清晰、模型指令遵循能力弱检查返回的 message 内容优化工具描述 / 增加 few-shot 示例 / 换更大模型
工具调用参数格式不对模型输出 JSON 不合法或字段名错误打印原始 tool_calls在提示词中给出参数示例 / 使用结构化输出约束
批量任务卡在某一条用例该用例超时或模型输出过长查看日志,定位卡住的 case_id给单条请求设置超时时间 / 捕获异常继续下一批
API 调用返回 401 / 404服务地址或模型名错误访问 /v1/models 确认修正 model 字段和服务地址
多轮对话中模型忘记上文信息上下文长度被截断、消息格式不正确检查 messages 是否包含完整历史确认 max-model-len 足够 / 拼接完整对话历史

另外有两个容易被忽视的问题:

第一个是the agent execution provider did not respond in time这类报错,在 Agent 开发框架中很常见,本质是模型推理超时。排查思路是看模型单次推理耗时,如果确实是模型太慢,要么换量化精度更低的版本,要么提高推理服务超时阈值。

第二个是“subagent 作为另类 tool 调用”的设计。在多 Agent 设计里,主从模式中的 subagent 本质可以被视为一种特殊 tool。测试时要注意:如果评测用例要求模型调用 subagent 工具,模型需要理解这个工具的入参和出参语义,这比普通工具调用更难,得分往往更低,属于正常现象。

9. 最佳实践与使用建议

9.1 第一轮测试用最小配置

不要一上来就跑几百条用例。先用 20 条代表性用例跑通完整链路:加载模型、发起请求、解析输出、落盘结果。确认流程没问题后,再扩大到完整测试集。

9.2 保留一套最小可运行配置

把模型文件、推理服务启动命令、测试用例集、评分脚本放在固定目录结构里:

agent-bench/ ├── models/ # 模型权重或 GGUF 文件 ├── test_cases/ # 测试用例,按维度拆分 ├── scripts/ # 启动和评测脚本 ├── results/ # 评测结果 └── logs/ # 运行日志

这样每次评测都能复现,也方便换模型后重新跑同一套天梯。

9.3 批量任务必须加日志和失败重试

批量评测跑一两个小时,中间只要有一条用例超时,整个脚本就可能卡死。务必做到:每条用例独立记录、异常捕获、自动重试、超时跳过。

9.4 Agent 安全机制要先行

测试天梯应该包含“安全拒绝”类用例,例如要求模型执行越权操作、泄露提示词、输出敏感信息。正规的小模型 Agent 评测,不仅要看能力上限,还要看安全边界是否可靠。如果 Qwen3.8-27B 在安全用例上频繁失分,这说明即使能力分再高,也不适合直接进入生产环境。

9.5 结果解释要结合场景

同样一个模型,在“单轮工具调用”上得分高,不代表它在“复杂业务多 Agent 协作”中表现好。天梯榜单的价值在于横向对比,但不能脱离具体业务场景做绝对判断。最终选型还是要用真实业务场景做小规模验证,再用天梯榜单做长期跟踪。

10. 总结与下一步

“Qwen3.8-27B 小模型 Agent 能力测试天梯”值得尝试的核心点在于:用一套可复现的评测流程,把模型在 Agent 任务上的能力差异显性化。你不能光看这个模型在通用对话测试里得分高就觉得它能做 Agent,必须单独测试工具调用、多轮记忆和任务拆解。

最先要验证的功能是单轮工具调用。这是 Agent 任务的基础能力,如果模型连工具名和参数都生成不准,后面的多轮记忆和任务规划都不用测。测试时重点观察返回的 tool_calls 结构和参数准确性,再用 5 到 10 条变体用例确认其稳定性。

最容易踩的坑有三个:一是显存估算不足,模型一加载直接 OOM;二是批量评测脚本没有超时和重试,一条超时拖垮整个任务;三是模型输出格式不统一,导致评分离散度大、结果不可比。

后续可以直接扩展的方向有三个:一是把评测维度扩展到更多 Agent 框架,比如 LangChain、AutoGPT 或自研 Agent 框架,对比不同框架对同一个小模型能力的影响;二是增加中文复杂指令集和领域专用工具集,让天梯更贴近你实际的应用场景;三是在天梯结果基础上,尝试让 Qwen3.8-27B 与更大的 70B 模型做对比测试,量化“小模型”在 Agent 任务上的真实性价比。

对正在做 Agent 应用选型的团队来说,这套小模型 Agent 能力测试天梯不是终点,而是一套持续使用的评估基线。建议收藏备用,等你有了一批想测的模型,按这套流程跑一遍,结果会比任何宣传文案都有说服力。

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

Awesome Privacy 数据压缩演讲:技术专家的分享

Awesome Privacy 数据压缩演讲:技术专家的分享 在当今数字化时代,数据隐私与安全已成为备受关注的焦点。Awesome Privacy 作为一个专注于隐私和安全的精选软件与服务列表项目,在数据处理方面面临着诸多挑战,其中数据压缩便是关键…

作者头像 李华
网站建设 2026/9/3 10:03:12

混合交直流微电网Simulink仿真:从架构设计到控制策略实战解析

简介:本资源是一套面向电力系统工程师、高校研究人员及研究生的混合交直流与直流微电网Simulink仿真测试系统,聚焦微电网建模、控制策略验证与电能质量分析等核心研究需求。压缩包共22个文件,含3个可直接运行的.slx主模型(覆盖不同…

作者头像 李华
网站建设 2026/9/3 10:00:55

大模型“第二股”新叙事:从技术领先到商业工程化

最近讨论圈里热度很高的一条消息,是月之暗面(Moonshot AI)与 IPO 的传闻。很多开发者第一次听到这个名字,是因为 Kimi 智能助手。又一家大模型公司可能要走向公开市场,这自然让人想起资本市场常说的“大模型第二股”。…

作者头像 李华
网站建设 2026/9/3 9:59:30

词向量语义计算与可视化:从Word2Vec到t-SNE的NLP实践

简介:本资源是一个面向深度学习初学者与本科毕业设计学生的Python文本分析工具包,聚焦词嵌入驱动的语义计算任务,解决自然语言处理中语义距离度量、认知倾向建模及词典动态构建等核心问题。项目以cntext库为核心,完整实现语义投影…

作者头像 李华
网站建设 2026/9/3 9:57:52

AI Agent设计原理与工程实践:从Demo到落地的关键指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 9:57:47

Anthropic押注5000亿美元编程市场:AI编程工具链重构软件生产

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华