2026-04-22 00:07:43
Temperature(温度):控制概率分布的“陡峭”程度,影响整体随机性。
Top-p(也称核采样):限制候选词的累积概率范围,动态过滤掉极不可能的选项
Top-k:截断采样策略,用于控制模型生成 token 时的候选词范围
Temperature(温度)
作用:控制输出分布的"尖锐度"
模型在生成每个 token 时,会先计算所有候选词的概率分布。Temperature 会对这个分布做如下变换:
P'(word) ∝ P(word)^(1/T)
Temperature 值 / 效果 / 适用场景
T = 0(或极低) — 始终选概率最高的词,输出完全确定 · 代码生成、数学计算、需要确定性答案的任务
T = 0.1~0.3 — 高度保守,几乎总是选最优解 · 事实问答、信息抽取、严格格式输出
T = 0.5~0.7 — 平衡随机性,主流默认值 · 通用对话、写作辅助、大多数场景
T = 0.8~1.0 — 明显增加多样性 · 创意写作、头脑风暴、角色扮演
本质: 低温度让分布更"尖锐",高温度让分布更"平缓"。
作用:动态截断低概率词
与 Temperature 固定缩放不同,Top_p 按概率从高到低累加,直到累计概率达到 p 值,只保留这些词,从保留的这些词中采样:
例如 top_p=0.9: 选词 A(40%) + B(30%) + C(20%) = 90% → 保留 词 D(10%) 被截断
Top_p 值 / 效果 / 特点
0.1 ~ 0.3 — 极度保守,只选最高概率词 · 类似低 temperature,但更动态
0.7 ~ 0.9 — 主流推荐值 · 在多样性和质量间取得平衡
0.9 ~ 0.95 — 允许更多低概率词 · 创意性更强,偶尔会跑偏
1.0 — 不做截断,等价于关闭 · 不推荐,可能采样到无意义词
优势: 比 Temperature 更"智能"——当模型很确定时自动收窄,不确定时自动放宽。
需要精确、低风险 → 低 temperature(0.1~0.3)+ 低 top-p(0.1~0.5)
需要创意、多样性 → 高 temperature(0.8~1.2)+ 高 top-p(0.9~1.0)
平衡模式(多数日常对话)→ temperature 0.7~0.8,top-p 0.9
| 任务类型 | temperature | top-p | 说明 |
|---|---|---|---|
| 代码生成、数学解题 | 0.1~0.3 | 0.1~0.3 | 需要确定性高 |
| 事实问答、摘要 | 0.3~0.5 | 0.5~0.7 | 允许少量变化 |
| 通用客服/聊天 | 0.6~0.8 | 0.8~0.9 | 平衡流畅与多样性 |
| 故事/诗歌创作 | 0.8~1.2 | 0.9~1.0 | 鼓励惊喜 |
| 头脑风暴/创意构思 | 1.0~1.4 | 1.0 | 最大自由度,注意偶尔乱码 |
temperature = 0.7 top_p = 0.9
这是大多数 API 的默认值,适合 80% 的场景
不要同时设极值:T=0 + top_p=0.1 会导致输出极度单调
Temperature 优先调:多数情况下调 T 就够了,Top_p 保持 0.9 不动
需要确定性时用 T=0:此时 Top_p 失效(贪婪解码优先)
不同模型敏感度不同:同样参数在不同模型上效果可能差异较大
batch 生成时注意:同一 prompt 多次调用,参数相同也会得到不同结果
Temperature → "敢不敢冒险":越低越保守,越高越大胆
Top_p → "备选池多大":越低选择越少,越高越自由
两者配合 → T 定基调,Top_p 做微调
top_k 参数详解在基于 Transformer 的大语言模型(如 GPT、LLaMA 等)文本生成中,top_k 是一个常用的采样参数,用于控制输出 token 的随机性和多样性。它直接限制了模型每一步可选的候选词范围。
top_k:在每一步生成时,只保留概率最高的 k 个 token,然后在这 k 个 token 中重新归一化概率并进行采样(或配合其他策略比如温度采样)。
如果 top_k=1,则退化为贪婪搜索,每次都选最高概率的 token。
如果 top_k 很大(比如等于词表大小),则等价于不做 top_k 过滤(仅靠温度等控制)。
注意:
top_k是一个“硬截断”机制——不考虑 k 个候选之外的所有 token,即使它们的概率也没有低到微不足道。
假设词表中有 10 个 token,模型原始输出的 logits(未归一化分数)经过 softmax 得到概率分布:
token: A B C D E F G H I J
prob: 0.3 0.2 0.15 0.1 0.08 0.05 0.04 0.03 0.03 0.02
设置 top_k=3:
选择概率最高的 3 个 token:A(0.3), B(0.2), C(0.15)
对这三个概率重新归一化(除以和 0.65):
A: 0.462, B: 0.308, C: 0.231
根据这个新的分布随机采样得到下一个 token。
top_k 值 |
效果 |
|---|---|
| 1 | 确定性输出,每次结果相同,适合有标准答案的任务(如数学计算、代码生成中的简单逻辑)。 |
| 10~40 | 常用范围。适度限制低概率 token,降低“跑题”或乱码风险,同时保留一定创造性。 |
| 50~100 | 更开放,允许更多低概率词被选到,多样性高,但可能偶尔产生不连贯内容。 |
| 词表大小 | 实际上禁用 top_k 过滤,所有 token 都有机会被选中。 |
top_k 与 top_p 的区别| 参数 | 方式 | 动态性 | 控制目标 |
|---|---|---|---|
| top_k | 固定候选数量 | 候选池大小固定 | 绝对去掉尾部低概率 token |
| top_p | 累计概率阈值(如 0.9) | 候选池大小根据分布自适应 | 只保留概率质量集中的一部分 token |
示例对比(依然用上面的概率分布):
top_k=3 → 固定 3 个候选
top_p=0.6 → 从高到低累加概率:A(0.3) → B(0.5) → C(0.65) 超过 0.6,所以选中 A+B,候选池大小=2
实际建议:常同时使用 top_k 和 top_p,例如 top_k=50 + top_p=0.95,先按 top_k 截断,再按 top_p 过滤,可以使候选更加稳妥又不过于机械。
temperature 的交互temperature 在 softmax 前对 logits 做缩放:低温度使概率分布更陡(偏向高概率 token),高温度使分布更平坦。
top_k 作用于缩放后的概率分布。
如果温度很低,原始概率已经尖锐,再应用 top_k 可能只剩下 1~2 个候选(近似贪婪)。
如果温度很高,分布平坦,top_k 可以排除长尾中的极低概率词,防止生成完全随机的无意义内容。
常用组合:
创意写作:temperature=0.9,top_k=50,top_p=0.95
精确问答:temperature=0.2,top_k=10,top_p=0.9
完全确定性:top_k=1(忽略 temperature)
优点:
简单有效,能显著降低生成“无意义词”的概率。
计算成本低(只是截取前 k 个,重新归一化)。
直观易调:k 越大,多样性越高。
缺点:
固定大小的 k 不能适应不同分布形状。当概率质量异常集中时,k 个 token 中后面的 token 可能概率极低,仍会选到;当分布非常平缓时,k 个 token 会漏掉大量中等概率的合理词。
需要手动调整,不同任务最优 k 不同。
| 任务类型 | 推荐 top_k | 理由 |
|---|---|---|
| 代码生成 / 算术 | 1 或 10~20 | 高确定性,避免错误 token。 |
| 翻译 / 摘要 | 20~40 | 需要忠实原文,但允许适当措辞变化。 |
| 聊天机器人(通用) | 40~60 | 平衡合理性与趣味性。 |
| 创意故事 / 诗歌 | 60~100 | 鼓励新颖表达,但保留基础连贯性。 |
| 超长文本生成 | 50~80 | 避免长期退化(重复/空洞),同时不过分散乱。 |
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("gpt2")
tokenizer = AutoTokenizer.from_pretrained("gpt2")
inputs = tokenizer("The quick brown fox", return_tensors="pt")
outputs = model.generate(
**inputs,
max_new_tokens=20,
do_sample=True, # 启用采样,否则 top_k 无效
top_k=50, # 只从概率最高的 50 个 token 中选
top_p=0.95, # 可选,配合使用
temperature=0.8
)
top_k 是控制生成多样性与连贯性的一个简单但强大的参数。
通过限制每一步的候选 token 数量,可以有效剔除极端低概率的无意义词。
与 top_p、temperature 组合使用可以更精细地调节输出质量。
没有绝对最优值,通常需要通过实验针对具体任务调参。
理解 top_k 的本质后,就可以根据模型行为(是否出现不合理 token、是否重复、是否缺乏创意)来快速调整该参数,并与其他采样策略配合达到最佳生成效果。
2026-04-19 21:39:24

