1. 项目概述从“狂人”到“伙伴”的AI实践之路“狂人日记”这个标题听起来有点自嘲又带着点探索的狂热。这大概就是过去一年里我深度使用各类AI工具特别是围绕Agent智能体、MCP模型上下文协议和Skill技能构建个人工作流的真实写照。从最初被ChatGPT的对话能力震撼到后来折腾各种AI编程助手、尝试让AI串联起我的整个工作台这个过程充满了试错、惊喜和效率的质变。今天这篇“日记”就想抛开那些浮夸的宣传实实在在地聊聊我是怎么把AI特别是像CodeBuddy、Hermes Agent这类工具用成我离不开的“数字同事”的。如果你也对如何超越简单的问答让AI真正嵌入你的开发、写作、研究乃至日常事务处理流程感兴趣那么我踩过的坑和总结的经验或许能给你一条更清晰的路径。简单来说这篇分享的核心就是如何利用AI Agent框架和MCP协议将单一的大模型能力扩展为一个可定制、可连接、具备专业技能的自动化工作流。它解决的不仅仅是“怎么写一段代码”或“怎么润色一段文字”的孤立问题而是“如何让AI理解我的整个项目上下文、调用我需要的工具、并按照我的习惯完成一系列复杂任务”的系统性问题。无论是开发者、内容创作者、研究者还是效率爱好者只要你希望将AI的潜力榨取得更彻底这里面的思路和实操细节都值得一看。2. 核心理念拆解AI从“工具”到“Agent”的跃迁2.1 为什么是Agent理解智能体的核心价值最开始用AI我们都在一个聊天框里输入问题等待答案。这就像雇了一个无所不知但“手无缚鸡之力”的顾问它只能动嘴给建议具体执行还得你自己来。而Agent智能体的概念则是给这位顾问配上了“手”和“脚”甚至是一个专属的工具箱。一个真正的AI Agent通常具备几个关键特征记忆Memory、规划Planning和工具使用Tool Use。记忆让它能记住对话历史和你的偏好规划让它能分解复杂任务一步步思考而工具使用则是其能力扩展的基石。它可以根据你的指令自动去调用搜索引擎查资料、读写本地文件、执行一段代码、调用某个API或者操作一个专业软件。这就实现了从“建议者”到“执行者”的转变。我选择深入Agent领域根本原因在于我的工作流是碎片化和跨工具的。我可能上午在写代码VS Code下午在分析数据Jupyter Notebook晚上在写文档Obsidian中间还需要查资料、处理图片。如果每个环节都要我手动把内容复制粘贴到AI聊天框效率瓶颈非常明显。我需要一个能常驻在我工作环境里理解当前上下文并能直接操作这些环境的AI伙伴。这就是CodeBuddy这类插件以及基于MCP协议构建的生态吸引我的地方。2.2 MCP协议打破AI与工具之间的“巴别塔”理解了Agent需要“用手”下一个问题就是手怎么连接工具这就是MCPModel Context Protocol协议要解决的问题。你可以把它想象成AI世界的“USB标准”或“驱动协议”。在没有MCP之前每个AI应用如ChatGPT、Claude如果想连接一个新工具比如你的数据库、你的项目管理软件都需要针对这个工具单独开发一套连接逻辑。这非常低效且难以复用。MCP协议定义了一套标准化的通信方式让工具提供方可以按照统一格式暴露自己的功能成为一个MCP Server而AI应用方如CodeBuddy、Claude Desktop只要实现了MCP Client就能无缝接入所有符合协议的工具。举个例子假设有一个sqlite-mcp-server的工具。它按照MCP协议告诉AI“我可以接收SQL查询语句并返回数据库结果”。那么任何支持MCP的AI Agent比如配置了该Server的CodeBuddy在需要查询数据库时就能直接调用这个工具而不需要自己再去写连接数据库的代码。这极大地丰富了AI的能力边界。我后面会详细讲如何为CodeBuddy添加诸如Tavily搜索、Brave搜索这类MCP Server这相当于瞬间为你的AI助手装上了“联网搜索”的技能。2.3 Skill与Agent框架定制你的专属AI能力模块在具体的实现层面我们常会遇到Skill和Agent框架这两个词。它们密切相关但各有侧重。Skill技能是一个更偏向功能性的概念。它指的是一个具体的、可复用的能力单元。比如“用Pandas进行数据清洗”可以是一个Skill“生成Git提交信息”可以是另一个Skill。在CodeBuddy里你可以看到很多预置的Skill也可以自己编写或导入Skill。一个Skill内部封装了具体的提示词Prompt、可能需要的工具调用Tools和执行逻辑。你可以把它看作一个针对特定任务的、优化好的“工作指令包”。Agent框架则是构建和运行Agent的“脚手架”或“操作系统”。它提供了记忆管理、工具调度、任务规划、多Agent协作等基础能力。像Hermes Agent、AutoGen、LangChain等都属于Agent框架的范畴。CodeBuddy本身可以看作是一个集成在IDE里的、轻量级的Agent框架实现它管理着Skill的加载和执行。我的使用经验是对于聚焦于编码和本地工作流自动化的场景CodeBuddy以其与VS Code的深度集成和易用性胜出而对于需要复杂逻辑编排、长期记忆和自定义程度更高的自动化任务我会选择使用Hermes Agent这类更灵活的框架来构建独立的Agent应用。它们不是互斥的而是可以配合使用。3. 核心工具深度体验与选型指南3.1 CodeBuddy详解不只是代码补全CodeBuddy常常被拿来和GitHub Copilot、Cursor比较但它真正的威力远不止代码补全。它本质上是一个基于MCP协议的、可扩展的AI编程助手平台。安装与基础配置安装非常简单在VS Code的扩展商店搜索“CodeBuddy”即可。安装后你需要一个兑换码通常可以从其官网或社区活动获得来激活高级功能。基础配置中最关键的是模型选择和Skill管理。注意模型选择直接影响体验和成本。CodeBuddy支持接入OpenAI、AnthropicClaude以及一些开源的Ollama本地模型。对于日常开发Claude 3 Sonnet或Haiku在代码理解、推理和成本间取得了很好的平衡。如果处理敏感代码或追求零成本可以配置本地的DeepSeek-Coder或Qwen-Coder模型但需要牺牲一些响应速度。核心功能场景深度代码理解与操作选中一段代码直接让CodeBuddy解释、重构、添加注释或生成测试。它的优势在于能结合整个文件甚至项目的上下文进行分析而不仅仅是当前行。Skill的威力这是CodeBuddy的精华。例如内置的“Code Review” Skill可以像资深同事一样给你的代码提意见“Generate Documentation” Skill能快速为函数或类生成标准化的Docstring。你还可以从社区导入Skill比如一个专门优化SQL查询的Skill。项目级问答你可以直接问“我们这个项目里处理用户认证的逻辑在哪里” CodeBuddy会检索整个项目文件给出准确的定位和解释。与MCP Server联动这是打通外部世界的钥匙。后文会详细展开。与WorkBuddy的区别很多人分不清CodeBuddy和WorkBuddy。简单来说CodeBuddy聚焦于软件开发环境主要是VS Code深度集成代码编辑、调试、版本控制等开发流程。而WorkBuddy的设计场景更泛化可能面向办公自动化、跨应用脚本如操作浏览器、Excel等它可能通过其他插件或桌面Agent的形式存在。两者核心都基于类似的Agent和MCP理念但目标领域和集成深度不同。对于程序员CodeBuddy是首选。3.2 Hermes Agent与开源Agent框架探索当你的需求超出IDE就需要更强大的Agent框架。Hermes Agent是一个功能强大且设计优雅的开源框架我常用它来构建一些自动化的后台任务。它的核心优势在于清晰的架构将工具Tools、记忆Memory、规划器Planner、执行器Executor分离易于理解和定制。强大的工具生态原生支持MCP可以轻松集成海量工具。同时也支持自定义Python函数作为工具灵活性极高。出色的长期记忆通过向量数据库存储对话历史使得Agent能在很长的对话周期中保持上下文连贯适合复杂的多轮任务。一个简单的Hermes Agent应用实例假设我想让一个Agent每天自动从几个指定的科技博客抓取文章总结要点然后发到我的Notion知识库里。用Hermes实现的大致步骤定义工具创建或使用现有的fetch_rss_feed抓取RSS、summarize_text调用大模型总结、append_to_notion写入Notion三个工具函数。配置Agent给Agent配备这三个工具并设定一个向量数据库作为记忆存储。编写任务规划可以是简单的线性脚本也可以利用其规划器让Agent自己决定步骤。例如“每日执行1. 调用fetch_rss_feed获取列表2. 对每篇文章调用summarize_text3. 调用append_to_notion写入结果。”部署运行可以部署为常驻的后台服务通过cron定时触发。相比于在CodeBuddy里写一次性脚本用Hermes构建的Agent更模块化、可维护、且具备状态。你可以随时问它“上周你都总结了哪些关于AI Agent的文章” 它能从记忆里找出来。其他框架浅析LangChain生态最庞大组件最丰富但学习曲线陡峭有时显得“重”。适合构建非常复杂、生产级的AI应用。AutoGen专注于多Agent协作模拟团队工作模式如让一个“程序员”Agent和一个“测试员”Agent对话协作解决问题。在研究性、探索性任务上很有意思。Semantic Kernel微软出品与.NET生态结合紧密适合微软技术栈的开发者。对于大多数想从“使用”迈向“创造”的进阶用户我建议从Hermes Agent开始它在易用性和能力之间取得了很好的平衡。3.3 MCP Server实践为你的AI装配“武器库”MCP协议的魅力在于其连接能力。下面我以两个最实用的场景为例展示如何为CodeBuddy添加MCP Server从而极大扩展其能力。场景一添加搜索能力Tavily / Brave Search MCP默认情况下CodeBuddy不具备联网搜索能力。通过MCP我们可以让它“学会上网”。详细步骤获取MCP Server搜索tavily-mcp-server或brave-search-mcp。通常这些项目在GitHub上可以找到。以Tavily为例它是一个专注于AI的搜索API。安装与配置按照项目README的说明进行安装。通常是npm或pip安装。安装后你需要获取对应的API KeyTavily或Brave Search都需要注册账号获取。配置CodeBuddy在VS Code中打开CodeBuddy的设置通常在设置界面搜索CodeBuddy。找到MCP Servers配置项。添加一个新的Server配置需要提供name: 自定义一个名字如my_tavily_search。command: 启动该MCP Server的命令。例如如果是一个Node.js脚本可能是node /path/to/tavily-mcp-server.js。env: 环境变量在这里传入你的API Key如{TAVILY_API_KEY: your_key_here}。验证与使用重启VS Code或重新加载CodeBuddy。之后你在和CodeBuddy对话时就可以直接提出需要联网信息的问题比如“帮我搜索一下最新发布的MCP协议有哪些新特性” CodeBuddy会自动调用配置好的搜索工具获取实时信息并整合到回答中。实操心得配置MCP Server时最常遇到的问题是路径错误或环境变量未生效。建议先在终端手动运行一下command中的命令确保它能独立启动成功。另外不是所有MCP Server都稳定社区维护的版本可能随着API变更而失效需要留意。场景二连接本地数据库SQLite MCP让AI直接查询或分析你的本地数据这是另一个杀手级应用。配置步骤同样寻找一个sqlite-mcp-server的开源实现。安装后在配置command时通常需要指定数据库文件路径作为参数。例如sqlite-mcp-server /path/to/your/database.db。在CodeBuddy的MCP配置中添加此Server。使用示例你可以对CodeBuddy说“连接到我的数据库查询上个月销售额最高的前五个产品。” 或者更复杂“分析一下用户表给我一个用户活跃度随时间变化的总结。” AI会生成SQL语句通过MCP Server执行并解读结果。通过组合不同的MCP Server你可以将CodeBuddy打造成一个集成了代码专家、搜索引擎、数据分析师、文档管理员于一身的超级助手。4. 高阶应用构建个人自动化工作流掌握了单个工具就可以像搭积木一样构建属于你自己的自动化工作流。这里分享两个我自用的、结合了多个概念的工作流。4.1 自动化代码审查与知识沉淀流这个工作流的目标是每次完成一个功能模块或修复一个重要Bug后自动生成高质量的技术笔记并存入我的知识库。所用工具与技能核心CodeBuddy VS Code内辅助一个自定义的“代码审查与总结” Skill一个连接Obsidian我的笔记软件的MCP Server或通过其本地API。触发Git提交前通过Git钩子或手动触发。工作流步骤我在VS Code中完成代码编写。我唤出CodeBuddy使用自定义的“代码审查与总结” Skill。这个Skill的提示词经过精心设计会要求AI做以下几件事a. 分析本次变更的代码差异Diff。b. 从设计模式、性能、可读性、潜在Bug等方面进行审查提出建议。c. 用通俗的语言总结这个变更解决了什么问题采用了什么方案关键点是什么。d. 生成包含“背景”、“解决方案”、“核心逻辑”、“注意事项”等章节的Markdown文档。CodeBuddy执行这个Skill调用代码分析工具和模型生成一份完整的审查报告和总结文档。紧接着我配置的“Obsidian MCP Server”被调用将这份Markdown文档自动写入我指定的知识库文件夹并以“日期-功能名”的格式命名。现在我的代码提交了同时一份结构化的开发笔记也自动生成了。日积月累这就形成了一个宝贵的项目知识库。这个流程将编码、审查、文档编写三个动作无缝衔接极大地提升了技术债的管理水平和个人知识的沉淀效率。4.2 跨平台信息聚合与处理流这个工作流处理的是更泛化的信息我可能在看论文、刷推文、读新闻看到有价值的信息希望快速摘录、翻译、总结并分类存档。所用工具与技能核心Hermes Agent 作为常驻后台服务工具浏览器剪藏插件如简悦、网页内容提取MCP Server、翻译API MCP Server、大模型总结工具、Notion API MCP Server。触发浏览器插件一键发送。工作流步骤我在网页上看到一篇好文章点击浏览器插件的“发送到我的AI助手”按钮。插件将当前网页的URL和选中的文本发送到我本地运行的Hermes Agent服务。Hermes Agent接收到任务启动一个处理流程a. 调用web_scraper_mcp工具获取网页的纯净正文内容。b. 调用translator_mcp工具将非中文内容翻译成中文如果需要。c. 调用summarizer工具本质是提示词调用大模型要求生成一个包含“核心观点”、“关键论据”、“个人启发”的三段式摘要。d. 根据我预设的规则或让AI判断给这篇文章打上标签如“AI前沿”、“编程技巧”。e. 调用notion_mcp工具将标题、原文链接、摘要、标签等信息作为一条新记录插入到我Notion的“阅读清单”数据库中。整个过程在后台秒级完成我无需离开当前浏览的页面。所有碎片信息被自动结构化地保存起来方便日后检索和回顾。这个工作流的关键在于Hermes Agent的任务编排能力和MCP工具链的打通。它实现了一个信息从“采集”到“处理”再到“入库”的全自动管道。5. 避坑指南与未来展望5.1 实操中的常见“坑”与解决方案在近一年的深度使用中我遇到了不少问题这里总结几个最具代表性的1. 成本失控问题AI模型调用尤其是高性能模型费用不菲。无节制地使用可能导致账单惊人。解决方案分层使用模型简单的代码补全、语法检查用低成本模型如Claude Haiku GPT-3.5-Turbo复杂的系统设计、逻辑推理再用高级模型如Claude Sonnet/Opus GPT-4。设置使用限额在OpenAI或Anthropic后台为API Key设置每月用量上限。善用本地模型对于不涉及敏感信息的重复性任务或离线场景部署开源的Ollama模型如Qwen、DeepSeek。CodeBuddy和Hermes都支持接入Ollama。优化提示词清晰、具体的提示词能减少模型的“胡思乱想”和无效输出轮次直接降低成本。2. 上下文长度与记忆丢失问题大模型有上下文窗口限制如128K。长对话或处理长文档时早期的信息可能会被“遗忘”。解决方案关键信息摘要与注入在对话进行到一定长度后主动让AI对之前的讨论重点进行摘要然后在后续提问时将摘要作为新的上下文输入。利用Agent的记忆机制像Hermes Agent这类框架其向量数据库长期记忆功能就是为了解决这个问题。确保重要信息被存入长期记忆。分而治之处理超长文档时先让AI进行分段总结再基于总结进行全局分析而不是一次性喂入全部文本。3. 工具调用不稳定或错误MCP Server可能因为网络、API变更、自身Bug等原因失效或返回错误。解决方案为工具调用添加重试和超时机制在构建自己的Agent时这是基本操作。设置清晰的错误处理与用户反馈当工具调用失败时Agent应该能捕获错误并以友好的方式告知用户“XX功能暂时不可用”而不是卡死或输出乱码。定期维护你的工具链关注所用MCP Server项目的更新及时替换掉已失效的服务。4. 过度依赖与思维惰性这是最隐蔽也最危险的“坑”。AI能快速给出答案也可能让你停止深入思考。解决方案明确AI的定位它是“副驾驶”Copilot不是“自动驾驶”。最终决策、架构设计、关键算法必须经过你自己的批判性思考。把AI当作学习伙伴不要只问“怎么做”多问“为什么这么做”“有没有更好的方法”“这里的原理是什么”。用AI的回答来激发和验证你自己的思考。定期进行“无AI”工作刻意安排一些时间完全靠自己解决问题保持独立思考和动手能力。5.2 技能Skill的编写与调优心得自己编写Skill是发挥AI Agent潜力的关键一步。一个好的Skill和普通的提示词有天壤之别。编写高质量Skill的要点单一职责一个Skill只做好一件事。比如“生成单元测试”和“优化SQL查询”就应该分成两个Skill。这有利于维护和复用。提供丰富上下文在Skill的指令Instruction中除了任务描述尽可能提供背景信息、输入输出格式示例、约束条件如“不要使用eval函数”。结构化输出要求AI以特定格式如JSON、Markdown表格、特定章节的文本输出这极大方便了后续的程序化处理。迭代优化没有一个Skill是一次写成的。通过实际使用观察AI在哪些地方会误解或出错不断修正和补充你的指令。这是一个“训练”AI理解你需求的过程。示例一个简单的“代码解释”Skill# 这不是真实配置语法仅示意结构 name: explain_code description: 用通俗易懂的语言解释一段代码的功能和逻辑面向编程新手。 instruction: | 你是一个耐心的编程导师。用户会给你一段代码。请你 1. 用一句话概括这段代码的**核心目的**。 2. 按执行顺序逐行或逐关键部分解释代码在**做什么**。避免使用过于专业的术语用比喻和生活化的例子说明。 3. 指出代码中可能存在的**关键点或容易混淆的概念**如果有的话。 4. 最后提供一个**简单的、相关的类比**来帮助理解。 输出格式请严格遵循以下Markdown结构 ## 核心目的 [你的回答] ## 逐行解释 [你的回答] ## 关键点提示 [你的回答] ## 理解类比 [你的回答] 现在请解释以下代码 {{code_snippet}}通过这样结构化的Skill你每次都能得到高质量、格式统一的解释而不是随机的、质量参差不齐的回答。回顾这段“狂人”般的探索历程最大的体会是AI Agent和MCP所代表的“可组装、可扩展的智能”范式正在将AI从一种“云端的魔法”变成一种“可编程的电力”。我们不再只是魔法的祈求者而是电路的搭建者。这个过程需要学习新的概念Agent MCP Skill需要动手配置和调试甚至需要写一点代码门槛确实存在。但一旦打通你所获得的不是一个更聪明的聊天机器人而是一个真正能理解你的工作环境、调用你的工具、按照你的方式去解决问题的数字伙伴。这种效率的提升和思维模式的扩展是革命性的。未来的方向我认为会朝着Agent的专精化出现更垂直、更强大的特定领域Agent、工具生态的标准化与繁荣更多好用的MCP Server以及人机协作流程的深度重塑发展。而我们能做的就是保持好奇持续动手在这场变革中为自己打造最趁手的“利器”。