ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

基于本地模型的AI编程学习:从Prompt设计到Agent实践

2026/8/26 13:46:38 拓冰建站 浏览量
基于本地模型的AI编程学习:从Prompt设计到Agent实践 在实际开发中把 AI 当作学习工具已经不再是“要不要用”的问题而是“怎么用才不会变成复制粘贴”。Hacker News 上经常有开发者发起同一个讨论How are you using AI to learn? 翻看评论区会发现真正能坚持下来的人很少直接让 AI 念答案更多是让 AI 参与需求拆解、代码生成、测试验证和源码阅读。二者区别在于前者把 AI 当成“答案搜索框”后者把 AI 当成“可交互的结对开发者”。学习效果的差异来自“有没有验证”。接下来按一条可复现主线展开先用本地模型和 IDE 插件搭一个 AI 学习工作台再写一个“AI 学习助手”命令行工具接着用开源项目练习 AI Agent 开发最后补充常见的幻觉问题和排查路径。整条路线适合已经会一点编程、想用 AI 加速学习新技术的开发者也适合正在准备 AI 工程实践的人。1. 先想清楚AI 学习工具应该解决哪一层问题在动手写代码之前先明确 AI 在学习流程里的定位否则后面容易变成“AI 写一段、人复制一段、项目跑不起来”。1.1 三种典型用法问答、结对、Agent第一种是问答式学习。用户向 AI 提问AI 返回概念解释。这种方式适合入门但如果不要求 AI 结构化输出很容易得到又长又空的说明。很多人在用 AI 学编程时只问一句“什么是装饰器”得到的回答往往是教科书式定义看完还是不会用。第二种是结对式学习。用户给 AI 一个具体需求AI 生成代码和测试用户在本地运行、观察结果、根据报错继续追问。这种方式的重点不是代码本身而是“运行 修改”的循环。比如让 AI 写一个解析 JSON 文件的脚本然后自己改路径、跑测试、看日志理解每一步为什么成立。第三种是 Agent 式学习。用户给 AI 一个目标AI 调用脚本、读写文件、执行命令自动完成一个小任务。适合练习工具链和工程化能力。比如构造一个定时抓取本地笔记、生成复习卡片的流程需要文件读写、进程管理、模型调用和异常处理一套下来能学到很多工程细节。用法典型输入典型输出适合阶段主要风险问答式“什么是依赖注入”概念解释入门容易堆概念没有动手结对式“用 Python 写一个读取 CSV 并生成统计结果的脚本”代码 运行说明动手阶段代码需要验证Agent 式“定时抓取本地笔记生成复习卡片”自动化脚本或工具进阶链路长难排查1.2 为什么“可验证结果”比“直接告诉你”更重要AI 是概率模型输出看起来流畅不代表内容正确。尤其在学习编程时AI 可能会给出一个旧版本 API 的写法也可能把两个框架的概念糅在一起。如果只读答案不运行你无法发现错误如果每次拿到代码就运行你会立刻看到错误信息然后带着具体问题再问 AI这样更容易学到东西。一个最小验证闭环是把需求写清楚输入是什么输出是什么。让 AI 给出可运行的代码或命令。在本地执行。拿到实际输出或报错。把报错重新交给 AI进入下一次循环。把“AI 说了什么”替换成“程序实际输出了什么”是 AI 学习最重要的心法。很多开发者学得快不是因为天赋而是他们愿意让代码多跑几次让报错信息多出现几次。1.3 给 AI 设置边界它是草案生成器不是最终答案不要在最开始就要求 AI“一次写对”。更合理的做法是把 AI 输出视为第一版草案自己负责审查依赖、运行、边界条件。学习 Java 时让 AI 生成 Spring Boot 项目的同时你自己看pom.xml的版本学习 Python 时让 AI 给出装饰器示例自己再写一个带参数的装饰器验证理解。注意学习场景中AI 可以帮你缩小问题范围但“程序能不能跑”“你理解不理解”仍然要由你自己确认。AI 可以写出能运行的代码但无法替你形成肌肉记忆和问题直觉。2. 环境准备用本地模型和 IDE 插件搭一个可调试的学习工作台如果只想快速体验可以直接使用在线 AI 服务。但要真正把 AI 嵌入学习流程推荐在本机准备一套可调试的环境。本地模型的好处是免费、可离线、能看 Prompt 如何影响输出也更适合练习模型接口调用。2.1 工具选型下面这套环境适合 Python 开发者也适合对本地模型感兴趣的人Python 3.10 或更高版本。Ollama用来管理并运行本地大模型。一个对话模型例如 qwen2.5:7b。IDE推荐 VS Code、IntelliJ IDEA 或 PyCharm。一个 AI 编程插件例如 Continue、GitHub Copilot或 Cursor 自带的 AI 能力。这套方案不是唯一解。如果你正在学习 Spring AI也可以把 Java 和 Maven 加入环境如果你更习惯 Cursor可以跳过插件安装直接用 Cursor 的对话能力。目标是让“写代码、跑测试、问 AI、看报错”在同一个窗口里完成。2.2 安装并启动 Ollama拉取一个可用模型在 macOS 上如果安装了 Homebrew可以执行brew install ollama在 Linux 或 Windows 上安装方式参考 Ollama 官方文档。安装完成后先启动服务ollama serve服务默认监听 11434 端口。再打开一个新终端拉取模型ollama pull qwen2.5:7b这里以 qwen2.5:7b 为例。如果网络或硬件条件不允许也可以换成 llama3.1:8b 或其它 Ollama 支持的小模型。拉取完成后检查模型列表ollama list正常输出会包含 qwen2.5:7b。接着验证 HTTP 接口是否可用curl http://localhost:11434/api/tags如果返回 JSON并且models数组里能看到 qwen2.5:7b说明本地模型服务已经准备好。2.3 在 IDE 里接入 AI 编程插件以 VS Code 为例打开扩展市场搜索 Continue安装后就能在侧边栏打开 AI 对话窗口。这个窗口可以直接读取当前文件内容适合“选中一段代码让 AI 解释”的场景。在 IDEA 或 PyCharm 中可以安装 AI Assistant 或国内模型厂商提供的插件。不同插件的快捷键不一样但核心用法一致把当前代码上下文、报错信息一起发送给 AI而不是只发一句话。报错信息越完整AI 回答越有针对性。Cursor 适合从零写项目它的 Chat 和 Tab 补全能力也可以用来学习。建议不要同时装太多插件一个能读代码、能带上下文的就够用。2.4 学习环境检查清单在进入下一节之前逐项确认检查项命令或操作预期结果Python 版本python3 --version3.10 或更高Ollama 版本ollama --version正常输出版本号Ollama 服务运行中curl http://localhost:11434/api/tags返回 JSON模型已拉取ollama list列表包含 qwen2.5:7brequests 已安装pip install requests成功安装3. 最小实践写一个“AI 学习助手”命令行程序环境准备好了接下来用一个最小程序实践“让 AI 输出可验证结果”。这个程序的目标是用户输入一个知识点AI 返回四部分内容一句话解释、类比、最小可运行示例、自测题。3.1 需求拆解与输入输出定义先不要急着让 AI 生成代码先自己定义好输入输出输入一个知识点名称例如Python 装饰器。输出四段文本并且必须包含“自测题”。运行方式命令行参数或交互式输入。技术栈Python requests调用本地 Ollama 接口。这样的定义可以帮助后续校验 AI 输出是否完整也方便测试。3.2 代码实现用 requests 调用本地模型创建目录mkdir ai-learning-assistant cd ai-learning-assistant创建requirements.txtrequests2.31.0创建main.pyimport sys import requests OLLAMA_URL http://localhost:11434/api/chat MODEL qwen2.5:7b SYSTEM_PROMPT ( 你是一名技术导师。回答必须包含四个部分 1. 一句话解释 2. 一个类比 3. 一个最小可运行示例 4. 两道自测题。 如果用户要求代码请给出可以直接运行的代码。 ) def build_messages(topic: str) - list: return [ {role: system, content: SYSTEM_PROMPT}, {role: user, content: f请讲解知识点{topic}}, ] def ask_ai(topic: str) - str: payload { model: MODEL, messages: build_messages(topic), stream: False, } resp requests.post(OLLAMA_URL, jsonpayload, timeout120) resp.raise_for_status() data resp.json() return data[message][content].strip() def main(): if len(sys.argv) 1: topic .join(sys.argv[1:]) else: topic input(请输入要学习的知识点) print(AI 正在组织学习材料...\n) content ask_ai(topic) print(content) if __name__ __main__: main()这段代码做了三件关键事情通过SYSTEM_PROMPT给 AI 设定输出结构避免回答跑题。通过requests.post调用 Ollama 的/api/chat接口把用户输入放在messages里。使用timeout120避免本地模型推理太慢时程序无限等待。如果想让输出更稳定可以在payload中增加temperature参数例如temperature: 0.3temperature越低输出越保守适合学习场景越高越有创造性适合头脑风暴。3.3 关键参数说明参数作用学习场景建议model指定使用哪个模型先选本地可跑的小模型再逐步切换messages传递多条对话消息把 system 指令放到最前面stream是否流式返回命令行演示先设为False方便调试timeout请求超时时间本地模型 7B 推理可能超过 30 秒设 120temperature控制输出随机性学习场景建议 0.3 左右降低幻觉3.4 运行与验证运行python main.py Python 装饰器预期输出是一个包含四个部分的回答。例如“一句话解释”和“自测题”都会出现。如果只输出了大段概念说明SYSTEM_PROMPT没生效可以检查是否传给 Ollama 时被截断。再运行一个带参数的命令python main.py SQL 索引如果程序正常运行说明输入输出链路通。此时可以继续加入一个最简单的校验脚本test_output.pyfrom main import ask_ai content ask_ai(Python 装饰器) assert 自测题 in content, AI 输出缺少自测题 assert len(content) 100, AI 输出太短 print(输出结构符合预期)注意运行测试前确认ollama serve还在运行。4. 用开源项目学习 AI Agent 开发my_ai_town 的阅读路径命令行工具只能训练“调用 API”的技能。想进一步学习 AI Agent 开发建议找一个真实开源项目把阅读和修改当成学习材料。材料中的my_ai_town正是一个可以放进这条路径的参考仓库。4.1 为什么开源项目比教程更适合练习教程通常会把复杂项目拆成“正确路线”但真实项目里会有大量兼容代码、历史版本和边界处理。阅读开源项目能训练三件事快速定位关键入口。理解模块之间的调用关系。在现有代码上做小改动而不影响整体结构。对 AI 学习来说真实开源项目也是最好的验证环境AI 说的架构必须和仓库里的文件对得上AI 给的修改方案必须在真实代码里跑通。4.2 先跑起来克隆、看 README、找入口克隆仓库git clone https://github.com/mewamey/my_ai_town.git cd my_ai_town不要急着读所有代码先看 README。README 通常包含项目简介、依赖列表、启动命令。按 README 装好依赖后执行启动命令。不同项目命令差异很大如果是 Python 项目常见流程是pip install -r requirements.txt python main.py如果是 Node 项目常见流程是npm install npm run dev第一次启动只要能正常起来就算完成了一部分。启动失败也没关系报错信息本身就是学习材料。把报错复制给 AI 时尽量附上操作系统、Python 版本、Node 版本这样 AI 更容易定位问题。4.3 让 AI 辅助读源码总结职责和生成调用关系一个常见做法是先把某个目录的文件列表发给 AI让 AI 猜结构然后打开代码验证。例如请根据下面的文件列表猜测每个文件可能负责什么职责并用一句话概括。不要编造打开实际代码后再修改你的判断。再把某个关键文件内容粘贴给 AI要求输出输入这个模块接收什么数据。输出它产生什么结果。依赖它调用了哪些模块。关键逻辑最核心的几步。可能的边界问题。每次要求都聚焦一个小范围不要一次性把整个项目丢给 AI否则上下文太长回答质量会明显下降。如果项目里有 AI Agent 相关模块可以重点关注几个关键词agent、memory、environment、prompt、tool。阅读时先画出调用链再带着调用链去问 AI“这个调用链里哪些是核心路径哪些是异常分支” AI 给出的回答可以作为理解路线但最终要以实际断点和日志为准。4.4 一个扩展练习给项目增加一个小功能读完结构后选一个小功能做修改。例如“给 Agent 增加一条启动日志”或“在运行时打印当前模型名称”。改动越小越容易验证。步骤找到主循环或 Agent 启动位置。在 AI 辅助下定位需要修改的函数。自己动手加代码。运行并观察日志。让 AI 帮你审查改动并指出潜在问题。这个流程的关键是“让 AI 给方案自己动手改”。如果你只是让 AI 把代码写好粘贴进去你学到的只是“它能写代码”而不是“你能改项目”。5. AI 学习中最容易踩的坑和排查链路AI 学习不是“AI 说什么都对”下面这些坑在实际过程中很常见。5.1 常见坑速查表问题现象常见原因检查方式处理建议调用本地模型报 ConnectionErrorOllama