Hermes Agent是个啥?
Hermes Agent 是 Nous Research(Hermes 模型背后的团队)开发的自改进(self-improving)AI Agent,核心创新在于内置学习闭环(closed learning loop):
持久多层记忆:使用 SQLite + FTS5 全文搜索 + LLM 自动总结,跨会话永久记住你的偏好、风格和历史,不会“健忘”。
自动技能进化:任务完成后自动生成 Markdown Skill 文件,下次直接调用;还会自我迭代优化 Skill。
自主执行力:支持终端命令、浏览器、文件操作、代码生成、Web 搜索等工具,可在 CLI 或 Telegram/Discord 等平台运行。
模型超灵活:支持 OpenRouter(200+模型)、OpenAI、Anthropic、Nous Portal、本地 Ollama 等,几乎零切换成本。
完全开源免费:MIT 协议,可在 $5 VPS、本地、Docker、Modal 等环境运行。
简单说:普通AI是工具,Hermes是会自己进化的私人AI助手。用得越久,它就越像你的"数字分身"。
官方文档:https://hermes-agent.nousresearch.com/docs/
安装
在 Mac 或者 Linux 环境,在终端输入如下命令后回车:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash # 安装完成后重载 shell: source ~/.bashrc # 或 source ~/.zshrc
脚本会自动检测并安装 Python、Node.js、Git、ripgrep 等所有依赖,耐心等待即可。
安装完成后,脚本会自动进入引导设置,选择 Quick setup 模式,然后按提示配置模型。推荐选 OpenRouter(登陆后创建API Keys),选免费模型(如 nvidia/nemotron-3-super-120b-a12b:free),零成本跑起来先体验。如果之前本地已有 OpenAI 或 Codex 的授权配置,Hermes 会自动读取,不用重复填写。
配置最后会询问是否注册为系统服务,选 Y 可以开机自启、后台常驻,省去每次手动启动的麻烦。

