构建拥有长期记忆与审批流程的QQ群AI智能体:OpenClaw NapCat插件实践

news2026/5/7 16:06:34
1. 项目概述为QQ群聊注入一个“独立人格”如果你玩过AI聊天机器人大概率体验过那种“一问一答”的模式你发一条消息它基于一个固定的提示词prompt生成回复对话结束上下文清空。下次再聊它可能已经忘了你是谁。这种模式在QQ群聊里尤其尴尬——群聊是连续的、有历史的、有关系的一个健忘的机器人就像一个永远记不住同事名字的实习生很难真正融入社群。OpenClaw NapCat QQ插件要解决的正是这个核心痛点。它的目标不是简单地给QQ接一个聊天接口而是构建一个长期运行、拥有独立人格、能沉淀记忆、并受控于审批流程的智能体Agent运行时环境。简单说它想让你的QQ群里住进一个“数字居民”这个居民有自己稳定的性格persona-core有独特的说话方式voice-organ能记住群里发生的重要事情并且在执行敏感操作前会像一个负责任的成员一样先向“群主”或“管理员”请示。这个插件基于NapCat一个实现OneBot v11协议的QQ机器人框架和OpenClaw一个新兴的、以运行时和工具执行为核心的AI智能体平台构建。它充当了两者之间的“世界适配层”将QQ群聊这个嘈杂、非结构化的社交环境映射到OpenClaw严谨、可审计的运行时中。对于开发者或高级用户而言这意味着你可以用一套代码和配置管理一个在QQ群里拥有“长期记忆”和“行为准则”的AI助手其复杂度和可控性远超传统的“关键词回复”或“大语言模型API调用”机器人。2. 核心架构设计三层分离与记忆闭环要理解这个插件的价值必须深入其架构设计。它没有采用常见的“一个模型包打天下”的简易架构而是清晰地划分了责任边界形成了决策、表达、记忆三层分离的稳定结构。2.1 核心组件persona-core与voice-organ这是整个系统的“大脑”和“嘴巴”职责分离是安全与稳定的基石。persona-core人格核心这是群聊的“主脑”。它的职责是决定是否回应以及回应的核心意图。它拥有对群聊上下文的理解能力可以调用工具如搜索、读写文件、执行命令等并决定何时触发需要管理员审批的高风险操作如exec执行系统命令。persona-core是长期记忆的主要载体它通过reflection反思和daily memory每日记忆机制缓慢地将群聊中的真实互动吸收、内化为自己人格的一部分。你可以把它想象成一个团队的“策略分析师”负责思考、规划和决策。voice-organ表达器官这是群聊的“发言人”。它的唯一职责是将persona-core生成的“核心意图”改写得更自然、更符合语境、更像真人聊天。例如persona-core可能输出“建议用户检查系统日志”而voice-organ会将其转化为“哥们你这报错有点眼熟啊要不先tail -f /var/log/app.log看看最近有啥幺蛾子”。关键限制是voice-organ不允许新增事实、调用工具或访问系统。它只是一个风格转换器确保输出既准确又亲切。这就像团队里的“公关专员”负责把专业的内部决策翻译成对外沟通的友好语言。实操心得这种分离带来了巨大的灵活性。你可以为persona-core配置一个能力强但速度慢、成本高的模型如GPT-4专注于复杂的思考和决策而为voice-organ配置一个轻量、快速、便宜的模型如DeepSeek-V3专门负责润色文本。这样既保证了回复质量又控制了响应延迟和API成本。2.2 三层记忆体系从瞬时对话到长期人格记忆是形成“人格”的关键。插件设计了一个精巧的三层记忆系统确保信息流动有序避免记忆污染或人格漂移。Canonical Ledger标准账本由插件自身维护存储在本地SQLite数据库中。它记录的是客观发生的“世界事实”包括原始群消息谁、何时、说了什么。机器人最终发出的消息。消息间的回复锚点reply anchor。用户与机器人的交互状态如是否正在等待审批结果。图片的文本摘要如果启用了多模态理解。 这个账本是只追加、不修改的它是对聊天历史最原始、最可靠的记录相当于系统的“事实数据库”。Agent Session智能体会话由OpenClaw运行时维护。它保存的是persona-core在最近几轮对话中的内部思考过程包括对用户意图的理解、工具调用的尝试、系统事件等。这部分记忆是短暂的、上下文相关的主要服务于当前的连续对话对话窗口滑动后就会被遗忘或压缩。这相当于智能体的“工作记忆”。Reflection / Daily Memory反思与每日记忆这是连接“客观事实”与“主观人格”的桥梁。插件会定期或由管理员手动将Canonical Ledger中的聊天样本整理成结构化的反思材料喂给persona-core。persona-core会像写日记一样将这些外部事件吸收、总结并选择性地写入自己的长期记忆文件如memory/YYYY-MM-DD.md或SOUL.md。这个过程是缓慢、有选择的确保了人格的稳定演进而不是被单次对话带偏。2.3 控制面与审批闭环安全护栏任何拥有exec等工具执行能力的系统都必须有坚实的安全护栏。插件将OpenClaw原生的审批机制与QQ的管理员私聊无缝桥接。审批触发当persona-core在群聊中决定执行一个需要审批的工具如exec时插件会拦截这个请求。审批流转请求通过OpenClaw的审批系统发送到预先配置的管理员QQ私聊中。机器人在群里会发送一条“等待管理员审批”的提示。管理员决策管理员在私聊中收到格式化的审批请求看清命令和意图后使用/approve [id]或/deny [id]命令进行决策。结果回传审批结果通过或拒绝会先进入一个持久化的followup job队列。插件会尝试将这个结果重新交由persona-core和voice-organ处理生成符合上下文的自然语言回复再发送回原群聊并确保结果去重避免重复发送。这套流程保证了高风险操作的最终决定权始终在人类管理员手中同时保持了群聊体验的连贯性。3. 从零开始部署完整环境搭建指南理论清晰后我们来一步步实现它。假设你从零开始目标是部署一个拥有独立人格的QQ群聊机器人。3.1 环境准备与前置条件在安装插件之前你需要确保以下基础组件就绪可运行的OpenClaw环境你需要已经安装并配置好OpenClaw。建议使用其Gateway模式这是运行插件的推荐方式。Node.js环境确保系统已安装Node.js版本需 22。这是编译和运行插件的基础。NapCat QQ机器人你需要一个已经登录QQ账号、并能正常收发消息的NapCat实例。NapCat提供了OneBot v11协议的WebSocket服务是本插件与QQ通信的桥梁。管理员QQ号准备一个你完全控制的QQ号将其配置为管理员。所有审批消息和控制命令都将发送到这个QQ的私聊中。三个OpenClaw Agent这是架构的核心。你需要预先创建好三个Agent目录和对应的Workspace工作空间main: 默认Agent用于处理可信的私聊如管理员命令、控制面逻辑和日常维护任务。persona-core: 人格核心Agent拥有读写、执行等工具权限是群聊的决策大脑。voice-organ: 表达器官Agent必须严格限制工具权限仅用于文本润色。一个推荐的目录结构如下~/.openclaw/ ├── agents/ │ ├── main/ # main agent目录 │ ├── persona-core/ # 人格核心agent目录 │ └── voice-organ/ # 表达器官agent目录 ├── workspace/ # main agent的工作空间 ├── workspace-persona-core/ # persona-core的工作空间 ├── workspace-voice-organ/ # voice-organ的工作空间 └── extensions/ # 插件安装目录 └── napcat-qq/ # 本插件3.2 配置NapCat WebSocket服务NapCat是本插件与QQ服务器通信的客户端。你需要确保NapCat的OneBot v11 WebSocket服务已正确开启并配置。启动NapCat并登录QQ按照NapCat官方文档完成账号登录。配置WebSocket在NapCat的配置文件中找到OneBot v11 WebSocket相关设置。关键配置项如下host:强烈建议设置为127.0.0.1仅监听本机避免暴露到公网。port: 设置一个端口例如3001。access_token:务必设置一个强密码。这是连接NapCat服务的令牌防止未授权访问。path: WebSocket路径通常为/。安全警告绝对不要将NapCat的WebSocket服务端口直接暴露在公网IP上。一旦暴露任何知道地址的人都可以向你的QQ账号发送消息或执行操作风险极高。如果OpenClaw和NapCat不在同一台机器应通过安全的内部网络、VPN如WireGuard、或零信任网络如Tailscale进行连接并在NapCat所在机器设置严格的防火墙规则。3.3 安装与构建插件插件通过Git仓库分发需要手动克隆并构建。# 1. 进入OpenClaw的扩展目录 mkdir -p ~/.openclaw/extensions cd ~/.openclaw/extensions # 2. 克隆插件仓库 git clone https://github.com/saymyzj/openclaw-NapCatQQ napcat-qq cd napcat-qq # 3. 安装依赖并构建 npm install npm run build # 构建成功后会在目录下生成 dist/ 等输出文件3.4 在OpenClaw中安装并配置插件接下来需要让OpenClaw加载这个插件。推荐使用OpenClaw的原生命令进行安装它会自动处理配置文件的更新。# 在OpenClaw的安装目录或任意位置执行 openclaw plugins install -l ~/.openclaw/extensions/napcat-qq这条命令会将插件路径写入你的OpenClaw主配置文件通常是~/.openclaw/openclaw.json并添加必要的配置段。安装后你需要精心编辑openclaw.json将各个部分串联起来。下面是一份详细的、带注释的配置示例涵盖了连接、Agent绑定、人格链、审批和安全设置。{ // 1. 定义三个核心Agent agents: { list: [ { id: main, default: true, // 默认Agent处理未匹配的请求 workspace: /绝对路径/.openclaw/workspace, agentDir: /绝对路径/.openclaw/agents/main/agent, model: openai/gpt-4o // 根据实际情况替换模型 }, { id: persona-core, workspace: /绝对路径/.openclaw/workspace-persona-core, agentDir: /绝对路径/.openclaw/agents/persona-core/agent, model: openai/gpt-4o, tools: { allow: [ // 授予人格核心必要的工具权限 read, write, edit, apply_patch, exec, // 高风险工具必须配合审批使用 web_fetch, memory_search, memory_get ], exec: { // 配置exec工具的审批策略 host: gateway, security: allowlist, ask: on-miss // 始终询问走审批流程 } } }, { id: voice-organ, workspace: /绝对路径/.openclaw/workspace-voice-organ, agentDir: /绝对路径/.openclaw/agents/voice-organ/agent, model: deepseek/deepseek-chat, // 使用一个轻量、快速的模型 tools: { allow: [], // 关键不授予任何工具权限 deny: [ // 显式拒绝所有工具组确保安全 exec, read, write, edit, apply_patch, web_search, web_fetch, memory_search, memory_get, group:runtime, group:fs, group:ui, group:messaging, gateway, nodes, cron, browser ] } } ] }, // 2. 绑定规则将管理员私聊路由给main agent bindings: [ { agentId: main, match: { channel: napcat, peer: { kind: direct, // 私聊 id: user:你的管理员QQ号 // 替换为实际QQ号 } } } ], // 3. 全局审批配置将exec审批发送到指定目标 approvals: { exec: { enabled: true, mode: targets, agentFilter: [persona-core], // 仅对persona-core的exec进行审批 targets: [ { channel: napcat, to: napcat:你的管理员QQ号 // 审批消息发送的目标 } ] } }, // 4. 通道配置NapCat QQ插件的核心配置 channels: { napcat: { // 基础连接配置必须与NapCat设置一致 host: 127.0.0.1, port: 3001, accessToken: 你的NapCat访问令牌, // 务必填写 path: /, // 群聊监控配置 monitorGroups: [123456789], // 需要机器人“常驻”的群号列表 autoIntervene: true, // 是否在这些群启用自动巡检 autoCheckIntervalMs: 30000, // 巡检间隔30秒 autoCheckMessageThreshold: 10, // 累积10条消息后触发巡检 requireMention: false, // 是否必须才回复。false时自动巡检可主动发言 historyLimit: 100, // 插件保留的上下文消息条数 rateLimitMs: 1000, // 消息发送间隔防QQ风控 // 输出处理 renderMarkdownToPlain: true, // 将Markdown转为纯文本适配QQ // 多模态图片支持 multimodalImagesEnabled: true, multimodalImageMaxCount: 3, // 安全与管理 whitelistUserIds: [你的管理员QQ号], // 允许私聊的用户白名单 admins: [你的管理员QQ号], // 管理员列表用于接收审批和控制命令 // 人格链配置 persona: { enabled: true, coreAgentId: persona-core, voiceAgentId: voice-organ, voiceOnGroupOnly: true // 仅群聊使用voice-organ润色 }, // 自动维护任务 maintenance: { enabled: true, reflectionEnabled: true, reflectionIntervalMs: 43200000, // 每12小时执行一次反思 reflectionBatchSize: 5, // 每次处理5条样本 dailyMemoryEnabled: true, dailyMemoryIntervalMs: 14400000, // 每4小时沉淀一次每日记忆 dailyMemoryBatchSize: 2 }, // 禁用命令式输入防止用户误触发 disableCommandsForAgents: [persona-core, voice-organ] } } }3.5 启动与验证完成配置后重启OpenClaw Gateway服务。# 根据你的OpenClaw安装方式可能是 openclaw gateway # 或 systemctl restart openclaw-gateway查看日志如果看到类似[plugins] [napcat] plugin loaded的信息说明插件加载成功。同时NapCat的日志应该显示WebSocket连接已建立。现在你可以在配置的QQ群中机器人进行测试。如果一切正常persona-core会思考并生成回复意图voice-organ会将其润色后发送到群里。4. 高级功能与日常运维详解部署只是开始要让这个“数字居民”良好运行需要理解其高级功能并掌握运维技巧。4.1 自动巡检让机器人“主动参与”聊天除了被后回复机器人还可以在特定的“白名单群”monitorGroups中主动参与聊天这通过“自动巡检”实现。工作原理插件会为每个白名单群维护一个消息计数器和一个计时器。消息阈值触发当群内累积的新消息数达到autoCheckMessageThreshold如10条时无论是否机器人插件都会将最近的聊天上下文提交给persona-core进行评估。时间间隔触发每隔autoCheckIntervalMs如30秒插件也会进行一次评估。人格体决策persona-core收到上下文后会判断当前对话是否值得介入。例如它可能被设计为在讨论技术问题、需要帮助或出现争议时发言。如果它决定发言流程就和被时一样。配置建议谨慎选择群组只将真正需要机器人参与的、氛围友好的群加入monitorGroups。避免在大型、水群或话题敏感的群中开启以免造成骚扰。调整阈值根据群活跃度调整autoCheckMessageThreshold和autoCheckIntervalMs。活跃群可以调高阈值或调长时间间隔减少不必要的介入。设计人格策略在persona-core的提示词SOUL.md或directives中明确其“主动介入”的准则例如“仅在话题明确转向技术问题且超过5条消息无人解答时你才可以主动提供帮助。”4.2 记忆沉淀从聊天记录到人格成长记忆系统是人格体的核心。插件提供了自动和手动两种方式来沉淀记忆。自动反思后台维护心跳会定期reflectionIntervalMs从canonical ledger中取出一定数量reflectionBatchSize尚未处理的聊天样本将其整理成反思提示交给persona-core处理。persona-core会分析这些对话提炼出关键信息、学习到的知识或需要修正的行为并可能将其写入自己的长期记忆文件。这个过程是人格“自主学习”的主要方式。每日记忆另一个后台任务会按日期和群组将聊天记录摘要写入workspace-persona-core/memory/YYYY-MM-DD.md文件中。这为persona-core提供了一个按时间线组织的、可搜索的外部记忆库。在未来的对话中persona-core可以通过memory_search工具查询这些文件实现更长期的上下文关联。手动触发管理员可以通过私聊发送命令手动触发这些过程/reflect 123456789 10手动触发对群123456789最近10条消息的反思。这常用于在群聊发生重要事件后立即让人格体进行学习或者用于调试记忆系统的效果。4.3 多模态支持处理图片消息QQ群聊中图片是重要信息载体。插件通过以下流程支持图片理解图片获取当收到群图片消息时插件通过NapCat API获取图片数据。摘要生成如果启用了multimodalImagesEnabled插件会将图片最多multimodalImageMaxCount张连同聊天文本一起发送给支持视觉的大语言模型需要在persona-core的模型配置中启用。上下文关联生成的图片摘要会作为文本上下文的一部分提供给persona-core进行决策。例如用户发了一张错误截图并问“这是什么问题”persona-core就能基于图片摘要来回答。缓存与复用插件会为图片生成一个稳定的标识符并缓存其摘要。如果同一张图片在后续对话中被再次引用例如追问图片细节插件可以复用之前的摘要避免重复调用昂贵的视觉模型也保持了会话的连贯性。注意事项图片处理会显著增加API调用成本和响应延迟。请根据实际需要和预算决定是否开启。同时大量图片缓存会占用本地磁盘空间需定期清理或设置缓存过期策略如果插件未来支持。4.4 审批与异步跟进流程全解析审批流程是安全核心其完整链路如下触发在群聊中persona-core决定执行一个需要审批的命令例如exec: {“command”: “rm -rf /tmp/test”}。拦截与提示插件拦截该请求并向该群发送一条消息“[等待管理员审批中]已提交删除操作请求。”审批请求发送同时该请求通过OpenClaw审批系统发送到配置的管理员QQ私聊。消息格式清晰包含唯一ID、命令详情、来源群和用户。管理员处理管理员在私聊中查看请求。务必仔细阅读命令内容判断其意图和风险。然后使用命令响应/approve [请求ID]批准执行。/deny [请求ID]拒绝执行。/approve [请求ID] --comment “先备份”批准并附加注释。异步结果处理审批决定包括可能的注释被放入一个持久化的followup job队列。插件会从队列中取出结果并尝试将其“翻译”回自然的群聊回复。若批准插件可能将“命令执行成功输出为xxx”这样的结果重新交给persona-core和voice-organ处理生成如“搞定啦那个临时文件已经删掉了系统说一切正常。”的回复发回群里。若拒绝则生成如“管理员觉得这个操作有点危险咱们还是先别动它了。”的回复。去重机制插件会确保同一审批结果只被发送一次到群里即使后台有重试机制也不会造成刷屏。5. 安全配置、问题排查与优化建议运行一个拥有系统工具权限的AI机器人安全是重中之重。同时在实际使用中也会遇到各种问题。5.1 安全配置清单请逐项核对以下安全设置确保你的系统风险可控风险点检查项推荐配置/操作网络暴露NapCat WebSocket是否监听公网IPhost必须为127.0.0.1。跨机器使用内网/VPN。认证缺失NapCat的access_token是否为空或过于简单必须设置强密码并在插件配置中填写accessToken。工具权限过宽voice-organ是否拥有任何工具权限voice-organ的tools.allow必须为空tools.deny应包含所有工具组。审批目标错误审批消息是否发给了正确的、可控的管理员核对approvals.exec.targets中的QQ号是否为你的管理员号。私聊无限制是否任何陌生人都可以私聊机器人通过whitelistUserIds限制可私聊的用户通常只加管理员。命令注入普通用户能否在群里触发OpenClaw命令disableCommandsForAgents必须包含persona-core和voice-organ。数据泄露数据库和日志文件是否未加密对运行机器的用户目录进行加密。定期审查和清理SQLite数据库及日志。人格污染是否允许单次对话直接修改SOUL.md禁止persona-core拥有直接写SOUL.md的权限。人格更新只通过reflection缓慢进行。5.2 常见问题与排查技巧在实际部署和运行中你可能会遇到以下问题问题1插件加载失败日志中无[plugins] [napcat] plugin loaded。排查检查插件安装命令是否成功执行openclaw.json中plugins.entries是否包含napcat-qq。检查插件路径是否正确node_modules是否已安装在插件目录运行npm list。查看OpenClaw启动日志更详细的错误信息可能是依赖缺失或版本不兼容。问题2NapCat连接失败提示WebSocket错误。排查确认NapCat的OneBot v11 WebSocket服务已启动检查NapCat日志。核对插件配置中的host、port、path、accessToken是否与NapCat配置完全一致注意大小写和空格。使用curl或websocat工具测试NapCat的WebSocket端点是否可连通websocat ws://127.0.0.1:3001/ -H Authorization: Bearer your_token。问题3在群里机器人无反应。排查检查OpenClaw日志看是否收到了NapCat转发的事件。关键词搜索napcat。确认机器人的QQ号已正确登录NapCat并且在群内未被禁言。检查persona-core的模型配置是否正确其API密钥是否有效。可以尝试在OpenClaw的REPL中手动用persona-core执行一个简单对话测试其本身是否工作。检查bindings配置确保群消息没有被错误地路由到其他Agent。问题4机器人回复了但内容未经voice-organ润色显得很生硬。排查检查channels.napcat.persona.enabled是否为true。检查persona.voiceAgentId配置的Agent默认voice-organ是否存在且配置正确。查看voice-organ的日志或OpenClaw的会话记录确认它是否被调用。可能voice-organ的模型调用失败导致插件回退到直接使用persona-core的输出。确认voice-organ的模型是否有文本生成能力。问题5审批流程不工作exec命令被直接执行或完全忽略。排查首先确认persona-core的tools.exec配置中ask设置为on-miss或always。检查全局approvals.exec.enabled是否为true并且agentFilter包含了persona-core。检查approvals.exec.targets中的channel和to地址是否正确。to的格式应为napcat:QQ号。查看管理员QQ是否收到了审批请求消息。如果没有检查OpenClaw的审批日志。如果收到了但回复命令无效确认私聊消息是否被正确路由到mainagent并且mainagent能够处理/approve命令。问题6数据库文件group_chat.sqlite不断增大。处理这是正常现象插件会保存所有历史消息、图片摘要、任务队列等。你可以定期如每月备份后清空或归档旧数据。注意清空数据会丢失聊天历史和缓存可能影响图片追问等功能。编写一个简单的维护脚本定期删除超过一定时间的followup_jobs或message_cache表中的记录。关注插件更新未来版本可能会增加数据自动清理或分区功能。5.3 性能与成本优化建议模型选型persona-core选择能力强、上下文长的模型如GPT-4、Claude-3因为它负责核心思考。voice-organ选择速度快、成本低的模型如DeepSeek-V3、GLM-4-Flash因为它只做文本风格转换。上下文管理调整historyLimit避免保留过多的历史消息导致每次请求的令牌数tokens激增。对于活跃群50-100条通常足够。在persona-core的Agent配置中也可以设置其自身的上下文窗口限制。频率限制合理设置rateLimitMs建议1000-2000ms避免消息发送过快被QQ平台风控。利用autoCheckMessageThreshold和autoCheckIntervalMs控制自动巡检的频率避免过度活跃。缓存利用图片摘要缓存能有效节省视觉模型调用。确保multimodalImagesEnabled开启。OpenClaw运行时本身也有会话缓存机制合理配置可以提升重复问题的响应速度。部署并调优好这个系统后你将拥有一个不再是简单应答机器而是能够逐渐熟悉社群文化、在必要时提供有深度协助、且所有危险操作都受你监管的“数字社群成员”。这标志着聊天机器人从“功能”走向了“存在”其维护的复杂性和带来的价值都提升到了一个全新的层次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2591962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…