[{"content":"项目简介 GBC Nina 是一款轻量级的 Windows 桌面宠物，基于 Python + PySide6 构建。她会陪伴你工作、学习，有自己的情绪和行为节奏——安静但好奇，偶尔主动，大部分时间自处。\nA little friend on your desktop.\n核心目标是提供一个有生命感的桌面伴侣，而不是一个简单的动画播放器。\n仓库地址 https://github.com/kinguang3/Deskpot-Pet-Cat\n核心功能 透明无边框窗口 无边框、透明背景、始终置顶、不在任务栏显示，可以自由拖动到屏幕任意位置。\n动画系统 支持 7 种动画（idle / walk_left / walk_right / typing / typing_red / watching / sleep），每种动画拥有独立帧率，支持循环和单次播放。\n行为状态机 通用有限状态机引擎，定义 7 种行为状态，状态之间通过条件自动转换，支持优先级与用户行为打断。\n状态 触发条件 转换 Idle 默认状态 随机走动 / 长时间无操作 / 被点击 Walk 随机走动 到达目标后回到 Idle Sleep 长时间无操作 被点击后回到 Idle Watch 鼠标悬停 3 秒后回到 Idle Clicked 用户点击 1.5 秒后回到 Idle Typing 用户输入中 停止输入后回到 Idle Dragged 拖动窗口 松开后回到 Idle 鼠标交互 支持单击、双击、右键、拖动、鼠标悬停以及长时间无交互检测，将原始输入转化为语义化事件。\n操作 效果 拖动 移动 Nina 的位置 单击 Nina 会看你一眼并说话 双击 触发特殊动画（typing / watching） 右键 显示对话 鼠标悬停 30% 概率显示对话 长时间不互动 Nina 会自己睡着 对话气泡 圆角气泡 + 三角尾巴，根据当前时间（早/中/晚/深夜）、Nina 状态和用户行为动态选择对话内容，对话间隔 30~60 秒随机，避免频繁打扰。\n语音唤醒与自定义指令 基于 Vosk 离线语音识别，说\u0026quot;嘿，Nina\u0026quot;即可唤醒，非 sleep 状态下可直接说命令。用户还能在设置面板中自定义语音触发词与对应动作（打开网页 / 打开应用）。\n系统托盘与设置面板 猫爪图标托盘菜单支持显示 / 隐藏 / 设置 / 退出；设置面板可调整窗口大小（50%~200%）、透明度（30%~100%）、始终置顶、自动移动、对话开关等，配置持久化到 config/user.json。\n技术架构 项目采用分层设计，模块之间通过**事件总线（EventBus）**解耦通信，不直接引用彼此，便于扩展和维护：\n核心层 (core)：透明窗口管理、宠物实体、事件总线、配置管理 动画层 (animation)：精灵图加载器 + 动画管理器 行为层 (behavior)：有限状态机引擎与行为状态定义 交互层 (interaction)：鼠标事件处理 对话层 (dialogue)：气泡 UI + 对话内容管理 界面层 (ui)：系统托盘、设置面板 语音层 (voice)：唤醒词检测、命令解析、动作执行 工具层 (utils)：JSON 数据持久化 1 2 3 4 5 用户操作 → Interaction → EventBus → Behavior(决策) → Animation(播放) ↓ StateManager(更新状态) ↓ Dialogue(显示对话) 快速开始 1 2 3 4 5 6 7 8 9 10 11 # 获取源码 git clone https://github.com/kinguang3/Deskpot-Pet-Cat.git cd Deskpot-Pet-Cat # 创建虚拟环境并安装依赖（Windows PowerShell） python -m venv .venv .\\.venv\\Scripts\\Activate.ps1 pip install -r requirements.txt # 运行 python main.py 也可以直接双击 run.bat，自动使用虚拟环境启动。启动后 Nina 会出现在屏幕底部中间位置，播放 idle 动画。\n环境要求 Windows 10 / 11 Python 3.10 或更高版本 总结 GBC Nina 用事件驱动的分层架构，把\u0026quot;一只猫\u0026quot;拆解成了窗口、动画、行为、交互、对话和语音几个相对独立的模块。相比单纯的动画播放器，状态机和对话系统让她看起来更像一个有自己的节奏的小家伙。\n如果你也想要一只住在桌面上的小猫，欢迎到仓库看看，Issue 和 PR 都欢迎。\n","date":"2026-09-14T00:00:00Z","image":"https://kinguang3.github.io/King/p/gbc-nina/gbc-nina_hu_668ac651ff2048ca.png","permalink":"https://kinguang3.github.io/King/p/gbc-nina/","title":"GBC Nina - 住在你桌面上的小猫"},{"content":"什么是 Pi Pi 是一个最小化的 Agent Harness。它的核心理念是：\n让 Agent 适应你的工作流，而不是相反。\n与其他复杂的 Agent 框架不同，Pi 专注于提供精简的基础设施，让你能够快速构建和部署 AI Agent。\nPi 的工作流程 Planning（规划阶段） 在这个阶段，Agent 会：\n分析用户输入的需求 自我规划完成任务所需的步骤 建立追踪机制来监控任务进度 Processing（处理阶段） 这是核心执行阶段，Agent 会：\n调用工具和 API 处理数据和信息 根据需要进行调整和迭代 自我验证结果的正确性 Publishing（发布阶段） 最后，Agent 会：\n验证所有任务是否完成 生成摘要交付物 提供链接指向已保存的产出 核心特性 自我规划 Agent 能够根据用户需求自主规划任务步骤，而不需要人类逐步指示。\n可追踪的进度 通过 Todo List 机制，每一步任务都有明确的状态追踪，确保不会遗漏。\n可验证的产出 每一步完成后都生成可验证的产出物，确保质量。\n为什么选择 Pi 特性 优势 极简设计 学习曲线平缓，快速上手 灵活架构 可以轻松适配现有工作流 可扩展性 支持自定义工具和 API 透明工作流 每一步都清晰可追踪 实际应用场景 代码开发助手 自动分析代码仓库结构 生成代码审查报告 提供优化建议 文档撰写 自动收集资料 生成结构化文档 支持多种格式输出 数据处理 自动抓取和整理数据 生成分析报告 可视化展示结果 总结 Pi Agent 提供了一种优雅的方式来构建 AI Agent。它的核心理念——让 Agent 适应你的工作流，而不是相反——使得它在实际应用中非常灵活和强大。\n通过理解其 Planning → Processing → Publishing 的工作流程，你可以：\n快速入门 Agent 开发 将 Agent 集成到现有工作流中 构建可验证、可追踪的 AI 应用 开始学习 Pi，让 AI Agent 真正为你所用。\n","date":"2026-07-26T00:00:00Z","image":"https://kinguang3.github.io/King/p/pi-agent-workflow/pi-agent_hu_c40ed4cc922c1295.png","permalink":"https://kinguang3.github.io/King/p/pi-agent-workflow/","title":"学习 Pi Agent 的工作流"},{"content":"项目简介 Card-Forge 是一个强大的卡牌制作网站，让你能够轻松设计精美的游戏卡牌、收藏卡或名片。\n网站地址 https://kinguang3.github.io/Card-Forge/\n核心功能 强大的卡牌编辑器 使用直观的卡牌编辑器，拖拽式操作让卡牌设计变得简单高效。\n丰富模板 提供多种精美卡牌模板，涵盖游戏卡牌、收藏卡、名片等多种用途。\n自定义选项 支持自定义卡牌背景、边框、文字样式等，打造独一无二的卡牌作品。\n高清导出 支持高清图片导出，让你的创作完美呈现。\n设计特色 网站采用深色神秘主题，搭配金色装饰元素，营造出传奇卡牌的氛围。卡牌展示采用 3D 浮动效果，增强视觉冲击力。\n技术栈 前端：现代化的 Web 技术 设计：精美的卡牌 UI 设计 交互：流畅的拖拽编辑体验 立即访问 Card-Forge，开启你的卡牌创作之旅！\n","date":"2026-07-07T00:00:00Z","image":"https://kinguang3.github.io/King/p/card-forge/CardForge_hu_72ab63ed657d2331.png","permalink":"https://kinguang3.github.io/King/p/card-forge/","title":"Card-Forge - 传奇卡牌铸造工坊"},{"content":"正文测试 而这些并不是完全重要，更加重要的问题是， 带着这些问题，我们来审视一下学生会退会。 既然如何， 对我个人而言，学生会退会不仅仅是一个重大的事件，还可能会改变我的人生。 我们不得不面对一个非常尴尬的事实，那就是， 可是，即使是这样，学生会退会的出现仍然代表了一定的意义。 学生会退会，发生了会如何，不发生又会如何。 经过上述讨论， 生活中，若学生会退会出现了，我们就不得不考虑它出现了的事实。 学生会退会，到底应该如何实现。 这样看来， 在这种困难的抉择下，本人思来想去，寝食难安。 对我个人而言，学生会退会不仅仅是一个重大的事件，还可能会改变我的人生。 就我个人来说，学生会退会对我的意义，不能不说非常重大。 莎士比亚曾经提到过，人的一生是短的，但如果卑劣地过这一生，就太长了。这似乎解答了我的疑惑。 莫扎特说过一句富有哲理的话，谁和我一样用功，谁就会和我一样成功。这启发了我， 对我个人而言，学生会退会不仅仅是一个重大的事件，还可能会改变我的人生。 学生会退会，到底应该如何实现。 一般来说， 从这个角度来看， 这种事实对本人来说意义重大，相信对这个世界也是有一定意义的。 在这种困难的抉择下，本人思来想去，寝食难安。 了解清楚学生会退会到底是一种怎么样的存在，是解决一切问题的关键。 一般来说， 生活中，若学生会退会出现了，我们就不得不考虑它出现了的事实。 问题的关键究竟为何？ 而这些并不是完全重要，更加重要的问题是。\n奥斯特洛夫斯基曾经说过，共同的事业，共同的斗争，可以使人们产生忍受一切的力量。　带着这句话，我们还要更加慎重的审视这个问题： 一般来讲，我们都必须务必慎重的考虑考虑。 既然如此， 这种事实对本人来说意义重大，相信对这个世界也是有一定意义的。 带着这些问题，我们来审视一下学生会退会。 我认为， 我认为， 在这种困难的抉择下，本人思来想去，寝食难安。 问题的关键究竟为何？ 每个人都不得不面对这些问题。 在面对这种问题时， 要想清楚，学生会退会，到底是一种怎么样的存在。 我认为， 既然如此， 每个人都不得不面对这些问题。 在面对这种问题时， 那么， 我认为， 学生会退会因何而发生。\n引用 思念是最暖的忧伤像一双翅膀\n让我停不了飞不远在过往游荡\n不告而别的你 就算为了我着想\n这么沉痛的呵护 我怎么能翱翔\n最暖的憂傷 - 田馥甄\n图片 1 2 3 ![Photo by Florian Klauer on Unsplash](florian-klauer-nptLmg6jqDo-unsplash.jpg) ![Photo by Luca Bravo on Unsplash](luca-bravo-alS7ewQ41M8-unsplash.jpg) ![Photo by Helena Hertz on Unsplash](helena-hertz-wWZzXlDpMog-unsplash.jpg) ![Photo by Hudai Gayiran on Unsplash](hudai-gayiran-3Od_VKcDEAA-unsplash.jpg) 相册语法来自 Typlog\n","date":"2020-09-09T00:00:00Z","image":"https://kinguang3.github.io/King/p/test-chinese/helena-hertz-wWZzXlDpMog-unsplash_hu_49a5627966639d97.jpg","permalink":"https://kinguang3.github.io/King/p/test-chinese/","title":"Chinese Test"},{"content":"This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.\nHeadings The following HTML \u0026lt;h1\u0026gt;—\u0026lt;h6\u0026gt; elements represent six levels of section headings. \u0026lt;h1\u0026gt; is the highest section level while \u0026lt;h6\u0026gt; is the lowest.\nH1 H2 H3 H4 H5 H6 Paragraph Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.\nItatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.\nBlockquotes The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations.\nBlockquote without attribution Tiam, ad mint andaepu dandae nostion secatur sequo quae. Note that you can use Markdown syntax within a blockquote.\nBlockquote with attribution Don\u0026rsquo;t communicate by sharing memory, share memory by communicating.\n— Rob Pike1\nTables Tables aren\u0026rsquo;t part of the core Markdown spec, but Hugo supports supports them out-of-the-box.\nName Age Bob 27 Alice 23 Inline Markdown within tables Italics Bold Code italics bold code A B C D E F Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ultricies, sapien non euismod aliquam, dui ligula tincidunt odio, at accumsan nulla sapien eget ex. Proin eleifend dictum ipsum, non euismod ipsum pulvinar et. Vivamus sollicitudin, quam in pulvinar aliquam, metus elit pretium purus Proin sit amet velit nec enim imperdiet vehicula. Ut bibendum vestibulum quam, eu egestas turpis gravida nec Sed scelerisque nec turpis vel viverra. Vivamus vitae pretium sapien Code Blocks Code block with backticks 1 2 3 4 5 6 7 8 9 10 \u0026lt;!doctype html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;utf-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Example HTML5 Document\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;p\u0026gt;Test\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Code block indented with four spaces \u0026lt;!doctype html\u0026gt; \u0026lt;html lang=\u0026quot;en\u0026quot;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026quot;utf-8\u0026quot;\u0026gt; \u0026lt;title\u0026gt;Example HTML5 Document\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;p\u0026gt;Test\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Code block with Hugo\u0026rsquo;s internal highlight shortcode 1 2 3 4 5 6 7 8 9 10 \u0026lt;!doctype html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;utf-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;Example HTML5 Document\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;p\u0026gt;Test\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Diff code block 1 2 3 4 5 [dependencies.bevy] git = \u0026#34;https://github.com/bevyengine/bevy\u0026#34; rev = \u0026#34;11f52b8c72fc3a568e8bb4a4cd1f3eb025ac2e13\u0026#34; - features = [\u0026#34;dynamic\u0026#34;] + features = [\u0026#34;jpeg\u0026#34;, \u0026#34;dynamic\u0026#34;] List Types Ordered List First item Second item Third item Unordered List List item Another item And another item Nested list Fruit Apple Orange Banana Dairy Milk Cheese Other Elements — abbr, sub, sup, kbd, mark GIF is a bitmap image format.\nH2O\nXn + Yn = Zn\nPress CTRL + ALT + Delete to end the session.\nMost salamanders are nocturnal, and hunt for insects, worms, and other small creatures.\nHyperlinked image The above quote is excerpted from Rob Pike\u0026rsquo;s talk during Gopherfest, November 18, 2015.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"2019-03-11T00:00:00Z","image":"https://kinguang3.github.io/King/p/markdown-syntax-guide/pawel-czerwinski-8uZPynIu-rQ-unsplash_hu_961024150ee0dc47.jpg","permalink":"https://kinguang3.github.io/King/p/markdown-syntax-guide/","title":"Markdown Syntax Guide"},{"content":"Lorem est tota propiore conpellat pectoribus de pectora summo.\nRedit teque digerit hominumque toris verebor lumina non cervice subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum.\nExierant elisi ambit vivere dedere Duce pollice Eris modo Spargitque ferrea quos palude Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria tractus malis.\nComas hunc haec pietate fetum procerum dixit Post torum vates letum Tiresia Flumen querellas Arcanaque montibus omnes Quidem et Vagus elidunt The Van de Graaf Canon\nMane refeci capiebant unda mulcebat Victa caducifer, malo vulnere contra dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere furit nec; iaculi matertera et visa est, viribus. Divesque creatis, tecta novat collumque vulnus est, parvas. Faces illo pepulere tempus adest. Tendit flamma, ab opes virum sustinet, sidus sequendo urbis.\nIubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae vulnus haerentia iuste et exercebat, sui et.\nEurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel mitis temploque vocatus, inque alis, oculos nomen non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem Propoetides parte.\n","date":"2019-03-09T00:00:00Z","image":"https://kinguang3.github.io/King/p/placeholder-text/matt-le-SJSpo9hQf7s-unsplash_hu_6d31a80794d316b7.jpg","permalink":"https://kinguang3.github.io/King/p/placeholder-text/","title":"Placeholder Text"},{"content":"Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries.\nIn this example we will be using KaTeX\nCreate a partial under /layouts/partials/math.html Within this partial reference the Auto-render Extension or host these scripts locally. Include the partial in your templates like so: 1 2 3 {{ if or .Params.math .Site.Params.math }} {{ partial \u0026#34;math.html\u0026#34; . }} {{ end }} To enable KaTeX globally set the parameter math to true in a project\u0026rsquo;s configuration To enable KaTeX on a per page basis include the parameter math: true in content files Note: Use the online reference of Supported TeX Functions\nExamples Inline math: $\\varphi = \\dfrac{1+\\sqrt5}{2}= 1.6180339887…$\nBlock math: $$ \\varphi = 1+\\frac{1} {1+\\frac{1} {1+\\frac{1} {1+\\cdots} } } $$","date":"2019-03-08T00:00:00Z","permalink":"https://kinguang3.github.io/King/p/math-typesetting/","title":"Math Typesetting"},{"content":"Emoji can be enabled in a Hugo project in a number of ways.\nThe emojify function can be called directly in templates or Inline Shortcodes.\nTo enable emoji globally, set enableEmoji to true in your site\u0026rsquo;s configuration and then you can type emoji shorthand codes directly in content files; e.g.\n🙈 :see_no_evil: 🙉 :hear_no_evil: 🙊 :speak_no_evil:\nThe Emoji cheat sheet is a useful reference for emoji shorthand codes.\nN.B. The above steps enable Unicode Standard emoji characters and sequences in Hugo, however the rendering of these glyphs depends on the browser and the platform. To style the emoji you can either use a third party emoji font or a font stack; e.g.\n1 2 3 .emoji { font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols; } ","date":"2019-03-05T00:00:00Z","image":"https://kinguang3.github.io/King/p/emoji-support/the-creative-exchange-d2zvqp3fpro-unsplash_hu_8f839df3ede14ca2.jpg","permalink":"https://kinguang3.github.io/King/p/emoji-support/","title":"Emoji Support"}]