Hermes Agent常用命令
Hermes Agent 的命令都以 hermes 开头,其核心命令可以分为几大类:核心交互、配置管理、工具与技能、网关与会话管理。
这是你与 Agent 日常交流的核心命令。
| 命令 | 作用 | 示例/说明 |
|---|---|---|
hermes 或 hermes chat
|
启动交互式对话,这是最常用的入口。在终端直接运行即可进入对话模式。 | hermes |
hermes -q "<你的问题>" |
执行单次查询。Agent 执行后会直接退出,适合脚本调用。 | hermes -q "解释什么是递归" |
hermes -m <模型名> |
临时指定模型。在本次对话中覆盖默认模型。 | hermes -m openrouter/gpt-4o |
hermes -t <工具集> |
启用特定工具集。例如,开启浏览器工具 browser。 |
hermes -t browser |
提示:在对话中,你也可以直接使用自然语言向 Agent 下达指令,它会自动判断并调用相应的工具。
安装后的首要任务就是配置好 Agent 的“大脑”。
| 命令 | 作用 | 示例/说明 |
|---|---|---|
hermes setup |
启动交互式配置向导。这是新手最推荐的配置方式,会引导你一步步设置模型、API Key等。 | hermes setup |
hermes model |
交互式切换模型。在已配置的模型列表中快速选择并切换。 | hermes model |
hermes config edit |
编辑配置文件。用默认编辑器打开 ~/.hermes/config.yaml 进行高级配置。 |
hermes config edit |
hermes version |
查看当前版本。 | hermes version |
hermes doctor |
环境诊断。检查安装是否正确,环境是否正常。 | hermes doctor |
hermes dashboard |
打开管理面板。在浏览器中启动一个图形化管理界面,方便查看日志和状态。 | hermes dashboard |
Hermes 的能力通过“工具集”和“技能”来扩展。
| 命令 | 作用 | 示例/说明 |
|---|---|---|
hermes tools list |
列出所有工具。显示所有内置工具及其在当前平台的启用状态。 | hermes tools list --platform telegram |
hermes tools enable <工具名> |
启用工具。为特定平台(如 CLI)启用工具。 | hermes tools enable browser --platform cli |
hermes tools disable <工具名> |
禁用工具。 | hermes tools disable web --platform cli |
hermes skills list |
列出所有已安装技能。技能是更高阶的工作流。 | hermes skills list |
hermes skills search <关键词> |
搜索技能。 | hermes skills search "code review" |
hermes skills install <技能名> |
安装技能。 | hermes skills install <技能名> |
hermes skills uninstall <技能名> |
卸载技能。 | hermes skills uninstall <技能名> |
Gateway 是让 Agent 接入各种聊天平台(如飞书、Telegram)的关键。
| 命令 | 作用 | 示例/说明 |
|---|---|---|
hermes gateway setup |
配置消息网关。交互式地将 Agent 连接到飞书、Telegram等平台。 | hermes gateway setup |
hermes gateway start |
启动网关后台服务。让 Agent 通过网关持续在线。 | hermes gateway start |
hermes gateway stop |
停止网关服务。 | hermes gateway stop |
hermes gateway status |
查看网关状态。 | hermes gateway status |
hermes gateway list |
列出已启用的网关列表。 | hermes gateway list |
hermes gateway enable <平台> |
手动启用特定平台的网关。 | hermes gateway enable discord slack |
hermes -c |
恢复最近的对话会话。 | hermes -c |
hermes -r <会话ID> |
恢复指定ID的对话会话。 | hermes -r <session_id> |
补充说明:在对话界面中,斜杠命令(如
/help,/plan,/skills --force)是非常快捷的操作方式。部分命令需确保环境正确,例如macOS用户使用sed -i时需额外参数。
现在个人电脑用hermes,公司电脑用内部提供的openclaw,唯一的限制就是429了
参考:
2026-04-14 00:02:14
socat(SOcket CAT)是一个基于命令行的实用程序,其核心原理是在任意两个独立的数据通道之间建立双向传输的桥梁。它本身不解读或处理应用层协议(如HTTP),只是忠实地在指定的源和目的地之间转发原始字节流。这种"数据搬运工"的特性,使其成为构建轻量级网络代理的理想工具。有点类似于netcat (即nc命令),nc是单纯面向网络的,而socat连接的更多。
# CentOS/RHEL yum install socat # Debian/Ubuntu sudo apt-get install socat # macOS (Homebrew) brew install socat
在实际使用时,为了让代理更稳定、安全,你还可以关注以下选项和要点:
基础命令格式:socat [options] <源地址> <目标地址>。
常用选项:
-u 或 -U:设定数据流为单向(从源到目标或反之)。
range=<ip-range>:限制允许连接代理的客户端IP范围,例如range=192.168.1.0/24。
su=<user>:让socat进程以指定低权限用户(如nobody)运行,增强安全性。
启动与保持:
默认命令会在前台运行,按Ctrl+C终止。
如需在后台运行,可以在命令末尾添加 & 符号。
对于需要长期运行的代理,建议配合 systemd 或 supervisor 等进程管理工具使用。
下面的表格总结了socat作为代理的几种常见用途、对应命令和典型场景:
| 代理模式 | 核心命令示例 | 关键参数解析 | 典型应用场景 |
|---|---|---|---|
| TCP端口转发 | socat TCP4-LISTEN:8080,fork,reuseaddr TCP4:192.168.1.10:80 |
TCP4-LISTEN:监听端口;fork:允许并发连接;reuseaddr:立即重用端口。 |
将本地8080端口流量透明转发至内网服务器192.168.1.10的80端口,实现服务暴露。 |
| 跨协议中继 | socat TCP-LISTEN:3307,reuseaddr,fork UNIX-CONNECT:/var/lib/mysql/mysql.sock |
UNIX-CONNECT:连接至Unix域套接字。 |
让仅支持TCP连接的远程客户端(如Web服务器)通过本地3307端口访问MySQL的Unix Socket。 |
| 流量监控/调试 | socat -v TCP4-LISTEN:1234,fork TCP:www.example.com:80 |
-v:将双向传输的原始数据打印到终端。 |
拦截并查看经过代理的HTTP等明文协议流量,用于调试。 |
| 创建SSL/TLS加密隧道 | socat OPENSSL-LISTEN:8443,cert=server.pem,verify=0 TCP:localhost:80 |
OPENSSL-LISTEN:开启SSL监听;cert:指定服务器证书和密钥。 |
在不支持SSL的后端服务(如HTTP服务)前增加一个SSL加密层,提升通信安全。 |
使用参考:
使用示例:http://www.dest-unreach.org/socat/doc/socat.html#EXAMPLES
Getting started with socat, a multipurpose relay tool for Linux
MVP Socat is the fastest way to move network data where you need it
使用 systemd 或 supervisor 来管理 socat 进程,能确保其稳定运行、开机自启和方便管理。下面分别是两种方式的配置示例。
核心思路:将 socat 包装成一个系统服务。
1.创建服务文件
以用 socat 将本地 8080 端口转发到 192.168.1.100:80 为例,创建文件:
vim /etc/systemd/system/socat-proxy.service
2.写入配置
将以下内容写入上述文件,注意根据实际情况修改 ExecStart 命令和 User 等参数:
[Unit] Description=Socat TCP Proxy (8080 -> 192.168.1.100:80) After=multi-user.target Requires=network.target [Service] Type=simple # 以低权限用户运行,提升安全性(可选) User=nobody # 关键:此处替换为你的socat转发命令 ExecStart=/usr/bin/socat TCP4-LISTEN:8080,fork,reuseaddr TCP4:192.168.1.100:80 ExecReload=/bin/kill -HUP $MAINPID Restart=always RestartSec=5 MemoryHigh=1G MemoryMax=8G LimitNOFILE=65536 LimitMEMLOCK=infinity StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target
3.启用并启动服务
# 重载systemd配置 sudo systemctl daemon-reload # 设置开机自启 sudo systemctl enable socat-proxy # 立即启动服务 sudo systemctl start socat-proxy # 查看服务状态和日志 sudo systemctl status socat-proxy journalctl -u socat-proxy -f
核心思路:将 socat 作为由 supervisor 监控的常驻进程。
1.安装 Supervisor(以Ubuntu/Debian为例)
sudo apt update && sudo apt install supervisor
2.创建进程配置文件
以同样的转发任务为例,创建文件:
vim /etc/supervisor/conf.d/socat-proxy.conf
3.写入配置
[program:socat-proxy] command=/usr/bin/socat TCP4-LISTEN:8080,fork,reuseaddr TCP4:192.168.1.100:80 autostart=true autorestart=true startretries=3 user=nobody # 可选:指定工作目录 directory=/tmp # 可选:重定向日志,方便排查 stdout_logfile=/var/log/supervisor/socat-proxy.log stderr_logfile=/var/log/supervisor/socat-proxy-err.log stdout_logfile_maxbytes=10MB stdout_logfile_backups=3
4.启用并启动进程
# 重载supervisor配置 sudo supervisorctl reread sudo supervisorctl update # 启动指定进程 sudo supervisorctl start socat-proxy # 查看进程状态 sudo supervisorctl status socat-proxy
命令测试:在写入配置文件前,务必先在终端直接运行 socat 命令,确保其按预期工作。
路径确认:使用 which socat 确认 socat 的安装路径是否为 /usr/bin/socat,如果不是请在配置中修改。
选择依据:
Systemd 通常是Linux系统首选,与系统集成度高,管理命令统一。
Supervisor 更适合管理用户级、非系统服务,或者在一个系统上集中管理多个业务进程的场景,其Web界面有时更方便。
安全考虑:示例中使用了 User=nobody 来降低权限。如果你的转发涉及特权端口(如80、443),可能需要调整权限(如 setcap 或 authbind),但更推荐的做法是监听非特权端口(如8080),再用反向代理(如Nginx)转发。
两种方式都能很好地完成任务。通常,如果你的服务是系统基础服务的一部分,优先选用 systemd;如果是一个独立的用户应用进程,Supervisor 的进程管理界面可能更友好。
socat是一个功能强大且灵活的"瑞士军刀"。它最适合用于快速搭建临时性代理、调试网络问题、跨协议中继或为简单服务增加SSL层。它的优点在于命令简单、无需复杂配置、资源占用少。
对于需要高性能、负载均衡、用户认证、复杂日志审计或长期稳定运行的生产级代理场景,socat可能不是最佳选择,而应选用专门的代理软件如Nginx、HAProxy等。
2026-04-08 17:18:05
上篇文章中我分享了一些常用的沟通方式:尊重、倾听和情绪控制,并给出了几个我认为很不错的沟通技巧,比如:引起对方的兴趣;过滤信息,简明扼要地表达;用数据和实例说话。这篇文章中,我来分享几个关键的沟通技术,相信掌握了这几大沟通法宝,你的沟通水平会大幅提升。
你的逻辑能力一定要强。因为中国人从小就不学逻辑学,所以讲话不注重逻辑,而我们理科生尤其是学过数学的程序员是懂逻辑的,所以,对于我们程序员来说,我们是可以用缜密逻辑疯狂地碾压别人的。
逻辑是一门科学,也是一门数学。谁是谁的充分条件、必要条件或充要条件,以及有没有关联关系,有没有因果关系等,这些东西你要做到心中有数,当对方的表达中出现逻辑错误时,你可以随时指出来。比如,这两个事儿没有因果关系,我们不要把它们放在一起谈。
有一次,我就跟一家公司的产品团队 PK 了一下。这家公司的产品有一个视频下载功能,但他们统计数据发现,有大约 40% 的用户下载到一半就取消下载操作了。于是他们就想提高用户的下载体验,解决办法是模仿微信的绿色进度条的做法:让进度条的 90% 嗖地过去,然后最后的 10% 则对应实际剩下的下载进度。
我们通过逻辑分析,不难发现这样做是不能赢得用户的。他们的逻辑是:“用户看到已经下载 90% 了,然后会想那 10% 很快就能下载好,所以会愿意多等一会儿。而不是下载 10% 就让用户等了半天,那他就不想等了。”这里的前置条件是用进度条欺骗用户,后置条件是用户愿意等待下载。
但是不是进度条这样设计了以后,用户就真的愿意等到下载完成呢?不是的。不需要试验,我们脑补一下,当我们的微信打不开网页,或者打开速度超过我们的心理忍受限度时,无论那个进度条是多少,我们都不会等的。有这么一个逻辑在这里卡着。
基于这种逻辑,我跟他们说,这种进度条设计会导致更低的下载率。因为视频通常比较大,下载的总时间是很长的,绝大多数用户对这个速度是没有概念的。打开网页的时间是很短的,90% 的网页在 3、4 秒内就打开了,只有少数偶尔需要 5 秒到 10 秒才能打开(因为移动网络的问题)。
这时,我可以通过这种“就快完”的手段把用户多留下来一会儿。但是,视频下载无论怎样优化,至少需要半分钟,才能下载下来。此时,如果进度条不能反映真实进度的话,用户对总的打开时间是没有合理预期的,90% 的进度提前到了,剩下的 10% 花那么久,很容易让人认为是下载卡死了,从而放弃,乃至在多次重试无果后对应用和平台都失去兴趣。
所以,这样的进度条设计只是用户愿意等一小下(15 秒以内)的充分条件(还不一定是必要条件),并不是用户愿意等待直到视频下载完成的充分条件或必要条件。
在这样的逻辑面前,产品经理立马取消了这个功能的排期,说还需要想一想。你看,你可以用你的一些逻辑推理去分析问题的前因后果和条件,然后用这个条件来说服他。
在逻辑层面说服对方,是一种非常高级的手段,就像懂微积分的人来解数学题一样,那些不懂微积分的只有被碾压的份儿了。
信息要全面、准确。这里重点提一下 X/Y 问题。X/Y 问题是一件非常讨厌的事情。有时候我们拿着 Y 问题去找别人,问到一半才知道,我们原来要问的是 X 问题。
Stack Overflow 上有个问题,问的是“怎么截取一个字符串的最后三位?”大家给了一堆答案。突然有个人问:“你为什么要截取字符串的后三位?”他说:“我要找文件的扩展名”。实际上,文件的扩展名不一定是 3 个字符,而且有专门的函数干这个事儿,不需要自己写。这里,取文件的扩展名,这叫 X,取文件名的最后 3 个字符,这叫 Y。他想知道 X,但不知道该怎么说,于是就说成了 Y,导致别人都去解决一个不存在的问题。这叫 X/Y Problem。
我可以告诉你,这个世界上到处都是 X/Y 问题。有些公司找我说,我们要做分布式架构,我们要做大中台,我们要做线下线上融合……这些问题都是 Y 问题。我都要反问,你为什么要做分布式架构?为了大规模营销,为了稳定性,还是为了加快开发速度?做大中台,你是为了什么? 是为了打通各个业务线,为了快速开发,还是为了技术输出?等等。要解的真实问题才是 X 问题,手段都是 Y 问题。只有你真正了解了 X 问题,你才能真正明白整个事。
当你了解了 X 问题后,你就要到源头,来质疑或是改良他的 Y 问题,甚至提出 Z 方案,而对方会陷入被动,被你牵着鼻子转。
我们想一下,人与人不同都是细节上的不同,比如:身高、体重、手机号等,人与人的相同点都是在宏观上相同,比如:国籍,性别……这告诉我们,如果你要找不同就要到细节上去,如果你要找共同,就要到大局上去。
所以,在和人争论时,如果要反驳,那一定是低维度反驳,越细节越好。而在说服对方时,则要在高维度说服对方,越宏观越好,比如从公司的大目标出发。高维度讲究的是求同存异。你跟别人相同的东西一定是高维度的,这就是大同,而你跟别人不同的一定是非常细节的东西。大同的东西,更容易让人产生共鸣,从而容易达成默契和共识。
因此,能够站在更高的维度来沟通是我们需要努力的目标。我们经常会听到类似的话:“哎呀,大家都没有恶意。我们虽然争论成这样,但是大家都是为公司好,只不过我们的路径不对。”或者“我们的目标是一样的,但是我们的方式不一样。”能感觉到吧?气氛一下子就缓和了好多。
站在更高的维度上讨论问题,可以让你有大局观,对方就会显得很小气,导致对方也会不好意思,于是就会出现“六尺巷”的故事中所描述的那种场景。
这里讲的是共情,共享,共利,共识以及换位思考。如果你能站在对方的角度思考问题,那么你所想的问题以及所想沟通的内容,一定会跟只想自己有很大不同。同时,你会神奇地发现,换位思考能帮助你更为全面地理解并解决问题。
寻找“共同”的过程,其实也可以理解成为化“敌”为“友”的过程。我们不妨想象一下,沟通双方剑拔弩张,随时一触即发的情况,和沟通双方有共同的目标一起思考和解决问题的状态,哪种更能获得更好的结果。而共同该怎样找,跟我们在维度中提及的很相似,就是从高维度,寻找共同之处。
首先是共情,跟对方相互分享各自的情感,这是一种拉近距离最有效的手段,然后是相互共享自己的观点,在观点中寻求双方共同的利益点,然后不断地循环,一点一点地达成共识。
此外,我还想强调一点,无论干什么,你一定要有一个非常犀利的观点,也就是金句。如何得到这些金句呢?一定要多看书。你到那些公众号或者知乎里面看一些抖机灵的内容是没有用的。抖机灵的金句没有用。一定要是有思想深度的金句,才有力量。推荐你看三本书《清醒思考的艺术》、《简单逻辑学》和《重来》。
我是先被《重来》洗脑了,这本书帮我开拓了眼界,打破了我既有的思维模式,让我反思过去习以为常的每一件事。同时书中给出了实用、可操作的建议,让我头一次从心底感受到,原来世界还可以如此不同。
然后,我看了《清醒思考的艺术》,这本书作者以显微镜般的观察发现人们常犯的 52 个思维错误,并一一列出。帮人们认识到错误的思维是如何发生,从而避免掉入思维陷阱中。看这本书的过程中,我能明显感觉到自己的思维方式在被重新构造。
随后是《简单逻辑学》。逻辑学是很枯燥的,但这本书的作者以其简练而又充满趣味的笔触,将逻辑学活化为一种艺术,从它的基本原理,到论证,到非逻辑思维的根源,再到 28 种就发生在人们身边的非逻辑思维形式,带领我们进入这个精彩无比的逻辑世界,体会妙趣横生的思维交锋,跨过无处不在的逻辑陷阱,让人沉醉其中,欲罢不能。
这三本书对我影响很大,也建议你好好读读,能改善你的思维,炼就你的火眼金睛。你会发现自己跟和别人不在一个频道上,你能看到事物更多的侧面,在阐述观点时,会比别人更加深刻、犀利和有见地。一些金句也会在你跟人互动交流时,随机地冒出来。你自己都能明显感觉到自己的气场要比其他人足。
总结一下今天的内容。我们讲了沟通的四大关键技术:逻辑、信息、维度和共同。
有逻辑的表达,更容易说服对方。信息全面准确,更有利于让沟通的双方清楚定位问题,从而更高效地解决问题。
维度是个很有趣的事儿,有的时候要站在高维度去碾压对方;有的时候要站在低维度去碾压对方。如何把握这个度很重要。如果站在客户的角度,最好用高维度。但如果站在技术细节的角度,这是低维度。高维度容易拉拢对方,而在低维度更容易说服对方。只不过低维度容易爆发冲突,要恰当地控制好度。
最后一点是共同,其实寻找共同的过程就是化“敌”为“友”的过程,帮助大家在共赢的大思路和环境下,共同思考问题的解,从而实现高效沟通。此外,我强调了金句的重要性,以及如何获得这些金句。答案是没有捷径可走,唯有多读书,多思考,才能慢慢获得。
来源:《左耳听风专栏:高效沟通》
2026-04-02 03:02:37
Chrome开启同步功能时忘了先备份本地书签,导致保存的书签全部被覆盖,赶紧呼叫AI
,Mark一下。
在Mac上,若Chrome同步功能覆盖了本地书签,最快恢复方法是利用Bookmarks.bak备份文件。切勿在此期间关闭Chrome。在访达中进入 ~/Library/Application Support/Google/Chrome/Default,将 Bookmarks.bak 重命名为 Bookmarks 覆盖原文件。
保持Chrome打开状态: 不要关闭浏览器,以免备份文件被更新。
查找书签文件:
在Mac中打开“访达”(Finder)。
按下 Cmd + Shift + G,输入:~/Library/Application Support/Google/Chrome/Default。
找到 Bookmarks(当前覆盖后的书签)和 Bookmarks.bak(原来的书签备份)两个文件。
恢复备份:
如果 Bookmarks.bak 文件较小且没有更新,说明它还存有旧数据。
退出Chrome。
删除 Bookmarks 文件。
将 Bookmarks.bak 重命名为 Bookmarks。
重新打开Chrome: 此时书签应已恢复。
开启同步注意: 如果书签再次被同步覆盖,建议在书签管理器中利用“时钟”图标恢复30分钟前的版本。
参考: