组建龙虾团队——OpenClaw多机器人构建

组建龙虾团队——OpenClaw多机器人构建

成功搭建了OpenClaw,也成功建立的自己的每日服务,这时候发现,似乎不太敢在当前的机器人中让他做别的事情,生怕会话太多会让他出现遗忘。(尽管我们配置了QMD记忆增强,但毋庸置疑任何技术都是有上限的)。

换做同样的情况,比如在DeepSeek或者豆包之类的对话窗口,我们会习惯性地新建一个对话。那么我们是否可以新建一个机器人,或者多个机器人,让他们各司其职,各尽所能,形成一个相互配合的团队呢~开干吧,没什么不可能的!!

🦞新建一个机器人

来到飞书开发者后台,新创建一个应用,在这里我们以短视频剪辑脚本应用为例。

创建之后,由于我们的openclaw绑定的是之前的飞书渠道,并没有链接到这个应用的APP ID,所以暂时不做其他操作,只需要记录一下他的APP ID和APP Secret。

🦞配置OpenClaw

如果还是按照claw的命令行安装,每一步都有些让人担心害怕,毕竟我们先前已经配置过一次了,接下来的操作,需要小心是否会把以前的配置给覆盖掉。

为了避免这样的不确定性,我们直接去操作他的配置文件

在WSL2终端中进入openclaw目录

cd .openclaw/ 

别着急,首先我们先备份一份配置文件,避免一次失误导致全局崩盘

cp openclaw.json openclaw.json.backup

以任何你喜欢的方式打开openclaw.json,在这里以nano为例。

nano openclaw.json

找到关于Channels的版块

在这里,你的json构造和图中的构造多半是不一样的,因为再在此之前我已经创建了两个机器人,一个名为“claw_deepseek”,一个名为“咨询获取”(已经无所畏惧了直接上中文吧)

接下来我将完整的配置粘贴到下方,大家只需要根据自己应用的APP ID 和Secret进行填写就好。

"channels": { "feishu": { "enabled": true, "domain": "feishu", "groupPolicy": "allowlist", "accounts": { "main": { "appId": "【cli_ID1】", "appSecret": "【Secret1】", "botname": "【机器人名1】", }, "feishu-work":{ "appId": "【cli_ID2】", "appSecret": "【Secret2】", "botName": "【机器人名2】", } }, "dmPolicy": "pairing" } }, "bindings": [ { "agentId": "main", "match": { "channel": "feishu", "accountId": "main" } }, { "agentId": "work", "match": { "channel": "feishu", "accountId": "feishu-work【这个可以自己命名一下】" } } ],

保存之后回到终端,执行以下最简单的检查命令

openclaw-cn gateway

如果你的json有问题的话,就会出现报错,像这样

按照指引去看看哪里写错了。

如果没有问题的话,就会像这样,告诉我们网关已经在跑了。

🦞启动新员工

回到飞书后台,开启订阅方式为长连接

如果没有去配置openclaw就试图开启长连接的话,之类会提示【没有会话对象】之类的

接下来就比较熟悉, 订阅一个消息接收的事件,im.message.receive_v1

在这里我加了一个消息已读,没什么关系,后续我们都可以修改。根据引导开启机器人功能就好。

下一步就是要给他授予权限,除了下面批量导入的权限外,也可以把关于文档的权限尽可能给它开通,避免生成文档出现问题。

{ "scopes": { "tenant": [ "aily:file:read", "aily:file:write", "application:application.app_message_stats.overview:readonly", "application:application:self_manage", "application:bot.menu:write", "cardkit:card:write", "contact:contact.base:readonly", "contact:user.employee_id:readonly", "corehr:file:download", "docs:document.content:read", "event:ip_list", "im:chat", "im:chat.access_event.bot_p2p_chat:read", "im:chat.members:bot_access", "im:message", "im:message.group_at_msg:readonly", "im:message.group_msg", "im:message.p2p_msg:readonly", "im:message:readonly", "im:message:send_as_bot", "im:resource", "sheets:spreadsheet", "wiki:wiki:readonly" ], "user": ["aily:file:read", "aily:file:write", "im:chat.access_event.bot_p2p_chat:read"] } }

接下来就让我们发布一个版本,正式上线吧~

发布成功后,我们去飞书的消息栏看一下,【打开应用】

我们向新建的应用发送一句“你好”,有时候飞书回复会很慢,这个时候我们可以去claw的后台去看,访问你本机地址的18789端口(默认)。根据消息在命令行执行配对命令

