第一部分:概念总览与底层逻辑
要构建高阶 Agent,首先要理清这些经常混淆的概念。它们构成了 AI 自动化系统的基础技术栈。
-
AI Agent(人工智能体):
-
定义:LLM(大语言模型)仅仅是大脑。Agent 是“大脑(LLM) + 感知(输入解析) + 记忆(Memory) + 行动(Tools)”的完整生命体。
-
解决的问题:解决了 LLM 只能“纸上谈兵”的问题,使其能够与物理世界或操作系统产生实际交互。
-
-
Workflow(工作流):
-
定义:预先定义好的、基于节点(Node)和边(Edge)的有向无环图(DAG)。比如经典的 CI/CD 流程,或者 Dify 中的节点连线。
-
解决的问题:解决 AI 执行任务的确定性。业务场景中,很多时候我们不需要 AI 自由发挥,只需要它按照“A 节点提取数据 -> B 节点翻译 -> C 节点写入数据库”的严格顺序执行。
-
-
Autonomous Agent(自治智能体):
-
定义:没有固定 Workflow 的 Agent。你只给它一个宏大目标(如“分析这个程序的安全漏洞”),它自己进行任务拆解、选择工具、试错并最终完成。
-
解决的问题:处理开放式、非结构化的复杂任务。
-
-
Multi-Agent(多智能体):
-
定义:多个分工明确的 Agent 协同工作。比如一个架构师 Agent 负责写设计文档,一个程序员 Agent 负责写代码,一个测试 Agent 负责找 Bug。
-
解决的问题:突破单次上下文窗口的限制,解决单一 Prompt 角色混乱和幻觉严重的问题,通过“多角色 Review”提高工程质量。
-
-
Function Calling & Tool Calling:
-
定义:大模型的底层能力。当你把本地函数(如
read_file(path))的 JSON Schema 描述告诉模型,模型在需要时,会输出一段要求调用该函数的 JSON 结构,而不是输出自然语言文本。 -
关系:Tool Calling 是 Function Calling 的进阶版,允许多个工具并行调用和更复杂的结构。
-
-
MCP (Model Context Protocol):
-
定义:Anthropic 推出的一种标准化协议,类似于 AI 时代的“USB 接口”。它定义了 LLM 如何统一地与本地文件、数据库、GitHub 或各类外部服务进行双向通信。
-
解决的问题:避免了开发者为每个新工具写一遍对接代码,实现了能力的即插即用。
-
-
Skill(技能):
-
定义:Tool 是原子化的(如“读取文件”),而 Skill 是业务化的、高阶封装的能力模块(如“反编译目标并提取特征码”)。Skill = 多个 Tool 的组合 + 领域 Prompt + 局部 Workflow。
-
-
Memory(记忆系统):
-
分类:短期记忆(当前对话的 Context Window)和长期记忆(存储在 SQLite 或向量数据库 Chroma/Milvus 中的历史经验)。
-
-
Planning(规划), Reasoning(推理), Reflection(反思):
-
这是 Agent 的核心思维范式。Planning 是把大任务拆解(如任务树);Reasoning 是推理每一步怎么做(如 Chain of Thought);Reflection 是执行失败后,读取报错信息并自我修正(Self-Correction)。
-
-
RAG (Retrieval-Augmented Generation):
-
定义:在让模型回答问题前,先去本地知识库(如 PDF、内部文档)检索出相关段落,塞进 Prompt 里。
-
第二部分:Hermes、OpenClaw、Claude Code 深度拆解
1. Hermes:持续进化的“爱马仕” Agent
-
它是什么:由 Nous Research 推出的开源 Agent 运行时(Runtime)。它不是一个简单的对话脚本,而是一个强调持续学习和经验沉淀的闭环系统。
-
核心架构与原理:它打破了传统 Agent 每次启动都“从零开始”的窘境。它的核心在内部被称为“经验提炼引擎”。当 Hermes 成功解决了一个复杂问题后,它会自动反思这次成功的路径,并将其固化为一个新的 Skill,存储在本地数据库中。下次遇到类似问题,它会直接调用这个 Skill。
-
系统支持情况:高度支持本地模型(如 Llama 3、DeepSeek 本地部署),支持跨会话记忆,极度适合作为底层框架进行二次开发。
-
对比 AutoGPT/LangChain:LangChain 是一个砖块库,你需要自己砌墙;AutoGPT 往往陷入死循环。而 Hermes 的优势在于“越用越聪明”,它的核心技术是自动化的提示词工程与行为编译。
-
局限:由于其反思和总结机制,对 LLM 的逻辑推理能力要求极高,若使用参数量较小的本地模型,容易总结出错误的经验。
2. OpenClaw:便携式 AI 自动化服务引擎
作为一款设计为便携式、可存放在 U 盘中运行的 AI 系统,OpenClaw 的架构核心在于极端的环境隔离与深度的底层穿透力。由于它不依赖宿主机环境,其架构设计的含金量极高。
-
整体架构与工程思想:
-
核心层:内嵌式 Python 运行时(如 Python Embeddable 包),确保即插即用。
-
路由层:统一的 API 适配器,通过一套接口兼容 OpenAI、Claude 和 DeepSeek。
-
能力层:不仅包含常规的系统控制,更是安全与逆向操作的载体。
-
-
如何实现工具与电脑控制:除了使用 PyAutoGUI 或 Windows API (
ctypes) 进行常规的键鼠模拟和窗口句柄操作外,高阶的 OpenClaw 可以将底层能力封装成工具。例如,利用 PolyHook_2_0 编写的 DLL 注入与函数拦截机制,被封装成一个 Python 模块。当 AI 需要监控或篡改某个特定进程的行为时,可以直接触发这个 Tool,实现降维打击。 -
Skill 与 Memory 的实现:
-
Memory:采用轻量级的 SQLite 结合本地轻量向量库(如 ChromaDB),所有数据落盘在 U 盘特定目录,实现物理级的“拔盘即走,插盘即用”和数据安全隔离。
-
Skill:设计为热插拔的
.py脚本或编译好的.pyd文件。
-
-
适合做什么:自动化逆向分析辅助、动态脱壳/Hook 参数的智能化分析、便携式渗透测试辅助、以及跨设备的自动化日常办公。
3. Claude Code:重新定义代码级 Agent
-
核心能力:它是 Anthropic 官方的 CLI 工具,能直接在终端读取、分析、编辑你的整个项目代码,并自动执行 Git 提交。
-
架构设计(分层思维):
-
核心层(Core):主对话进程,负责意图识别和最终决策。
-
委派层(Delegate):当遇到需要遍历文件的庞大任务时,主模型会衍生出子代理(如便宜快速的 Haiku 模型)去执行脏活累活,子代理只将结论摘要返回给主模型。这极大地保护了主对话的上下文(Context Window),防止模型遗忘。
-
扩展层(Extension):完美实现了 MCP 协议,直接对接系统的 Bash 终端和文件系统。
-
-
为什么代码能力强:不仅仅是因为 Claude 3.5 Sonnet 模型本身强,更因为它有一套极佳的自动修复(Auto-Fix)工作流。它修改代码后,会通过钩子(Hook)自动跑编译或测试命令,看到报错信息后再将 Error Log 喂给模型进行 Self-Correction。
第三部分:Skill(技能系统)深度理解与设计
很多开发者觉得给大模型写几个 Function 就是实现了 Skill,这是巨大的误区。
Skill 和 Tool 的本质区别:
-
Tool 是原子 API:
get_process_memory_address()。 -
Skill 是带有业务属性的自动化 SOP:
分析特定进程的异常内存分配。它包含了前置条件的判断、连续多个 Tool 的调用逻辑、以及专门针对该任务优化的 Prompt。它本质上是“可复用的高阶能力模块”。
如何设计一个适合个人的高级 Skill 系统?
工程上,我们采用插件化注册机制:
-
Skill Metadata(元数据):每个 Skill 目录下有一个
skill.json,定义了该技能的名称、描述、所需参数的 JSON Schema,以及它依赖的原子 Tool。 -
动态加载与注册 (Skill Registry):Agent 启动时,使用 Python 的
importlib动态扫描skills/文件夹。将所有skill.json解析并转化为大模型能理解的tools参数列表,注册到大模型的上下文中。 -
Agent 的自动选择:当用户下达模糊指令时,大模型根据注入的技能描述,自动决定输出调用哪个 Skill 以及对应的参数(这就是 Function Calling 的威力)。
-
上下文继承:Skill 运行时,需要获取当前 Agent 的状态指针(包括内存权限、已获取的历史变量等),以保证环境连贯。
第四部分:从零搭建本地 AI Agent 的工程步骤
如果我们要为 Windows 平台打造一套支持多模型、带 Skill 和 Memory 的本地自动化 Agent(例如迭代升级你的 OpenClaw),可以遵循以下系统架构设计:
Step 1: 核心路由与基座搭建
-
不建议从零手撸大模型网络请求,推荐使用 LiteLLM 库。它统一了格式,你只需要切换
model="gpt-4o"或model="deepseek/deepseek-chat",底层代码无需修改。 -
框架层:推荐使用 LangGraph。它通过状态图(State Graph)的方式定义 Agent,完美解决了原生 LangChain 难以控制循环和 Workflow 的问题。
Step 2: 建立 Tool 与操作系统的桥梁
-
在 Python 中封装操作系统的原子操作。
-
利用
subprocess执行 Bash/PowerShell 命令。 -
利用
watchdog监控文件读写。 -
针对 Windows 进阶操作,预留 C/C++ 扩展接口(通过
ctypes加载你的 Hook 或反调试工具 DLL)。
Step 3: 引入 MCP 协议实现无缝扩展
-
不要再自己写死所有的 API 接口。在系统中集成一个轻量级的 MCP Client。
-
启动本地的 MCP Server(例如官方提供的 SQLite MCP 或 FileSystem MCP),Agent 就可以直接理解数据库结构并执行读写,大幅减少你的代码量。
Step 4: 构建长期记忆(Memory)
-
接入本地向量数据库(推荐无服务器的 Chroma 或直接使用 SQLite 结合 VSS 插件)。
-
在 LangGraph 的主循环中加入一个
MemoryNode:每次执行任务前,先将用户的 query 转化为向量,检索历史经验注入 Prompt;任务成功后,将反思结果存入数据库。
Step 5: 技能树(Skill Tree)的热更新
-
设计一个
SkillManager类。支持在运行过程中,直接往文件夹里丢入新的.py技能脚本,系统监控到文件变动后自动reload并更新提交给大模型的 JSON Schema。



没有回复内容