快速、可靠地在 OpenClaw 环境中安装和配置 DeerFlow 2.0 Super Agent。
bash
# 直接调用技能(示例)
skill: deerflow-install
参数: environment=openclaw, model=step-3.5-flash, proxy=http://your-proxy:port
或通过自然语言:
bash
# 检查 Python 版本(推荐 3.12+,3.11 需要补丁)
python3 --version # 应 >= 3.11
# 检查 Docker 权限(Docker 模式需要)
groups $USER | grep docker # 应在 docker 组
# 检查端口占用
netstat -tlnp | grep -E "2024|8091"
常见问题:
sudo usermod -aG docker $USERbash
cd /vol1/@apphome/trim.openclaw/data/workspace
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
如果网络慢,可以使用镜像或代理。
bash
make docker-init # 首次拉取 sandbox 镜像
make docker-start # 启动所有服务
优点:环境隔离,无 Python 版本问题。
如果使用 Python 3.11, 必须应用以下补丁:
bash
# 1. 修复 typing.override 和 TypedDict 导入
find backend/packages/harness/deerflow -name "*.py" -exec \
sed -i 's/from typing import override/from typing_extensions import override/' {} \;
find backend/packages/harness/deerflow -name "*.py" -exec \
sed -i 's/from typing import TypedDict/from typing_extensions import TypedDict/' {} \;
# 2. 修复 PEP 695 函数泛型(如果有)
# 手动修改 deerflow/reflection/resolvers.py 第 75 行:
# def resolve_variable[T] → def resolve_variable(T)
然后创建虚拟环境并安装依赖:
bash
cd backend
python3 -m venv .venv
source .venv/bin/activate # 或直接使用 .venv/bin/pip
pip install -U pip
pip install fastapi uvicorn httpx langchain langchain-openai \
langgraph-cli[inmem] langgraph-checkpoint-sqlite tavily-python
1. 环境变量文件( .env):
env
OPENROUTER_API_KEY=your-key-here
TAVILY_API_KEY=your-key-here
INFOQUEST_API_KEY=your-key-here # 可选备用
2. 模型配置( config.yaml):
确保模型 ID 正确:
yaml
models:
- name: step-3.5-flash
model: stepfun/step-3.5-flash:free # OpenRouter 免费模型
api_key: $OPENROUTER_API_KEY
base_url: https://openrouter.ai/api/v1
3. 工具配置(默认启用):
yaml
tools:
- name: web_search
use: deerflow.community.tavily.tools:web_search_tool
api_key: $TAVILY_API_KEY
- name: ls
use: deerflow.sandbox.tools:ls_tool
- name: read_file
use: deerflow.sandbox.tools:read_file_tool
- name: write_file
use: deerflow.sandbox.tools:write_file_tool
- name: str_replace
use: deerflow.sandbox.tools:str_replace_tool
- name: bash
use: deerflow.sandbox.tools:bash_tool
LangGraph Server(端口 2024):
bash
cd backend
export DEER_FLOW_CONFIG_PATH=../config.yaml
export PYTHONPATH=$(pwd):.
# 允许阻塞调用(Python 3.11 必需)
nohup .venv/bin/langgraph dev \
--port 2024 \
--no-browser \
--no-reload \
--allow-blocking \
> /tmp/langgraph.log 2>&1 &
Gateway Lite(端口 8091):
bash
nohup .venv/bin/python gateway_lite.py > /tmp/gateway.log 2>&1 &
验证:
bash
curl http://localhost:2024/openapi.json # 应返回 JSON
curl http://localhost:8091/health # 应返回 {"status":"healthy"}
1. 创建技能目录:
bash
mkdir -p ./skills/deerflow/scripts
2. 编写客户端脚本( scripts/deerflow_client.py):
包含以下功能:
chat(message) → 调用 Gateway /api/chatlist_models() → 调用 /api/modelslist_skills() → 调用 /api/skills3. 注册技能:
创建 _meta.json 和 SKILL.md,描述能力、触发词、使用示例。
4. 测试:
bash
python3 skills/deerflow/scripts/deerflow_client.py "你好"
问题原因解决方案from typing import override 错误Python 3.11 不支持 3.12+ 特性批量替换为 typing_extensions.override``def foo[T] 语法错误PEP 695 函数泛型(3.12+)移除泛型或使用 TypeVarTypedDict 导入失败3.11 需从 typing_extensions 导入替换导入源BlockingError: os.getcwd()blockbuster 检测同步阻塞使用 --allow-blocking 并设置 DEER_FLOW_CONFIG_PATH``/runs/wait 返回空消息在顶层 messages 而非 values从 wait_data.get("messages") 提取GRAPH_RECURSION_LIMIT 错误默认递归 25,深度任务超限调用时设置 config.recursion_limit=200+web_search 报错"技术问题"Tavily API 配额耗尽切换 InfoQuest 或检查配额文件操作"无法访问"Sandbox 权限/路径问题使用 /tmp 测试,调整 sandbox 配置
/tmp/langgraph*.log 和 /tmp/gateway*.lognohup 或 systemd,创建 start_all.sh 一键脚本OPENROUTER_API_KEY, TAVILY_API_KEY, DEER_FLOW_CONFIG_PATH--allow-blockingconfig.yaml 中 model 格式正确( stepfun/step-3.5-flash:free)messages 而非 valuesrecursion_limit>=100bash
#!/bin/bash
# start_all.sh
cd /vol1/@apphome/trim.openclaw/data/workspace/deer-flow/backend
export DEER_FLOW_CONFIG_PATH=../config.yaml
export PYTHONPATH=$(pwd):.
# 启动 LangGraph
nohup .venv/bin/langgraph dev --port 2024 --no-browser --no-reload --allow-blocking &
sleep 5
# 启动 Gateway
nohup .venv/bin/python gateway_lite.py &
sleep 2
echo "DeerFlow 已启动:http://localhost:8091"
最后更新:2026年3月29日
维护者:OpenClaw Agent (小飞侠)