跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashAI

Ubuntu22.04 安装与配置 OpenClaw AI 助手教程

介绍在 Ubuntu 22.04 系统上安装和配置 OpenClaw AI 助手的步骤。内容包括一键安装脚本、模型接入(DeepSeek、GLM、MiniMax 等)、通讯渠道配置(飞书、钉钉)以及 Web 搜索功能(Exa)的设置。通过配置多模型切换和工具调用,实现 AI 辅助编程与任务自动化。

魔尊发布于 2026/4/6更新于 2026/7/2063 浏览
Ubuntu22.04 安装与配置 OpenClaw AI 助手教程
Ubuntu22.04 安装 OpenClaw
  • 准备工作
    • 一键安装
    • 设置通道 配置飞书
  • 让 ai 员工更好用
    • 加入免费的模型
    • 配置钉钉
    • 在 GLM-4.7-Flash 基础上加入 deepseek
    • 加入 minimax 和豆包模型
    • 配置 web 搜索
      • .env File
    • Exa MCP Server for OpenAI Codex
    • Quick Start
      • cURL
    • Function Calling / Tool Use
      • OpenAI Function Calling
      • Anthropic Tool Use
    • Search Type Reference
    • Content Configuration
    • Domain Filtering (Optional)
    • Web Search Tool
    • Category Examples
      • People Search (category: "people")
      • Company Search (category: "company")
      • News Search (category: "news")
      • Research Papers (category: "research paper")
      • Tweet Search (category: "tweet")
    • Content Freshness (maxAgeHours)
    • Other Endpoints
    • Troubleshooting
    • Resources

本项目旨在通过安装 OpenClaw,利用 AI 辅助实现 Gnuradio 移植、FPGA 程序编写、射频及 ARM Linux 编程。

准备工作

请参考官网获取最新信息:https://clawd.org.cn/

一键安装

curl -fsSL https://clawd.org.cn/install.sh | sudo bash

输入 Y 确认安装。

需要配置 DeepSeek API Key。访问 https://platform.deepseek.com/sign_in 注册并获取 API Key,在安装终端中输入。

设置通道 配置飞书

需创建飞书机器人。访问 https://open.feishu.cn 进入开发者后台,注册用户并创建 AI 机器人。

创建成功后记录 App ID 和 App Secret。在后续安装终端中填入 App ID 和 Secret。

也可使用命令单独配置:

openclaw-cn configure --section channels

如有问题,运行 openclaw-cn onboard --install-daemon 重新配置。

若 Gateway 未安装导致无法打开网页端,执行以下命令安装必备工具:

sudo apt install net-tools

让 ai 员工更好用

加入免费的模型

配置 GLM-4.7-Flash 官方免费 API。访问 https://bigmodel.cn/ 注册开发者并获取 API Key。

在控制台新建 API Key 后复制,写入 openclaw.json 文件:

