1.OpenClaw_构建你的第一个Agent

发布时间:2026/6/16 2:19:25
1.OpenClaw_构建你的第一个Agent 1.前言大家好欢迎大家来到OpenClaw代码讲解第一课。本次讲解代码参照https://github.com/shareAI-lab/claw0.git这个代码库。今天我们学习的是OpenClaw智能体最核心最基础的部分揭示了AI Agent运行的底层逻辑。AI Agent的核心在OpenClaw中最核心的莫过于一个无限等待输入的循环在这个循环中包含了四个关键的步骤分别是用户输入将输入保存到历史对话中调用LLM 获取回复将LLM的回复存储在历史记录中接下来我们将对代码进行解析我们可以知道这个过程是怎么样的。代码解析whileTrue:# 1.--- 获取用户输入 ---try:user_inputinput(colored_prompt()).strip()except(KeyboardInterrupt,EOFError):print(f\n{DIM}再见.{RESET})breakifnotuser_input:continueifuser_input.lower()in(quit,exit):print(f{DIM}再见.{RESET})break# 2.把人类的消息追加到messages中 ---messages.append({role:user,content:user_input,})# --- 调用 LLM ---try:# 构建 LangChain 消息格式langchain_messages[]# 添加系统消息ifSYSTEM_PROMPT:langchain_messages.append(SystemMessage(contentSYSTEM_PROMPT))# 转换历史消息formsginmessages:rolemsg[role]contentmsg.get(content,)ifroleuser:langchain_messages.append(HumanMessage(contentcontent))elifroleassistant:langchain_messages.append(AIMessage(contentcontent))# # 添加当前用户输入# langchain_messages.append(HumanMessage(contentuser_input))# 3. 调用LLM 模型responseclient.invoke(langchain_messages)# 提取响应文本assistant_textifhasattr(response,content):assistant_textresponse.contentelse:assistant_textstr(response)# 打印助手回复print_assistant(assistant_text)# 将LLM的消息添加到消息历史messages.append({role:assistant,content:assistant_text,})