AI编程学习笔记(I)
学习来源labuladong算法教程AI写代码的效果核心取决于两大关键LLM大模型本身的能力上限以及围绕模型构建的Agent工程实现成熟度。前者决定“智商”后者决定“执行力”二者结合才能产出高质量代码。一、核心概念区分LLM与AI编程Agent1. LLM大语言模型代表模型Qwen、Claude、Deepseek等是AI的“大脑”负责语言理解、逻辑推理与文本生成。2. AI编程Agent智能体代表工具Cursor、Antigravity、Claude Code等是LLM的“手脚”。本质是“LLM工具调用循环决策”的工程化产物能自主完成读文件、写代码、跑测试、排错等全流程任务。二、LLM底层原理不是“理解”是精准的概率匹配1. 核心本质概率预测模型LLM的核心逻辑是根据已有文本预测下一个token字/词出现的概率属于统计意义上的模式匹配并非真正“理解”语义。规模效应参数量越大、训练数据越海量涵盖文本、代码等概率预测越精准表现越像“能理解”推理特性直接给答案易出错先写推理过程、再给结论准确率大幅提升相当于“打草稿”。2. 关键参数控制输出的“确定性”与“创造性”1Temperature温度作用控制模型选字的随机程度温度0每次选概率最大的token输出最确定、最保守适合写代码、严谨任务温度调高倾向选低概率token输出更有创意、更不可控适合文案、创意写作。2Context上下文定义模型预测下一个token时依赖的所有文本输入问题、对话历史、系统设定窗口限制上下文有固定长度窗口超出会“遗忘”早期内容压缩技巧将早期对话总结为摘要保留关键信息、丢弃细节节省窗口空间。3. 模型进化从Base到Instruct再到RLHF1Base模型基础模型功能纯概率预测做文本补全输入半句话续后半句缺陷无法理解指令不能直接回答问题。2Instruct模型指令模型升级在Base模型基础上用指令-回答数据对微调再经RLHF优化能力能识别指令、回答问题效果质的飞跃训练成本远低于预训练。3RLHF人类反馈强化学习流程模型对同一问题生成多个回答→人类打分排序→模型根据打分调整策略价值让模型明确“用户输入是指令不是待续写文本”输出更贴合人类需求。4. 推理加速思维链CoT与思考强度1CoT思维链本质用更多计算量换更高准确率强制模型输出分步推理过程效果每一步中间结果成为后续输入逻辑更严谨代码错误率降低。2思考强度参数作用单一模型内调节推理深度强度高反复推演、多步骤验证准确率高但耗token强度低直接给答案速度快、省token优势无需切换模型一个API调用按需调档。三、Agent工程核心让LLM“动起来”的关键技术Agent的核心是LLMTool Use工具调用放入循环智能来自两方面模型推理能力想对下一步工具能力把想法变行动。1. Tool Use工具调用LLM的“外接能力”本质LLM输出结构化工具调用请求如JSON外围程序解析并执行结果返回上下文关键模型不直接调用API只输出“调用意图”执行靠代码结果靠上下文流转价值让LLM突破“纯文本限制”能读文件、跑命令、查数据、改代码。2. System Prompt定义Agent的“行为规则”作用设定模型不可绕过的规则如“只写Python代码”“代码必须加注释”地位Agent的“行为准则”直接决定输出风格与合规性。3. ReAct模式Agent的“思考-行动”循环流程思考Reasoning→行动Acting→观察结果→再思考循环往复直到任务完成案例写代码→跑测试→发现报错→分析原因→改代码→再测试全流程自主闭环。4. Skills可复用的“工作流程SOP”本质把复杂任务流程写成文档如“代码审查流程”“PR处理流程”Agent按文档分步执行价值无需重复指令一次定义、多次复用降低使用成本渐进式披露启动时只给Skill名称简介任务相关时再加载完整内容节省上下文。5. MCP模型上下文协议工具互通的“标准化接口”由Anthropic推出核心解决工具碎片化、适配成本高的问题堪称AI界的“USB-C接口”。MCP完整协议流程:1核心架构Client-ServerServer封装工具/认证信息暴露标准化接口如文件读写、数据库查询ClientAgentClaude Code、Cursor内置客户端自动发现并调用Server工具。2三大核心能力Tools可执行函数如跑命令、改代码Resources只读数据如文件、文档Prompts可复用提示模板。3价值标准化M个Agent适配N个工具复杂度从M×N降至MN易扩展无需重复开发接口直接接入生态工具如GitHub私有库、公司内部文档。四、上下文管理Agent性能的“决胜关键”模型能力固定时上下文塞什么、怎么塞、塞多少直接决定Agent表现。核心矛盾有限窗口内最大化信息利用率。1. 最佳实践单窗口单任务一个上下文只聚焦一个问题新问题开新窗口避免信息混杂精简输入只保留核心指令、必要参考代码删除冗余对话结果压缩工具返回结果后提炼关键信息再喂回上下文减少token消耗。2. 常见误区上下文越长越好过长会导致“信息稀释”模型抓不住重点且成本飙升重复指令反复强调同一要求占用窗口空间无实际收益。五、高级技巧多Agent协作与自定义Agent1. Sub Agent子智能体分工提效用法主Agent指令“用Sub Agent分别调研需求、写代码、做测试再汇总”优势分工明确、并行处理复杂任务效率更高成本每个Sub Agent有独立上下文token消耗随数量增加需权衡性价比。2. 自定义Agent沉淀高频流程场景重复代码审查、PR处理、部署流程做法把固定流程规则封装成自定义Agent一次配置、终身复用无需每次重复说明。六、实践Deepseek API调用1. 基础调用curl接口格式其实只是一种约定。AI对话本质其实就是往一个接口发一个JSON数组。OpenAI格式 CMD版本 curl -H Content-Type: application/json -H Authorization: Bearer sk- -d {\model\:\deepseek-v4-flash\,\messages\:[{\role\:\system\,\content\:\你是一个友好的助手。\},{\role\:\user\,\content\:\你好。\}],\thinking\:{\type\:\disabled\}} https://api.deepseek.com/chat/completions PowerShell版本 curl https://api.deepseek.com/chat/completions -H Content-Type: application/json -H Authorization: Bearer sk-XXXXXXXXXXXXXXXXXXXXXX -d { model: deepseek-v4-flash, messages: [ {role: system, content: 你是一个友好的助手。}, {role: user, content: 你好。} ], thinking: {type: disabled} } JSON返回 { id:61c33487-bb99-40d7-b3b2-b857dce1a517, object:chat.completion, created:1777447577, model:deepseek-v4-flash, choices:[ { index:0, message:{ role:assistant, content:你好很高兴见到你。有什么我可以帮你的吗 }, logprobs:null, finish_reason:stop } ], usage:{ prompt_tokens:11, completion_tokens:12, total_tokens:23, prompt_tokens_details:{ cached_tokens:0 }, prompt_cache_hit_tokens:0, prompt_cache_miss_tokens:11 }, system_fingerprint:fp_058df29938_prod0820_fp8_kvcache_20260402 } Anthropic格式 CMD curl https://api.deepseek.com/anthropic/v1/messages -H Content-Type: application/json -H x-api-key: sk-XXXXXXXXXXXXXXXXXXX -H anthropic-version: 2023-06-01 -d {\model\:\deepseek-v4-flash\,\max_tokens\:256,\system\:\你是一个友好的助手。\,\messages\:[{\role\:\user\,\content\:\你好。\}],\thinking\:{\type\:\disabled\}} PowerShell curl https://api.deepseek.com/anthropic/v1/messages -H Content-Type: application/json -H x-api-key: sk-XXXXXXXXXXXXXXXXXXXX -H anthropic-version: 2023-06-01 -d { model: deepseek-v4-flash, max_tokens: 256, system: 你是一个友好的助手。, messages: [ {role: user, content: 你好。} ], thinking: {type: disabled} } 返回JSON { id:aa417bfd-df5f-4efa-8136-071db8ecf0ec, type:message, role:assistant, model:deepseek-v4-flash, content:[ {type:text,text:你好很高兴见到你。今天有什么我可以帮忙的吗} ], stop_reason:end_turn, stop_sequence:null, usage:{ input_tokens:11, cache_creation_input_tokens:0, cache_read_input_tokens:0, output_tokens:12, service_tier:standard } }2. 流式传输SSE作用逐字输出、防超时适合长代码生成注意流式不生效时检查数据到达节奏与缓冲层位置排查网络或代理问题。七、总结AI写代码的本质是概率模型LLM工程化执行Agent的组合LLM决定上限靠规模、CoT、RLHF提升推理能力Agent决定下限靠Tool Use、MCP、上下文管理保障执行力核心决胜点有限上下文内高效组织信息、精准调用工具。