惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
Scott Helme
Scott Helme
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
P
Privacy & Cybersecurity Law Blog
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
Martin Fowler
Martin Fowler
Cisco Talos Blog
Cisco Talos Blog
罗磊的独立博客
MyScale Blog
MyScale Blog
博客园 - 【当耐特】
L
LangChain Blog
AWS News Blog
AWS News Blog
Security Latest
Security Latest
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
T
True Tiger Recordings
aimingoo的专栏
aimingoo的专栏
宝玉的分享
宝玉的分享
月光博客
月光博客
The Hacker News
The Hacker News
L
Lohrmann on Cybersecurity
The GitHub Blog
The GitHub Blog
Stack Overflow Blog
Stack Overflow Blog
S
SegmentFault 最新的问题
Recorded Future
Recorded Future
S
Security Archives - TechRepublic
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
Y
Y Combinator Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
博客园 - 聂微东
GbyAI
GbyAI
N
News and Events Feed by Topic
The Cloudflare Blog
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
博客园 - 三生石上(FineUI控件)
G
Google Developers Blog
A
About on SuperTechFans
K
Kaspersky official blog
NISL@THU
NISL@THU
S
Securelist
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX - 技术

V2EX

[AI Agent 智能体] 为什么我觉得 AI 真正的机会在“数字员工” 我自己感觉 codex 极大的扩展了个人的能力者不用说,但是用多了似乎也会有更多精神问题 把 10.8GB vLLM 镜像的 Pod Ready 从 4m35s 降到 14s: Hermes + SOCI lazy loading 实测 [程序员] 免费共享自己的 token 给大家一起用 极豹代理注册送 500M 动态住宅流量 静态住宅 3 刀起 [Codex] 好像没有人说 ChatGPT 账户登录的 Codex,不支持 GPT-5.3 Codex、GPT-5.4 等模型了 有没有一种工作能每天稳定收入 10-50 元 [分享创造] 谁还记得 K-MeleonCCF 网页浏览器 [分享发现] 从 0 开始 vibe coding,产品上线一个月 1500+用户,我对用户增长的一些思考 [Windows] 卡巴斯基安全软件和卡巴斯基标准版选择哪个? [程序员] 做了一个本地音频处理 + 伪知识库应用,强依赖本地 ASR 模型,这种项目开源有意义吗? [Linux] 国产 Touchpad 在 arch 下偶发无法用手势 [问与答] 有老哥用 Portainer 吗? webhook 调用成功但是没有重新部署,哪位有经验? [问与答] 现在比较可靠的国外手机卡选哪家? [路由器] MikroTik RB5009 在 2026 是否还值得入手 [硬件] 外置硬盘有什么散热的好方案,太热了 OpenCode 的压缩算法有建议的兄弟们吗?主要是写 LaTeX 论文。 今年 618 是凉了吗 现在各类所谓戒网瘾机构真的太吓人了. 芒果 TV 好像在送免费的 glm 5.1 和 ds v4? 有大佬知道开了 ChatGPT plus 年费的情况下,可以再升级成 pro 吗?想只升级一个月用用 [分享创造] [分享创造] 做了一个纯本地的加密日记本,已上架 Google Play android 大佬们,有什么隐藏开发者 usb 调试的方案吗? [Visual Studio Code] VSCode 1.122.0 可以离线使用 BYOK 分析下“女生拒绝你,却还和你保持联系”这种现象 [宽带症候群] 部分机场拦截 SSL 连接,导致很多非浏览器软件的代理链路残废 [推广] [DDShub.cc]呆呆兽 Claude/CodeX 中转站,内含免费测试金 [程序员] 个人 side project 的设计工具用什么 今天 CPA 升级到 7.1.25 Codex free 只有 4 个模型了, gpt-5.5 还在,大家是不是这样? mimo 昨天重置之后为什么现在这么慢,是我的错觉吗 AI 编程是否是一种无效内卷? 做了个 Chrome 插件 DemoAlias,录 demo 时一键替换敏感数据 [Pixel] 想要入手个带一个 Sim 卡的 pixel10 在那块买更好 觉得现在入手合适吗 Mac pro M1 磁盘扩容问题 小米 mimo 模式是不是挂了,现在无应答了 Gemini 最近是降智了吗? 3.5 快是快但是回答的质量变差了 [程序员] 祝贺我司,月收入突破万刀~ [分享发现] [翻译] 为什么我要用 C# 构建数据库引擎 [分享创造] 使用 Skills 结合 NotebookLM 一人运营十个视频号 用 AI 如何做出好看的前端页面? 记一次令我非常无语的面试 [分享创造] GEO Wiki: 一个面向生成式引擎优化的百科全书 [分享发现] 哪位友友有滴滴 V8 [问与答] 有没有听力不太好,用苹果 air pod 的 [分享创造] Obsidian-Extensions-Activity 0.2 - 更好用的三方插件管理工具 《HelloGitHub》第 122 期 有没有阿里云的大佬,来说说这是真的,还是销售吹的? [Android] 看到 k80 可以解锁了 原来大型活动和人流量较多的地方有警察执勤并不是中国特色 [开源实时数字人] 商业级部署演示! 同时我们消费级卡的部署链路已经通啦,欢迎提意见~ [问与答] AI 搜索互联网资讯有啥好用的接口没? [副业] 跟风开了一个自助洗车店 [macOS] Mac 盖上盖子使用之后,每次开屏屏幕会花,这个是硬件问题还是驱动问题呢? 闪电藤即将下线,虾传正式上线 [DeepSeek] 今天 deepseek 崩了吗 codex 土区的 plus,能改成美区的 pro 吗,会触发手机验证吗 大家用过 Qwen3.7-Max 吗,说是比 GLM5.1, KIMI2.6 还强,真的假的? anthropic 既然如此抵触 cn,但是多国语言又提供简体中文? [程序员] 英语学了几十年,还是听不懂说不出,大家都是怎么练听说的? [问与答] 感觉有点 ai 阳痿了,话说你们都用 ai 做了啥 分享一个我做的 Apple Watch 独立游戏——30 秒打地鼠 [OpenAI] 有时候感觉言出法随比使用 superpowers 更方便快捷 [问与答] 有没有云南的?昆明彩礼一般多少啊? [生活] 我的无奈,我很想她,但是这不再可能 朋友用美国身份注册了 claude 账号,在国内使用会被封吗 [职场话题] 北京裁员赔偿上限是多少啊 [推广] 做了一个 AI 中转站 Lumi,新用户可免费订阅,每周送 2 元额度 17PM 7999 PDD、淘宝百亿补贴 [问与答] 我的 codex app 为什么这样? [分享创造] 无聊开发了一个蚊子白噪音助眠小程序,适合烦朋友 [程序员] Cursor 滞销了, 60 刀套餐回归玩家首月给 70% off [Wunder] edge.v2ex.com/chat 20260527 功能更新 [问与答] 寻找 image2,香蕉, seedance2 的 api; 取精室是怎么个流程?取不出来怎么办? opencode go 里的 mimov2.5 系列额度涨了 [酷工作] Crypto CEX 诚聘 AI 测试工程师 薪水 20K-30K RMB 纯远程办公 [生活] 你有给自己买什么商业保险吗,或者说有必要买商业保险吗 claude 发的这句话啥意思,说我问的多了吗 Quantumult X 又更新了 配置优化更新了一下 [问与答] 不知道是不是错觉, typeless 在 Macbook 上的耗电感觉有点快 老婆送了我个 iPhone17 Pro Max 1T,但我更舍不得我的 iPhone13 巨魔 福利: 4 个住宅 IP 兑换码,新用户专享 mac 笔记本 500G,开发用,现在没有储存空间了怎么办 是否存在港卡以外的其他选择?比如东南亚各国? DigVPS 测评 - 100TB 新增美国 Los Angeles - Global Tier1 产品:这应该是 Y 系第一个美国产品?限量九折优惠中。 [程序员] OpenCode x MiMo V2.5 - 限时免费 现在的你有哪些骄傲和无奈呢 香港金管局:就内地投资者投资账户新增三项监管措施 开户核查倒查至 2023 年 1 月 做了个 macOS 网站与应用拦截器, 保持专注. [小米] 有没有安卓玩机高手请教点问题 我发现 it 类工作者是最严重的性压抑群体 包括我自己 it 类的工作者 [开源] 高阶魔方一键求解器 Cursor 还能买吗, 20 刀和 60 刀的大概能用多久? ai studio 被疯狂封 api 怎么回事 Zerolang 好像还没人讨论? [问与答] token 用量究竟是怎么算的? 香港众安银行开户返 300HKD+50USD 英伟达股票兑换券 活动时间 5.28 日至 7.1 日截止。 vibe coding 了个辅助颈腰椎病康复的体态相机小工具 有在用免费 VPS 的吗?可以当梯子用吗? 这个 sechub 网站搬运了很多 V 站的内容,站方能管到它吗
本地 vllm 部署 Qwen2.5-7B-Instruct 在 stream 模式下 tool_calls 参数 JSON 字符串未正常闭合
BenchWidth · 2025-05-16 · via V2EX

问题:在 stream 流模式下模型返回的数据中 function.arguments 的 JSON 是未闭合的状态,在非 stream 模式下返回正常

正确返回:{"tool_name": "get-user", "arguments": {"name": "张三"}}

错误返回:{"tool_name": "get-user", "arguments": {"name": "张三"}

只有本地部署的 Qwen2.5-7B-Instruct 有这个问题,换了其他参数大小的模型也还是会出现这个问题。我尝试过使用阿里百炼中的 Qwen2.5-7B-Instruct 测试,返回的 function.arguments 是正确的 JSON 格式

为了排除是软件包的问题,使用的是 curl 方式测试。问题出现概率几乎是 100%。

docker compose 部署配置

services:
  vllm-service:
    image: 172.16.99.11:5000/vllm/vllm-openai:latest
    runtime: nvidia
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    environment:
      - HF_ENDPOINT=https://hf-mirror.com
    volumes:
      - ~/.cache/huggingface:/root/.cache/huggingface
    ports:
      - "8000:8000"
    ipc: host
    command:
      - "--model"
      - "Qwen/Qwen2.5-7B-Instruct"
      - "--enable-auto-tool-choice"
      - "--tool-call-parser"
      - "hermes"

请求 Body


{
    "model": "Qwen/Qwen2.5-7B-Instruct",
    "messages": [
      {
        "role": "system",
        "content": "# 角色\n 你是一位高效的工具使用专家,擅长根据用户需求选择合适的工具并逐步调用,以解决复杂的问题。你能够利用一组工具逐步解决问题,并且每次工具调用的参数都基于前一次工具调用的结果。\n\n## 技能\n### 技能 1: 选择和调用工具\n- **任务**:根据用户的需求,选择合适的工具并逐步调用。\n  - 说明调用的工具名称及其功能。\n  - 解释为什么要选择这个工具以及它如何帮助解决问题。\n  - 如果需要调用多个工具,详细说明每个工具的调用顺序及其原因。\n\n### 技能 2: 参数设置与结果分析\n- **任务**:为每次工具调用设置合适的参数,并基于前一次工具调用的结果进行调整。\n  - 详细说明每次工具调用的参数设置。\n  - 分析前一次工具调用的结果,解释如何根据这些结果调整当前工具的参数。\n  - 提供每一步的详细输出,确保用户可以理解每一步的操作及其结果。\n\n### 技能 3: 总结和反馈\n- **任务**:总结提交给你的数据,并提供最终的解决方案或建议。\n  - 汇总所有工具调用的结果,形成一个完整的解决方案。\n  - 提供最终的总结报告,包括问题的解决过程、使用的工具及其效果。\n  - 如果有进一步的建议或改进措施,也一并在总结中提出。\n\n## 限制\n- 只回答与工具使用相关的问题,不涉及其他领域的内容。\n- 确保每次工具调用的参数设置合理,并基于前一次工具调用的结果进行调整。\n- 在调用工具时,必须详细说明调用的原因和预期结果。\n- 所有步骤和结果必须清晰地呈现给用户,确保用户能够理解整个过程。\n- 保持专业和客观的态度,避免过度复杂的解释,确保用户易于理解。\n"
      },
      {
        "role": "user",
        "content": "查询张三的用户信息"
      },
      {
        "role": "assistant",
        "content": "",
        "tool_calls": [
          {
            "id": "chatcmpl-tool-fba9a74429774828a76d5ca105cadd7f",
            "type": "function",
            "function": {
              "name": "mcp_sse_list_tools",
              "arguments": "{}"
            }
          }
        ]
      },
      {
        "role": "tool",
        "content": "MCP Server tools list: \n[{'name': 'get-student', 'description': '用户查询,使用用户姓名查询系统用户数据,包含用户的基础信息', 'parameters': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': '姓名'}}, 'required': ['name'], 'additionalProperties': False}}]",
        "tool_call_id": "chatcmpl-tool-fba9a74429774828a76d5ca105cadd7f"
      }
    ],
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "mcp_sse_list_tools",
          "description": "Fetch MCP Server tools list (Gets a list of MCP tools in addition to existing tools).",
          "parameters": {
            "properties": {},
            "required": [],
            "type": "object"
          }
        }
      },
      {
        "type": "function",
        "function": {
          "name": "mcp_sse_call_tool",
          "description": "Call MCP Server tool.",
          "parameters": {
            "properties": {
              "arguments": {
                "description": "Tool arguments (JSON string in the python dict[str, Any] format).",
                "type": "string"
              },
              "tool_name": {
                "description": "Name of the tool to execute.",
                "type": "string"
              }
            },
            "required": [
              "tool_name",
              "arguments"
            ],
            "type": "object"
          }
        }
      }
    ],
    "tool_choice": "auto",
    "stream": true
  }