AI 交互范式的演进:从提示词工程到驾驭工程
这是 AI 与人交互方式演进的三代范式:
1. 提示词工程(Prompt Engineering)核心: 如何写好一个 prompt
这是最早被广泛关注的层次,关注点是:
如何措辞能让 LLM 理解你的意图
Few-shot / Zero-shot 技巧
Chain-of-Thought(思维链)引导
输出格式控制
本质: 把 LLM 当成一个强的对话引擎,优化输入文本来获得好输出
2. 上下文工程(Context Engineering)核心: 如何组织给 LLM 的上下文
随着 context window 越来越大(100K+ tokens),问题变成了:
什么信息值得放进 context
如何结构化(System prompt / User msg / Examples 的分层)
RAG(检索增强生成)— 动态从外部知识库拉取相关内容注入 context
Context 过长时的注意力稀释问题
本质: 不只是写好一句话,而是设计好整个”上下文容器”
3. 驾驭工程(Harnessing Engineering / Agent Engineering)核心: 如何让 ...
OpenClaw 安装教程 - 你的私人 AI 助手
OpenClaw 安装教程OpenClaw 是一个强大的开源 AI 助手框架,可以帮你接管消息、管理日程、自动化各种任务。这篇教程将带你一步步完成安装和配置。
什么是 OpenClaw?你可以把 OpenClaw理解为:
🤖 私人 AI 秘书 — 帮你处理各种消息
🔄 自动化中枢 — 连接飞书、微信、Telegram 等平台
🧠 可定制智能体 — 按需求打造专属助手
系统要求
Node.js: 24.x(推荐)或 22.x LTS
系统: macOS / Linux / Windows (WSL2)
内存: 最少 2GB,推荐 4GB+
安装方式方式一:一键安装脚本(推荐)1curl -fsSL https://openclaw.ai/install.sh | bash
这个脚本会自动:
检测并安装 Node.js(如需要)
下载安装 OpenClaw
启动新手引导
如果只想安装 CLI,跳过新手引导:
1curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
方式二:npm / pnp ...
博客操作说明文档
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
使用LangGraph构建智能聊天机器人技术解析
🚀 使用LangGraph构建智能聊天机器人技术解析
本文将带您逐步实现一个具备多模态能力的智能聊天机器人,涵盖状态管理、工具调用、持久化记忆和人机协作等核心功能。以下是完整技术方案解析:
📚 目录
架构概述
环境配置
基础对话实现
增强搜索能力
记忆持久化
人工审核机制
状态热更新
部署建议
🏗️ 架构概述
本系统实现以下核心能力:
✅ 多轮次对话状态管理
✅ 实时网络搜索集成
✅ 对话历史持久化
✅ 人工审核介入机制
✅ 运行时状态热更新
⚙️ 环境配置依赖安装1234%%capture --no-stderr%pip install -U langgraph langsmith%pip install -U langchain_anthropic%pip install -U tavily-python
API密钥设置12345678910111213import getpassimport osdef _set_env(var: str): if not os.environ.get(var): os.environ[var] = ...
LEFT JOIN 中 `ON` 与 `WHERE` 过滤条件的区别分析
LEFT JOIN 中 ON 与 WHERE 过滤条件的区别分析假设有两表:
表 a
x
y
z
1
2
4
2
3
5
表 b
x
z
1
4
2
3
SQL1: a LEFT JOIN b ON a.x = b.x AND b.z = 3逻辑:
左连接过程中,同时匹配 a.x = b.x 且 b.z = 3 的行。
结果特点:
保留表 a 所有行(无论是否匹配到 b)。
b 表的匹配行需满足 b.z = 3,否则填充 NULL。
结果示例:
1234a.x | a.y | a.z | b.x | b.z-----------------------------1 | 2 | 4 | NULL| NULL -- b.z=4 不满足条件,填充NULL2 | 3 | 5 | 2 | 3 -- 匹配成功
SQL2: a LEFT JOIN b ON a.x = b.x WHERE b.z = 3逻辑:
先执行左连接(仅匹配 a.x = b.x,不限制 ...
局域网访问wsl上的服务
局域网访问 wsl 上的服务背景在 windows 的子系统(ubuntu)中启动了一个服务,但是在 windows 上可以使用 localhost 进行访问,但是没办法通过 windows 的 ip 进行访问,
例如:
windows 的 ip 为:172.19.2.xxx
wsl 上的 ip 为:172.29.131.8
在 wsl 上启动的服务端口为:9090 我在 windows 上使用 172.19.2.xxx:9090 无法访问,
但是可以使用:http://localhost:9090/ 和 http://172.29.131.8/ 进行访问,
在局域网的其他电脑不能使用 http://172.29.131.8/ 进行访问,也不能使用 http://172.19.2.xxx:9090 访问
如果我是在 windows 上启动这个服务,就可以使用 http://172.19.2.xxx:9090 访问,并且局域网也能使用 http://172.19.2.xxx:9090 访问
需求如何在宿主机 window 上或局域网其他电脑,使用 http://172.19.2.xxx: ...
本地部署视频转文字模型
本地部署视频转文字模型背景获取品牌资产种草的作品,对应的视频、图片、文本的内容,根据这些内容判断种草的作品是否合格
环境准备
ubuntu(我的),也支持 windows,macOS
python(我用的 python12)
依赖包
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106addict==2.4.0aiohappyeyeballs==2.4.6aiohttp==3.11.12aiosignal==1.3.2aliyun-python-sdk-core==2.16.0aliyun-python-sdk-kms==2.16.5altair==5.5.0antlr4-python3-runtime==4.9.3att ...
【Leetcode刷题】两个非重叠子数组的最大和
题目地址:https://leetcode.cn/problems/maximum-sum-of-two-non-overlapping-subarrays/description/
我的思路
实现比较麻烦,计算复杂
先计算出 firstLen 长度的最大和的子集,再从剩余的数组中计算 secondLen 长度的最大和的子集 ,然后相加
再计算出 secondLen 长度的最大和的子集,再从剩余的数组中计算 firstLen 长度的最大和的子集 ,然后相加
比较两个结果,取最大值
官方思路
动态规划 + 滑动窗口
首先题目给出一个长度为 n 的数组 nums。现在我们需要返回两个长度分别为 firstLen 和 secondLen 的非重叠的子数组的最大和,firstLen+secondLen≤n,其中这两段子数组的前后顺序没有要求。
由于两段子数组的前后顺序没有区别,所以现在不妨设长度为 firstLen 的子数组在长度为 secondLen 的子数组前来计算此时的两段子数组的最大和。首先我们用 nums[i,j] 来表示 nums[i],nums[i+1],…, ...
【Leetcode刷题】最近的房间
题目路径1847. 最近的房间
个人解法
关键点:
排序
TreeSet(二分查找)
数据结构
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100public class ClosestRoom { public int[] closestRoom(int[][] rooms, int[][] queries) { return main(rooms , que); } /** * 满足条件的房间 id * 例子:rooms = [[2,2],[1,2],[3,2]] * queries = [[3,1],[3,3],[5,2]] ...
【Leetcode刷题】K 次乘运算后的最终数组 I
题目路径:3264. K 次乘运算后的最终数组 I
个人解法1234567891011121314151617181920public class Solution { public int[] getFinalState(int[] nums, int k, int multiplier) { for (int i=0;i<k;i++){ fun1(nums,multiplier); } return nums; } // 获取最小值并乘以 multiplier public void fun1(int[] nums, int multiplier) { int index = 0; for (int i = 1; i < nums.length; i++) { if (nums[index] > nums[i]) { i ...