当再次打招呼时,就会发现它可以正常的跟我们对话了。

🦞做个测试

首先我对他的身份进行了定义,他是专门用于输出短视频剪辑脚本的,我将另一个机器人生成的每日资讯作为输入,让其生成脚本文件,结果是比较惊讶的。

其不仅建立了独立的工作空间,而且创建了完整版和快速版两种,十分高效。

🦞总结

到现在为止我们成功创建了多个龙虾员工,下一步我们将探索如何将他们的工作关联起来,形成一个整体~加油~

Read more

Elasticsearch + Kibana 实战指南:从安装部署到 C++ 客户端封装,解锁搜索引擎开发核心技能

Elasticsearch + Kibana 实战指南:从安装部署到 C++ 客户端封装,解锁搜索引擎开发核心技能

文章目录 * 本篇摘要 * 一.ES 介绍及简单使用 * 1·介绍 * 2.安装过程 * 检测是否安转成功 * 对应配置文件修改 * 3.ES核心知识概念 * **1. 索引(Index-->库)** * **2. 文档(Document)** * **3. 字段(Field)** * **4. 类型(Type-->类似表)**(7.x后已废弃) * **5. 映射(Mapping)** * 4.kibana介绍 * **Kibana 是什么?** * **Kibana 和 Elasticsearch 的关系** * 5.安装Kibana过程 * 6.kibana-es使用 * 7.es-client使用及封装使用接口 * es接口 * 1.

By Ne0inhk
C++之基于正倒排索引的Boost搜索引擎项目日志+server代码及详解

C++之基于正倒排索引的Boost搜索引擎项目日志+server代码及详解

首先为了更好的查看自己的项目状况,日志是我们做项目可以说必须要写的一部分。而server部分我们可以理解为写了这么多的类就是为了在这里使用。 1. 日志 __FILE__和__LINE__是 C/C++ 编译器预定义的特殊宏: __FILE__: 它会被编译器自动替换为当前代码所在源文件的路径或文件名(字符串类型)。 在日志函数中,它的作用是记录 “这条日志是从哪个文件输出的”。 例如:如果在 test.cpp 中调用 LOG1 宏,__FILE__ 就会被替换为 "test.cpp"(具体可能包含路径,取决于编译器),最终日志中会显示 [test.cpp : ...]。 __LINE__: 它会被编译器自动替换为当前代码所在的行号(整数类型)。 在日志函数中,它的作用是记录 “这条日志是从文件的哪一行输出的”。 例如:如果 LOG1 宏调用写在 test.cpp 的第 25

By Ne0inhk
C++起始之路——模板进阶

C++起始之路——模板进阶

💁‍♂️个人主页:进击的荆棘 👇作者其它专栏: 《数据结构与算法》《算法》《C++起始之路》 目录 1.非类型模板参数 2.模板的特化 3.模板分离编译 4.模板总结 1.非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或typename之类的后面的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。 namespace Achieve{ //定义一个模板类型的静态数组 tempalte<class T,size_t N=10> class array{ public: T& operator[](size_t index)

By Ne0inhk
RPC魔法揭秘:从原理到BRPC实战,用C++玩转分布式通信

RPC魔法揭秘:从原理到BRPC实战,用C++玩转分布式通信

文章目录 * 本篇摘要 * 一.什么是rpc * 简单理解 * 核心特点 * RPC 工作原理 * 常见 RPC 框架 * 典型使用场景 * 二.BRPC介绍 * 是什么? * 比gRPC强在哪? * 三.基于brpc实现简单的服务调用 * brpc安装教程 * 简单实现客户端向brpc服务端口请求服务完成应答过程(以echo回显为例) * 测试效果 * 代码汇总 * 四.封装每个服务的channels及所有服务管理者 * 五.基于etcd实现服务上下线监控来完成brpc服务调用 * 测试效果 * 代码汇总 * 六.本篇小结 本篇摘要 本文从RPC核心概念出发,阐释其“透明远程调用”的本质与工作原理,对比主流框架后聚焦百度开源的C++高性能RPC框架BRPC,详解其安装、Echo服务示例代码(含客户端/服务端实现),并延伸介绍基于ETCD的服务注册发现与信道管理封装,完整呈现分布式通信方案落地过程。 一.什么是rpc 简单理解 RPC(远程过程调用)就是让程序调用

By Ne0inhk