自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wshzd的博客

专注于机器学习和深度学习

  • 博客(408)
  • 资源 (2)
  • 收藏
  • 关注

原创 LLM之Agent(120)|DeepSeek-Harness(二十七)Workflow 引擎与 Ralph 循环

" 通道的角色分工和课程写作时的协议(区分"guest → host 的请求"与"host → guest 的回复/结算通知")在思路上是一致的,只是载体从"同进程 worker 的 MessagePort"变成了"跨进程的受管道",且明确写着"模型代码可以写入该通道,因此其中字节仍不可信"——host 侧不能假设从这条通道读到的字节是安全的,必须像对待任何外部输入一样校验。这是"每轮从干净状态开始"这条设计承诺,从提示词层面的口头约定,进一步落到了代码层面的硬校验。,没有任何预先灌入的对话历史。

2026-10-26 17:32:00 87

原创 LLM之Agent(119)|DeepSeek-Harness(二十六)Subagent 委派与协作模型

这与包装外部 CLI 的三个 Provider 有本质区别:那三个是"驾驶一辆别人造的车",这个是"造一辆完全独立、可能配置迥异的新车,让它自己跑"——子 harness 有自己决定的组合、自己的会话持久化、自己的模型路由,完全是一个对等的独立个体,只是它的启停被父进程当作子代理来管理。设置(用户在设置面板里选的"子代理该用哪个模型"这类偏好),并把这个决定原样传给它派生出来的所有子代理会话——也就是说这个设置只在顶层会话创建时采样一次,子代理不会各自重新读取、也不会因为用户中途改了设置而"变卦"。

2026-10-26 08:37:25 158

原创 LLM之Agent(118)|DeepSeek-Harness(二十五)对外协议 SDK、ACP 与生态兼容 Hooks

"运行在任何 harness context 之外"——这句话点出了这类 SDK 客户端的本质:它们不是 dsh 内部的一个插件,而是完全独立于 dsh 进程空间之外的调用方,理所当然不能依赖只有 Cordis 插件才能访问的内部服务。这种"每个桥接自己贴合外部协议的具体字节格式,但都翻译到同一套内部拦截点"的分层,正是这个生态兼容层的核心价值——它把"跟外部生态的字节级兼容"和"跟 dsh 内部的语义对接"清晰地分成了两层,后者两个桥接包完全共用。

2026-10-25 14:08:45 72

原创 LLM之Agent(117)|DeepSeek-Harness(二十四)Host/Client 分离与 Typert RPC 生成

第 04 章讲的"assistant/chunk 事件如何在会话日志里被追加",和本篇讲的"这条事件如何被推到浏览器里逐字打字",正好是同一条数据在两个不同抽象层次上的描述——前者关心事件本身的语义和持久化,后者关心这条事件如何跨越进程边界、跨越协议边界,最终变成浏览器里的一次 DOM 更新。说的"separate data protocol"指的是这条流内部的 frame 词汇表(snapshot/records/assistant-stream),不是 Typert 之外的"另一套协议"。

2026-10-24 09:09:23 327

原创 LLM之Agent(116)|DeepSeek-Harness(二十三)Python SDK 与 NDJSON-RPC 桥接

这些都是"完整 dsh CLI 现在自带的能力"(文件全文搜索用 ripgrep,文档处理用 Office 转换引擎)在单文件打包这个环节必须一起背上的行李——这也是为什么这一节的标题从"打包成 exe"变成了"打包成 exe,顺带背了哪些行李":当年打包一个迷你 JSON-RPC demo 应用不需要考虑这些,但打包完整 CLI 就必须考虑。就够了,不需要维护和同步任何"树快照"给客户端。这部分逻辑经历了一次和"两个包的分工"呼应的重写——不再有任何"自动注入一份默认配置、让零参数也能跑起来"的魔法,

2026-10-22 22:11:15 327

原创 LLM之Agent(115)|DeepSeek-Harness(二十二)Native 沙箱内核 landlock-run

