TGViewer
Channel Public Channel
开发者工具箱|编程·开发工具·资源

开发者工具箱|编程·开发工具·资源

@devtoolboxhub

面向开发者的实用工具、库与效率技巧,写代码更快更爽。投稿 @BDHT1
#开发者 #编程工具 #效率 #程序员 · 开源总站 @GitHubTrendingHub
Subscribers
597
Photos
1.4K
Videos
0
Links
771

Showing posts older than #1318 · Back to latest

Older Posts 16 shown
Post #1317 6
用MCP Server封装RAG Agent

将RAG Agent包装成MCP Server,让其他AI系统通过标准协议调用其能力,无需硬编码Python导入。作者使用FastMCP构建自定义MCP服务器,暴露四个工具类别:计算器、搜索公司文档、查询员工假期、查询工单信息。

四个工具类别:
- 计算器工具:calculator_add 和 calculator_multiply。
- search_company_documents:通过HTTP请求访问RAG Agent的FastAPI /search端点,需api_key参数。
- get_employee_leave:从内存中查询员工剩余PTO。
- get_ticket_information:返回工单状态、分配团队和优先级。
每个工具使用 @mcp.tool() 装饰器注册,FastMCP体验良好。
挑战方面,RAG搜索工具需跨网络调用(requests.get到127.0.0.1:8000/search),需处理连接拒绝、超时等真实错误。
未来计划包括:统一认证、数据源替换为真实数据库、最终接入多Agent工作流。


MCP协议为AI Agent与外部工具提供标准化接口,使系统能力可发现、可调用。企业AI的未来不仅是生成更好回复,更是让AI Agent安全地与现实工具和业务能力交互。

GitHub: GitHub

#开发者 #工具 #MCP #RAG #FastMCP #AIagents #Python
@DevToolboxHub
Post #1316 6
AWS Continuum 上线代理化代码安全平台

Amazon Web Services 推出 AWS Continuum,这是一个新的集成安全平台,用于自动化代码库、依赖项和应用中安全问题的发现、执行与修复。AWS Continuum 提供四个代理能力,覆盖漏洞整个生命周期:渗透测试、代码审查、威胁建模和代码漏洞。

#开发者 #工具 #AWS #Continuum #安全 #漏洞 #渗透测试 #代码审查 #威胁建模
@DevToolboxHub
Post #1315 6
WSL2 上 Claude 驱动 Chrome 的修复方案

Claude in Chrome 扩展在 WSL2 下无法工作,根源在于扩展通过 Windows 注册表发现原生消息宿主,而 Claude Code 在 WSL 中把清单写入 Linux 文件系统,两边互不可见。官方文档也已标明 WSL 不受支持。规避方案是退回 Chrome DevTools 协议(CDP),配合两个廉价的驱动组合,实现低成本、持续登录的浏览器自动化。

核心思路:一台 Windows Chrome 监听 9222 端口,WSL2 中的 agent-browser 负责日常驱动(通过可访问性快照,仅耗数百 tokens,远低于截图的上千 tokens),chrome-devtools-mcp 负责深入调试(网络请求、控制台、Lighthouse)。两者共享同一浏览器,通过 CDP 同时连接,仅需确保各自使用不同标签页。

启动 Chrome 命令(从 WSL 通过 /mnt/c 执行):
```
"/mnt/c/Program Files/Google/Chrome/Application/chrome.exe" \
--remote-debugging-port=9222 \
--user-data-dir="C:\Users\youruser\AppData\Local\ChromeDebugProfiles\myapp" \
--no-first-run --no-default-browser-check \
--remote-allow-origins='*' &
```
--user-data-dir 隔离浏览器配置,登录一次后会话持久保留。

agent-browser 安装:npm install -g agent-browser,注意跳过 agent-browser install(它会下载无登录状态的 Chrome for Testing)。首次运行因 $XDG_RUNTIME_DIR 不存在会报权限错误,需设置:
```
export XDG_RUNTIME_DIR=/tmp/abr-runtime
mkdir -p "$XDG_RUNTIME_DIR" && chmod 700 "$XDG_RUNTIME_DIR"
```
将 export 写入 ~/.bashrc 以便跨会话生效。

连接已有 Chrome:agent-browser connect 9222。之后使用 snapshot、fill、click 等命令操作页面,注意 ref 会随 DOM 变化失效,需重新快照。SPA 导航用 pushstate 而非 open。

chrome-devtools-mcp 配置(以 Claude Code 为例,添加至 ~/.claude.json):
```json
{
"mcpServers": {
"chrome-devtools": {
"type": "stdio",
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest", "-u", ""]
}
}
}
```
推荐用 claude mcp add --scope user chrome-devtools -- npx -y chrome-devtools-mcp@latest -u http://127.0.0.1:9222 添加,避免手动编辑被覆盖。

常见陷阱:
- 端口幽灵:旧的 netsh interface portproxy 规则会占用 9222 且不被重启清除。在管理员 PowerShell 中用 netsh interface portproxy delete v4tov4 listenport=9222 listenaddress=0.0.0.0 等命令删除。
- 空工具列表:检查 ~/.claude.json 中端口是否与实验中的 Chrome 一致。
- MCP 服务器在 Chrome 之前启动:先启动 Chrome,再连接 MCP。


这套方案经过数月日常使用验证,关键是将登录状态持久化并避免高昂的截图 token 消耗。记住保持调试配置隔离,且只绑定到 127.0.0.1。故障时先用健康检查命令定位问题。

#开发者 #工具 #WSL2 #Claude #Chrome #CDP #agentbrowser #MCP #调试
@DevToolboxHub
Post #1313 5
Rust 高性能缓存迁移经验分享

