Skip to main content

129 posts tagged with "AI Agent"

View All Tags
· 8 min read

多模态模型的真正瓶颈不是 "看不清",而是 "指不准"

  1. Reference Gap(指代断裂):模型看到了目标对象,但在推理链中无法稳定引用"到底是哪一个"。"左边那个""他旁边的"这类自然语言描述在视觉空间里不是精确地址——场景越复杂、相似物体越多,语言变量就越容易在几步推理后漂移到另一个实体上。

  2. 解法:把边界框和坐标点变成推理链的中间变量。 每写下一个框 = 在草稿纸上钉一颗钉子,后续推理围绕这些坐标展开,不再依赖模糊的自然语言指代。论文将框和点定义为"视觉原语(Visual Primitive)"——本质上就是把人类"用手指点着数"的动作形式化到了 token 序列里。

  3. 工程压缩比 7056×:2916 patch tokens → 3×3 空间压缩 → 324 → CSA 注意力缓存压缩 → 81。语言模型 DeepSeek V4 Flash(284B/13B MoE)+ 从头训练 DeepSeek ViT,视觉 token 限制在 81–384,不靠无限堆 token。

  4. 数据说话:~90 个视觉缓存条目跑出 77.2 分,Gemini 3 Flash 用 1100 个拿 76.5 分。视觉 token 不是越多越好,关键是模型有没有办法把"这个对象"稳定地绑定到图像坐标上。

· 6 min read

强化学习强在哪?一句话:它不需要正确答案,只需要对错信号

监督学习从标注数据里找规律,强化学习从环境奖惩里学策略。两者的区别不是"强弱",而是解决问题的类型完全不同——SL 学映射,RL 学决策。

最容易被误解的一点:强化学习的目标不是每次选最优动作,而是最大化长期累积回报。只看眼前奖励的 RL 跟贪心算法没区别,价值函数才是它的灵魂。

Actor-Critic 架构让模型同时扮演"演员"和"评论家"两个角色——一个负责决策,一个负责评判,互相对抗、一起进化,AlphaGo 的底层思路也源于此。

最关键的应用:PPO 算法驱动了 RLHF,让大模型通过人类反馈学会"察言观色"。训练数据见顶的背景下,RL 是提升模型推理能力的核心引擎。

· 6 min read

ClaudeCode 客户端消息流的有序性,本质上是 单写者 + 显式序号 + 受控并发 换来的工程纪律,不是靠运行时去猜消息该怎么排。

要点拆解:

  1. 所有 stream 事件先汇入统一写入通道,由 序号 决定渲染顺序,不按到达时间。
  2. 工具并发被框死在 读可并行、写必串行 的边界内。
  3. UI 层只信任已经定序的快照,从不直接消费裸 SSE,否则就是乱序事故的源头。
  4. 回合作为原子单位,失败整体丢弃,不修补半截回合。

理解这套规则,比追着 SDK 文档更有用。

· 6 min read

OpenCode 客户端保证消息有序,靠的不是排序算法,而是 "按 partID 分桶 + 桶内就地更新" 的状态合并模型。

核心设计 点:

  1. 每个 part 由服务端分配全局唯一 id创建顺序 = 渲染顺序
  2. 后续 part.updated 事件按 id 就地覆盖,不动 partOrder
  3. 断线重连先拉快照、再续 SSE,幂等更新天然无缝衔接

反面教材:早期每次更新都 setMessages([...messages]) 全量复制,消息一长 CPU 直接飙满。Streaming UI 的性能瓶颈从来不在网络,而在前端的更新粒度。

· 9 min read

Karpathy 4 条规则是写给 AI Coding Agent 的行为准则,源自他 2026 年 1 月对 LLM 编码常见错误的观察,核心是先想再写、最小化改动、外科手术式修改、目标驱动

  1. Think Before Coding — 别假设、别掩饰困惑,主动暴露权衡和歧义
  2. Simplicity First — 最小可用代码,不写"以防万一"的抽象和功能
  3. Surgical Changes — 外科手术式修改,只动该动的,只清理自己造成的孤儿
  4. Goal-Driven Execution — 把模糊指令转成可验证的成功标准,让 Agent 自己循环到完成

一句话不告诉 Agent 走哪条路,告诉它什么叫"做完了"。LLM 在"循环到满足具体目标"这件事上异常擅长,给强标准比给详细步骤更有效。

· 6 min read

写 Agent Skill 最容易踩的 4 个坑,加一份最小可用的模板。

  1. 最小目录:一个 SKILL.md,Agent 只加载这一份。
  2. 核心定位description 决定何时调,不是"能做什么"。
  3. 坑一:description 写漂亮话 = 装了个寂寞。
  4. 坑二:SKILL.md 里塞百科,首次加载被拖垮。
  5. 坑三:把 Agent 已经会的事写进去,浪费 token。
  6. 坑四装太多 Skill = 每轮白付 token
  7. 结论:Skill 的价值 = 领域知识 + 不可替代的本地动作。
· 4 min read

Skill 不是一段 prompt,而是一份 带触发条件的可复用指令包。把它的内部结构画出来,5 分钟就能看明白。

  1. 核心观点:skill = 触发条件 + 指令正文 + 可选资源三层结构,和 prompt 的区别在「可被自动加载」。
  2. 第一层:YAML frontmatter 里的 name / description 决定何时触发,决定 agent 是否"看见"它。
  3. 第二层:Markdown 正文是 agent 真正读到并执行的内容,等价于一段 system prompt 补丁。
  4. 第三层references/ scripts/ assets/ 是按需调用的工具集,不进 context。