Landlock 是 Linux 5.13 引入的一个专门为"非特权自我限制"设计的 LSM(Linux Security Module):任何进程都可以在不需要额外权限的情况下,给自己施加一个文件系统访问的白名单规则集,规则一旦施加就无法撤销,并且会随。三态而不是简单的能用/不能用)。在跨语言边界这个主题下,它也是一个很好的反面教材式案例——一个包名可能会误导你以为它是"绑定进宿主语言运行时的原生模块",但真正的边界划分方式,可以简单到只是"启动一个独立可执行文件,靠退出码和 stderr 前缀通信"。

2026-10-21 15:44:48 203

原创 LLM之Agent(114)|DeepSeek-Harness(二十一)内置工具全解析

拼成的不透明字符串,任何一项变化都会让它变化)会作为"比较并交换"(CAS)的基准传给底层 Provider——底层实现要保证"只有当前磁盘上的版本和这个基准完全一致时才真正执行替换",否则说明文件在"这个会话读它"和"这个会话写它"之间被别的进程改动过,写入必须失败而不是覆盖别人的修改。,模型读到的是"被人停止的原因"而不是一个莫名其妙的失败。分支——没读过就只能"创建一个原本不存在的文件",读过就必须"替换成读到的那个版本",两条路径都杜绝了"凭空覆盖一个我没看过的文件"的可能性。

2026-10-16 15:33:28 361

原创 LLM之Agent(113)|DeepSeek-Harness(二十)权限审批与沙箱体系

"给不给这条命令写文件的权限"和"要不要为这次操作弹窗问用户"其实是两个完全独立的问题:一个命令可能被沙箱允许执行,但部署方仍然希望每一次都有人确认;是给 schema 用的,是"这个部署可能升到的全部目标"的静态并集),因为 schema 是注册表级别全局共享的,而"从哪个模式升级"是每次调用的运行期事实——两者必须分开校验。三个旋钮的当前取值,不只是内部策略检查用的状态,还会被翻译成一段自然语言,拼进每次请求的系统提示词里,让模型对自己的处境有明确认知,而不是只能通过"试了才知道被拒绝"来摸清边界。

2026-10-15 18:22:12 467

原创 LLM之Agent(112)|DeepSeek-Harness(十九)工具注册与执行管线

两者是完全独立的两层调度容量,一个部署完全可以把外层调到 4、内层调到 20(或者反过来),取决于"模型直接发起的调用"和"程序内部串联的调用"各自的并发特性。只会在"下一个待提交的槽位已经就位"时才前进一格。之后,是对一个已经产生的结果的事后否决,通常伴随着"把结果换成一段纠正性的反馈文本"(比如"你写的这段内容触犯了某条策略,请修改后重试"),模型看到的是一个。),模型看到的就不再是每个工具各自的 schema,而是一份生成的 SDK 说明("像写代码一样调用这些函数")加一个唯一可直接调用的工具——

2026-10-15 11:59:23 384

原创 LLM之Agent(111)|DeepSeek-Harness(十八)Seam 三元结构精讲:以 shell 为例

"纯前台"变体则不写)。描述的是"这个部署(或者这个 scope)默认怎么执行 shell 命令"这一个全局事实,不是"每个工具各自选择执行器"的路由表。家族,这一整套包后来已从仓库中移除(远程执行仍是官方声明的预留能力,SSH 助手族是当前落地的远程形态)——这也从侧面演示了"三元结构允许 Provider 生灭而 Consumer 不动"的真实历史。这也解释了为什么部署方能够在"纯本地跑""本地但沙箱隔离""文件操作发生在远端主机上"这三种形态之间自由切换——每一种形态换的都只是 Provider,

2026-10-14 11:50:47 228

原创 LLM之Agent(110)|从 Vibe Coding 到 SDD:用 OpenSpec、Spec-Kit 和 BMAD 驯服 AI 编程

SDD 是 Vibe Coding 的进化——在最终的实现阶段,AI 仍然用“氛围编程”的方式写代码,只不过不再根据模糊指令去猜,而是拿着一份清晰的规范去执行。但它的学习曲线也最陡峭。OpenSpec 支持集成到 22 种以上的 AI 编程工具中,包括 Claude Code、Cursor、Windsurf、OpenCode 等,这意味着你不需要绑定某一个特定的 IDE 或助手。当你提交功能 PR 时,可以同时附带规范文件和代码变更,审查者既能看到你“要建什么”(规范),也能看到你“怎么建的”(代码)。

2026-10-13 11:23:58 361

