GeekNote
首页
搜索
登录
注册
搜索
文章
评论
账号
排序: 最新
相关
最新
最旧
busylog
2026年06月20日 03:57
Port forwarder example in openwrt ucode
disclaimer: code is AI generated, uloop as poll. so the missing ones are ARGV, or change substr to something else. #!/usr/bin/ucode import * as uloop from 'uloop'; import * as socket from 'socket'; const LISTEN_PORT = 12345; const TARGET_HOST = "192.168.0.1"; const TARGET_PORT = 80; uloop.init(); let listener = socket.listen("0.0.0.0", LISTEN_PORT); function close_pair(client, upstream, h1, h2) { h1?.delete(); h2?.delete(); client?.close(); upstream?.close(); } function forward(src, dst, hsrc, hdst) { let data = src.recv(8192); if (!data || length(data) == 0) { close_pair…
Rei
2026年06月16日 14:14
工具调用实践——网络搜索
在上一篇工具调用中我们已经了解如何给 LLM 添加工具调用。为了加深理解工具调用如何扩展 LLM,现在来看更多工具调用的实践。这一节我们将赋予 LLM 搜索互联网的能力。 数据源 首先要考虑的是如何获得数据源。自建网络搜索引擎是个庞大的工程:爬虫、数据储存和海量信息检索。如果你就职于搜索引擎公司,那么可以使用内部的接口。而其他大部分开发者应该都需要使用第三方接口。 可惜的是,知名的搜索引擎公司,例如 Google、Bing 都不对外…
Rei
2026年06月10日 09:19
新增文章“系列”功能
今天 Geeknote 文章新增了“系列”功能,可以用于整理属于同一话题的文章。 效果 添加了系列的文章,将会在文章开头和结尾显示上一篇下一篇的导航: 在展示文章标题时,会添加系列标题前缀: 这样就不用在每篇文章的标题写重复内容。 使用方法 首先在 创作中心 -> 系列 创建系列: 你可以选择新文章添加到列表顶部还是底部。 添加错了也不要紧,之后可以在系列详情页手工排序: 创建系列后,在文章编辑器侧栏选择相应系列…
乌云山
2026年06月02日 13:28
agent时代
agent的早期阶段,人是指挥者,检查者,责任者。
Rei
2026年06月03日 14:20
工具调用
在上一节消息循环中我们实现了最小可用的 Chat CLI 脚本,这个脚本能力非常有限,只能通过文本回答用户的问题。这一节我们会赋予 Chat CLI 调用工具的能力,让它能获取外界信息和实际执行任务。 原理 OpenAI API 提供了 Tool Call (工具调用)功能,通过在对话参数中加入工具的定义,AI 会自己决定是否需要调用工具,获取额外信息或者执行操作。AI Agent 的作者需要提供工具定义和工具实现。 流程如下: Agent 请求时带上可用的…
Rei
2026年05月28日 12:06
站内 Markdown 新增 GitHub 风格的 alters 格式支持
Alters(警报)是基于引用块语法的 Markdown 扩展,可用于强调关键信息。它们会以不同的颜色和图标显示,以表明内容的重要性。 仅在对读者至关重要时才使用提示框,并且每篇文章最多使用一到两个,以免给读者造成信息过载。此外,应避免连续放置提示框。提示框不能嵌套在其他元素中。 要添加警报,请使用特殊的 blockquote 行指定警报类型,后跟标准 blockquote 中的警报信息。共有五种警报类型: > [!NOTE] > 用户即使在快速浏览内容时…
量子Bug
2026年05月26日 08:19
Bug Report
点击左上角geeknote图标跳转的链接为geeknote.net/ui,是一个404页面
Rei
2026年05月26日 15:10
消息循环
AI Agent(人工智能体)是指以 LLM(大语言模型)作为推理引擎,能够自主调用外部工具,规划并解决实际问题的程序。 构建 AI Agent 已经成为目前最火热的开发领域。从构建通用 AI 助手,到传统应用引入 AI 功能,都需要用到构建 AI Agent 的知识。 同时 AI Agent 又和传统软件有很大不同。传统软件需要程序员设计程序运转的完整流程,AI Agent 却要将思考外包给大语言模型,由大语言模型自主决定怎么做。构建 AI Agent 的…
Rei
2026年05月24日 08:55
最新的不一定好——预防供应链攻击
最近看到新闻,GitHub 疑似因员工 VS code 更新了被植入恶意代码的插件导致被入侵(Hacker News) 。然后搜了一下,今年以来通过包管理器进行供应链攻击的案例已经有三起: 2026年3月 axios npm 包攻击 (Hacker News) 2026年5月 TanStack npm 包攻击 (Hacker News) 2026年5月 VS Code 扩展供应链攻击 (Hacker News) 理论上,包的托管平台应该对新发布的包进行安全扫描,从源头杜绝恶意代码散布,但这个机制还没普及。当下在开发者一侧,可以给…
乌云山
2026年05月21日 01:13
ai时代的博客逻辑
作者:乌云山 ai时代的知识信息获取逻辑,已经是按需消费,而不是按产消费。 之前一直是搜索引擎和网站本身是主要的用户界面。但现在很多时候都智能体加工之后给最终用户。比如deepseek app, 豆包 app以及新的龙虾后台的自动搜索程序。用户可能看到的不一定是原汁原味的博客,而是符合用户需求的整合加工过的信息资料。
乌云山
2026年05月21日 00:16
时评 intel 英伟达 amd 三家竞合
作者 乌云山 相关渠道消息表明,intel与英伟达达成了战略合作。 对于该战略合作的效果,笔者认为, 这一局打下来,可以暂时让amd的优势没那么明显。因为ai进入普及阶段,其市场空间极其广阔,前途不可限量。而amd虽然两项都不算最强,但联合起来却是最强,也就是在所谓的ai pc, ai 服务器群这个未来的主流市场上,amd的东西极具性价比,很可能比intel和英伟达的东西拼起来更具性价比。这样将使amd具备压倒性…
乌云山
2026年05月20日 11:04
一种给markdown文件注入结构化数据的标签的方案
作者:乌云山 2026年5月20日 为了注入类似html那样的标签,考虑用花括号来实现,如以下示例所示: <!-- {p(id="id1234") --> 普通markdown文字 <!-- p(id="id1234") } -->
busylog
2026年05月06日 10:37
other good defaults for OpenWrt?
ULA related (if you dont use): uci set network.lan.delegate='0' uci set network.wan6.delegate='0' protect wan6 mac address uci set network.wan6.ip6ifaceid='random' give lan a nice reserved address (or use add_list) uci set network.lan.ip6addr='2001::1' #no action #uci set network.loopback.ip6addr='::1' AnyIP is able to catch bad destination # ip -6 route show table local uci add network route6 uci set network.@route6[-1].interface='loopback' uci set network.@route6[-1].type='local' uci set network.@route6[-1].target='2001::/96' # ipv4 version but blackhole #uci add network route…
busylog
2026年05月01日 15:47
tcpdump tcp[tcpflags] in ipv6/ip6
RST packet capture for ipv6 tcp (40+13=53), or use RST+ACK(&20==20): tcp and ip6[53] & 4 != 0 so the root issue is libpcap https://github.com/the-tcpdump-group/libpcap/issues/600 powershell helper for nat64 ip extraction: ([ipaddress](read-host 'input ipv6')).getaddressbytes()[-4..-1] -join '.'
busylog
2026年04月19日 17:22
DNS Tricks? some DNS server filter ipv6 Microsoft NCSI
uci add dhcp domain uci set dhcp.@domain[-1].name='dns.msftncsi.com' uci set dhcp.@domain[-1].ip='fd3e:4f5a:5b81::1' uci add dhcp domain uci set dhcp.@domain[-1].name='dns.msftncsi.com' uci set dhcp.@domain[-1].ip='131.107.255.255' remember to uci commit similarly ipv4only.arpa should be 192.0.0.170, 192.0.0.171, 64:ff9b::c000:aa, 64:ff9b::c000:ab
boketuiguang
2026年04月12日 11:12
分享利用RP2040 DIY 实体密钥
只需不到十元 用 RP2040 DIY 一条 YubiKey FIDO2 物理密钥 简介:利用RP2040来DIY一个袖珍的实体验证密钥,成本只需约十元
boketuiguang
2026年04月07日 06:34
记录折腾HomeAssistant的过程
最近重新拾起了对HA的兴趣,遂在博客里记录折腾过程 目前共有三篇博客: Docker 部署 Home Assistant 并接入米家与 ESPHome Home Assistant 绑定米家账号后怎么刷新设备列表 Home Assistant 配合小米人体传感器 2s 实现人走关灯 欢迎评论交流
busylog
2026年02月26日 02:47
openwrt firewall4 rules if zones settings are all reject
WAN DHCP and LAN DHCP. note that WAN DHCP input is already given by openwrt default. uci add firewall rule uci set firewall.@rule[-1].src='lan' uci set firewall.@rule[-1].name='lan-dhcp-in-dst68' uci set firewall.@rule[-1].proto='udp' uci set firewall.@rule[-1].dest_port='68' uci set firewall.@rule[-1].target='ACCEPT' uci set firewall.@rule[-1].family='ipv4' uci add firewall rule uci set firewall.@rule[-1].dest='lan' uci set firewall.@rule[-1].name='lan-dhcp-out-src68' uci set firewall.@rule[-1].proto='udp' uci set firewall.@rule[-1].src…
鱼翅
2026年02月01日 05:37
上帝搬石头:关于三值逻辑的一些胡思……
叠甲时间 这是一篇纯主观的胡思乱想,内容仅涉及简单的哲学和逻辑学概念,诸位看官且当个乐子看看就行,轻喷~ 看小品就看小品,你胡思乱想个啥? 《喜人奇妙夜》这个节目挺有意思的,之前经常刷到切片,里面有些作品属实脑洞大开,时而让我大半夜笑出了声。之前刷到一个作品,讲述一个哲学家、一个灯神、一个打劫犯的故事,灯神想要赶紧实现完三个愿望退休,哲学家想要一个真心热爱哲学…
busylog
2025年12月16日 07:57
Celebrate HLS support on Chrome 142+
You can use more browsers than players? Requirements: the Header Editor extension from https://he.firefoxcn.net/ if something can play on ffmpeg/mpv but not browser? "headers": { "user-agent": "Lavf/58.29.100", "referer": "_header_editor_remove_" } if something triggered direct downloads (application/octet-stream)? "condition": { "regex": "\\.m3u8" }, "headers": { "content-type": "application/vnd.apple.mpegurl" }, this might be useful as well. %{start msedge -argumentlist ("-inprivate", $_)} other interesting redirection: (.*)/flutter_bootstrap\.js(.*) -> $1/main.dart.js$2 Domains: font.googleapis.com -> font.googleapis.cn ajax.googleapis.com -> cdnjs.cloudflare.com
查看更多
首页
搜索
登录
注册