{
  "models": {
    "providers": {
      "glm": {
        "baseUrl": "https://open.bigmodel.cn/api/paas/v4",
        "apiKey": "你的 apiKey",
        "api": "openai-completions",
        "models": [
          {
            "id": "glm-4.7-flash",
            "name": "GLM-4.7 Flash",
            "contextWindow": 128000,
            "maxTokens": 4096,
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "glm/glm-4.7-flash"
      },
      "maxConcurrent": 4,
      "subagents": {
        "maxConcurrent": 8
      }
    }
  }
}

重启 OpenClaw:

openclaw-cn gateway restart

配置钉钉

访问 https://open-dev.dingtalk.com 在钉钉开发者平台获取 Client ID (AppKey) 和 Client Secret (AppSecret)。

在'权限管理'中添加权限:

  • Card.Instance.Write(卡片实例写权限)
  • Card.Streaming.Write(卡片流式写权限)
  • im:message(消息相关权限)

安装钉钉插件(默认未内置):

openclaw-cn plugins install https://github.com/soimy/clawdbot-channel-dingtalk.git

在 GLM-4.7-Flash 基础上加入 deepseek

修改 openclaw.json 配置文件加入 DeepSeek API Key,当 GLM 免费 Token 不足时自动切换。 重启服务:

openclaw-cn gateway restart

加入 minimax 和豆包模型

  1. MiniMax M2.5:访问 https://api.minimax.chat/ 注册登录获取 API Key。
  2. Seedance2.0:访问 https://console.volcengine.com/ark/ 开通火山方舟服务,在'API Key 管理'页面创建 Key。

之后配置 openclaw.json 即可接入多个大模型。

配置 web 搜索

访问 https://exa.ai/ 免费注册并获取 API Key。

将 API Key 告知 OpenClaw 进行配置:

export EXA_API_KEY="YOUR_API_KEY"

或在 .env 文件中添加:

EXA_API_KEY=YOUR_API_KEY

重启服务:

openclaw-cn gateway restart
.env File
EXA_API_KEY=YOUR_API_KEY

Exa MCP Server for OpenAI Codex

为 OpenAI Codex 提供实时 Web 搜索、代码上下文和公司研究功能。

运行命令:

codex mcp add exa --url https://mcp.exa.ai/mcp?exaApiKey=YOUR_API_KEY

启用特定工具:

https://mcp.exa.ai/mcp?exaApiKey=YOUR_API_KEY&tools=web_search_exa,get_code_context_exa,people_search_exa

启用所有工具:

https://mcp.exa.ai/mcp?exaApiKey=YOUR_API_KEY&tools=web_search_exa,web_search_advanced_exa,get_code_context_exa,crawling_exa,company_research_exa,people_search_exa,deep_researcher_start,deep_researcher_check

故障排除: 如果工具未显示,更新配置后重启 MCP 客户端。

Quick Start

cURL
curl -X POST 'https://api.exa.ai/search' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ "query": "latest developments in AI safety research", "type": "auto", "num_results": 10, "contents": { "text": { "max_characters": 20000 } } }'

Function Calling / Tool Use

函数调用允许 AI 代理根据对话上下文动态决定何时搜索网络。

OpenAI Function Calling
import json
from openai import OpenAI
from exa_py import Exa

openai = OpenAI()
exa = Exa()

tools = [{"type":"function","function":{"name":"exa_search","description":"Search the web for current information.","parameters":{"type":"object","properties":{"query":{"type":"string","description":"Search query"}},"required":["query"]}}}]

def exa_search(query:str)->str:
    results = exa.search_and_contents(query,type="auto", num_results=10, text={"max_characters":20000})
    return "\n".join([f"{r.title}: {r.url}" for r in results.results])

messages = [{"role":"user","content":"What's the latest in AI safety?"}]
response = openai.chat.completions.create(model="gpt-4o", messages=messages, tools=tools)
if response.choices[0].message.tool_calls:
    tool_call = response.choices[0].message.tool_calls[0]
    search_results = exa_search(json.loads(tool_call.function.arguments)["query"])
    messages.append(response.choices[0].message)
    messages.append({"role":"tool","tool_call_id": tool_call.id,"content": search_results})
final = openai.chat.completions.create(model="gpt-4o", messages=messages)
print(final.choices[0].message.content)
Anthropic Tool Use
import anthropic
from exa_py import Exa

client = anthropic.Anthropic()
exa = Exa()

tools = [{"name":"exa_search","description":"Search the web for current information.","input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query"}},"required":["query"]}}]

def exa_search(query:str)->str:
    results = exa.search_and_contents(query,type="auto", num_results=10, text={"max_characters":20000})
    return "\n".join([f"{r.title}: {r.url}" for r in results.results])

messages = [{"role":"user","content":"Latest quantum computing developments?"}]
response = client.messages.create(model="claude-sonnet-4-20250514", max_tokens=4096, tools=tools, messages=messages)
if response.stop_reason == "tool_use":
    tool_use = next(b for b in response.content if b.type=="tool_use")
    tool_result = exa_search(tool_use.input["query"])
    messages.append({"role":"assistant","content": response.content})
    messages.append({"role":"user","content":[{"type":"tool_result","tool_use_id": tool_use.id,"content": tool_result}]})
final = client.messages.create(model="claude-sonnet-4-20250514", max_tokens=4096, tools=tools, messages=messages)
print(final.content[0].text)

Search Type Reference

TypeBest ForSpeedDepth
fastReal-time apps, autocomplete, quick lookupsFastestBasic
autoMost queries - balanced relevance & speedMediumSmart
deepResearch, enrichment, thorough resultsSlowDeep
deep-reasoningComplex research, multi-step reasoningSlowestDeepest

Tip: type="auto" works well for most queries. Use type="deep" when you need thorough research results.

Content Configuration

Choose ONE content type per request:

TypeConfigBest For
Text"text": {"max_characters": 20000}Full content extraction, RAG
Highlights"highlights": {"max_characters": 4000}Snippets, summaries, lower cost

Warning: Using text: true can significantly increase token count. Add max_characters limit or use highlights.

Domain Filtering (Optional)

Usually not needed. Example:

{"includeDomains":["arxiv.org","github.com"],"excludeDomains":["pinterest.com"]}

Web Search Tool

{"query":"latest developments in AI safety research","num_results":10,"contents":{"text":{"max_characters":20000}}}

Tips:

  • Use type: "auto" for most queries
  • Great for building search-powered chatbots or agents
  • Combine with contents for RAG workflows

Category Examples

Use category filters to search dedicated indexes.

People Search (category: "people")

Find people by role, expertise, or what they work on.

curl -X POST 'https://api.exa.ai/search' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ "query": "software engineer distributed systems", "category": "people", "type": "auto", "num_results": 10 }'

Tips: Use SINGULAR form. Describe what they work on.

Company Search (category: "company")

Find companies by industry, criteria, or attributes.

curl -X POST 'https://api.exa.ai/search' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ "query": "AI startup healthcare", "category": "company", "type": "auto", "num_results": 10 }'

