上一篇我们从产品和架构角度解释了 AgenticSeek 为什么会受到关注它不是一个普通本地聊天页面而是一个本地优先、能调用工具、能浏览网页、能执行代码、能操作文件的 local agent 项目。这一章进入实操把 AgenticSeek 跑起来。为了降低门槛本文选择一条最适合新手的路线Ollama 本地模型 Docker Compose 启动 AgenticSeek 依赖服务 Web UI 访问 http://localhost:3000这条路线的好处是大部分服务由 Docker Compose 管理用户只需要重点理解两个配置文件.env和config.ini。本章目标读完并跟着操作后你应该能完成三件事用 Ollama 在本机启动一个本地 LLM Provider。用./start_services.sh full启动 AgenticSeek 的 Web UI、后端、搜索服务和 Redis/Valkey。在 Web UI 里提交几个简单任务验证搜索、写文件、写代码这些能力是否正常。本文也会顺手解释几个最容易踩坑的问题SEARXNG_BASE_URL为什么有时是http://searxng:8080有时是http://localhost:8080WORK_DIR应该设置成哪里config.ini里provider_name、provider_model、provider_server_address分别是什么意思Web UI 模式和 CLI 模式有什么区别为什么本地运行也要注意安全边界先看整体拓扑AgenticSeek 的 Web UI 完整模式不是只启动一个 Python 进程。按照当前项目的docker-compose.yml./start_services.sh full会启动这些服务服务默认地址作用frontendhttp://localhost:3000React Web UI用户在这里输入任务backendhttp://localhost:7777FastAPI 后端负责初始化 Provider、Browser、Agents 和 Interactionsearxnghttp://localhost:8080本地搜索聚合服务Browser Agent 用它做网页搜索redis/valkey容器内部访问给 SearxNG 和任务后端提供缓存/队列能力ollamahttp://localhost:11434本地 LLM 服务Agent 通过 Provider 调用它把它画成流程图大致是这样浏览器打开 localhost:3000 - React 前端提交 POST /query - FastAPI 后端 localhost:7777 - Interaction 选择 Agent - Agent 调用 Ollama / SearxNG / Browser / Tools - 前端轮询 latest_answer 和截图这里有一个关键点Ollama 通常运行在宿主机上而 AgenticSeek 的 backend 运行在 Docker 容器里。容器访问宿主机上的 Ollama 时会通过项目配置里的DOCKER_INTERNAL_URLhttp://host.docker.internal做地址转换。所以你在config.ini里写provider_server_address 127.0.0.1:11434Docker 后端实际会把它转成类似http://host.docker.internal:11434这也是很多本地 Agent 项目的共同坑点同一个localhost在宿主机和容器里不是同一个网络位置。环境准备本文以 macOS/Linux 为主Windows 用户可以参考 README 中的.bat脚本。你需要提前准备工具用途建议Git克隆项目任意较新版本即可Docker Desktop 或 Docker Engine启动 frontend、backend、SearxNG、Redis/Valkey需要支持 Docker Compose V2Ollama本地运行 LLM用于本章推荐路线Python 3.10CLI 模式或本地开发需要README 强烈推荐 Python 3.10.x先检查 Docker 是否可用dockerinfodockercompose version如果docker info报错说明 Docker daemon 没有启动。macOS/Windows 需要先打开 Docker DesktopLinux 可以尝试sudosystemctl startdocker再检查 Ollamaollama--version如果还没有安装 Ollama需要先到 Ollama 官网安装。安装完成后启动 Ollama 服务ollama serve这个命令会占用一个终端。如果你已经安装了桌面版 Ollama它可能已经在后台运行不一定需要手动执行。拉取一个本地模型AgenticSeek 的 README 推荐使用推理能力较强的模型例如 DeepSeek、Qwen、Magistral 这类模型。为了便于演示可以先选一个你的机器能跑得动的模型。如果你的硬件足够可以尝试ollama pull deepseek-r1:14b如果显存或内存不足可以换更小的模型但要接受一个现实模型越小Agent 路由、工具调用格式、代码修正、网页总结的稳定性通常越差。拉取完成后先做一个最小测试ollama run deepseek-r1:14b看到模型能正常回答后就可以退出对话继续配置 AgenticSeek。克隆项目并准备工作目录如果是第一次使用可以按 README 的方式克隆gitclone https://github.com/Fosowl/agenticSeek.gitcdagenticSeekcp.env.example .envREADME 中使用的是mv .env.example .env。我更建议用cp这样可以保留一份原始示例后续对照配置更方便。接着准备一个单独的工作目录mkdir-p~/agenticseek_workspace/inputmkdir-p~/agenticseek_workspace/outputmkdir-p~/agenticseek_workspace/tmp这个目录很重要。AgenticSeek 会把它挂载进 backend 容器Agent 的文件读写和部分命令执行会围绕它展开。不要一开始就把WORK_DIR指向这些目录用户主目录/Users/yourname公司代码根目录下载目录桌面包含隐私文件、密钥、合同、财务资料的目录更稳妥的方式是把需要处理的文件复制到~/agenticseek_workspace/input让 Agent 的输出落在output或tmp里。这样即使 Agent 误操作影响范围也比较可控。配置.env.env负责告诉 Docker 和后端端口、工作目录、搜索服务地址、后端地址、API Key 等环境信息是什么。打开.env重点看这几项SEARXNG_BASE_URLhttp://searxng:8080 SEARXNG_PORT8080 REDIS_BASE_URLredis://redis:6379/0 WORK_DIR/Users/username/Documents/workspace_with_my_files OLLAMA_PORT11434 BACKEND_PORT7777 BACKEND_HOST127.0.0.1 FRONTEND_ORIGINShttp://localhost:3000 REACT_APP_BACKEND_URLhttp://localhost:7777对本章的 Web UI Docker 完整模式建议这样配置SEARXNG_BASE_URLhttp://searxng:8080 SEARXNG_PORT8080 REDIS_BASE_URLredis://redis:6379/0 WORK_DIR/Users/你的用户名/agenticseek_workspace OLLAMA_PORT11434 BACKEND_PORT7777 BACKEND_HOST127.0.0.1 FRONTEND_ORIGINShttp://localhost:3000 REACT_APP_BACKEND_URLhttp://localhost:7777其中最需要理解的是这三项。WORK_DIRWORK_DIR是 Agent 可读写的宿主机目录。在docker-compose.yml里backend 服务会把它挂载到容器内的/opt/workspacevolumes:-${WORK_DIR:-.}:/opt/workspace同时 backend 容器内会设置environment:-WORK_DIR/opt/workspace所以从 Agent 视角看它操作的是/opt/workspace从你电脑视角看对应的是.env里的WORK_DIR。这也是为什么一定要给它一个单独目录。SEARXNG_BASE_URLWeb UI 完整模式下backend 在 Docker 容器里运行SearxNG 也在 Docker Compose 网络里运行。因此 backend 访问 SearxNG 要用容器服务名SEARXNG_BASE_URLhttp://searxng:8080注意这里永远是容器内部端口8080。即使你把宿主机暴露端口改成8001backend 访问 SearxNG 仍然应该是http://searxng:8080。只有 CLI 模式下后端运行在宿主机才需要改成SEARXNG_BASE_URLhttp://localhost:8080这是新手最容易混淆的地方。BACKEND_HOST.env.example对这一项写得很谨慎BACKEND_HOST127.0.0.1这意味着后端默认只绑定本机回环地址。由于/query接口没有认证而且 Agent 能运行命令默认不暴露到局域网是正确选择。除非你非常清楚自己在做什么并且有反向代理、认证、防火墙否则不要把它改成0.0.0.0。配置config.ini.env解决的是服务和环境问题config.ini解决的是 AgenticSeek 自己该怎么调用模型、怎么使用浏览器、是否恢复会话、是否开启语音等问题。一个适合本章路线的最小配置如下[MAIN] is_local True provider_name ollama provider_model deepseek-r1:14b provider_server_address 127.0.0.1:11434 agent_name Jarvis recover_last_session False save_session False speak False listen False jarvis_personality False languages en zh safe_mode True [BROWSER] headless_browser True stealth_mode False这里有几个点要特别说明。config.ini不支持行内注释README 里已经提醒过不要把带注释的示例直接复制到config.ini。例如不要写成provider_name ollama # 使用 Ollama应该写成provider_name ollama配置文件里如果混入注释可能导致解析异常或取值不符合预期。is_local本章使用 Ollama所以设置为is_local True如果你使用 OpenAI、DeepSeek、Google、Anthropic 这类云端 API Provider则通常设置为is_local False本章先不走云端 API 路线因为它会把请求内容发送到云端不符合“本地优先体验”的目标。provider_name如果你使用 Ollama应该写provider_name ollama如果你使用 LM Studio应该写provider_name lm-studio如果你使用的是本地 OpenAI-compatible server例如某些 llama.cpp server才考虑provider_name openai is_local True这几个名字不要混用。尤其是 LM StudioREADME 明确提醒不要把它写成openai。provider_model这一项必须和你的 Provider 中实际存在的模型名一致。如果你执行的是ollama pull deepseek-r1:14b那么这里就写provider_model deepseek-r1:14b如果你换成其他模型也要同步修改这里。provider_server_addressOllama 默认端口是11434所以写provider_server_address 127.0.0.1:11434即使 backend 在 Docker 里运行也可以这么写。项目的Provider会结合DOCKER_INTERNAL_URL把容器里的访问地址转到宿主机。headless_browserWeb UI Docker 模式建议保持headless_browser True因为浏览器运行在容器环境里通常不显示真实窗口。项目代码里也会在检测到 Docker 环境时强制 headless。如果你想看到真实浏览器窗口更适合后面尝试 CLI 模式。safe_mode建议第一次体验时先打开safe_mode True这样 Bash 工具会对一部分危险命令做拦截。它不是完整沙箱但对新手更友好。启动完整 Web UI 模式确认.env和config.ini配好后启动完整模式./start_services.sh full这个脚本会做几件事读取.env。检查WORK_DIR是否设置。检查 Docker 是否运行。检查 Docker Compose 是否可用。生成 SearxNG secret key。先启动 backend 并等待容器 ready。再通过 Docker Compose profile 启动完整服务。第一次启动会拉取镜像、构建前后端容器可能比较慢。README 提醒过首次运行后端可能需要几分钟。启动完成后打开浏览器http://localhost:3000如果页面能打开并且右上角状态显示 Online说明前端已经能访问后端。你也可以单独检查后端健康状态curlhttp://localhost:7777/health正常会返回类似{status:healthy,version:0.1.0}如果你想确认 SearxNG 是否能访问可以打开http://localhost:8080注意这是给人从浏览器访问的宿主机地址。backend 在 Docker 内访问 SearxNG 仍然用http://searxng:8080。第一个任务让它做一次网页搜索先从低风险任务开始不要一上来就让它改文件或执行复杂脚本。可以在 Web UI 输入进行网页搜索找出 AgenticSeek 项目的主要能力用 5 条中文要点总结。这里刻意写了“进行网页搜索”。因为 README 也提到AgenticSeek 早期路由系统不一定总能准确判断用户意图。你把动作说清楚Router 更容易把任务交给 Browser Agent。观察几个现象前端状态是否变为工作中。后端日志里是否出现 SearxNG 搜索。页面右侧是否出现浏览器截图。最终回答是否包含网页来源或搜索结果总结。如果这个任务失败先不要急着怀疑模型。优先检查SearxNG 是否能打开。.env里的SEARXNG_BASE_URL是否仍是http://searxng:8080。backend 是否能正常启动。模型是否正在运行。第二个任务让它写入工作目录确认搜索能力可用后再测试文件写入。输入进行网页搜索找出 3 个适合学习 local agent 的开源项目名称和一句话介绍并保存到 local_agent_projects.txt。如果执行成功你应该能在WORK_DIR对应的宿主机目录里看到输出文件。例如~/agenticseek_workspace/local_agent_projects.txt这里要注意Agent 在容器内看到的是/opt/workspace你在宿主机看到的是.env里配置的WORK_DIR。两者通过 Docker volume 映射到一起。如果文件没有出现可以从几个角度排查WORK_DIR路径是否真实存在。WORK_DIR是否有写权限。任务是否真的路由到了 File/Code/Planner 相关 Agent。Agent 是否只是回答了内容但没有执行保存动作。你可以把提示写得更明确请把结果保存到工作目录根目录下的 local_agent_projects.txt 文件中。第三个任务让它写一个小脚本最后测试代码执行能力。建议用一个没有外部依赖、不会修改系统状态的小脚本。输入写一个 Python 脚本统计当前工作目录下每种文件扩展名的数量并把脚本保存为 count_extensions.py然后运行它。这个任务会测试几个链路Router 是否选择 Code Agent或 Planner 是否拆解任务。LLM 是否按工具协议输出python或bash代码块。工具系统是否能解析代码块。Python 执行器是否能运行脚本。执行结果是否会反馈给 Agent。如果失败常见原因包括模型没有按 Markdown code block 格式输出代码。模型生成了需要额外依赖的代码。工作目录为空或权限不足。safe mode 拦截了部分命令。这类失败反而很适合观察 AgenticSeek 的核心机制它会把执行错误反馈给 LLM再让模型尝试修复。后面讲 Code Agent 时我们会专门拆这个循环。Web UI 和 CLI 怎么选AgenticSeek 提供 Web UI 和 CLI 两种使用方式。新手建议先用 Web UI因为它更直观也更接近产品形态。模式启动方式适合场景Web UI 完整模式./start_services.sh full新手体验、观察截图、查看执行块、完整产品流程CLI 模式./start_services.shuv run cli.py本机开发、调试浏览器窗口、语音实验、源码调试CLI 模式有一个非常关键的差异后端逻辑运行在宿主机而不是 Docker 容器里。因此.env里的 SearxNG 地址要改成宿主机地址SEARXNG_BASE_URLhttp://localhost:8080而 Web UI 完整模式应该保持SEARXNG_BASE_URLhttp://searxng:8080这两个值看起来只差一个 hostname但背后是 Docker 网络和宿主机网络的区别。常见问题排查1. Web UI 打不开先检查 frontend 容器是否启动dockerps再确认端口是否被占用lsof-i:3000如果端口被其他进程占用需要先关闭占用进程或调整 Docker Compose 配置。2. 页面显示 Offline这通常表示前端访问不到 backend。检查 backend 健康状态curlhttp://localhost:7777/health如果不通继续看 backend 日志dockercompose logs backend重点关注Provider 初始化是否失败。Ollama 是否连接失败。config.ini是否解析异常。ChromeDriver 或浏览器是否初始化失败。3. Ollama 连接失败先在宿主机确认 Ollama 可用curlhttp://localhost:11434/api/tags如果这里失败说明 Ollama 没有启动或端口不是默认11434。再检查config.iniprovider_name ollama provider_server_address 127.0.0.1:11434如果你把 Ollama 改到了其他端口需要同步修改provider_server_address和.env里的OLLAMA_PORT。4. SearxNG 搜索失败Web UI 完整模式下.env应该是SEARXNG_BASE_URLhttp://searxng:8080同时宿主机浏览器访问http://localhost:8080如果你修改了SEARXNG_PORT8001那么宿主机访问地址变成http://localhost:8001但 backend 容器里的SEARXNG_BASE_URL仍然应该保持SEARXNG_BASE_URLhttp://searxng:80805. Agent 不按预期执行任务这类问题不一定是环境错也可能是模型能力或提示词不够明确。可以尝试把提示写得更具体不要写找几个 local agent 项目。改成进行网页搜索找出 3 个 local agent 开源项目给出项目名、GitHub 地址和一句话介绍并保存到工作目录根目录下的 local_agent_projects.txt。AgenticSeek 当前仍处于早期阶段明确动作、数量、输出格式和保存路径会显著提高成功率。6. ChromeDriver 或浏览器问题Browser Agent 依赖 Selenium 和 Chrome/ChromeDriver。README 里专门列了 ChromeDriver 相关问题。如果遇到浏览器初始化失败可以先确认本机是否安装了 Chrome。Docker 日志里是否有 ChromeDriver 版本不匹配。headless_browser是否为True。是否启用了stealth_mode以及相关依赖是否齐全。初次体验建议headless_browser True stealth_mode False先把基础链路跑通再尝试更复杂的浏览器设置。小白最应该记住的配置关系如果你只想先跑起来记住下面这张表就够了配置Web UI 完整模式推荐值说明.env的SEARXNG_BASE_URLhttp://searxng:8080backend 在 Docker 内访问 SearxNG.env的SEARXNG_PORT8080宿主机访问 SearxNG 的端口.env的WORK_DIR单独创建的安全目录Agent 可读写目录.env的BACKEND_PORT7777FastAPI 后端端口.env的REACT_APP_BACKEND_URLhttp://localhost:7777前端访问后端config.ini的provider_nameollama本章使用 Ollamaconfig.ini的provider_model与ollama pull的模型名一致模型名必须能在 Ollama 中找到config.ini的provider_server_address127.0.0.1:11434Ollama 默认地址config.ini的headless_browserTrueDocker/Web UI 模式推荐config.ini的safe_modeTrue新手建议开启本章小结这一章我们把 AgenticSeek 的 Web UI 路线跑通思路梳理了一遍用 Ollama 在宿主机启动本地模型。用.env配置 Docker、SearxNG、工作目录和端口。用config.ini配置模型 Provider、模型名、浏览器和安全模式。用./start_services.sh full启动 frontend、backend、SearxNG、Redis/Valkey。通过http://localhost:3000访问 Web UI。用搜索、写文件、写脚本三个低风险任务验证链路。到这里我们已经不只是“看懂 AgenticSeek 是什么”而是可以亲手体验它的任务执行流程。下一章会进入源码主线从 Web UI 输入一句话开始沿着App.js、api.py、Interaction、Router、Agent.process()追踪一次请求到底经过了哪些对象。那一章会帮你把“跑起来的现象”和“源码里的调用链”对上。
agenticSeek | 02: 先跑起来:用 Docker、Ollama 和 Web UI 体验 AgenticSeek
上一篇我们从产品和架构角度解释了 AgenticSeek 为什么会受到关注它不是一个普通本地聊天页面而是一个本地优先、能调用工具、能浏览网页、能执行代码、能操作文件的 local agent 项目。这一章进入实操把 AgenticSeek 跑起来。为了降低门槛本文选择一条最适合新手的路线Ollama 本地模型 Docker Compose 启动 AgenticSeek 依赖服务 Web UI 访问 http://localhost:3000这条路线的好处是大部分服务由 Docker Compose 管理用户只需要重点理解两个配置文件.env和config.ini。本章目标读完并跟着操作后你应该能完成三件事用 Ollama 在本机启动一个本地 LLM Provider。用./start_services.sh full启动 AgenticSeek 的 Web UI、后端、搜索服务和 Redis/Valkey。在 Web UI 里提交几个简单任务验证搜索、写文件、写代码这些能力是否正常。本文也会顺手解释几个最容易踩坑的问题SEARXNG_BASE_URL为什么有时是http://searxng:8080有时是http://localhost:8080WORK_DIR应该设置成哪里config.ini里provider_name、provider_model、provider_server_address分别是什么意思Web UI 模式和 CLI 模式有什么区别为什么本地运行也要注意安全边界先看整体拓扑AgenticSeek 的 Web UI 完整模式不是只启动一个 Python 进程。按照当前项目的docker-compose.yml./start_services.sh full会启动这些服务服务默认地址作用frontendhttp://localhost:3000React Web UI用户在这里输入任务backendhttp://localhost:7777FastAPI 后端负责初始化 Provider、Browser、Agents 和 Interactionsearxnghttp://localhost:8080本地搜索聚合服务Browser Agent 用它做网页搜索redis/valkey容器内部访问给 SearxNG 和任务后端提供缓存/队列能力ollamahttp://localhost:11434本地 LLM 服务Agent 通过 Provider 调用它把它画成流程图大致是这样浏览器打开 localhost:3000 - React 前端提交 POST /query - FastAPI 后端 localhost:7777 - Interaction 选择 Agent - Agent 调用 Ollama / SearxNG / Browser / Tools - 前端轮询 latest_answer 和截图这里有一个关键点Ollama 通常运行在宿主机上而 AgenticSeek 的 backend 运行在 Docker 容器里。容器访问宿主机上的 Ollama 时会通过项目配置里的DOCKER_INTERNAL_URLhttp://host.docker.internal做地址转换。所以你在config.ini里写provider_server_address 127.0.0.1:11434Docker 后端实际会把它转成类似http://host.docker.internal:11434这也是很多本地 Agent 项目的共同坑点同一个localhost在宿主机和容器里不是同一个网络位置。环境准备本文以 macOS/Linux 为主Windows 用户可以参考 README 中的.bat脚本。你需要提前准备工具用途建议Git克隆项目任意较新版本即可Docker Desktop 或 Docker Engine启动 frontend、backend、SearxNG、Redis/Valkey需要支持 Docker Compose V2Ollama本地运行 LLM用于本章推荐路线Python 3.10CLI 模式或本地开发需要README 强烈推荐 Python 3.10.x先检查 Docker 是否可用dockerinfodockercompose version如果docker info报错说明 Docker daemon 没有启动。macOS/Windows 需要先打开 Docker DesktopLinux 可以尝试sudosystemctl startdocker再检查 Ollamaollama--version如果还没有安装 Ollama需要先到 Ollama 官网安装。安装完成后启动 Ollama 服务ollama serve这个命令会占用一个终端。如果你已经安装了桌面版 Ollama它可能已经在后台运行不一定需要手动执行。拉取一个本地模型AgenticSeek 的 README 推荐使用推理能力较强的模型例如 DeepSeek、Qwen、Magistral 这类模型。为了便于演示可以先选一个你的机器能跑得动的模型。如果你的硬件足够可以尝试ollama pull deepseek-r1:14b如果显存或内存不足可以换更小的模型但要接受一个现实模型越小Agent 路由、工具调用格式、代码修正、网页总结的稳定性通常越差。拉取完成后先做一个最小测试ollama run deepseek-r1:14b看到模型能正常回答后就可以退出对话继续配置 AgenticSeek。克隆项目并准备工作目录如果是第一次使用可以按 README 的方式克隆gitclone https://github.com/Fosowl/agenticSeek.gitcdagenticSeekcp.env.example .envREADME 中使用的是mv .env.example .env。我更建议用cp这样可以保留一份原始示例后续对照配置更方便。接着准备一个单独的工作目录mkdir-p~/agenticseek_workspace/inputmkdir-p~/agenticseek_workspace/outputmkdir-p~/agenticseek_workspace/tmp这个目录很重要。AgenticSeek 会把它挂载进 backend 容器Agent 的文件读写和部分命令执行会围绕它展开。不要一开始就把WORK_DIR指向这些目录用户主目录/Users/yourname公司代码根目录下载目录桌面包含隐私文件、密钥、合同、财务资料的目录更稳妥的方式是把需要处理的文件复制到~/agenticseek_workspace/input让 Agent 的输出落在output或tmp里。这样即使 Agent 误操作影响范围也比较可控。配置.env.env负责告诉 Docker 和后端端口、工作目录、搜索服务地址、后端地址、API Key 等环境信息是什么。打开.env重点看这几项SEARXNG_BASE_URLhttp://searxng:8080 SEARXNG_PORT8080 REDIS_BASE_URLredis://redis:6379/0 WORK_DIR/Users/username/Documents/workspace_with_my_files OLLAMA_PORT11434 BACKEND_PORT7777 BACKEND_HOST127.0.0.1 FRONTEND_ORIGINShttp://localhost:3000 REACT_APP_BACKEND_URLhttp://localhost:7777对本章的 Web UI Docker 完整模式建议这样配置SEARXNG_BASE_URLhttp://searxng:8080 SEARXNG_PORT8080 REDIS_BASE_URLredis://redis:6379/0 WORK_DIR/Users/你的用户名/agenticseek_workspace OLLAMA_PORT11434 BACKEND_PORT7777 BACKEND_HOST127.0.0.1 FRONTEND_ORIGINShttp://localhost:3000 REACT_APP_BACKEND_URLhttp://localhost:7777其中最需要理解的是这三项。WORK_DIRWORK_DIR是 Agent 可读写的宿主机目录。在docker-compose.yml里backend 服务会把它挂载到容器内的/opt/workspacevolumes:-${WORK_DIR:-.}:/opt/workspace同时 backend 容器内会设置environment:-WORK_DIR/opt/workspace所以从 Agent 视角看它操作的是/opt/workspace从你电脑视角看对应的是.env里的WORK_DIR。这也是为什么一定要给它一个单独目录。SEARXNG_BASE_URLWeb UI 完整模式下backend 在 Docker 容器里运行SearxNG 也在 Docker Compose 网络里运行。因此 backend 访问 SearxNG 要用容器服务名SEARXNG_BASE_URLhttp://searxng:8080注意这里永远是容器内部端口8080。即使你把宿主机暴露端口改成8001backend 访问 SearxNG 仍然应该是http://searxng:8080。只有 CLI 模式下后端运行在宿主机才需要改成SEARXNG_BASE_URLhttp://localhost:8080这是新手最容易混淆的地方。BACKEND_HOST.env.example对这一项写得很谨慎BACKEND_HOST127.0.0.1这意味着后端默认只绑定本机回环地址。由于/query接口没有认证而且 Agent 能运行命令默认不暴露到局域网是正确选择。除非你非常清楚自己在做什么并且有反向代理、认证、防火墙否则不要把它改成0.0.0.0。配置config.ini.env解决的是服务和环境问题config.ini解决的是 AgenticSeek 自己该怎么调用模型、怎么使用浏览器、是否恢复会话、是否开启语音等问题。一个适合本章路线的最小配置如下[MAIN] is_local True provider_name ollama provider_model deepseek-r1:14b provider_server_address 127.0.0.1:11434 agent_name Jarvis recover_last_session False save_session False speak False listen False jarvis_personality False languages en zh safe_mode True [BROWSER] headless_browser True stealth_mode False这里有几个点要特别说明。config.ini不支持行内注释README 里已经提醒过不要把带注释的示例直接复制到config.ini。例如不要写成provider_name ollama # 使用 Ollama应该写成provider_name ollama配置文件里如果混入注释可能导致解析异常或取值不符合预期。is_local本章使用 Ollama所以设置为is_local True如果你使用 OpenAI、DeepSeek、Google、Anthropic 这类云端 API Provider则通常设置为is_local False本章先不走云端 API 路线因为它会把请求内容发送到云端不符合“本地优先体验”的目标。provider_name如果你使用 Ollama应该写provider_name ollama如果你使用 LM Studio应该写provider_name lm-studio如果你使用的是本地 OpenAI-compatible server例如某些 llama.cpp server才考虑provider_name openai is_local True这几个名字不要混用。尤其是 LM StudioREADME 明确提醒不要把它写成openai。provider_model这一项必须和你的 Provider 中实际存在的模型名一致。如果你执行的是ollama pull deepseek-r1:14b那么这里就写provider_model deepseek-r1:14b如果你换成其他模型也要同步修改这里。provider_server_addressOllama 默认端口是11434所以写provider_server_address 127.0.0.1:11434即使 backend 在 Docker 里运行也可以这么写。项目的Provider会结合DOCKER_INTERNAL_URL把容器里的访问地址转到宿主机。headless_browserWeb UI Docker 模式建议保持headless_browser True因为浏览器运行在容器环境里通常不显示真实窗口。项目代码里也会在检测到 Docker 环境时强制 headless。如果你想看到真实浏览器窗口更适合后面尝试 CLI 模式。safe_mode建议第一次体验时先打开safe_mode True这样 Bash 工具会对一部分危险命令做拦截。它不是完整沙箱但对新手更友好。启动完整 Web UI 模式确认.env和config.ini配好后启动完整模式./start_services.sh full这个脚本会做几件事读取.env。检查WORK_DIR是否设置。检查 Docker 是否运行。检查 Docker Compose 是否可用。生成 SearxNG secret key。先启动 backend 并等待容器 ready。再通过 Docker Compose profile 启动完整服务。第一次启动会拉取镜像、构建前后端容器可能比较慢。README 提醒过首次运行后端可能需要几分钟。启动完成后打开浏览器http://localhost:3000如果页面能打开并且右上角状态显示 Online说明前端已经能访问后端。你也可以单独检查后端健康状态curlhttp://localhost:7777/health正常会返回类似{status:healthy,version:0.1.0}如果你想确认 SearxNG 是否能访问可以打开http://localhost:8080注意这是给人从浏览器访问的宿主机地址。backend 在 Docker 内访问 SearxNG 仍然用http://searxng:8080。第一个任务让它做一次网页搜索先从低风险任务开始不要一上来就让它改文件或执行复杂脚本。可以在 Web UI 输入进行网页搜索找出 AgenticSeek 项目的主要能力用 5 条中文要点总结。这里刻意写了“进行网页搜索”。因为 README 也提到AgenticSeek 早期路由系统不一定总能准确判断用户意图。你把动作说清楚Router 更容易把任务交给 Browser Agent。观察几个现象前端状态是否变为工作中。后端日志里是否出现 SearxNG 搜索。页面右侧是否出现浏览器截图。最终回答是否包含网页来源或搜索结果总结。如果这个任务失败先不要急着怀疑模型。优先检查SearxNG 是否能打开。.env里的SEARXNG_BASE_URL是否仍是http://searxng:8080。backend 是否能正常启动。模型是否正在运行。第二个任务让它写入工作目录确认搜索能力可用后再测试文件写入。输入进行网页搜索找出 3 个适合学习 local agent 的开源项目名称和一句话介绍并保存到 local_agent_projects.txt。如果执行成功你应该能在WORK_DIR对应的宿主机目录里看到输出文件。例如~/agenticseek_workspace/local_agent_projects.txt这里要注意Agent 在容器内看到的是/opt/workspace你在宿主机看到的是.env里配置的WORK_DIR。两者通过 Docker volume 映射到一起。如果文件没有出现可以从几个角度排查WORK_DIR路径是否真实存在。WORK_DIR是否有写权限。任务是否真的路由到了 File/Code/Planner 相关 Agent。Agent 是否只是回答了内容但没有执行保存动作。你可以把提示写得更明确请把结果保存到工作目录根目录下的 local_agent_projects.txt 文件中。第三个任务让它写一个小脚本最后测试代码执行能力。建议用一个没有外部依赖、不会修改系统状态的小脚本。输入写一个 Python 脚本统计当前工作目录下每种文件扩展名的数量并把脚本保存为 count_extensions.py然后运行它。这个任务会测试几个链路Router 是否选择 Code Agent或 Planner 是否拆解任务。LLM 是否按工具协议输出python或bash代码块。工具系统是否能解析代码块。Python 执行器是否能运行脚本。执行结果是否会反馈给 Agent。如果失败常见原因包括模型没有按 Markdown code block 格式输出代码。模型生成了需要额外依赖的代码。工作目录为空或权限不足。safe mode 拦截了部分命令。这类失败反而很适合观察 AgenticSeek 的核心机制它会把执行错误反馈给 LLM再让模型尝试修复。后面讲 Code Agent 时我们会专门拆这个循环。Web UI 和 CLI 怎么选AgenticSeek 提供 Web UI 和 CLI 两种使用方式。新手建议先用 Web UI因为它更直观也更接近产品形态。模式启动方式适合场景Web UI 完整模式./start_services.sh full新手体验、观察截图、查看执行块、完整产品流程CLI 模式./start_services.shuv run cli.py本机开发、调试浏览器窗口、语音实验、源码调试CLI 模式有一个非常关键的差异后端逻辑运行在宿主机而不是 Docker 容器里。因此.env里的 SearxNG 地址要改成宿主机地址SEARXNG_BASE_URLhttp://localhost:8080而 Web UI 完整模式应该保持SEARXNG_BASE_URLhttp://searxng:8080这两个值看起来只差一个 hostname但背后是 Docker 网络和宿主机网络的区别。常见问题排查1. Web UI 打不开先检查 frontend 容器是否启动dockerps再确认端口是否被占用lsof-i:3000如果端口被其他进程占用需要先关闭占用进程或调整 Docker Compose 配置。2. 页面显示 Offline这通常表示前端访问不到 backend。检查 backend 健康状态curlhttp://localhost:7777/health如果不通继续看 backend 日志dockercompose logs backend重点关注Provider 初始化是否失败。Ollama 是否连接失败。config.ini是否解析异常。ChromeDriver 或浏览器是否初始化失败。3. Ollama 连接失败先在宿主机确认 Ollama 可用curlhttp://localhost:11434/api/tags如果这里失败说明 Ollama 没有启动或端口不是默认11434。再检查config.iniprovider_name ollama provider_server_address 127.0.0.1:11434如果你把 Ollama 改到了其他端口需要同步修改provider_server_address和.env里的OLLAMA_PORT。4. SearxNG 搜索失败Web UI 完整模式下.env应该是SEARXNG_BASE_URLhttp://searxng:8080同时宿主机浏览器访问http://localhost:8080如果你修改了SEARXNG_PORT8001那么宿主机访问地址变成http://localhost:8001但 backend 容器里的SEARXNG_BASE_URL仍然应该保持SEARXNG_BASE_URLhttp://searxng:80805. Agent 不按预期执行任务这类问题不一定是环境错也可能是模型能力或提示词不够明确。可以尝试把提示写得更具体不要写找几个 local agent 项目。改成进行网页搜索找出 3 个 local agent 开源项目给出项目名、GitHub 地址和一句话介绍并保存到工作目录根目录下的 local_agent_projects.txt。AgenticSeek 当前仍处于早期阶段明确动作、数量、输出格式和保存路径会显著提高成功率。6. ChromeDriver 或浏览器问题Browser Agent 依赖 Selenium 和 Chrome/ChromeDriver。README 里专门列了 ChromeDriver 相关问题。如果遇到浏览器初始化失败可以先确认本机是否安装了 Chrome。Docker 日志里是否有 ChromeDriver 版本不匹配。headless_browser是否为True。是否启用了stealth_mode以及相关依赖是否齐全。初次体验建议headless_browser True stealth_mode False先把基础链路跑通再尝试更复杂的浏览器设置。小白最应该记住的配置关系如果你只想先跑起来记住下面这张表就够了配置Web UI 完整模式推荐值说明.env的SEARXNG_BASE_URLhttp://searxng:8080backend 在 Docker 内访问 SearxNG.env的SEARXNG_PORT8080宿主机访问 SearxNG 的端口.env的WORK_DIR单独创建的安全目录Agent 可读写目录.env的BACKEND_PORT7777FastAPI 后端端口.env的REACT_APP_BACKEND_URLhttp://localhost:7777前端访问后端config.ini的provider_nameollama本章使用 Ollamaconfig.ini的provider_model与ollama pull的模型名一致模型名必须能在 Ollama 中找到config.ini的provider_server_address127.0.0.1:11434Ollama 默认地址config.ini的headless_browserTrueDocker/Web UI 模式推荐config.ini的safe_modeTrue新手建议开启本章小结这一章我们把 AgenticSeek 的 Web UI 路线跑通思路梳理了一遍用 Ollama 在宿主机启动本地模型。用.env配置 Docker、SearxNG、工作目录和端口。用config.ini配置模型 Provider、模型名、浏览器和安全模式。用./start_services.sh full启动 frontend、backend、SearxNG、Redis/Valkey。通过http://localhost:3000访问 Web UI。用搜索、写文件、写脚本三个低风险任务验证链路。到这里我们已经不只是“看懂 AgenticSeek 是什么”而是可以亲手体验它的任务执行流程。下一章会进入源码主线从 Web UI 输入一句话开始沿着App.js、api.py、Interaction、Router、Agent.process()追踪一次请求到底经过了哪些对象。那一章会帮你把“跑起来的现象”和“源码里的调用链”对上。