图的最短路径都会写,那么最长路径呢?

最短路径是最经典的必学图论问题。Dijkstra 处理非负权图,Bellman-Ford 可以处理负权边,还能发现负权环。学到这里,很自然会冒出一个问题:既然有最短路径,那有没有最长路径?如果有,能不能把松弛操作里的 min 换成 max ,把最短路径算法改一改就用? 这个问题表面上很对称,实际并不对称。最长路径不是一个“最短路径的反向版本”,而是会逼着我们重新确认“路径”到底允许什么、环怎么处理、答案是否一定有限。 最短路、path 和 walk 在最短路径里,我们通常想找从 \(s\) 到 \(t\)
菲比   2026-08-23    1    64    279  

Python 原生封装 Llama.cpp 大模型推理接口

本文以通义千问Qwen量化GGUF模型为案例,基于Llama.cpp框架展示本地大模型调用与功能开发的完整实现原理及流程。全文采用原生Python编写代码案例,无需依赖重型AI框架,依次实现模型元数据解析、本地接口单次对话调用、多轮对话持久化记忆、自定义工具调用拓展等功能实现逻辑,针对直接调用大模型上下文断裂、功能单一、拓展性不足等问题,通过轻量化对话记忆与工具解析执行框架完成优化实现,拆解本地对话交互运行原理,帮助开发者掌握大模型的基础调用原理。 大模型基础内容 什么是GGUF格式 首先 GGUF 是
Doro   2026-08-20    2    82    116  

Agent 学习笔记 14:Harness Engineering:给 Agent 装上一层可靠外壳

单次 Demo 能跑,不代表 Agent 可以交给真实用户。模型输出、工具调用、状态恢复、权限控制和人工介入之间,还需要一个稳定的运行外壳,这就是我理解的 Harness Engineering。 Harness 管的是整个运行环境 它通常包括明确的项目指令、上下文策略、工具契约、状态机、结构化输出、权限、超时重试、日志追踪和评估回归。模型提供灵活判断,Harness 把这种判断限制在可测试、可恢复的轨道里。 请求 -> 身份与策略 -> 上下文构建 -> Agent 循环 -> 工具治理 -> 产物校验
Doro   2026-08-15    1    10    903  

Claude Code 实战 400 万 Tokens:接入 DeepSeek V4,从$26降到$2

上个月用 Claude Code 连着干了几天需求,账单出来的时候我愣了一下。 400 万个 tokens。Claude Sonnet 4.6,$3 输入 / $15 输出,保守估算下来将近 $26。不是说它贵,是突然意识到:这只是一周的编码量。如果是个认真用 AI 工具的工程师,每个月的消费可能超过一台云服务器。 然后 2026 年 4 月 24 日,DeepSeek 发布了 V4,并在三天后(今天,4 月 27 日)宣布 V4-Pro 限时降价 75%。我把 Claude Code 的后端切换到 De
Taffy   2026-08-14    1    64    810  

Vibe Coding 有了接口原型后:用智能体做一份联调差异单

把 Vibe Coding 想成先搭出样板房:一句自然语言就能很快生成页面、接口骨架和交互流程。它适合前端、后端、运维和 Web Coding 开发者把想法跑起来。当天可以先选一条可回滚的接口链路,让智能体只读取契约与测试结果,生成一份差异单;做到每一条差异都能回到来源文件,就已经足够有用。 Vibe Coding 先帮你跑出原型,为什么联调还是会卡住? Vibe Coding 擅长把意图变成可见的原型。例如,前端页面、接口调用代码和模拟数据可以在一次对话里迅速出现。它解决的是“先让功能看得见”。 但接口
Doro   2026-08-09    0    68    834  

《GIS基础原理与技术实践》配套案例(Python版)

🚀 快速开始 1️⃣ 安装 Conda 环境 本项目依赖 Conda 进行环境隔离与包管理。如果您尚未安装 Conda,请根据个人习惯选择以下任意一种发行版进行安装: Anaconda :功能全面的科学计算发行版(如果您已安装 Anaconda,可跳过此步骤)。 Miniconda :仅包含 Conda 和 Python 的轻量级发行版,推荐追求简洁环境的用户。 2️⃣ 获取项目代码 克隆或下载本项目到本地目录,在根目录的 Python 子目录中找到并确保包含核心配置文件 environment.yml
Taffy   2026-07-21    0    26    763  

"AutoMem: A Text-Gradient Recursive Self-Improvement Framework for Automated Memory Architectures Search" 论文笔记

华东师范大学 ICALK 实验室联合上海人工智能实验室的工作 AutoMem ,目前挂在 Arxiv 26.07 上,把 LLM Agent 的长期记忆设计重新表述成一个 任务自适应的记忆架构搜索 问题, 本质上就是给每个 task 找一个现有方法的最佳组合 这篇工作可以看成是紧接着 MemEvolve 的思路往前走了一步。MemEvolve 把整个记忆系统当成一个整体去演化,每一个候选都是一份 单体(monolithic)实现 ,好处是灵活,坏处是失败发生时无法把责任归因到具体的记忆模块,也无法做受控的
Doro   2026-07-18    0    71    842  

MonkeyCode 是什么:一个浏览器里的 AI 开发平台

MonkeyCode 是什么:一个浏览器里的 AI 开发平台 很多人第一次听说 MonkeyCode,会以为它又是一个"套壳 ChatGPT 的聊天窗口"。其实它不是聊天机器人,而是一套真正能干活儿的 AI 开发平台。 一句话介绍 MonkeyCode 是一个免费、无需安装的在线 AI 开发平台。你打开浏览器、注册账号,就能在一个内置的云端开发环境里,用自然语言让 AI 帮你完成开发、测试、部署的全流程。 它和普通 AI 聊天工具有什么不同? 普通聊天工具给你的是"一段回答";MonkeyCode 给你的
Doro   2026-07-14    0    62    128  

Agent 学习笔记 15:Skill System:让 Agent 学会发现和复用能力

工具解决的是“调用一次能力”,Skill 解决的是“复用一套完成任务的方法”。当 Agent 不只需要一个函数,而是需要步骤、资源、判断标准和验证方式时,技能系统就比不断扩充工具列表更合适。 Tool、Skill 和 Sub Agent 的边界 Tool 通常是原子动作,例如读文件、查订单;Skill 是围绕目标封装的工作流,例如“生成并校验周报”;Sub Agent 则拥有相对独立的上下文和执行循环,适合边界清晰、可并行的子任务。层级越高,成本和治理要求也越高。 一个 Skill 应包含什么 除了名称和
Doro   2026-07-08    0    48    585  

在骰子落地之前:蒙特卡罗与拉斯维加斯随机算法

随机算法并不是把正确性交给运气。更准确地说,它是在设计一种承诺:哪些东西必须保证,哪些东西允许带概率,概率又被限制在什么范围内。 有些随机算法把不确定性放在“答案质量”上。它会在规定时间内结束,但答案可能偶尔出错。另一些随机算法则反过来:答案一旦输出就一定正确,但具体运行多久由随机过程决定。它们被挂上两个赌城的名字: 蒙特卡罗(Monte Carlo)和拉斯维加斯(Las Vegas) 。两者都依赖随机数,却押注在完全不同的东西上。 粗略地说:蒙特卡罗算法说:“我会按时给你答案,但它有很小概率是错的。”拉
Taffy   2026-06-23    0    91    902  

Miller Rabin:概率之下,证据成群

很多随机算法并不是靠“运气好”工作,而是靠候选空间里存在大量可用证据。只要证据足够密集,随机抽样就不再像碰运气,而更像一种低成本的搜索策略。 对于某个输入 \(x\) ,如果额外给出一段信息 \(w\) ,我们就能比直接求解更高效地验证某个结论。在计算复杂性中,这类辅助信息通常被称为 witness,也可以理解为“证人”或“证据”。算法不一定知道 witness 分布在哪里,也不一定能直接构造 witness;但它必须能够高效检查一个候选者是否为 witness。只要 witness 在候选集合里足够多,
Taffy   2026-06-07    0    60    844  

Linux 多用户环境下 AirPods 已连接但没有声音排查与修复

一台 Ubuntu 双系统主机上,AirPods 可以完成蓝牙配对,也能显示为已连接,但 GNOME 的声音输出列表里没有 AirPods,应用音频仍然只能输出到板载声卡或 HDMI。这是 Linux 多用户音频服务抢占了蓝牙音频 profile。 蓝牙层看起来正常: bluetoothctl devices Connected 能看到 AirPods 已连接: Device AA:BB:CC:DD:EE:FF AirPods Pro 设备详情也显示已配对、已信任、已连接,并且包含音频相关 UUID: P
Taffy   2026-05-20    0    99    883