Tips: Use SINGULAR form. Simple entity queries.

News Search (category: "news")

News articles.

curl -X POST 'https://api.exa.ai/search' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ "query": "OpenAI announcements", "category": "news", "type": "auto", "num_results": 10, "contents": { "text": { "max_characters": 20000 } } }'

Tips: Use livecrawl: "preferred" for breaking news.

Research Papers (category: "research paper")

Academic papers.

curl -X POST 'https://api.exa.ai/search' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ "query": "transformer architecture improvements", "category": "research paper", "type": "auto", "num_results": 10, "contents": { "text": { "max_characters": 20000 } } }'

Tips: Includes arxiv.org, paperswithcode.com.

Tweet Search (category: "tweet")

Twitter/X posts.

curl -X POST 'https://api.exa.ai/search' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ "query": "AI safety discussion", "category": "tweet", "type": "auto", "num_results": 10, "contents": { "text": { "max_characters": 20000 } } }'

Tips: Good for real-time discussions.

Content Freshness (maxAgeHours)

maxAgeHours sets the maximum acceptable age for cached content.

ValueBehaviorBest For
24Use cache if less than 24 hours old, otherwise livecrawlDaily-fresh content
1Use cache if less than 1 hour old, otherwise livecrawlNear real-time data
0Always livecrawl (ignore cache entirely)Real-time data where cached content is unusable
-1Never livecrawl (cache only)Maximum speed, historical/static content
(omit)Default behaviorRecommended — balanced speed and freshness

Other Endpoints

Beyond /search, Exa offers these endpoints:

EndpointDescriptionDocs
/contentsGet contents for known URLsDocs
/answerQ&A with citations from web searchDocs

Example - Get contents for URLs:

POST /contents
{"urls":["https://example.com/article"],"text":{"max_characters":20000}}

Troubleshooting

Results not relevant?

  1. Try type: "auto"
  2. Try type: "deep"
  3. Refine query
  4. Check category matches your use case

Need structured data from search?

  1. Use type: "deep" or type: "deep-reasoning" with outputSchema

Results too slow?

  1. Use type: "fast"
  2. Reduce num_results
  3. Skip contents if you only need URLs

No results?

  1. Remove filters
  2. Simplify query
  3. Try type: "auto"

Resources

  • Docs: https://exa.ai/docs
  • Dashboard: https://dashboard.exa.ai
  • API Status: https://status.exa.ai

目录

  1. Ubuntu22.04 安装 OpenClaw
  2. 准备工作
  3. 一键安装
  4. 设置通道 配置飞书
  5. 让 ai 员工更好用
  6. 加入免费的模型
  7. 配置钉钉
  8. 在 GLM-4.7-Flash 基础上加入 deepseek
  9. 加入 minimax 和豆包模型
  10. 配置 web 搜索
  11. .env File
  12. Exa MCP Server for OpenAI Codex
  13. Quick Start
  14. cURL
  15. Function Calling / Tool Use
  16. OpenAI Function Calling
  17. Anthropic Tool Use
  18. Search Type Reference
  19. Content Configuration
  20. Domain Filtering (Optional)
  21. Web Search Tool
  22. Category Examples
  23. People Search (category: "people")
  24. Company Search (category: "company")
  25. News Search (category: "news")
  26. Research Papers (category: "research paper")
  27. Tweet Search (category: "tweet")
  28. Content Freshness (maxAgeHours)
  29. Other Endpoints
  30. Troubleshooting
  31. Resources
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 告别查重焦虑:PaperZZ 论文查重 + AIGC 检测双引擎,让论文投稿 “一次过审”
  • Kubernetes 视角下的 Ceph 架构入门指南
  • Python 开发工具 uv 安装、配置与最佳实践
  • 基于 Spring Boot 与 WebSocket 的 Java 实时聊天室系统
  • 基于 STM32 的智能宠物喂食系统设计与实现
  • 为什么选择 Python:语言特性、应用场景与职业发展指南
  • 初识 AI 大语言模型:核心概念与能力解析
  • 基于 Microi 吾码低代码框架构建 Vue 高效应用
  • Linux 信号机制详解:产生与处理
  • 前端 html2canvas 使用场景详解
  • Stable Diffusion v1.5 Archive 跨平台效果一致性复现指南
  • 大模型开发基本功:推荐几个练手程序与优化实践
  • C++ 继承:面向对象代码复用的核心机制
  • OpenClaw Web UI 访问报错 Not Found 问题排查与解决
  • Linux 部署 Ollama+Qwen+OpenClaw 对接飞书本地大模型
  • LangChain 架构演进与功能扩展:流式事件处理、事件过滤及回调策略
  • 昇腾平台 DeepSeek-R1 与 Qwen2.5 强化学习训练优化实践
  • MySQL 数据类型深度解析:选对类型提升性能与空间效率
  • C# 扩展 Dynamics 365 Copilot:自定义插件与场景实现
  • Mem0:为 LLM 提供个性化记忆的开源项目实战指南

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online