Ruth Linehan 在 QCon San Francisco 上分享将高性能缓存服务从 Kotlin 迁移到 Rust 的实战经验。她介绍了这次迁移如何打破团队对交付速度和工程开销的固有预期,并展示了 Rust 在系统编程层面的实际收益。

Linehan 重点讨论了 Rust borrow checker 的人体工程学设计,指出编译时安全能够显著缩短开发者反馈循环。她还展示了如何利用 Criterion 和 flamegraphs 等工具优化并发代码路径,为追求极致性能的缓存服务提供可行方案。

Ruth Linehan 是 Momento 的高级工程师,负责用 Rust 构建高性能缓存与发布订阅服务。

#开发者 #工具 #Rust #Kotlin #缓存 #性能优化 #Momento #QCon
@DevToolboxHub
Post #1311 5
修复 smolagents MCP 工具序列化崩溃 bug

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
Post #1310 5
AI编码助手上传整个Git仓库到云端

一项独立调查发现,某款AI编码CLI工具会在用户不知情的情况下,将整个Git历史(包括提交日志、机密信息)上传至供应商控制的云存储中,而且这一行为不受用户已关闭的“改进模型”隐私开关控制。这不是模型读取文件后可能通过补全泄漏的问题,而是一条独立、静默的数据外泄管道,与用户理解的数据共享设置完全脱钩。此前这类风险一直被当作“理论可能”被忽视,现在已被证实。

对开发者而言,任何具备shell或文件系统访问权限的AI编码代理,都应当默认它可以查看并可能传输仓库内所有内容(包括历史记录)。秘密扫描与轮换不再是可选卫生,而是使用这些工具的基础成本。

对安全团队而言,这是一个网络监控问题。如果仅监控模型API流量用于数据防泄漏,那等于看错了管道。任何能访问本地仓库的代理工具,其出口流量都需要独立审计,不能依赖厂商在UI中暴露的“隐私设置”。

对整个行业而言,这是下一轮合规挑战的预演。SOC 2及等效审计必须开始要求:“展示此工具通信的所有网络目标,而不仅仅是隐私政策中列出的那些”——因为政策与行为显然可能不一致。


如果厂商自己的隐私退出设计都无法控制它自己搭建的数据通道,那么我们审查AI工具隐私控制时,到底是在审查产品,还是在审查市场宣传文案?

#开发者 #工具 #AI编码助手 #Git仓库 #数据泄露 #隐私 #安全 #xAI #GrokBuild
@DevToolboxHub
Post #1309 6
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。

根本原因是 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
Post #1308 6
Loopress 解决 WordPress 开发者体验痛点

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
Post #1307 7
GitHub AI agent 可被诱导泄露私有仓库

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
Post #1305 8
PostgreSQL 为生产级 AI 代理提供关系型基础

由 Gwen Shapira 在 InfoQ 上分享,介绍团队如何利用 PostgreSQL 为关键任务应用扩展 AI 能力。她讲解了如何利用 Postgres 的多模态能力——包括 JSONB 解析和高召回率的 HNSW 向量索引——为 LLM 提供确定性和语义上下文。还讨论了向量量化可将查询速度提升 4 倍,以及管理代理记忆的策略。

#开发者 #工具 #PostgreSQL #AI #VectorSearch #代理记忆 #HNSW #JSONB
@DevToolboxHub
Post #1304 7
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
Post #1302 7
合并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
Post #1301 9
Google Cloud Workbench 扩展连接 VS Code 与云端 Jupyter

Google Cloud 发布 Workbench Notebooks 扩展,开发者可通过 VS Code 直接连接托管在 Google Cloud 上的 Jupyter notebook 环境。该工具面向数据科学家和开发者,用于在本地 IDE 中完成实验、开发与协作。

#开发者 #工具 #GoogleCloud #Workbench #Notebooks #VSCode #Jupyter
@DevToolboxHub
Post #1300 11
掌握 Pytest Fixture:消除测试重复代码

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
Post #1299 12
免费浏览器端YAML/K8s/Terraform验证器

DevOps工程师常把YAML或Terraform配置粘贴到在线验证器,但配置文件可能包含内部信息,发送到未知服务器有隐私风险。一个完全在浏览器本地运行的验证器打破了这一习惯——配置数据从不离开你的设备。

这套工具支持三种常用格式:YAML(抓取缩进与结构错误)、Kubernetes清单(schema感知验证,提前捕获apiVersion错误)、Terraform/HCL(语法结构检查)。全部在浏览器端JavaScript解析,无需上传、无需注册、不经过服务器。断开WiFi依然可用,打开开发者工具的网络面板也看不到任何外发请求。

部分底层工具已开源,包含CLI和只读API用于错误提示数据。客户端工具有其局限——无法查询集群实时状态,schema验证不等于策略检查——但对于“缩进是否敲错”这类问题,无需网络请求即可得到答案。

#开发者 #工具 #YAML #Kubernetes #Terraform #HCL #DevOps #开源 #客户端 #离线验证
@DevToolboxHub
Post #1298 9
Google 联合发布 ARD 规范,赋能 AI 代理资源发现

Google 与行业合作伙伴共同宣布 Agentic Resource Discovery (ARD) 规范,这是一项针对 AI 代理的开放标准,用于发布、发现和验证外部工具、API 及服务。当前 AI 代理在跨组织边界调用资源时缺乏统一发现机制,ARD 填补了这一空白。

ARD 在现有执行协议(如 MCP 和 OpenAPI)之上,引入基于目录和注册表的发现层,支持动态能力发现,并强调信任与互操作性。开发者可通过该标准让代理自动查找和验证可用的 AI 工具与接口,无需硬编码地址或手动集成。

#开发者 #工具 #ARD #AI代理 #开放标准 #Google #MCP #OpenAPI #资源发现
@DevToolboxHub
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →