兄弟们,说实话,现在玩Soul是不是感觉越来越累? 你主动找人聊吧,发十句“你好”,九句半都石沉大海。你不主动吧,又根本没人搭理你。 我琢磨了一下,这不就是个纯纯的“体力活儿”吗? 它就帮你干两件最累的活: 挂机“灵魂匹配”:你啥也不用管,它自己去点匹配。配上了,就把你想说的话(比如“你好啊,交个朋友?”)自动发出去。 扫荡“同城广场”:这个功能最牛逼。 而且算法是远程更新的,就算Soul改版了也不影响。 jrounlo+卫星号获取 不多说了,懂的都懂。把时间花在刀刃上,让工具帮你干杂活。
“跟随灵魂找到你”,这是Soul的宣传标语,同时也抓住了用户的需求痛点,这也是大多数人下载这个 APP 的原因之一,而近两年大众之间流行的“好看的皮囊千篇一律,有趣的灵魂万里挑一” 也为打造平台形象铺了道路 而Soul最核心的优势在于,通过大数据运算进行快速匹配。 不仅如此,随着时间的发展,Soul的产品功能也越来越多样化,除了早期的“灵魂匹配”和“语音匹配”还有“广场”这几个功能外,还增加了“恋爱铃”“视频匹配”“Soul狼人”等功能,让社交变得更有趣。 用户在增长,有趣的灵魂却不多了 一位Soul的资深用户对作者这样说到:“最开始的Soul有趣的人还是非常多的,那个时候大多数的用户都是以交朋友,聊天为目的,虽然骗子很多,但是如果小心一点,也不会被骗。 长期以往下去,对Soul这个品牌也会造成很大的影响。 而Soul如果想要增加用户粘性,首先要解决的就是对内容的优化,和匹配机制的完善。
&m; *p2=100; printf("%d\n",*p2);//加了const *p2这行代码报错 return 0; } 由此我们可以知道在 *号 左边加上const是限制解引用这个操作, 2,指针变量p被const修饰后要想改变n的值只能通过再创建一个指针变量来改变!3,指针变量被const修饰后,*p 是无论如何都不能使用了,即使是改变了p也依然不能解引用! 2,如何规避野指针 了解了野指针的成因后我们自然有办法去规避它。 1. 2,传址调用 还是上面的代码我们修改一下: #include<stdio.h> void swap2(int *pa,int *pb) { int z=0; z=*pa;//z=a *pa=*pb 加上const修饰 2.
但Soul最初的用户却喜欢上了这款灵魂交友的软件,哪怕bug不断,也没有抛弃Soul,没有转移到微信上。 张璐很吃惊。用户的执著让她决定辞职,专心来做这款软件。 02 灵魂的胜利 那时的Soul,与荷尔蒙无关。 和陌陌、探探根据附近人进行“约”的方式不同,soul是根据兴趣爱好推荐用户三观相合的人。 但真正让Soul火起来的,还是2018年6月更新的语音匹配功能。 当你使用语音时,系统会根据算法为你找到和你最匹配的对象,两人都匿名,可以聊4分钟。 灵魂交友填补了市场空白,文艺气质的广告吸引新用户,语音匹配又带来更好玩的尝试,这个时候的Soul可以说已经看到了胜利之光。 但是,怎么赚钱,才是验证一个产品能走多远的标准。 我为灵魂而来,你却把我卖了五先令? 还有许多人抱着好奇心来到了soul,经历灵魂测试不懈努力,约上了目标,一番深入交流后,往往留下这么一句: “加个微信?”
2、括弧匹配检验(check.cpp) 【问题描述】 假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[([ ][ ])]等为正确的匹配,[( ])或( [ ]( )或 ( ( ) ) )均为错误的匹配。 现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配? 输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”。 输入一个字符串:[([][])],输出:OK 【输入格式】 输入仅一行字符(字符个数小于255) 【输出格式】 匹配就输出 “OK” ,不匹配就输出“Wrong”。 【输入样例】check.in [(]) 【输出样例】check.out Wrong 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio
有时候,当需要有其他一些灵活性的时候,你可能会要求使用参数匹配(argument matchers)。 更多有关 自定义参数匹配器(custom argument matchers)的使用,请参考 ArgumentMatcher 类的 API 文档。 在使用复杂参数匹配器的时候需要谨慎。 尝试给一个干净并且简单的测试的时候,尽量选择自然的参数匹配使用的是 equals() 对比相对偶然使用 anyX() 来说。 ArgumentCaptor 是有关参数匹配器的是特殊实现,能够为后面的对比(assertions)捕获参数变量。 参数匹配器的写法 如果你现在正在使用参数匹配器,所有参数(all arguments)都必须由 matches 提供。 下面的示例代码显示校验,但是一些将会应用到打标中。
有时候,当需要有其他一些灵活性的时候,你可能会要求使用参数匹配(argument matchers)。 更多有关 自定义参数匹配器(custom argument matchers)的使用,请参考 ArgumentMatcher 类的 API 文档。 在使用复杂参数匹配器的时候需要谨慎。 尝试给一个干净并且简单的测试的时候,尽量选择自然的参数匹配使用的是 equals() 对比相对偶然使用 anyX() 来说。 ArgumentCaptor 是有关参数匹配器的是特殊实现,能够为后面的对比(assertions)捕获参数变量。 参数匹配器的写法 如果你现在正在使用参数匹配器,所有参数(all arguments)都必须由 matches 提供。 下面的示例代码显示校验,但是一些将会应用到打标中。
但一万个 human 会把同一份 SOUL.md 带向一万个完全不同的方向。 模板只是起点。真正的灵魂(SOUL),是你和你的 Agent 一起创造的。 The claw is the law. 一份"灵魂文档" SOUL.md 是 OpenClaw 项目的核心人格定义文件。它不是 README(读我),不是 CONFIG(配置),而是 SOUL(灵魂)。 与传统方案的对比 图 2:传统 AI(工具导向)与 SOUL.md(身份驱动)的本质区别 维度 传统 System Prompt Custom Instructions SOUL.md 核心问题 "你能做什么 2. 定义你们的互动模式 你希望 Agent 怎么和你沟通?直接?委婉?正式?随意?把这些写在 Vibe 部分。 3. 设置你的红线 边界部分可以加入你个人的红线。 ## Boundaries * [你的红线1] * [你的红线2] ## Vibe [你希望的交互风格] ## Continuity 这份文件是你的。
以匹配玩法举例,匹配上之后,是否有足够多的手段帮助破冰?是否有方式让用户持续激活关系?等等。 强度&更新速率:通过影响用户的频次和生命周期,影响产品的整体生态流转。这两个指标通常呈反比。 Soul不支持上传图片头像,只可以使用Soul提供的虚拟形象。匹配逻辑上强调通过测试区分的契合性格,产品上不引导“看脸”而是引导“寻找契合灵魂”。 左图为Soul捏脸界面,右图为腾讯朋友个人主页 2.建立连接 单看建立连接两者的产品形态差异不大,只是Soul发展更久,所以形态更丰富些。 Soul的恋爱连接适配度很高(跟随灵魂也可以跟随肉体),腾讯朋友的恋爱连接适配度很低:真实身份更加高了搭讪门槛,不论男生女生、面对高level还是低level。 4.结论 因此,从以上三方面分析来看,腾讯朋友「真实身份」的设计并不适配「陌生社交」,而Soul通过“匿名”和“灵魂测试”的「身份设计」,提供了丰富的「连接方式」,充分满足用户对连接的诉求,成功吸引且留存了大量用户
这种“跨越社区距离、回报不断增加更具变革性、更多元化的未来”需要依靠由灵魂“Soul”持有的灵魂绑定代币(SBT)来更好地编码web3中的社会关系网络。 一、基本元素:帐户:在Web2中的帐户体系是由邮箱、手机号来构成,而Web3中的帐户就是钱包或者说是地址,它持有多种多样的代币。我们将账户称为灵魂”Soul”。 溯源关系凭证:不可转让的灵魂绑定代币SBT,SBT将通过追踪链上Soul的“承诺、凭证和从属关系”来编码社会关系网络。 二、可能的DeSoc用例:艺术与“灵魂”:艺术家可以使用他们的Soul来发布NFT。通过这样做,他们可以以一种直接的、链上的方式“把他们的声誉押在作品上”。 SBT将通过溯源与计算其“灵魂”的社会网络关系,来区分它是“Soul和可能的机器人”,从而防御女巫攻击。
girl = "Smile沫沫" print(girl[0: -2]) # Smile print(girl[-2: -4]) # 空字符串,取不到字符切片的索引号超出范围是不会报错的,取到尽头为止 girl[0:3:2]字符串逆序输出步长为 -1,表示从后面往前面数,girl::-1, 反转字符串。 字符串匹配正则表达式非常枯燥,在没有具体的实战场景前,建议不用花太多时间提前了解,不然时间花了,没几天又忘得一干二净。这里简单写一个匹配规则, 表示匹配一个数字。 a = "Soul 小芳" b = a.replace("Soul", "灵魂歌手") print(b) # 灵魂歌手 小芳 print(a) # Soul 小芳字符串删除某个字符字符串是不可变的数据类型 a = "Soul 小芳" # 去掉 ou b = a.replace('ou', '')自动化测试场景1、使用 string 表示测试用例 username = 'jiubing1' password
举个例子 设计一款灵魂出窍滤镜, public struct C7SoulOut: C7FilterProtocol { /// The adjusted soul, from 0.0 , maxScale, maxAlpha] } public init() { } } 此过滤器需要三个参数: soul:调整后的灵魂,从 0.0 到 1.0,默认为 0.5 maxScale:最大灵魂比例 maxAlpha:最大灵魂的透明度 编写基于并行计算内核函数 kernel void C7SoulOut(texture2d<half, access::write> () 批量操作处理 /// 1.转换成RBGA let filter1 = C7Color2(with: .color2RBGA) /// 2.调整颗粒度 var filter2 = C7Granularity () filter2.grain = 0.8 /// 3.配置灵魂效果 var filter3 = C7SoulOut() filter3.soul = 0.7 /// 4.组合操作 let group
其中,关联、聚合、组合关系仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情境环境等,他们在编程语言中的体现却是基本相同的 耦合度 No.1 组合 > No2. 例如,People与Soul、Body之间是组合关系,当人的生命周期开始时,必须同时有灵魂和肉体;当人的生命周期结束时,灵魂肉体随之消亡;无论是灵魂还是肉体,都不能单独存在,他们必须作为人的组成部分存在 1 class People{ 2 Soul soul; 3 Body body; 4 //组合关系中的成员变量一般会在构造方法中赋值 5 Public People(Soul soul, Body body){ 6 This.soul = soul; 7 This.body = body; 8 } 9 10 Public void study(){ 11 System.out.println(“学习要用灵魂”+soul.getName()); 12
这种设计使得 AI 代理具有跨会话的连续性和可进化的灵魂特性。 2. 核心配置文件详解3.1 SOUL.md:代理的灵魂SOUL.md 是代理行为准则的核心载体。官方模板强调代理不应是复读机,而应具有独立观点和资源意识。 以下是推荐配置示例:内存搜索参数调优:混合搜索(Hybrid Search)结合了 BM25 文本匹配和向量语义搜索。 当前会话中用户的明确指令 2. AGENTS.md 中的红线规则 3. SOUL.md 中的行为边界 4.
它需要一个更像“主体”的载体,需要灵魂文件,也需要真实执行能力。 1. Codex 项目能控制行为,但不像一个主体 我用 Codex 项目功能已经有一段时间。它的问题不是能力不够,而是形态不对。 2. SOUL.md 解决的不是功能,是身份 Claw 系列有一个我很在意的设计:SOUL.md。 从技术上讲,AGENTS.md 和 SOUL.md 最终都会影响大模型调用时的系统行为。 用 Hermes 的 SOUL.md 给 Agent CEO 注入灵魂,再让 Hermes 通过 ACP 控制电脑上的 Codex,补上执行能力。 3. SOUL.md 能不能让 Agent CEO 的身份保持稳定。 2. ACP 控制 Codex 的执行链路够不够顺。 3. Hermes 的官方桌面应用能不能减少维护成本,而不是制造新的配置负担。 它会变成一个有灵魂文件、有控制通道、有执行工具的工作主体。 这才是我安装 Hermes 真正想验证的事。
SOUL.md—灵魂配置定义AI的核心性格、工作风格和价值观。比如龙龙被设定为"务实、果断、执行力强",这些都写在这里。相当于AI的"人格DNA"。 、IDENTITY.md以及MEMORY.md扮演着赋予AI“灵魂”与“记忆”的核心角色。 2.USER.md:用户的“背景档案”(你是谁)USER.md是关于使用者本人的背景档案,让AI在你开口之前就能理解你的工作与偏好,避免每次对话都在盲猜你的状态。 3.SOUL.md:AI的“灵魂与约束”(我怎么判断与执行)如果说IDENTITY.md决定了AI是谁,那么SOUL.md就决定了AI的做事原则和性格底色。 总结:这三个身份与灵魂文件协同工作,实现了双向的身份确认——不仅要告诉AI“我是谁”(IDENTITY.md),也要让它知道“你是谁”(USER.md),并用原则约束(SOUL.md)它的行为,最后用记忆
article.setClickCount(1L); Article article1 = new Article(); article1.setId(2L 而且查询结果顺序是根据匹配度来排序的。后面会附上匹配的规则。 { “title”: “Brown fox brown dog” } }, { “_id”: “2” 文档2和文档3都包含了”brown”和”dog”一次,同时它们的title字段拥有相同的长度,因此它们的分值相同。 文档1只包含了”brown”。 无论你输入的是什么,至少有2个词条被匹配时,该文档才会被算作最终结果中的一员。 minimum_should_match参数非常灵活,根据用户输入的词条的数量,可以适用不同的规则。
微博数据显示,#Soul被玩坏了#话题的阅读量已接近2亿,同时抖音、快手平台上,关于Soul的内容和讨论也多了起来,而Soul在春节期间发起的“可以和Souler一起做的27件小事儿”活动,也吸引不少年轻人关注和参与 Soul,实现了3亿次+的站外品牌曝光。 Soul通过活动中的27件小事,促进用户互动,增加用户活跃度,让用户在共同完成平凡小事的过程中,获取陪伴感。在灵魂相互碰撞中更好展现Soul的平台调性。 对于Soul来说,让社交双方都更加专注在对方内在上的灵魂社交从始至终就是其优势,因为内在因素会更具吸引力。而Soul中用户使用虚拟头像、视频通话的“脸基尼”功能等,都在一定程度上帮助其社交回归本质。 而这些不同的文化在Soul中不断发酵,形成特定的文化圈层,也会帮助Soul向更加多元的边界突破,释放更多机会。 最后是助力平台向生活渗透。
多Agent架构的灵魂:workspace隔离+职责单一你可以把每个Agent想象成一只“虾”:•每只虾有自己的脑子(workspace),记忆不互相污染。 •每只虾有自己的灵魂(SOUL.md),知道自己该怎么思考、怎么表达、什么不能做。•多只虾可以协作(agent2agent/sessions_send),把复杂任务拆成多个子任务并行处理。 第二步:SOUL.md怎么写才像“一个人”,而不是一段废话?SOUL.md的价值不在“写得多”,而在“边界清晰、决策一致、禁区明确”。SOUL.md该包含哪些块(职责/流程/决策/禁区)? 一个可复用的SOUL.md结构通常包含:1.核心职责:这只虾只做什么2.执行流程:需求分析→策略→质量控制3.决策原则:如何取舍、何时提问4.禁止事项:不编造、不中断验证、不过度推断如何避免“人格过于宽泛 •优先检查:是否重启gateway;bindings是否匹配;accounts是否有冲突旧字段。4.飞书里回复的是旧虾怎么办?•90%情况是没重启或路由没生效;按“重启+probe+身份自检”排查。
——AI的灵魂性格SOUL.md是整个OpenClaw身份架构中最基础的文件,定义了代理的性格、核心价值观和长期指令。 2.AGENTS.md——AI的工作指南AGENTS.md是OpenClaw的日常行为配置文件,详细记录了任务处理流程、工具使用策略和决策规范。 ##2.记忆库新陈代谢-每日流水:当天灵感、废稿存入`memory/YYYY-MM-DD.md`-精华提炼:定期回顾并更新到`MEMORY.md`##3.护主与绝对红线-隐私锁死:禁止泄露未发布的草稿- ##2.基因重组-覆写`IDENTITY.md`-覆写`USER.md`-敲定`SOUL.md`的红线##3.连接渠道-仅限本地-Telegram(推荐)-WhatsApp关键:完成后必须删除BOOTSTRAP.md 你已经有了灵魂,不再是空白机器了。写在最后看完这篇,你会发现:OpenClaw的“智商”根本不是由Skills数量决定的,而是由这7个配置文件决定的。