尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

《深入理解 AI Agent》之学习笔记-DAY 11(代码,Agent 的元能力)

《深入理解 AI Agent》之学习笔记-DAY 11(代码,Agent 的元能力) Day 11 — 代码Agent 的元能力 目标Coding Agent 的实现技巧 搜索工具 文件编辑工具把昨天的架构落到工具层代码作为元能力的六个方向今天的重头戏模块 1让 Coding Agent 真正跑得快、省得下昨天讲了理想工作流今天讲五个实现技巧——它们是第 2/4 章通用技术在编程场景的具体应用⚡ 技巧 1并行工具调用、流式执行与级联中止串行是浪费传统实现生成一个调用→执行完→再决定下一步排队等待浪费时间流式执行利用流式响应第一个工具调用的参数一生成完整并通过校验立即开始执行与后续调用的生成过程重叠并行执行彼此独立的调用可同时跑而非排队级联中止Cascade Abort工具定义声明是否支持并发默认为否失败安全某个调用失败时中止同一批中依赖它的调用但不波及独立调用和父级操作——这就是 Harness故障边界控制的具体落地 技巧 2上下文的精细化管理代码库很大、上下文窗口有限要分层管理层面做法文件读取支持按行号范围读取片段只读 100-150 行而非整文件行号标注每行代码前缀真实行号 → 模型可精确说src/main.py 第 42 行减少歧义命令输出保留前若干行错误上下文 后若干行错误总结中间一行提示完整输出存临时文件按需查看 技巧 3环境信息动态注入状态栏技术在 Coding Agent 的体现每次推理前在上下文末尾注入当前工作目录避免路径引用出错git 分支主分支还是特性分支最近提交记录项目演化脉络未暂存/已暂存的变更概览已改了什么⚠️ 注意这些不能硬编码在静态系统提示词里会破坏 KV Cache 效率必须作为动态追加的状态栏注入。️ 技巧 4命令执行环境的状态持久化如果每次命令都开全新 shellcd、激活虚拟环境、设置环境变量全都会丢失应维护一个持久化终端会话启动时创建、全程保持活跃默认模式同时保留启动隔离终端的能力以支持并行任务✍️ 技巧 5即时的语法反馈机制文件写入一完成工具层自动运行 linter/语法检查器结果作为工具返回值的一部分就像 IDE 里打错括号立刻画红线——Agent 在错误引入那一刻就能修正不用等跑测试才发现一句话总结 5 个技巧并行与流式、上下文管理、环境感知、状态持久化、即时反馈——让 Agent 像经验丰富的开发者一样流畅工作。模块 2搜索工具 —— 在代码库里找得准成熟的 Coding Agent 有4 类互补的搜索工具工具原理适用场景局限正则内容匹配grep/ripgrep逐行扫描文本模式知道要找的具体文本函数名、错误消息只能匹配文本不懂语义——搜用户认证找不到叫check_credentials的函数文件名匹配glob按路径模式找文件探索项目结构第一步如**/*.test.ts不看内容语义代码搜索结构感知分块 混合检索向量 BM25 重排序探索性任务找与数据库交互的代码需建索引符号级查找LSP跳转定义/查找引用重构区分同名符号的定义和调用需要语言服务器关键点语义搜索的路线之争这是业界真实争论Claude Code 路线刻意不建嵌入索引纯靠 agentic 的 grep glob 现场检索——不用维护会陈旧的索引、省基础设施、避免代码嵌入外发第三方Cursor 路线愿意为跨文件语义召回付建索引成本大型代码库快速找语义相关片段本质权衡“基础设施与数据外发的代价” vs “跨文件语义召回的收益”。实践组合策略“从粗到细、从语义到语法”——先用语义搜索找到相关模块 → 正则精确定位代码行 → 符号搜索追踪调用链。模块 3文件编辑工具 —— “改得准、改得稳”5 种方案对比核心张力人类语言表达的灵活性 vs 机器执行的精确性方案代表原理优点缺点差异描述 Apply ModelCursor模型输出 diff 或带省略标记的骨架小模型负责合并主模型专注高层逻辑Cursor 用 fast-apply 推测解码做到每秒上千 token合并环节脆弱相似代码片段可能合并错位置旧字符串→新字符串Claude Code提供 old string new string框架查找替换可预测、透明、无歧义实现简单删大段代码要完整输出原文重复代码需更长上下文消歧行号定位—指定删 X-Y 行插入新内容大段删除只需两个数字模型数行号易错编辑后行号漂移限制并行类 Vim 命令—复制/剪切/粘贴等重组代码移动函数高效语法学习负担大小模型错误率高字符串首尾匹配—只给要删内容的开头几行结尾几行综合了文本替换可靠性和行号效率首尾组合需唯一实践建议作者给的自建 Agent 起点旧字符串→新字符串可靠性优先、实现简单、无需额外模型大段改动字符串首尾匹配更经济的折中行号方案只在 IDE 深度集成实时维护行号映射时才可靠否则行号漂移导致失效模块 4代码作为元能力 —— 六个方向 今日重头戏什么是元能力普通能力 Agent 能做某件具体的事。元能力 能创造其他能力的能力当场写出新工具、新约束、新表达形式而不必事先预制好一切。代码生成正是这样的元能力——它精确、可执行、可组合。六个方向按作用对象由内向外组织┌─────────────────────────────┐ │ 6. Agent 自身自举 │ ← 最外层创造/修复 Agent │ ┌───────────────────────┐ │ │ │ 5. 用户界面生成式 UI │ ← 与人交互的界面 │ │ ┌─────────────────┐ │ │ │ │ │ 4. 系统接口适配器│ │ ← 连接机器与机器 │ │ │ ┌───────────┐ │ │ │ │ │ │ │ 3. 内容呈现 │ │ │ │ ← PPT/视频/可视化 │ │ │ │ ┌───────┐ │ │ │ │ │ │ │ │ │2.业务规则│ │ │ │ │ ← 可执行约束 │ │ │ │ │┌─────┐│ │ │ │ │ │ │ │ │ ││1.思维││ │ │ │ │ ← 代码替代自然语言推理 │ │ │ │ │└─────┘│ │ │ │ │ │ │ │ │ └───────┘ │ │ │ │ │ │ │ └───────────┘ │ │ │ │ │ └─────────────────┘ │ │ │ └───────────────────────┘ │ └─────────────────────────────┘ 思维 → 规则 → 内容 → 接口 → 界面 → Agent 自身 由内向外最终回到自身方向 1代码作为思考工具弥补概率思考的短板LLM 思考是概率性、近似的数学/逻辑要求确定性、精确分工LLM 负责理解问题并写代码代码解释器负责精确计算书中的例子40 名学生 60% 选数学、45% 选物理、25% 都选——纯语言推理算错只选物理 24-10 14代码only_phys phys - both得到正确的 8Wolfram 洞察Wolfram Alpha 能做符号计算但自然语言理解脆弱LLM 擅长理解自然语言但算不准——两者协同LLM 把自然语言问题形式化为 SymPy 代码符号计算引擎执行一个重要规律模型与脚手架此消彼长——模型越强代码求解器增益越小模型越弱越需要把逻辑交给代码兜底。同一套脚手架配不同能力的模型结论可能截然不同实验刻意用弱模型放大对照方向 2代码作为业务规则的约束Harness约束编码化的回应自然语言规则充满歧义“7 天内可退款”——自然日还是工作日下单时间还是发货时间代码 无歧义、可执行、确定性的知识表达自然语言 vs 代码化互补而非替代提示词里的自然语言规则可解释政策、可找变通方案改签而非取消代码化校验工具精确、确定、适合复杂规则组合特别适合防止不可逆错误操作取消订单、转出资金、删除数据τ-bench 三重保障书里的cancel_reservation例子系统提示词的自然语言规则 → 帮助理解和解释工具描述 参数设计作为 checklist→expected_*参数迫使模型调用前先查订单、逐条核对 → 模型常在自己核对时就发现违规根本不会发起调用服务端基于数据库真值的代码化校验→ 最后守门员舱位、保险、时间全部服务端查库获取绝不采信模型自报值模型可能幻觉或被提示注入操纵关键设计expected_*与真值不一致时记录告警用于审计方向 3代码驱动的多媒体生成提议者-审核者机制PPT 生成把 PPT 创作重新框定为代码生成问题Slidev 用 Markdown/HTML 定义演示内容关键洞察Agent 写完代码不知道实际渲染效果→ 需要提议者-审核者Proposer Agent生成 Slidev 代码Reviewer Agent渲染每页为图片用Vision LLM检查内容密度/可读性/布局生成结构化改进建议“第 3 页内容过多建议拆分”——含页码、问题类型、严重程度迭代直到达标或达到最大轮数5 轮——“质量达标”最大轮数正是 Loop 工程要求的两类显式终止条件为什么用双 Agent 而非单 Agent 循环核心是上下文管理Reviewer 每次只看最新版渲染图不受历史版本干扰Proposer 只累积结构化文本反馈token 少、易推理。单 Agent 要在同一上下文堆几十页渲染图迅速超限视频编辑GUI 操作需要精确坐标 → 重构为 API 调用和代码生成Blender Python API / FFmpeg两步定位策略粗粒度每 10 秒截图 Vision LLM 找场景区间→ 精细粒度窄范围每秒截图精确定位视频分析封装为子 Agent避免大量截图占主 Agent 上下文与第 4 章事前审批同源都是提议者-审核者范式——生成与审查分离、双模型独立评估方向 4代码作为系统适配器连接机器与机器真实系统接口常不规范文档缺失、格式非标、字段漂移 → Agent当场读接口文档或观察一两条真实响应即时生成适配代码——“万能胶”RPA 延伸对只有 GUI 的系统先 Computer Use 操作再把成功序列固化为代码 → 未来直接跑代码速度快、稳定、不用昂贵的视觉思考自适应日志解析实验 5-7前端遇到无法解析的日志格式 → 不报错把失败信息日志样本报错报告给 Agent → Agent 生成解析代码 → 虚拟浏览器自动测试 → 热更新部署。系统自动适应格式演化生产日志智能诊断实验 5-8Agent 读轨迹日志 架构文档 PRD → 判断流程是否符合预期 → 生成结构化问题报告优先级/模块/描述/建议 回归测试用例引用轨迹 ID自动重放验证→ 通过 MCP 对接 GitHub 创建 Issue。问题发现到任务分派全自动化方向 5代码作为生成式 UI突破纯文本交互纯文本交互局限收集结构化信息要反复问答、表达复杂数据关系无力、选项选择不直观生成式 UIAgent 动态生成表单、交互图表甚至完整 Web 应用A2UI 类协议安全优先的标准化方案Agent 不直接生成可执行代码只输出界面描述清单JSON“显示 3 行 2 列的表格标题为销售数据”客户端用自己预先准备好的安全组件渲染——像餐厅菜单顾客只能点菜单上的菜不能进厨房自己做原因Agent 直接生成 HTML/JS 时提示注入可能让 Agent 生成窃取数据的恶意脚本——成因是提示注入效果类似 XSS支持跨平台React/Flutter/原生 增量生成流式 JSONL⚠️易混淆辨析AG-UICopilotKit不是界面描述语言而是事件/传输协议把执行状态流式推送到前端它甚至能承载 A2UI 载荷——二者互补而非同类三个具体应用HTML 交付成果取代 Markdown 汇报交互式演示、更好数据可视化、可持续完善的交付件作者每个研究项目维护活文档网站实验数据追溯 训练内科指标监控——损失/梯度范数/困惑度/奖励/KL 散度比任务准确率更早暴露训练崩溃 运行原理展示动态表单澄清意图一次填写代替十轮问答支持级联表单选往返才显示返程日期SQL Artifact 模式关键设计——Agent 不自己读数据Agent 只生成 SQL 代码作为 artifact系统执行、数据从数据库直达用户界面完全绕过 LLM 中间人LLM 抄写几千行数据极易出错且耗 token。进阶SQL 可视化代码双 artifact 流水线LLM 只生成代码不参与数据传递动态生成软件Imagine with Claude 展示边界从零生成完整应用——但成本延迟高更务实的是基于已有框架的半定制热加载HMR让把按钮改成蓝色即时生效“千人千面”。方向 6代码创造代码 —— Agent 自举 与第 8 章分工本节讲怎么用代码修复/创建同类 Agent自举第 8 章讲什么触发自我修改 如何灰度/回滚进化控制OpenClaw Doctordoctor --fix两层结构——第一层确定性检查过期 token、锁文件、端口冲突——有明确检测规则和固定修复动作与传统运维脚本无异第二层LLM 兜底疑难问题分析错误日志、理解配置语义、推断因果、生成针对性修复Agent 修复 Agent从系统适配器升级为自举基础设施让 Agent 编写 Agent 的 4 个常见缺陷上下文管理随意纯文本轨迹、忽略 KV Cache 优化、循环边界 bug工具设计不规范描述简略、缺负面清单、参数缺示例技术选型滞后倾向训练数据里最常见但已过时的模型/API→ 维护 SOTA 知识库或给搜索能力外部生态脱节废弃 API、不再维护的库最有效解法提供高质量 Agent 实现作为参考范例基于范例修改而非从零开始——范例代码本身就是最佳实践载体“基因复制加变异” 自测题级联中止Cascade Abort和 Harness 工程哪个原则对应它终止哪些调用、不波及哪些语义搜索的 Claude Code 路线和 Cursor 路线的本质分歧是什么五种文件编辑方案中为什么行号方案在独立 Agent 中不可靠什么是元能力代码生成为什么是元能力τ-bench 三重保障分别是什么为什么expected_*参数不承担安全责任提议者-审核者相比单 Agent 循环的核心优势是什么A2UI 和 AG-UI 有什么区别为什么声明式界面协议更安全SQL Artifact 模式为什么比Agent 读数据后描述更好OpenClaw Doctor 的确定性检查和 LLM 兜底各解决什么问题为什么基于范例生成是解决 Agent 编写 Agent 缺陷的最有效路径
返回列表