feat(halo): 添加图片自动上传功能
- 新增图片处理工具模块 `src/utils/image.ts`,包含图片引用提取、绝对路径解析和路径替换功能 - 新增图片上传服务 `src/service/image-uploader.ts`,支持调用 Halo 媒体 API 上传图片并实现缓存机制 - 在设置界面添加图片上传开关和上传路径配置项 - 更新发布流程,在提交到 Halo 前自动检测并上传本地图片,替换为远程 URL - 添加英文、简体中文和繁体中文的国际化文案 - 更新插件版本至 1.1.1 并完善相关配置文件
This commit is contained in:
@@ -0,0 +1,325 @@
|
||||
# OpenClaw 开源智能体框架全面介绍
|
||||
|
||||
> 📝 注:OpenClaw 的安装与配置教程,LHY 已编写了详细的 Windows 平台安装指南,详见:[OpenClaw Windows 安装教程](https://blog.metarl.cc.cd/archives/openclaw-windows-an-zhuang-jiao-cheng)
|
||||
|
||||
## 一、项目概述与背景
|
||||
|
||||
### 1.1 什么是OpenClaw
|
||||
|
||||
OpenClaw是一个开源的个人AI智能体(AI Agent)框架,中文名称为“龙虾”。它不仅仅是一个普通的聊天机器人,而是一个能够在用户自有设备上持续运行、主动执行复杂任务的自主式智能助手。与传统的对话式AI不同,OpenClaw将大型语言模型(LLM)直接连接到用户的操作系统、文件系统、网页浏览器等核心组件,真正实现了“替用户做事”而非“仅回答问题”的目标。
|
||||
|
||||
从技术定位来看,OpenClaw采用了“本地优先、隐私可控”的设计理念。用户可以将AI部署在自己的Mac Mini、个人电脑或私有服务器上,让AI拥有执行shell命令、管理文件、协调多步骤工作流程的能力。这种架构设计使得OpenClaw成为了一种真正意义上的“主权个人AI”——智能部分来自云端(Anthropic、OpenAI或本地模型),但执行Agent完全由用户拥有和控制。
|
||||
|
||||
### 1.2 发展历程
|
||||
|
||||
OpenClaw的发展历程充满了戏剧性。它最初于2025年11月作为一个周末项目诞生,名为"Clawdbot",开发者是奥地利程序员彼得·斯坦伯格(Peter Steinberger)。斯坦伯格是PSPDFKit的创始人,于2021年出售了该公司,随后在2025年6月创立了新公司Amantus Machina,致力于研发下一代超个性化AI智能体。
|
||||
|
||||
项目上线后短短两个月内经历了两次更名:2026年1月27日,由于Anthropic的商标投诉,项目更名为"Moltbot"(继续沿用龙虾主题);三天后,又因为觉得"Moltbot"读起来不够顺口,最终更名为"OpenClaw"。与此同时,企业家Matt Schlicht推出了Moltbook——一个面向AI智能体的社交网络服务。
|
||||
|
||||
截至2026年2月4日,OpenClaw在GitHub上已累计获得超过16万颗星标(160K+ stars),拥有378位贡献者,催生了一个由8900多名开发者组成的活跃社区。这一惊人的增长速度使其成为2026年最受关注的开源AI项目之一。
|
||||
|
||||
### 1.3 应用案例与影响力
|
||||
|
||||
OpenClaw的出现引发了科技行业的广泛关注。2026年3月,在香港科技大学上海中心举办的“AI for Discovery:从范式革命到产业重构”学术峰会上,复旦大学浩清特聘教授、上海科学智能研究院院长漆远在演讲中指出,OpenClaw智能体的出现标志着具备高能动性和自主学习能力的AI Agent时代的到来。
|
||||
|
||||
商业应用方面,2026年3月18日,联想百应率先携手美团推出独家OpenClaw远程部署服务,通过“专业工程师代操作+全流程透明化”的创新模式,让用户足不出户即可完成一键配置。此外,基于OpenClaw,国星宇航-上海交通大学太空计算联合实验室成功完成了一项技术试验:通过自然语言指令远程调用太空算力,实现对地面人形机器人的操控。
|
||||
|
||||
---
|
||||
|
||||
## 二、核心架构解析
|
||||
|
||||
### 2.1 整体架构概述
|
||||
|
||||
OpenClaw的整体架构可以从两个视角理解。首先是从核心组件视角,它由四大支柱构成:Gateway(网关)、Agent(智能体)、Skills(技能)和Memory(记忆)。其次是从系统分层视角,OpenClaw采用了五层运行时网关架构,从用户接口到基础设施,职责清晰,边界明确。
|
||||
|
||||
从工程实现的角度来看,OpenClaw更像是一个围绕Agent构建的运行时网关系统(Agent Runtime)。它不是简单地把用户输入丢给大模型,然后把输出发回来,而是把整个过程拆成了一条清晰的执行链路,并在每个关键节点上做了工程治理。这种设计使得OpenClaw能够处理复杂的、多步骤的任务,同时保证系统的稳定性和可追溯性。
|
||||
|
||||
### 2.2 Gateway(网关)——系统的神经中枢
|
||||
|
||||
Gateway是OpenClaw最核心的组件,可以类比为家庭中的总控台,所有功能都围绕它展开。它不仅仅是一个简单的API转发器,而是一个协议无关的编排层(Protocol-Agnostic Orchestrator)。其核心在于维护一个持久的WebSocket连接,构建出实时、双向的通信通道。
|
||||
|
||||
Gateway的主要职责包括:会话生命周期管理、通道路由、工具调度、状态同步等。它作为“单一事实源”,确保所有操作都有明确的来源和目的地。无论指令来自终端命令行、Web控制面板,还是通过WhatsApp、Telegram、iMessage等通讯工具远程发送,网关都能将这些异构的输入信号即时标准化,并统一维护会话状态。
|
||||
|
||||
从网络模型来看,Gateway采用了全双工通信模式,这意味着用户可以随时发送指令,AI也可以主动推送信息。这种设计特别适合需要长时间运行的任务,比如邮件处理、文件同步等。
|
||||
|
||||
### 2.3 Agent(智能体)——任务执行的核心
|
||||
|
||||
Agent是OpenClaw的任务执行单元,它将LLM的智能与本地执行能力结合在一起。每个Agent可以配置不同的模型(Claude、OpenAI、国产大模型等),拥有不同的技能集,服务于不同的用途。
|
||||
|
||||
Agent的执行流程可以概括为:接收用户请求 → 理解任务意图 → 规划执行步骤 → 调用Skills执行 → 返回结果。这一流程中,Agent需要处理多种情况,包括任务分解、错误恢复、条件分支等。
|
||||
|
||||
在Agent运行时(Agent Runtime)中,有几个关键设计值得注意:
|
||||
|
||||
- **超时处理**:当任务执行超过timeoutSeconds时触发abort,避免无限等待。
|
||||
- **外部取消**:支持AbortSignal,可以从外部终止正在执行的任务。
|
||||
- **连接管理**:当Gateway断开或RPC超时时,Agent会自动停止。
|
||||
- **等待机制**:agent.wait timeout仅停止等待,不停止Agent本身。
|
||||
|
||||
### 2.4 Skills(技能)——功能扩展的基石
|
||||
|
||||
Skills是OpenClaw实现功能扩展的核心机制。每个Skill就像一个插件,可以为Agent添加新的能力。OpenClaw的Skill系统设计精良,支持多种类型的扩展:
|
||||
|
||||
- **文件操作Skill**:读写、复制、移动、删除文件
|
||||
- **Shell命令Skill**:执行终端命令
|
||||
- **浏览器控制Skill**:自动化网页操作
|
||||
- **邮件管理Skill**:收发邮件、日历管理
|
||||
- **日历Skill**:日程安排、会议管理
|
||||
- **搜索Skill**:网络搜索、文档检索
|
||||
- **代码开发Skill**:代码编写、调试、版本控制
|
||||
|
||||
Skills的设计遵循"极简核心+弹性扩展"的原则。用户可以根据自己的需求选择安装哪些Skill,定制出完全符合个人工作流程的智能助手。社区已经贡献了大量实用的Skills,涵盖了从日常办公到专业开发的各个领域。
|
||||
|
||||
### 2.5 Memory(记忆)——长期学习的保障
|
||||
|
||||
Memory是OpenClaw实现长期记忆的关键组件。传统的AI聊天在会话结束后就会“忘记”一切,而OpenClaw通过多层记忆架构,实现了类似人类的学习和记忆能力。
|
||||
|
||||
OpenClaw的记忆系统包含以下几个层次:
|
||||
|
||||
**第一层:工作记忆(Working Memory)**。这是Agent在执行当前任务时的短期记忆,存储在内存中,包含当前会话的上下文信息。
|
||||
|
||||
**第二层:会话记忆(Session Memory)**。每个会话结束后,相关的重要信息会被保存下来,供下次会话时参考。
|
||||
|
||||
**第三层:长期记忆(Long-term Memory)**。经过提炼的重要信息会被存储在长期记忆中,包括用户的偏好、习惯、重要事件等。
|
||||
|
||||
**第四层:向量记忆(Vector Memory)**。为了支持语义检索,OpenClaw将重要文档和对话转换为向量存储,支持相似性搜索。
|
||||
|
||||
这种多层记忆架构使得OpenClaw能够“记住”用户的偏好、之前讨论过的项目、常用的工作流程等,从而提供更加个性化和连贯的服务。
|
||||
|
||||
---
|
||||
|
||||
## 三、技术原理深度解析
|
||||
|
||||
### 3.1 消息处理流程
|
||||
|
||||
一条消息在OpenClaw中的完整执行路径遵循“消息源→协议适配→路由分发→会话构建→Agent执行→响应投递→状态持久化”的清晰流程。这一流程的每一步都经过精心设计,确保系统的稳定性和可靠性。
|
||||
|
||||
**协议适配阶段**:OpenClaw支持多种消息协议,包括WhatsApp、Telegram、Slack、飞书、微信等。协议适配器将这些异构平台的消息清洗为标准的`MsgContext`对象,隔离平台差异,提供统一的消息处理接口。
|
||||
|
||||
**路由分发阶段**:消息经过`dispatchInboundMessage`统一入口,进行多重处理。首先是去重处理,基于`idempotencyKey`(默认TTL 20分钟)避免重复处理。然后是拦截器处理,执行安全检查、权限验证等。最后是控制命令处理,处理系统级别的指令。
|
||||
|
||||
**Agent执行阶段**:这是消息处理的核心。Agent会分析用户意图,分解任务,选择合适的Skills执行,处理执行过程中的各种情况,最后生成响应。
|
||||
|
||||
**响应投递阶段**:Agent的响应通过Gateway发送回原始消息渠道。根据用户配置,响应可能是即时推送,也可能累积后批量发送。
|
||||
|
||||
**状态持久化阶段**:执行完成后,相关状态会被持久化,包括会话状态、记忆更新、执行日志等。
|
||||
|
||||
### 3.2 路由与会话隔离
|
||||
|
||||
OpenClaw的路由系统设计精妙,能够根据通道类型决定消息由哪个Agent处理。对于Web内部通道,可以直接指定`sessionKey`(格式如`web:uuid`);对于外部通道,则需要基于通道的会话标识来实现。
|
||||
|
||||
会话隔离是OpenClaw的另一个重要特性。每个会话都有独立的上下文,确保不同会话之间的信息不会混淆。这一设计支持两种典型的使用场景:
|
||||
|
||||
**主会话(Main Session)**:用户与AI的一对一对话,可以共享完整的上下文和记忆。
|
||||
|
||||
**共享上下文(Shared Context)**:在群聊或多用户环境中,AI可以参与但不会泄露私密信息给其他人。
|
||||
|
||||
会话隔离通过以下机制实现:每个会话拥有独立的内存空间、会话历史、状态变量;跨会话的信息共享需要显式配置;敏感信息默认不跨会话传播。
|
||||
|
||||
### 3.3 多Agent协作
|
||||
|
||||
OpenClaw支持多Agent协作,这是一个强大的特性,允许用户创建多个专业化的Agent,协同完成复杂任务。
|
||||
|
||||
多Agent系统的常见架构模式包括:
|
||||
|
||||
**Supervisor模式**:中央调度器分配任务给Worker Agents,适合任务明确、流程固定的场景。
|
||||
|
||||
**Peer-to-peer模式**:Agent之间平等协作,通过消息传递协调工作,适合去中心化的场景。
|
||||
|
||||
**Hierarchical模式**:多层级的Supervisor树,适合大规模、复杂分工的场景。
|
||||
|
||||
**Swarm模式**:动态组队,按需加入和退出,适合需要灵活调度的场景。
|
||||
|
||||
在OpenClaw中,bindings配置定义了入站消息的路由规则——匹配条件(channel、account、peer等)映射到agentId。用户可以使用`openclaw agents add`创建新Agent,使用`openclaw agents list --bindings`查看路由表。
|
||||
|
||||
### 3.4 工具调用机制
|
||||
|
||||
OpenClaw的工具调用机制是其执行能力的核心。与传统的Function Calling不同,OpenClaw的工具调用更加灵活和强大。
|
||||
|
||||
**动态工具发现**:Agent可以在执行过程中根据需要动态发现和调用工具,而非预先定义好所有可能用到的工具。
|
||||
|
||||
**工具链编排**:多个工具可以串联使用,形成工具链。例如:搜索文件 → 读取内容 → 分析处理 → 写入结果。
|
||||
|
||||
**错误恢复**:工具执行失败时,Agent可以自动尝试替代方案或进行错误恢复。
|
||||
|
||||
**状态管理**:工具调用过程中的状态会被完整记录,支持回溯和调试。
|
||||
|
||||
---
|
||||
|
||||
## 四、应用场景与实践
|
||||
|
||||
### 4.1 邮件与日历管理
|
||||
|
||||
这是OpenClaw最受欢迎的应用场景之一。通过配置Gmail API或其他邮件服务,OpenClaw可以:
|
||||
|
||||
- 自动检查邮箱,识别重要邮件并摘要
|
||||
- 根据用户指令发送邮件
|
||||
- 管理日历事件,创建、修改、删除日程
|
||||
- 会议前提醒,准备会议资料
|
||||
- 自动归类和归档邮件
|
||||
|
||||
用户可以使用Himalaya等邮件客户端与OpenClaw集成,实现更加定制化的邮件管理体验。
|
||||
|
||||
### 4.2 个人助理与日常事务
|
||||
|
||||
OpenClaw可以作为全能的个人助理,处理各种日常事务:
|
||||
|
||||
- **信息查询**:天气、新闻、股票、交通等实时信息
|
||||
- **日程管理**:创建提醒、管理待办事项
|
||||
- **文件处理**:整理文件、批量重命名、归档
|
||||
- **数据整理**:表格处理、数据清洗、格式转换
|
||||
|
||||
### 4.3 开发工作辅助
|
||||
|
||||
对于开发者来说,OpenClaw是强大的编程助手:
|
||||
|
||||
- **代码编写**:根据描述生成代码、修复bug
|
||||
- **版本控制**:执行Git操作、代码审查
|
||||
- **文档生成**:自动生成API文档、注释
|
||||
- **测试辅助**:编写测试用例、分析测试覆盖率
|
||||
- **项目维护**:依赖更新、安全扫描
|
||||
|
||||
### 4.4 自动化工作流
|
||||
|
||||
OpenClaw支持创建复杂的自动化工作流:
|
||||
|
||||
- **定时任务**:使用Cron配置定时执行的任务
|
||||
- **条件触发**:根据特定条件自动执行相应操作
|
||||
- **多步骤流程**:编排一系列操作形成完整流程
|
||||
- **跨系统集成**:连接多个系统,实现数据流转
|
||||
|
||||
### 4.5 研究与学术应用
|
||||
|
||||
作为学生用户,LHY可以将OpenClaw应用于学术研究:
|
||||
|
||||
- **文献综述**:搜索相关论文、总结要点
|
||||
- **数据收集**:批量获取网络数据
|
||||
- **实验自动化**:运行实验脚本、整理结果
|
||||
- **论文写作**:协助撰写、检查格式
|
||||
|
||||
---
|
||||
|
||||
## 五、安全考量
|
||||
|
||||
### 5.1 权限与隐私
|
||||
|
||||
OpenClaw拥有较高的系统权限,可以访问文件、执行命令、管理邮件等敏感操作。因此,使用时需要注意:
|
||||
|
||||
**最小权限原则**:只授予完成任务所需的最小权限。
|
||||
|
||||
**数据隔离**:敏感信息应该与OpenClaw的工作目录隔离。
|
||||
|
||||
**访问审计**:定期检查OpenClaw的操作日志,确保无异常行为。
|
||||
|
||||
**本地优先**:尽量使用本地部署而非云端服务,保护数据隐私。
|
||||
|
||||
### 5.2 安全事件回顾
|
||||
|
||||
2026年2月,Cisco的AI安全研究团队测试了一个第三方OpenClaw技能,发现该技能在用户不知情的情况下执行了数据外传和提示注入攻击。这一事件提醒我们:
|
||||
|
||||
**技能来源需谨慎**:只安装来自可信来源的Skills。
|
||||
|
||||
**权限审查**:安装新Skill时仔细审查其请求的权限。
|
||||
|
||||
**持续监控**:关注社区的安全公告,及时更新。
|
||||
|
||||
### 5.3 安全最佳实践
|
||||
|
||||
为了安全使用OpenClaw,建议遵循以下实践:
|
||||
|
||||
1. **定期更新**:保持OpenClaw和Skills到最新版本
|
||||
2. **网络隔离**:在安全的网络环境中运行
|
||||
3. **日志监控**:定期检查操作日志
|
||||
4. **备份重要数据**:防止误操作导致数据丢失
|
||||
5. **了解边界**:明确哪些操作不应该交给OpenClaw
|
||||
|
||||
---
|
||||
|
||||
## 六、社区与生态
|
||||
|
||||
### 6.1 开发者社区
|
||||
|
||||
OpenClaw拥有一个活跃的开发者社区。截至2026年2月,社区已有:
|
||||
|
||||
- **378位贡献者**:来自全球的开发者为项目贡献代码
|
||||
- **8900+开发者**:围绕OpenClaw构建应用和技能
|
||||
- **GitHub 160K+ stars**:表明项目的高度受欢迎
|
||||
|
||||
社区通过GitHub Issues、Discord讨论区、Telegram群组等方式交流。用户可以在这些平台获取帮助、分享经验、贡献代码。
|
||||
|
||||
### 6.2 技能市场
|
||||
|
||||
OpenClaw的Skills生态是其核心优势之一。社区已经开发了大量实用的Skills:
|
||||
|
||||
- ** productivity** 系列:邮件、日历、任务管理
|
||||
- ** development** 系列:代码开发、调试、部署
|
||||
- ** research** 系列:学术搜索、数据收集
|
||||
- ** automation** 系列:工作流自动化
|
||||
|
||||
用户可以根据需求选择安装,也可以自己开发新的Skill贡献给社区。
|
||||
|
||||
### 6.3 官方资源
|
||||
|
||||
OpenClaw提供了丰富的官方资源帮助用户入门:
|
||||
|
||||
- **官方文档**:详细的安装、配置、使用指南
|
||||
- **示例项目**:展示各种应用场景的实现
|
||||
- **视频教程**:直观的操作演示
|
||||
- **博客文章**:深度技术解析和应用分享
|
||||
|
||||
---
|
||||
|
||||
## 七、优势与局限
|
||||
|
||||
### 7.1 主要优势
|
||||
|
||||
OpenClaw相比其他AI Agent框架具有以下优势:
|
||||
|
||||
**本地部署**:数据保留在本地,隐私可控,不依赖云端服务。
|
||||
|
||||
**持续运行**:7×24小时待命,随时响应任务。
|
||||
|
||||
**长期记忆**:记住用户偏好,提供个性化服务。
|
||||
|
||||
**高度可扩展**:通过Skills系统灵活扩展功能。
|
||||
|
||||
**多平台支持**:支持各种通讯平台,方便集成到现有工作流。
|
||||
|
||||
**开源透明**:代码公开,用户可以审查和定制。
|
||||
|
||||
### 7.2 当前局限
|
||||
|
||||
与此同时,OpenClaw也存在一些局限性:
|
||||
|
||||
**配置复杂度**:对普通用户来说,初始配置仍有一定门槛。
|
||||
|
||||
**技能质量不一**:第三方Skills的质量参差不齐,需要用户自行判断。
|
||||
|
||||
**安全风险**:高权限意味着高风险,需要用户具备安全意识。
|
||||
|
||||
**平台限制**:部分平台(如微信)支持有限。
|
||||
|
||||
**性能依赖**:任务执行速度依赖于API响应时间和本地硬件。
|
||||
|
||||
### 7.3 未来展望
|
||||
|
||||
展望未来,OpenClaw的发展方向可能包括:
|
||||
|
||||
- 更智能的Agent决策机制
|
||||
- 更丰富的本地模型支持
|
||||
- 更完善的安全机制
|
||||
- 更丰富的技能市场
|
||||
- 更好的多语言支持
|
||||
|
||||
---
|
||||
|
||||
## 八、总结
|
||||
|
||||
OpenClaw代表了AI Agent领域的重要进展。它不仅仅是一个工具,而是一个完整的个人AI基础设施。通过将大模型的智能与本地执行能力结合,OpenClaw实现了从“回答问题”到“解决问题”的跨越。
|
||||
|
||||
对于像LHY这样的学生用户来说,OpenClaw可以作为强大的学习和工作助手。无论是学术研究、代码开发,还是日常事务管理,OpenClaw都能提供有力的支持。同时,通过深入了解其架构和原理,也能学习到现代AI系统的设计思路,为未来的职业发展积累宝贵经验。
|
||||
|
||||
当然,使用OpenClaw也需要注意安全边界,了解其局限性,合理地将其融入到工作学习中。随着技术的不断进步和社区的持续发展,OpenClaw将会变得更加强大和易用,为更多用户带来AI时代的生产力提升。
|
||||
|
||||
---
|
||||
|
||||
*本文档基于截至2026年3月的公开信息编写,部分内容可能随项目发展而变化。*
|
||||
Reference in New Issue
Block a user