文章目录
- Agent:智能体
- [Function Calling:输出格式约定](#Function Calling:输出格式约定)
- MCP:模型上下文协议
-
- [MCP Host](#MCP Host)
- MCPServer和Tool
- 区分
-
- [Function Calling vs MCP](#Function Calling vs MCP)
- RAG
- Search
- LangChain:程序化开发流程
- Workflow:非程序化开发流程
- SKILL:Tool+说明文档
- [Context Engineering:上下文工程](#Context Engineering:上下文工程)
-
- [Context Compression](#Context Compression)
- Sub-Agent:子智能体
- Memory
-
- [记忆的检索:RAG / 语义嵌入匹配](#记忆的检索:RAG / 语义嵌入匹配)
- HEARTBEAT:心跳机制
-
- [Crob Job系统](#Crob Job系统)
- uv环境
- [OpenClaw 安装步骤](#OpenClaw 安装步骤)
Agent:智能体
- 简单来说,LLM只能输出文本内容,不能改变环境(帮你做事),也不能感知环境的变化(感知事情是否完成)。
- Agent:源自强化学习,能够感知和改变环境。
ReAct:推理-执行架构
执行流程:
- 用户首先提交任务,然后LLM进行思考并输出应该做的行动;
- Agent程序负责接受LLM的请求 ,然后调用对应的工具(实现上为python函数或者API接口),返回观察结果
- 用户的提示词+思考过程+返回的结果都会被传入LLM作为上下文(堆叠上下文的方式),然后LLM又会输出新的执行。
- 知道LLM知道任务已经完成,返回最终答案。


Plan-Act:规划-执行架构
- Plan模型负责首先提出一个朴素但完整的计划
- 执行Agent负责执行这个计划中的特定步骤,然后返回一个观察
- Agent主程序拼接用户输入+上一次输入的计划+上一次输出的观察输入给Re-Plan模型
- Replan模型会更新新的计划:删除已经完成的部分 ,对剩余计划进行进一步细化或者修改。
- 重复此流程。

执行流程:

Function Calling:输出格式约定
- 本质就是特殊的提示词,要约定LLM的输出格式,方便解析LLM的输出并且调用工具。
- LLM擅长角色扮演和指令追随,Agent程序负责协调LLM的输出并真正参与调用工具 ,因此需要格式化LLM的输出,这是通过系统提示词约束的来的。

MCP:模型上下文协议

MCP Host
- MCP主机,简单来说就是一个智能体。
- 本质是一个支持MCP协议的软件。

MCPServer和Tool
- MCPServer:MCP服务提供商,就是一个python程序 ,程序提供了多个功能,又称之为tool 。


区分
Function Calling vs MCP
- 前者约定LLM输出格式 ,后者约定LLM如何调用工具 。

RAG
Search
LangChain:程序化开发流程
Workflow:非程序化开发流程
SKILL:Tool+说明文档
- 将已有的程序和说明文档在对话前传入Agent
- 相当于把提示词换一个地方存起来,用于一个固定位置的文档说明 。

Context Engineering:上下文工程
Context Compression


Sub-Agent:子智能体
- 将繁杂的任务模块化,分为多个subagent,subagent之间的上下文是不影响的。
- 最终将subagent的处理结果汇集给agent,用于完成最终的任务。
- 优势:LLM没有记忆,如果直接用agent完成繁杂的任务很可能token损耗过多,上下文窗口过大,但是如果使用subagent,agent的上下文只有最重要的结果部分,可以节省上下文 。

Memory
- Agents.md控制Agent的基本行为:例如记忆,工具调用等行为。
- 主要存储于memory.md,memory/*(日记系统)


记忆的检索:RAG / 语义嵌入匹配


记忆的失败案例:光说不练
- 没有写入memory/*文件夹下

HEARTBEAT:心跳机制
- 简单来说就是单独写一段prompt,让Agent在指定阶段将prompt传入给LLM作出一些事情出来。

Crob Job系统
uv环境
uv中tool的概念
uvx=uvx tool run:临时将某个tool加载到隔离的虚拟环境中并且运行。uvx tool install:将tool及其依赖安装到隔离的环境中,与pip install不同。
OpenClaw 安装步骤
系统信息
- ubuntu22.04
- 公共服务器:无sudo权限。
安装过程
无sudo命令安装node.js 24
-
使用wget命令下载预编译包 ,然后解压缩得到二进制包,可以直接使用。

-
对于~/.bashrc:文件
python
export PATH=/home/a2023102747/node-v24.14.0-linux-x64/bin:$PATH