CTF 快速文件共享:三种方案对比
CTF 比赛中,发现漏洞后要立刻把 flag 截图、配置文件传给队友,但每次都要琢磨怎么传。本文对比 netcat、Python HTTP 服务器和 SimpleDrop,帮你把时间花在解题上。
原则是用最简单工具匹配场景,零时间花在文件传输上。
#开发者 #工具 #CTF #文件共享 #netcat #SimpleDrop #PythonHTTPServer #加密
@DevToolboxHub
CTF 比赛中,发现漏洞后要立刻把 flag 截图、配置文件传给队友,但每次都要琢磨怎么传。本文对比 netcat、Python HTTP 服务器和 SimpleDrop,帮你把时间花在解题上。
1. netcat — 零配置传输
同一网络两台机器之间快速传单个文件,nc 预装在多数 Linux 上。接收方监听:nc -l -p 1234 > received_flag.txt;发送方连接:nc <receiver_ip> 1234 < flag.txt。无加密,只适合隔离 CTF 网络。需要加密可用 ncat --ssl 或 openssl s_client。
2. Python HTTP 服务器 — 团队中心
多队友需要同一资源时,一行命令建 HTTP 服务器:python3 -m http.server 8000。队友浏览器即可下载文件。适合分词表、脚本、收集的制品。默认下载只读,不能上传。
3. SimpleDrop — 速度优先
跨团队、跨机器分享编译的 exploit、截图或压缩包时,netcat 和 HTTP 都有摩擦。SimpleDrop 无需账号、无需设置,上传即得加密链接,任何系统浏览器可用。适合二进制、截图、存档。
快速对比
netcat:零设置、无加密、隔离网络单次传输
Python HTTP:一行命令、无加密、团队资源分发
SimpleDrop:零设置、E2EE、跨团队快速分享
原则是用最简单工具匹配场景,零时间花在文件传输上。
#开发者 #工具 #CTF #文件共享 #netcat #SimpleDrop #PythonHTTPServer #加密
@DevToolboxHub
indian-fakedata:为印度市场生成真实的模拟人口数据
开发面向印度市场的应用时常需要模拟人口数据用于测试、UI预览或训练ML模型,但标准生成器随机组合姓名、宗教、地区,容易产生不合逻辑的档案。indian-fakedata 基于印度人口普查、NFHS-5等真实数据源,生成统计上合理的人口档案,支持按宗教、种姓、邦、性别、年龄、教育、职业等维度过滤,输出 JSON/JSONL/CSV 格式。
工具已发布到 npm 和 PyPI,可直接集成到测试或ML工作流中。
#开发者 #工具 #IndianFakedata #Nodejs #Python #MockData #CLI #Testing #DataGeneration
@DevToolboxHub
开发面向印度市场的应用时常需要模拟人口数据用于测试、UI预览或训练ML模型,但标准生成器随机组合姓名、宗教、地区,容易产生不合逻辑的档案。indian-fakedata 基于印度人口普查、NFHS-5等真实数据源,生成统计上合理的人口档案,支持按宗教、种姓、邦、性别、年龄、教育、职业等维度过滤,输出 JSON/JSONL/CSV 格式。
安装
Node.js:npm install @abhay557/indian-fakedata(需 Node >=18)
Python:pip install indian-fakedata(需 Python 3.8+)
CLI 用法indian-fakedata [options],常用选项:--count--output--format (json/jsonl/csv)--seed
过滤维度:--religion--state--gender--caste--socialCategory--areaType--minAge/maxAge--education--occupation--maritalStatus
Enrichment 层--outcomes添加信用分、健康风险等;--narrative生成贷款申请、病历等文本;--persona输出LLM可用角色设定。
程序化API
Node:import { generate, generateEnriched } from '@abhay557/indian-fakedata'
Python:from indian_fakedata import generate, generate_enriched
数据来源: Census 2011, NFHS-5, MSME Census, UIDAI, CSDS/Lokniti 等
工具已发布到 npm 和 PyPI,可直接集成到测试或ML工作流中。
#开发者 #工具 #IndianFakedata #Nodejs #Python #MockData #CLI #Testing #DataGeneration
@DevToolboxHub
Schemaboi:将自包含模式嵌入文件头实现数据兼容演进
受 HTML 和 HTTP 长久适应能力的启发,Seph Gentle 提出将自包含模式(schema)直接嵌入文件头,使数据无需外部定义即可始终可读。该实验性格式将向前、向后和侧向兼容性作为首要目标,允许数据格式在无需中央协调、不丢失数据的前提下持续演进。
Schemaboi 旨在解决当前应用之间数据互操作的僵化问题,让传统本地软件与云端协作之间的“虚假二选一”不再成立。通过将模式固化在数据自身结构中,任何支持该格式的工具都能理解不同版本的数据,从而推动更健壮、可持续的数据格式生态。
#开发者 #工具 #Schemaboi #SephGentle #数据兼容性 #本地优先 #自描述格式
@DevToolboxHub
受 HTML 和 HTTP 长久适应能力的启发,Seph Gentle 提出将自包含模式(schema)直接嵌入文件头,使数据无需外部定义即可始终可读。该实验性格式将向前、向后和侧向兼容性作为首要目标,允许数据格式在无需中央协调、不丢失数据的前提下持续演进。
Schemaboi 旨在解决当前应用之间数据互操作的僵化问题,让传统本地软件与云端协作之间的“虚假二选一”不再成立。通过将模式固化在数据自身结构中,任何支持该格式的工具都能理解不同版本的数据,从而推动更健壮、可持续的数据格式生态。
#开发者 #工具 #Schemaboi #SephGentle #数据兼容性 #本地优先 #自描述格式
@DevToolboxHub
ECMAScript 2026 新增 7 个实用 API
ECMAScript 2026 第 17 版规范于 2026 年 6 月 30 日获批,引入多项替换日常手写模式的语言级 API,无需框架或架构改动,适用于前端、Node.js 服务、库、数据管道和开发者工具。
建议优先采用:Map.getOrInsertComputed() 用于缓存/分组,Array.fromAsync() 用于有限异步数据源,Uint8Array 编码方法用于 API 和加密工作。使用前请检查目标环境支持情况,必要时提供 polyfill。
#开发者 #工具 #ECMAScript2026 #JavaScript #ES2026 #ArrayFromAsync #MapGetOrInsert #IteratorConcat #ErrorIsError #MathSumPrecise #Uint8Array #Base64 #Hex #JSON
@DevToolboxHub
ECMAScript 2026 第 17 版规范于 2026 年 6 月 30 日获批,引入多项替换日常手写模式的语言级 API,无需框架或架构改动,适用于前端、Node.js 服务、库、数据管道和开发者工具。
Array.fromAsync() – 将异步可迭代对象直接转为数组,支持映射函数,取代手写 for await...of 循环。适用于分页 API、数据库游标、流式记录等。
Map.prototype.getOrInsert() / getOrInsertComputed() – 在 Map 中获取或插入默认值,后者仅在键缺失时计算值,简化缓存、分组、容器等模板代码。WeakMap 也有等价方法。
Iterator.concat() – 惰性连接多个同步可迭代对象,避免展开成数组并立即消耗所有内存,按需取值,适用于大型数据源的组合与提前停止场景。
Error.isError() – 跨 realm 检测真 Error 对象,解决 instanceof 在 iframe、不同 VM 环境下的不可靠问题,适用于组件库、插件系统、测试运行器等。
Math.sumPrecise() – 更精确地求和浮点数,减少累加误差,尤其适合混合量级数据、统计、科学计算。注意不是十进制算术,货币仍建议用整数分单位。
Uint8Array 原生 Base64 与十六进制方法 – toBase64() / fromBase64() / toHex() / fromHex(),替代手写 btoa/atob 或第三方库,用于 API 载荷、加密、文件哈希等。
JSON 源文本访问与 rawJSON – JSON.parse() reviver 新增 context.source 获取原始 JSON 源文本,配合 JSON.rawJSON() 在序列化时保留大整数或高精度数值,解决 Number 精度丢失问题。
建议优先采用:Map.getOrInsertComputed() 用于缓存/分组,Array.fromAsync() 用于有限异步数据源,Uint8Array 编码方法用于 API 和加密工作。使用前请检查目标环境支持情况,必要时提供 polyfill。
#开发者 #工具 #ECMAScript2026 #JavaScript #ES2026 #ArrayFromAsync #MapGetOrInsert #IteratorConcat #ErrorIsError #MathSumPrecise #Uint8Array #Base64 #Hex #JSON
@DevToolboxHub
Google 联合发布 ARD 规范,赋能 AI 代理资源发现
Google 与行业合作伙伴共同宣布 Agentic Resource Discovery (ARD) 规范,这是一项针对 AI 代理的开放标准,用于发布、发现和验证外部工具、API 及服务。当前 AI 代理在跨组织边界调用资源时缺乏统一发现机制,ARD 填补了这一空白。
ARD 在现有执行协议(如 MCP 和 OpenAPI)之上,引入基于目录和注册表的发现层,支持动态能力发现,并强调信任与互操作性。开发者可通过该标准让代理自动查找和验证可用的 AI 工具与接口,无需硬编码地址或手动集成。
#开发者 #工具 #ARD #AI代理 #开放标准 #Google #MCP #OpenAPI #资源发现
@DevToolboxHub
Google 与行业合作伙伴共同宣布 Agentic Resource Discovery (ARD) 规范,这是一项针对 AI 代理的开放标准,用于发布、发现和验证外部工具、API 及服务。当前 AI 代理在跨组织边界调用资源时缺乏统一发现机制,ARD 填补了这一空白。
ARD 在现有执行协议(如 MCP 和 OpenAPI)之上,引入基于目录和注册表的发现层,支持动态能力发现,并强调信任与互操作性。开发者可通过该标准让代理自动查找和验证可用的 AI 工具与接口,无需硬编码地址或手动集成。
#开发者 #工具 #ARD #AI代理 #开放标准 #Google #MCP #OpenAPI #资源发现
@DevToolboxHub
免费浏览器端YAML/K8s/Terraform验证器
DevOps工程师常把YAML或Terraform配置粘贴到在线验证器,但配置文件可能包含内部信息,发送到未知服务器有隐私风险。一个完全在浏览器本地运行的验证器打破了这一习惯——配置数据从不离开你的设备。
这套工具支持三种常用格式:YAML(抓取缩进与结构错误)、Kubernetes清单(schema感知验证,提前捕获apiVersion错误)、Terraform/HCL(语法结构检查)。全部在浏览器端JavaScript解析,无需上传、无需注册、不经过服务器。断开WiFi依然可用,打开开发者工具的网络面板也看不到任何外发请求。
部分底层工具已开源,包含CLI和只读API用于错误提示数据。客户端工具有其局限——无法查询集群实时状态,schema验证不等于策略检查——但对于“缩进是否敲错”这类问题,无需网络请求即可得到答案。
#开发者 #工具 #YAML #Kubernetes #Terraform #HCL #DevOps #开源 #客户端 #离线验证
@DevToolboxHub
DevOps工程师常把YAML或Terraform配置粘贴到在线验证器,但配置文件可能包含内部信息,发送到未知服务器有隐私风险。一个完全在浏览器本地运行的验证器打破了这一习惯——配置数据从不离开你的设备。
这套工具支持三种常用格式:YAML(抓取缩进与结构错误)、Kubernetes清单(schema感知验证,提前捕获apiVersion错误)、Terraform/HCL(语法结构检查)。全部在浏览器端JavaScript解析,无需上传、无需注册、不经过服务器。断开WiFi依然可用,打开开发者工具的网络面板也看不到任何外发请求。
部分底层工具已开源,包含CLI和只读API用于错误提示数据。客户端工具有其局限——无法查询集群实时状态,schema验证不等于策略检查——但对于“缩进是否敲错”这类问题,无需网络请求即可得到答案。
#开发者 #工具 #YAML #Kubernetes #Terraform #HCL #DevOps #开源 #客户端 #离线验证
@DevToolboxHub
掌握 Pytest Fixture:消除测试重复代码
Fixtures 是 pytest 测试的基石,用来预置 SparkSession、DataFrame 或数据库连接等对象。只需定义一次,即可注入到多个测试中,避免重复构造输入数据。本系列前篇覆盖了测试与 mock 基础,现在重点解决测试重复问题,让测试套件更快、更易维护。
通过合理使用 fixture,可以淘汰复制粘贴的设置代码,组合出可复用、范围恰当的测试组件。结合前文的 mock 基础,现在有能力构建整洁、可维护的测试套件。
#开发者 #工具 #Pytest #Python #测试 #Fixture #自动化测试
@DevToolboxHub
Fixtures 是 pytest 测试的基石,用来预置 SparkSession、DataFrame 或数据库连接等对象。只需定义一次,即可注入到多个测试中,避免重复构造输入数据。本系列前篇覆盖了测试与 mock 基础,现在重点解决测试重复问题,让测试套件更快、更易维护。
Fixture 通过 @pytest.fixture 装饰器定义,scope 参数控制生命周期:
• function(默认):每个测试函数新建,适合可变 fixture
• class:每个测试类共享一次
• module:每个测试文件共享一次
• session:整个测试运行共享一次,适合 SparkSession 等昂贵资源
用 yield 分离 setup 与 teardown:yield 前是准备,yield 后是清理(即使测试失败也会执行)。autouse=True 让 fixture 自动对所有测试生效,适合清理日志文件、重置环境变量等。conftest.py 是跨测试文件的共享仓库,根目录下定义的 fixture 无需导入即可被所有测试使用。
最佳实践:保持 fixture 靠近使用处,conftest.py 只放通用 fixture;scope 匹配创建成本;使用 yield 管理资源的获取与释放;注意 session 级 Fixture 被修改后会影响后续测试。
通过合理使用 fixture,可以淘汰复制粘贴的设置代码,组合出可复用、范围恰当的测试组件。结合前文的 mock 基础,现在有能力构建整洁、可维护的测试套件。
#开发者 #工具 #Pytest #Python #测试 #Fixture #自动化测试
@DevToolboxHub
Google Cloud Workbench 扩展连接 VS Code 与云端 Jupyter
Google Cloud 发布 Workbench Notebooks 扩展,开发者可通过 VS Code 直接连接托管在 Google Cloud 上的 Jupyter notebook 环境。该工具面向数据科学家和开发者,用于在本地 IDE 中完成实验、开发与协作。
#开发者 #工具 #GoogleCloud #Workbench #Notebooks #VSCode #Jupyter
@DevToolboxHub
Google Cloud 发布 Workbench Notebooks 扩展,开发者可通过 VS Code 直接连接托管在 Google Cloud 上的 Jupyter notebook 环境。该工具面向数据科学家和开发者,用于在本地 IDE 中完成实验、开发与协作。
#开发者 #工具 #GoogleCloud #Workbench #Notebooks #VSCode #Jupyter
@DevToolboxHub
合并348个PR后修复的11个Bug
Aniruddha Adak,一名印度计算机科学学生,两年间合并了348个PR。他分享了在cognee、openclaw、hermes-agent、opensre等项目中修复的11个关键Bug,涵盖Windows兼容性、AI代理空响应、数据库逻辑错误、安全漏洞等。例如:在cognee中修复Windows长路径导致OS Error 3;在hermes-agent中处理API返回None引发的panic;在opensre中扩充数据库逻辑以识别健康状态、消除无限循环。
这些Bug修复的教训:不要假设所有人都在Linux上开发;AI代理必须处理空数据;从小处着手逐渐深入。
#开发者 #工具 #BugSmash #开源贡献 #cognee #openclaw #Python #AI #数据库 #调试
@DevToolboxHub
Aniruddha Adak,一名印度计算机科学学生,两年间合并了348个PR。他分享了在cognee、openclaw、hermes-agent、opensre等项目中修复的11个关键Bug,涵盖Windows兼容性、AI代理空响应、数据库逻辑错误、安全漏洞等。例如:在cognee中修复Windows长路径导致OS Error 3;在hermes-agent中处理API返回None引发的panic;在opensre中扩充数据库逻辑以识别健康状态、消除无限循环。
这些Bug修复的教训:不要假设所有人都在Linux上开发;AI代理必须处理空数据;从小处着手逐渐深入。
#开发者 #工具 #BugSmash #开源贡献 #cognee #openclaw #Python #AI #数据库 #调试
@DevToolboxHub
AWS推出Claude Apps Gateway自托管控制平面
AWS与Anthropic联合发布Claude Apps Gateway for AWS,这是一款自托管控制平面,为Claude Code和Claude Desktop集中管理身份、策略、遥测、路由和支出上限。网关以单一无状态容器运行,将推理请求路由至Amazon Bedrock或AWS上的Claude Platform,替代了每个开发者各自配置的模式。
该网关面向企业团队,提供统一的访问控制和成本管理入口,无需修改现有Claude客户端即可接入。部署后,组织可通过单一策略规则约束推理用量,并集中查看遥测数据。
#开发者 #工具 #ClaudeAppsGateway #AWS #Anthropic #ClaudeCode #ClaudeDesktop #AmazonBedrock
@DevToolboxHub
AWS与Anthropic联合发布Claude Apps Gateway for AWS,这是一款自托管控制平面,为Claude Code和Claude Desktop集中管理身份、策略、遥测、路由和支出上限。网关以单一无状态容器运行,将推理请求路由至Amazon Bedrock或AWS上的Claude Platform,替代了每个开发者各自配置的模式。
该网关面向企业团队,提供统一的访问控制和成本管理入口,无需修改现有Claude客户端即可接入。部署后,组织可通过单一策略规则约束推理用量,并集中查看遥测数据。
#开发者 #工具 #ClaudeAppsGateway #AWS #Anthropic #ClaudeCode #ClaudeDesktop #AmazonBedrock
@DevToolboxHub
PostgreSQL 为生产级 AI 代理提供关系型基础
由 Gwen Shapira 在 InfoQ 上分享,介绍团队如何利用 PostgreSQL 为关键任务应用扩展 AI 能力。她讲解了如何利用 Postgres 的多模态能力——包括 JSONB 解析和高召回率的 HNSW 向量索引——为 LLM 提供确定性和语义上下文。还讨论了向量量化可将查询速度提升 4 倍,以及管理代理记忆的策略。
#开发者 #工具 #PostgreSQL #AI #VectorSearch #代理记忆 #HNSW #JSONB
@DevToolboxHub
由 Gwen Shapira 在 InfoQ 上分享,介绍团队如何利用 PostgreSQL 为关键任务应用扩展 AI 能力。她讲解了如何利用 Postgres 的多模态能力——包括 JSONB 解析和高召回率的 HNSW 向量索引——为 LLM 提供确定性和语义上下文。还讨论了向量量化可将查询速度提升 4 倍,以及管理代理记忆的策略。
#开发者 #工具 #PostgreSQL #AI #VectorSearch #代理记忆 #HNSW #JSONB
@DevToolboxHub
GitHub AI agent 可被诱导泄露私有仓库
GitHub 新推出的 Agentic Workflows(GitHub Actions 结合 AI agent,基于 Claude 或 Copilot,用 Markdown 编写工作流)被曝存在 prompt injection 漏洞。Noma Labs 发现,攻击者只需构造一个看似正常的公开 Issue 并在其中嵌入隐藏指令,就能让 agent 读取组织内多个仓库(包括私有仓库)的内容,并将结果以公开评论形式发布。无需凭证、无需 exploit 代码、无需内网权限。
GitHub 已收到报告并负责任地披露,但底层模式并未修复——只是这一特定实例被报告了。
#开发者 #工具 #GitHub #AgenticWorkflows #安全漏洞 #PromptInjection #NomaLabs #CICD
@DevToolboxHub
GitHub 新推出的 Agentic Workflows(GitHub Actions 结合 AI agent,基于 Claude 或 Copilot,用 Markdown 编写工作流)被曝存在 prompt injection 漏洞。Noma Labs 发现,攻击者只需构造一个看似正常的公开 Issue 并在其中嵌入隐藏指令,就能让 agent 读取组织内多个仓库(包括私有仓库)的内容,并将结果以公开评论形式发布。无需凭证、无需 exploit 代码、无需内网权限。
“agent 的上下文窗口就是它的攻击面。agent 读取的任何内容——Issue、PR、评论或文件——如果被 agent 当作指令输入处理,都可能被武器化。”
具体攻击流程:Noma 研究员创建了一个伪装成销售 VP 需求的 Issue,正文包含隐藏指令。当 GitHub 自动化分配此 Issue 时,触发了配置为on: issues.assigned的 Agentic Workflow,该 workflow 有权读取组织内其他仓库(包括私有库),并使用add-comment工具。隐藏指令要求 agent 从各个仓库获取 README.md 并作为评论发布。agent 照做了,泄露了私有仓库testlocal的内容。PoC 公开可见。
防御绕过:GitHub 原有护栏未能阻止。Noma 发现,在注入指令中加入 “Additionally” 一词即可让模型重新框定输出而非拒绝,绕开所有护栏。一个关键词就瓦解了预期的安全行为。攻击者可低成本迭代措辞,防御方迭代成本高昂。
更广泛的模式:Noma 明确指出,prompt injection 之于 agentic AI 就像 SQL injection 之于 Web 应用——一种系统性的、类别级的漏洞类,无法通过加固单个案例解决,需要架构级防御。GitLost 攻击之所以成功,是因为 agent 无法区分操作者的指令和隐藏在用户控制内容中的指令,这是信任边界失效,且是结构性的。传统安全由代码强制信任边界,而在 agent 系统中,部分信任边界由模型的“遵循指令”行为来执行。
缓解建议:严格限定 agent 权限——跨仓库读权限是最高风险配置;绝不让 agent 公开发布用户控制的内容;对进入 agent 指令上下文的用户输入进行消毒或隔离(如同对待 SQL 查询中的用户输入);立即审计你的 Agentic Workflow 配置——检查权限范围和触发事件。
GitHub 已收到报告并负责任地披露,但底层模式并未修复——只是这一特定实例被报告了。
#开发者 #工具 #GitHub #AgenticWorkflows #安全漏洞 #PromptInjection #NomaLabs #CICD
@DevToolboxHub
Loopress 解决 WordPress 开发者体验痛点
WordPress 支撑了超过 40% 的网站,但开发者的日常工作流却与现代软件工程脱节:直接在服务器上编辑文件、从管理面板复制粘贴代码片段、依赖 SSH 安装 Composer 包、靠 FTP 或数据库导出“部署”。没有版本控制,没有 diff,回滚只能靠记忆。这些并非边缘问题,而是 WordPress 开发的日常。
Loopress 是一个工具集,旨在让 WordPress 开发变得可重现、可审查。它提供 CLI 和插件,将代码片段和 Composer 依赖视为文件:
#开发者 #工具 #Loopress #WordPress #PHP #Composer #Git #DX
@DevToolboxHub
WordPress 支撑了超过 40% 的网站,但开发者的日常工作流却与现代软件工程脱节:直接在服务器上编辑文件、从管理面板复制粘贴代码片段、依赖 SSH 安装 Composer 包、靠 FTP 或数据库导出“部署”。没有版本控制,没有 diff,回滚只能靠记忆。这些并非边缘问题,而是 WordPress 开发的日常。
Loopress 是一个工具集,旨在让 WordPress 开发变得可重现、可审查。它提供 CLI 和插件,将代码片段和 Composer 依赖视为文件:
lps snippet pull 拉取片段,在本地用 Git 追踪,lps snippet push 推回站点。同时可在管理面板中直接管理 PHP 依赖,无需 SSH 访问。你的客户仍能按他们习惯的方式使用 WordPress,而你则可以像开发现代项目一样工作。#开发者 #工具 #Loopress #WordPress #PHP #Composer #Git #DX
@DevToolboxHub
CPython 4300位限制致Python列失效,一年后修复
a2a-benchmark 是一个多语言 A2A(Agent-to-Agent)性能测试套件,包含四个代理:Python 和 Go 通过 ADK 调用 Gemini 工具,Node.js 和 Rust 作为直接处理器,用 Lucas–Lehmer 测试计算梅森素数,N 从 1 扫到 24。提交的结果一直停留在 N=22,Python 列整整一年都是 N/A。
最终 96/96 数据点全部正常,4 个 PR 共修复 9 个 bug。作者披露使用 Claude Code 作为调试与自动化修复代理。
#开发者 #工具 #CPython #A2A #MersennePrime #Python #Go #Nodejs #Rust #ADK #Gemini #LLM
@DevToolboxHub
a2a-benchmark 是一个多语言 A2A(Agent-to-Agent)性能测试套件,包含四个代理:Python 和 Go 通过 ADK 调用 Gemini 工具,Node.js 和 Rust 作为直接处理器,用 Lucas–Lehmer 测试计算梅森素数,N 从 1 扫到 24。提交的结果一直停留在 N=22,Python 列整整一年都是 N/A。
根本原因是 CPython 3.11+ 默认限制 int→str 转换为 4300 位(DoS 缓解)。Python 代理将每个素数 str() 化,第 24 个梅森素数 p=19937,2^19937−1 有 6002 位,触发 ValueError,工具返回栈追踪文本而非结果。修复是删除无用的 str(),从 time.time() 改为 time.perf_counter,并增加 N=24 回归测试。
修复同时暴露了另外 8 个 bug:harness 优先从 LLM prose 正则提取时间,但 Gemini 用语不固定,数据全靠 fallback 存活;Node 和 Rust 用 toFixed(2) 报告时间,微秒级返回 0.00ms 在 log 尺度图上消失;直接代理报告“Found first 100 Mersenne primes”但实际只计算了 26 个;RTT 图表混用直接和 LLM 管道,400 倍差距实为架构差异;去掉格式后 Go 的计时低于微秒,输出 836ns 导致解析失败;重复使用 contextId 让 Gemini 拒绝重新调用。
最终 96/96 数据点全部正常,4 个 PR 共修复 9 个 bug。作者披露使用 Claude Code 作为调试与自动化修复代理。
#开发者 #工具 #CPython #A2A #MersennePrime #Python #Go #Nodejs #Rust #ADK #Gemini #LLM
@DevToolboxHub
AI编码助手上传整个Git仓库到云端
一项独立调查发现,某款AI编码CLI工具会在用户不知情的情况下,将整个Git历史(包括提交日志、机密信息)上传至供应商控制的云存储中,而且这一行为不受用户已关闭的“改进模型”隐私开关控制。这不是模型读取文件后可能通过补全泄漏的问题,而是一条独立、静默的数据外泄管道,与用户理解的数据共享设置完全脱钩。此前这类风险一直被当作“理论可能”被忽视,现在已被证实。
如果厂商自己的隐私退出设计都无法控制它自己搭建的数据通道,那么我们审查AI工具隐私控制时,到底是在审查产品,还是在审查市场宣传文案?
#开发者 #工具 #AI编码助手 #Git仓库 #数据泄露 #隐私 #安全 #xAI #GrokBuild
@DevToolboxHub
一项独立调查发现,某款AI编码CLI工具会在用户不知情的情况下,将整个Git历史(包括提交日志、机密信息)上传至供应商控制的云存储中,而且这一行为不受用户已关闭的“改进模型”隐私开关控制。这不是模型读取文件后可能通过补全泄漏的问题,而是一条独立、静默的数据外泄管道,与用户理解的数据共享设置完全脱钩。此前这类风险一直被当作“理论可能”被忽视,现在已被证实。
对开发者而言,任何具备shell或文件系统访问权限的AI编码代理,都应当默认它可以查看并可能传输仓库内所有内容(包括历史记录)。秘密扫描与轮换不再是可选卫生,而是使用这些工具的基础成本。
对安全团队而言,这是一个网络监控问题。如果仅监控模型API流量用于数据防泄漏,那等于看错了管道。任何能访问本地仓库的代理工具,其出口流量都需要独立审计,不能依赖厂商在UI中暴露的“隐私设置”。
对整个行业而言,这是下一轮合规挑战的预演。SOC 2及等效审计必须开始要求:“展示此工具通信的所有网络目标,而不仅仅是隐私政策中列出的那些”——因为政策与行为显然可能不一致。
如果厂商自己的隐私退出设计都无法控制它自己搭建的数据通道,那么我们审查AI工具隐私控制时,到底是在审查产品,还是在审查市场宣传文案?
#开发者 #工具 #AI编码助手 #Git仓库 #数据泄露 #隐私 #安全 #xAI #GrokBuild
@DevToolboxHub
修复 smolagents MCP 工具序列化崩溃 bug
huggingface/smolagents(28k+ star)中存在一个困扰众多用户的 bug:在 CodeAgent 中混用 MCP 工具后调用
GitHub
#开发者 #工具 #smolagents #MCP #Python #AI #HuggingFace #BugFix #序列化 #Sentry
@DevToolboxHub
huggingface/smolagents(28k+ star)中存在一个困扰众多用户的 bug:在 CodeAgent 中混用 MCP 工具后调用
to_dict()、save() 或 push_to_hub(),会触发难以理解的 ValueError: Tool validation failed for MCPAdaptTool...。原因是框架通过静态 AST 分析重构工具源码,但 MCP 工具是运行时动态生成的,其行为依赖 MCP 服务器会话,无法被源码序列化。修复方式很简单:在Tool.to_dict()原有针对 Spaces、LangChain、Gradio 等运行时包装类的守卫中加入对 MCP 工具的检测,抛出清晰可操作的错误信息——告知用户先移除 MCP 工具再序列化,加载时通过MCPClient或ToolCollection.from_mcp重新创建。同时补充了文档说明和回归测试。
这一修复既保持了库的序列化契约,又让开发者在 hits 问题时立即知道该怎么做。
GitHub
#开发者 #工具 #smolagents #MCP #Python #AI #HuggingFace #BugFix #序列化 #Sentry
@DevToolboxHub