原创 LLM之Agent(109)|DeepSeek-Harness(十七)错误处理、重试与取消机制

而不是一个静态标记:同一个工具,对不同的调用参数可能给出不同的并发分类(比如"读文件"永远安全,但"写文件"要看写的是不是同一个路径)。工具调用的并发上限是一个和 provider 限流完全独立的参数——它限制的是"同一个 agent 步骤里,最多同时有几个工具调用在跑",而不是"多久能发一次模型请求"。空闲太久触发本地看门狗超时;工具执行侧同样如此——第一篇的。(正在执行中的调用)数量还没到上限,就持续从待启动队列里拉新的调用进来启动——但每次要启动下一个之前,会重新检查一遍这个调用当下的并发分类(

2026-10-12 15:43:25 145

原创 LLM之Agent(108)|DeepSeek-Harness(十六)上下文压缩 Compaction 与 Checkpoint 持久化

这套设计让"绝大多数普通事件追加"走一条便宜的、批量摊销的路径,只有真正需要 durability 保证的那几个关键时刻才付出"立刻写入"的代价——,否则派生出的历史会出现一次没有结果的裸调用,模型看到会困惑,更严重的是会破坏 provider 侧对"assistant 消息紧跟工具结果"这类格式的强约束。如果生成的摘要本身比被压缩的原文还长(模型偶尔会这样),整个压缩事务直接判定失败——压缩存在的意义就是"变小",一个不变小的压缩没有任何价值,不应该被接受。,而不是"先执行,再想办法补记一条日志"。

2026-10-09 11:51:16 285

原创 LLM之Agent(107)|DeepSeek-Harness(十五)流式输出管道:从 StreamChunk 到 UI

同时负责"实时转发给 UI"和"落盘一份可无损重放的紧凑记录"这两件事(但两条路径彼此独立,见下),Host/Client 之间的传输层负责把数据搬到浏览器,Client 只管"把收到的数据再折叠成可渲染的 UI 状态"。分支),之前已经发给 UI 的帧也不会被撤回——UI 展示的是"这一刻模型说了什么"的事实,会话日志记的是"这次请求最终、经得起回放验证的结果",两者故意不耦合。来兜底 adapter 层面的各种抛异常方式——这也是为下一篇的重试机制铺路:重试判断的输入永远是一条结构化的。

2026-09-30 14:12:36 241

原创 LLM之Agent(106)|如何写出好的 Skill

比如你要做一个"PDF 处理"技能:SKILL.md 里写了处理流程,但旋转 PDF 的代码每次都一样,每次让 AI 重写既浪费时间又可能出错——不如直接放一个写好的 Python 脚本。那正确的写法是什么样的?它是一个"创建 skill 的 skill",它自己的 SKILL.md 就是一份关于"如何给 AI 写指令"的最佳实践。技能文件夹里,可能有一份"怎么处理 PDF"的操作指令、一个旋转 PDF 的 Python 脚本、一份 API 参考文档——AI 不需要从外部再找任何东西,这个文件夹里全有了。

2026-09-29 15:02:46 490

原创 LLM之Agent(105)|DeepSeek-Harness(十四)会话事件溯源:Session Event Log 与 Surface

这让"没有压缩发生的正常对话"每次调用的开销只有 O(新增节点数),而不是每次都要把整份历史重新投影一遍——对一个可能有几千条事件的长会话来说,这个差别是数量级的。被截断,模型这一步什么内容都没产出、只携带了一份 usage 统计,这类事件被记录下来(为了 usage 账目完整),但绝不能在派生历史里插入一条空的 assistant 轮次——那会让下一次请求的消息序列出现语义上没有意义的空发言。本身是一个纯粹的"去重"判断:只有当渲染出来的当前上下文文本和已经记住的上一条快照不同时,才返回一条新的。

2026-09-29 11:09:00 201

原创 LLM之Agent(104)|DeepSeek-Harness(十三)ReactLoopAgent 总览:kick → turn → step

是"一次模型调用 + 它触发的工具执行",是 ReAct 循环的最小单元。不是运行中的循环会产生的:它是 fork 种子构造时给"源会话在 fork 边界处还没收尾的 turn"事后补记的标记,只出现在 fork 出来的子会话日志里。四类事件在会话日志里天然形成了一个可以精确回放、精确定位"崩溃发生在哪个 turn 的哪个 step"的树状结构——这也是下一篇要讲的"会话事件溯源"的直接基础。依然是"一次模型调用 + 它触发的工具执行"的最小单元,工具调用不产生新 turn的判断逻辑(下面这段)完全没变。

2026-09-28 15:08:00 506

原创 LLM之Agent(103)|当「快思考」遇上「深理解」:Laya 和 BERT 到底有什么区别?

在 arXiv 上发表了一篇论文,提出了"非自回归决策模型"的概念——基于强化学习和严格proper scoring rules,在encoder架构上做端到端的决策输出。Laya-multilingual 走得是另一条路——它专门针对决策场景优化,支持100+语言,而且在很多语言上的决策准确率远超 BERT 的多语言版本。代表的是"大一统"思路——一个模型学习通用表示,所有的任务都建立在这个表示之上。RLCD 训练出来的模型,概率输出是经过数学校准的,不是语言模型那种"听起来自信的文本"

2026-09-28 11:57:11 343

原创 LLM之Agent(102)|DeepSeek-Harness(十二)Profile、Bundle、Preset:dsh 的装配语言

至此,本章从"一个插件长什么样"(第一篇),到"插件之间怎么通信"(第二篇),到"卸载怎么保证干净"(第三篇),再到"这些插件在系统和会话两个粒度上怎么被组装起来"(本篇),构成了理解 dsh 运行时架构所需要的完整 Cordis 基础——后续章节里出现的任何一个具体子系统,都是在这套基础之上长出来的一棵插件树。记录了决策始末——替换的理由正是"目录 preset 复制了 Cordis 的配置所有权,独立的那套 API 无法用一个普通的 profile 补丁表达同样的组合")——

2026-09-24 15:51:56 415

原创 LLM之Agent(101)|DeepSeek-Harness(十一)Cordis Typed Events:五种派发模式与 waterfall 语义

表面上什么错误都不会抛出,但它背后的默认行为、以及注册在它之后的所有监听器都会被静默吞掉——这在生产环境里排查起来非常痛苦,因为现象只是"某个功能诡异地不生效了",看不到任何报错。这段代码印证了本章的核心论点:所谓"钩子系统",在 Cordis 里根本不需要一套专门的 hook 协议或者外部命令通道——它就是一个普普通通的插件,里一个更完整的端到端测试展示了它在真实调用链路里的效果——注册一个"危险工具",再挂一个监听器拒绝它,断言模型最终看到的是一条。挂上去的这些监听器,插件被卸载的时候去哪儿了?

2026-09-24 14:12:49 324

原创 LLM之Agent(一百)|DeepSeek-Harness(十)Cordis核心概念:Context、Service、Plugin

下一篇《Typed Events 与五种派发模式》会讲清楚:当插件之间不需要"直接调用对方方法"、只需要"通知对方发生了什么、或者请对方决定要不要拦截"时,Cordis 提供的另一套通信机制——Typed Events——是怎么工作的。如果"用 SQLite 存会话"和"用本地文件系统存会话"是两份分别写死在初始化代码里的实现,想要换一个持久化后端,就得去改调用方的每一处引用。——这不是随手设计的返回值,而是本章第三篇要讲的"注册即副作用"原则在最底层的体现:谁提供了服务,谁就自动获得了收回它的手柄。

2026-09-24 10:41:07 352

原创 LLM之Agent(九十九)|DeepSeek-Harness(九)Vendoring 策略与供应链治理

这个取舍在业界并不罕见——大型项目普遍会对某些特别核心、特别需要深度定制、或者信任边界特别敏感的依赖采取类似策略,常见形态包括:把编译器/运行时的某个关键子系统整个拷进主仓库并保留同步脚本、对安全敏感的加密库做"vendor + 定期人工审计差异"而不是自动升级、或者像很多大型单体仓库那样对整个第三方生态做"snapshot + 内部 fork"处理,理由几乎都指向同一句话——如果不改名,直接用上游的包名发布,就等于在公共 registry 上"抢注"了别人的包名——这是必须避免的供应链事故。

2026-09-23 18:19:26 328

原创 LLM之Agent(九十八)|DeepSeek-Harness(八)测试策略与 CI 门禁

DeepSeek Harness 的测试体系用七层 Vitest 配置(课程写作时是五层,后来新增了 expected 和 bench 两层)分别验证"代码区域自身正确"(unit)、"逐文件真的被跑过"(coverage)、"对着真实模型真的能用"(e2e)、"构建产物的确定性输出没有偏差"(expected)、"关键路径的性能预算没有退化"(bench)、"外部契约没有意外变化"(snapshot)、"浏览器渲染出来的真实效果没有回归"(web),每一层都对应。环境变量可覆盖并发度)。

2026-09-23 15:52:01 609

原创 LLM之Agent(九十七)|DeepSeek-Harness(七)构建体系:Host 与 Client 双面构建

加载,TypeScript 会把二者做接口合并——合并结果既不是 Host 期望的类型,也不是 Client 期望的类型,而是两者字段的并集(遇到同名同结构字段会合并、遇到冲突签名可能直接报错或产生令人费解的联合类型)。——因为类型系统"看得到"这个键,反而会编译通过,直到打包阶段才因为找不到对应的运行时实现而崩溃,甚至更糟——悄悄地把一份不该在浏览器里出现的 Node 依赖打进产物。里读出来)——也就是说,原来"哪些模块能被外部化"是一份仓库级别的全局清单,现在下放成了"每个客户端包在自己的。

2026-09-23 15:13:23 431

原创 LLM之Agent(九十六)|DeepSeek-Harness(六)Monorepo 结构与包职责地图

一个就占了 16 个包,基本对应"Agent Teams 多智能体协作"和"浏览器/computer-use 自动化"这两个还在快速迭代中的方向——如果你在别的章节看到"多智能体""浏览器自动化"相关的新概念,大概率源码就在。DeepSeek Harness 用"54 个一级分类 + 291 个二级叶子包"(数字仍在快速变化)的两级目录,把"给人浏览的能力地图"和"给工具消费的发布单元"彻底分离;则是两个"依附但独立"的顶层目录:前者是本地进程沙箱相关原生启动器的构建产物(有自己的。

2026-09-22 15:24:21 289

原创 LLM之Agent(九十五)|DeepSeek-Harness(五)权限预设与个性化配置

一个编码 Agent 能执行 shell 命令、改写文件,如果"允许它做什么"和"要不要在做之前问一下人"被绑在同一个开关上,产品能提供的组合就会非常有限——要么完全信任、要么完全不信任,中间状态很难表达(比如"允许它随便读写工作区文件,但涉及工作区之外的路径必须先问我")。这一行只是声明了三个"名字 → 组合"的映射表,供用户在运行时切换,并不参与"进程刚启动时默认用哪个组合"的决策——那件事完全是前两行各自独立算出来的。里按部署环境变量重新声明。的应答者来决定"允许一次"还是"拒绝";

2026-09-22 14:24:38 385

原创 LLM之Agent(九十四)|DeepSeek-Harness(四)Provider 与模型配置

是适配器自己填的默认值而不是用户显式选择的,那么在征询"是否要切换模型/参数"时就不应该把这个隐式默认值当成"用户锁定的值"再传回去——否则切换模型之后,上一个模型的隐式默认反而会被误当成显式配置继续沿用。逐字段比较来判定,只有真正变化时才会在会话日志里追加一条新的请求头快照,这也是"Model-visible ⟺ logged"这条工程规则的一处具体落地——任何影响模型请求的配置都必须能从日志里重建。"优先级链条是两套完全独立的机制,一套管"这个值是多少",一套管"这个密钥的真实内容是什么"。

2026-09-22 10:55:10 131

原创 LLM之Agent(九十三)|DeepSeek-Harness(三)CLI 命令与 Profile 机制

字段本身没变,只是留出了给"模板"未来附加其他元数据(而不只是 bundle 列表)的空间——这个接口的注释"Installation-owned defaults used when a shipped profile is first opened"也透露了新的用途:模板不仅用于装配补丁栈,还被用来判断"一个已存在的 Profile 是不是恰好等于某个官方模板"(下一节会看到这一点如何支撑。,这正是"用一个新名字 + 一个官方模板,创建并启动一个全新 Profile"这条路径的入口,下一节展开讲。

2026-09-21 19:04:21 354

原创 LLM之Agent(九十二)|彻底颠覆Agent架构!ChatGPT核心大佬重磅发布“System One”决策模型 Jev,提速200倍的底层逻辑是什么?

大模型的“幻觉”是怎么来的?Jev 这个名字,来源于经济学中著名的**“杰文斯悖论”(Jevons paradox)**:19世纪的经济学家威廉·斯坦利·杰文斯发现,提高煤炭使用效率的技术非但没有减少煤炭的消耗,反而因为使用成本大幅降低,导致煤炭的整体消耗量呈指数级暴涨。在不久的将来,当我们惊叹于某个 AI 助理能在一分钟内帮我们抢完票、订好酒店、规划好完美行程时,在这个助理不可见的底层黑盒里,正有成百上千个 Jev 决策节点,在以几十毫秒的速度,默默进行着无数次确定的、精准的二进制跳动。

2026-09-21 11:03:52 829

原创 LLM之Agent(九十一)|DeepSeek-Harness(二)快速开始:CLI 与 Web UI

这条路径本质上仍然是"装配出前面讲的同一棵插件树",只是把"谁来托管 Web UI 的浏览器窗口"从系统浏览器换成了 Electron 自带的 Chromium——对理解"CLI 装配 Profile"这条主线没有影响,值得知道的是它的存在,具体的打包与更新机制不在本课程的讨论范围内(这是一个 2026-08-28 之后才出现的能力,本课程后续章节的源码解读仍以。只是两个内置的 Profile 名字,CLI 层只负责"选中哪个 Profile、传哪些参数",剩下的装配逻辑完全共享。

2026-09-20 17:38:54 498

原创 LLM之Agent(九十)|DeepSeek-Harness(一)安装与环境准备

一个 229 个 leaf 包的 monorepo,如果对 Node/pnpm 版本、git hooks、凭证来源不做任何约束,会出现的典型问题是:贡献者 A 用 Node 20 装出来的依赖树和贡献者 B 用 Node 24 装出来的不一致;也就是说 CI 会在三条 Node 版本线上跑(22.19、24、26),22.19 是一条被刻意选中的下限(而不是随便一个当时的最新小版本),这背后往往是某个 Node 22 补丁版本修复了一个 harness 依赖的运行时问题。下一篇会在装好环境之后,正式跑起。

2026-09-20 15:56:11 287

原创 LLM之Agent(八十九)|PI(二十八)测试策略:Faux Provider 与 Evals

evals 问的是"这套提示词/工具/模型的组合,在真实模型的不确定性下,完成任务的成功率有多高",是概率性的、需要用对照组和评分机制来衡量的。这是一个跳出"人写断言、代码跑断言"传统思路的用法:与其靠人工 review 保证文档不过时,不如让 Agent 本身(既然它就是要去读这些文档来理解自己怎么用)充当审计员,用它自己的阅读理解能力去比对"文档说的"和"代码实际做的"是否一致,再用一个。这与前面单元测试"绝不使用真实密钥"的原则形成了鲜明对比——evals 存在的意义就是观察真实模型的真实行为。

2026-09-18 18:57:32 347

原创 LLM之Agent(八十八)|PI(二十七)Telemetry 遥测体系设计

第二,属性值被有意限制为基本标量和数组,领域侧的埋点代码应该避免把 Prompt、模型补全内容、工具参数或输出、文件内容、provider 原始负载、请求头、凭证或自由格式的错误细节塞进属性里,除非对应的 schema 和数据策略明确允许。这套测试套件检查的内容覆盖了前面提到的几乎所有契约要求:同步单次准入、结果与异常的原样传递、自动与显式状态、属性合并、事件顺序、结算后调用的惰性、嵌套与并发场景下的父子关系正确性,以及对不可读遥测负载失败的抑制。厂商中立契约的做法是:核心包只依赖一套极简的接口和类型,

2026-09-18 15:55:35 260

原创 LLM之Agent(八十七)|PI(二十六)Protocol / Server / Client 架构

这个设计把"发现"这件事完全建立在文件系统约定之上,不需要额外的注册中心或广播协议——本质上是把 Unix socket 目录当成了一个简易的服务注册表,任何在本机运行、遵守这个命名约定的 Pi 服务端实例都能被同机的客户端自动找到。这是一次很典型的"收窄职责边界"式重构:协议包变薄了,但可扩展性变强了——以后要新增一种 Agent 能力,不需要再给协议本身加新的消息类型和新的协议版本号,只需要在 Chord 服务层加一个新服务。、会话租约)都被删除或迁移了,代价不小;唯一的变化是"协议值合法性"的检查(

2026-09-18 14:29:00 374

原创 LLM之Agent(八十六)|PI(二十五)SDK 嵌入式集成

SDK 提供的是"把 Pi 的 Agent 能力嵌入到别的应用里"的编程接口,典型用例包括构建自定义 UI(Web/桌面/移动端)、把 Agent 推理能力整合进已有应用、构建带 Agent 推理的自动化流水线、构建能派生子 Agent 的自定义工具,以及以编程方式测试 Agent 行为。),只不过在 SDK 里你拿到的是原生 TypeScript 对象而不是需要反序列化的 JSON 字符串——这正是"同进程集成"相对子进程集成的直接好处之一。(包含版本号),恢复时会按该版本号执行必要的迁移;

2026-09-18 14:08:51 253

原创 LLM之Agent(八十五)|PI(二十四)RPC 模式与 JSON 事件流

如果你的场景是"跑一次任务、拿到结果就退出"(脚本、CI),选 JSON 模式;但当你想把 Pi 的推理能力嵌入到别的程序里——比如一个 VS Code 插件、一个 Web 后端、一个批处理脚本——直接控制一个交互式终端程序是很别扭的。这种"响应只确认受理、结果走事件流"的设计,和 Web 开发里"提交任务拿到 202 Accepted,再轮询或订阅结果"的模式是一个思路。因为 JSON 模式是一次性的、单向输出,它不支持中途插话、切换模型这类交互操作——这些能力属于下面要讲的 RPC 模式。

2026-09-18 13:50:29 383

原创 LLM之Agent(八十四)|PI(二十三)pi-tui差分渲染架构与组件模型

这是一条清晰的责任链(chain of responsibility):按顺序尝试匹配"跳转模式中的取消"、"粘贴中的累积"、"撤销"、"自动补全导航"、"删除类动作"、"kill-ring 相关动作"、"历史导航"、"光标移动"……这些变化的共同特点是:都发生在"实现细节"层面(具体某个平台的剪贴板协议、某个信号的边界情况、某个搜索算法的复杂度),没有一处触及本文前面讲的差分渲染算法、布局协议或输入责任链这些架构性设计——这也印证了分层设计的价值:只要。

2026-09-18 11:46:35 333

原创 LLM之Agent(八十三)|PI(二十二)Pi Package 生态与分发

如果某个资源目录本身是通过符号链接挂进来的,glob 不会穿过符号链接继续遍历,同样需要把这个符号链接指向的资源根目录直接列出来,而不是依赖上层目录的通配符。走的是"先在一个带 lockfile 的暂存目录里装好新版本、校验通过后再原子切换为当前发行版"的流程,如果更新过程中校验失败,会保留原来那个仍然可用的版本不受影响;Pi Package 是 pi 生态分发 Extension、Skill、Prompt Template、主题的标准形式,可以来自 npm、git 或本地路径,通过。路径引用它们的资源。

2026-09-18 10:59:34 321

原创 LLM之Agent(八十二)|PI(二十一)Skills 与 Prompt Templates

这是模型决定"要不要加载"这个技能的唯一依据,必须具体。而完全没有合法 skill frontmatter 的普通 Markdown 文件(前一节discovery规则里说的"不满足格式要求")则被直接忽略,连警告都不会有——这是"这份文件本来就不是技能" 和 "这份文件想当技能但写错了" 两种情况的区分。Skills 和 Prompt Templates 都是"把可复用内容交给 Agent"的机制,但设计目标不同:Skill 面向"模型自主判断、按需加载"的复杂能力包,靠渐进式披露控制上下文成本,

2026-09-17 18:37:34 153

原创 LLM之Agent(八十一)|PI(二十)扩展 Extension 开发指南

有些扩展不满足于"拦截/修改一次已有的工具调用",而是想自己主动发起一次 LLM 请求——比如用一个便宜模型做输入预处理、或者在后台调用模型生成一段摘要。相同的互斥队列,就可能出现"两个工具都读到同一份旧内容、各自计算出不同的修改、后写的覆盖先写的"这种静默丢数据的问题(例如自定义工具和内置。:如果一个扩展的工厂函数在执行到一半时(同步或异步)抛出异常,pi 会丢弃它在本次工厂调用期间做过的所有注册——包括已经调用过的。四组能力分别覆盖"事件拦截""自定义工具""自定义命令""自定义交互"。

2026-09-17 16:42:46 373

《GAN:实战生成对抗网络》-刘梦馨.pdf

介绍了基本的GAN网络原理并且附有代码,主要以图像为主,介绍了一个扩展的GAN网络,比如DCGAN、SSGAN、StackGAN等等一些很有实用性的模型

2019-06-14

《美团大模型 Agent 实践手册》

内容概要:本文《美团大模型 Agent 实践手册》系统介绍了美团自主研发的龙猫大模型(LongCat-Flash-Chat)在各业务线的应用实践与技术架构。涵盖大模型 Agent 的定义、核心能力、发展历程,重点阐述其在外卖、到店、酒旅、共享单车、生鲜零售等业务中的具体落地场景,如智能调度、骑手助手、智能推荐、行程规划、车辆调度、履约优化等。同时详细说明了大模型的开发流程,包括需求分析、数据预处理、模型选型微调、架构设计、测试优化,以及工程化实践中的工具链、监控运维、安全合规和绿色AI实践,并提出评估迭代体系与多Agent协同优化策略,最后展望了未来技术发展方向与社会责任。; 适合人群:具备一定人工智能和软件开发基础,从事AI产品设计、算法研发、系统架构或技术管理的相关从业者,尤其是对大模型落地应用感兴趣的中高级技术人员和业务负责人。; 使用场景及目标:①了解大模型Agent在真实复杂业务场景中的技术实现路径与业务价值;②学习如何将大模型与具体业务流程结合,进行需求分析、系统设计与工程落地;③掌握多业务线协同、模型评估迭代、安全合规及绿色AI的实践经验,规避技术落地中的常见陷阱。; 阅读建议:建议结合自身业务场景,重点关注对应章节的实践案例与技术方案,注重理解其“业务驱动、数据为基、渐进落地”的方法论,并参考其评估与迭代机制持续优化模型效果。

2025-12-03

### 2024年十大新兴技术报告综述

内容概要:2024年十大新兴技术报告由世界经济论坛与Frontiers合作发布,旨在识别未来三到五年内可能对社会和经济产生重大影响的十项技术。报告基于全球300多位顶尖学者的见解,采用创新的趋势分析方法,涵盖学术文献、资金趋势和专利申请等多方面数据。报告重点介绍了十项技术,包括用于科学发现的人工智能、隐私增强技术、可重构智能表面、高空平台站、集成感知与通信、建筑领域的沉浸技术、弹性热电材料、碳捕获微生物、替代牲畜饲料和基因组学移植。每一项技术都具有改变各自领域现状的潜力,从加速科学发现、提升数据隐私保护,到改善无线通信、提供更可持续的农业解决方案等。 适合人群:政府决策者、企业高管、科技研究人员、政策制定者、投资者以及关注科技创新和社会发展的各界人士。 使用场景及目标:① 政府和企业可以利用这些技术推动产业升级和创新发展;② 科研机构可以通过这些技术促进跨学科研究和国际合作;③ 投资者可以依据报告内容寻找具有潜力的投资方向;④ 公众可以通过了解这些技术对未来生活的影响,积极参与相关讨论和应用推广。 其他说明:报告不仅提供了对每项技术的详细介绍,还探讨了它们在全球范围内的应用前景和挑战。此外,报告强调了跨领域合作的重要性,鼓励各行业共同探索新技术带来的机遇和挑战。为了确保报告的专业性和权威性,世界经济论坛邀请了多位专家参与评审和技术指导。

2025-08-20

01.ChatGPT技术、国产化尝试和开源模型 -公众号-torchnlp.pdf

01.ChatGPT技术、国产化尝试和开源模型 -公众号-torchnlp.pdf

2023-02-15

强化学习DQN

这本书详细介绍了强化学习的常用算法以及算法原理,从蒙特卡罗方法到Q_learning最终到DQN

2018-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除