AgenticSeek 的 WORK_DIR 工作目录怎么设置才能让代理读写本地文件?
2026/9/13 22:44:37 网站建设 项目流程

AgenticSeek 的 WORK_DIR 工作目录怎么设置才能让代理读写本地文件?

【免费下载链接】agenticSeekFully Local Manus AI. No APIs, No $200 monthly bills. Enjoy an autonomous agent that thinks, browses the web, and code for the sole cost of electricity.项目地址: https://gitcode.com/GitHub_Trending/ag/agenticSeek

AgenticSeek 的代理(File Agent 等)只能在WORK_DIR指向的目录内读写文件,目录外的路径会被直接拒绝。要让代理处理你机器上某个具体文件夹里的文件(比如把搜索结果保存成rennes_cafes.txt、把 Go 程序保存为factorial.go),需要先把这个目录通过WORK_DIR环境变量配置进.env,再启动 Docker 服务让 backend 容器挂载它。适用前提:已克隆仓库并完成mv .env.example .env,Docker 已安装并运行(Web 界面模式)。

设置 WORK_DIR 前必须满足的三个条件

start_services.sh 在启动任何容器之前会依次校验WORK_DIR,三条不满足都会直接报错退出:

# 1. WORK_DIR 未设置 Error: WORK_DIR environment variable is not set. Please set it in your .env file. # 2. WORK_DIR 指向仓库根目录(脚本用真实路径对比,软链接也算) Error: WORK_DIR must not be the AgenticSeek repository root. Set WORK_DIR to a separate folder for agent file access, e.g. ~/Documents/agenticseek_workspace # 3. 目录内容超过 20GB Error: WORK_DIR (...) contains more than 20GB of data (...)

也就是说:WORK_DIR必须是一个独立于 agenticSeek 仓库根目录的、内容总量不超过 20GB 的本地文件夹。选目录时按脚本提示用一个专用文件夹(如~/Documents/agenticseek_workspace)是最稳的做法——代理在里面执行 bash 命令和文件操作,目录里放了什么它就可能动什么。

在 .env 中配置 WORK_DIR

在仓库根目录的.env文件(由.env.example复制而来)中修改WORK_DIR这一行,填你本机文件夹的绝对路径:

WORK_DIR="/Users/username/Documents/workspace_with_my_files"

上面是 .env.example 中的原始示例值,README 中给的另一个示例是WORK_DIR="/Users/mlg/Documents/workspace_for_ai",两者都要替换成你自己机器的路径(Linux 下即/home/用户名/...这类绝对路径)。

如果目标目录还不存在,不用手动创建:backend 启动时会确保目录存在,缺失的WORK_DIR会被自动建出来(sources/workspace.py 中的ensure_work_dir(),tests/test_workspace.py 中test_ensure_work_dir_creates_missing_directory验证了这一行为)。

修改.env后必须重启服务才生效——.env只在进程启动时读取,Docker 的挂载关系也是在容器创建时确定的。

启动服务并确认挂载生效

在仓库根目录执行(Windows 用start start_services.cmd full):

./start_services.sh full

脚本会先source .env,通过上面的三项校验后打印挂载信息,这是确认路径被正确读到的第一个信号:

Mounting /你的/WORK_DIR/绝对路径 (xxxx bytes) to docker.

docker-compose.yml 中 backend 服务通过- ${WORK_DIR}:/opt/workspace把宿主机目录挂进容器,容器内环境变量固定为WORK_DIR=/opt/workspace。所以宿主机路径写.env,容器内代理操作的始终是/opt/workspace,两边是同一个目录,你直接在本地文件夹里就能看到代理写入的文件。

注意两点:

  • 首次运行要下载并构建全部 Docker 镜像,README 提示可能长达 30 分钟;backend 首次启动也可能需要 5 分钟。
  • 发送消息前,等 backend 日志出现GET /health HTTP/1.1" 200 OK,然后浏览器访问http://localhost:3000/打开 Web 界面。

验证代理能读写这个目录

README 的 Usage 章节给出了直接命中文件工具能力的用法,可以直接照着验证。在 Web 界面里发送类似指令:

Search the web for top cafes in Rennes, France, and save a list of three with their addresses in rennes_cafes.txt.

或纯本地任务:

Write a Go program to calculate the factorial of a number, save it as factorial.go in your workspace

判断标准:

  1. 任务完成后,去你WORK_DIR配置的本地文件夹里找rennes_cafes.txt/factorial.go,文件应出现在这里。
  2. 代理提示词要求执行命令前先cd到工作目录(prompts/base/file_agent.txt),所以生成的文件落在WORK_DIR内而不是散落在别处。

可选分支:CLI 模式与 config.ini 备选项

如果你不用 Web 界面,而是走 CLI 模式(./install.shuv run cli.py.envSEARXNG_BASE_URL改为http://localhost:8080),WORK_DIR同样来自环境变量;环境变量没设置时,解析逻辑会回退读取 config.ini[MAIN]段的work_dir项:

[MAIN] # Optional: agent workspace when WORK_DIR is not set in the environment. work_dir = /path/to/your/workspace

仓库自带的config.ini中这一行默认是注释状态,README 的 Config 章节把work_dir描述为 “AgenticSeek 读写文件的目录,确保路径在本系统有效且可访问”。完整解析顺序是:环境变量WORK_DIRconfig.iniwork_dir→ 运行时目录下的默认workspace(见 sources/workspace.py 的get_work_dir())。README 只把work_dir写成config.ini的一个配置项,而config.ini格式不支持注释,取消注释填写时不要照抄示例里的注释行。

读写范围限制与常见报错

代理的文件访问被限制在WORK_DIR内,这是设计边界而非配置疏漏:

  • sources/workspace.py 的resolve_workspace_path()会把相对路径解析到WORK_DIR下;任何解析后逃出该目录的路径(包括../../outside.txt这类遍历)都会抛出PermissionError,消息为 “Path '...' is outside the agent workspace (...)”。
  • File Agent 的文件工具对目录外文件返回的错误文本是 “outside the agent workspace”,tests/test_workspace.py 的test_cannot_read_file_outside_workspace验证了这一行为。所以下次代理说读不到某个文件时,先确认该文件是否真的在WORK_DIR内。
  • 运行时数据(日志、截图、会话记录)不走WORK_DIR,而是放在AGENT_RUNTIME_DIR(Docker 下为/opt/agent-runtime命名卷,宿主机默认为.agent-data,见 .env.example 注释)。验证文件读写时不要在.agent-data里找业务文件。
  • WORK_DIRAGENT_RUNTIME_DIR保持分离,仓库源码树在 Docker 中可保持只读——不要把WORK_DIR指回仓库目录,这也正是start_services.sh明确禁止的第二条。

【免费下载链接】agenticSeekFully Local Manus AI. No APIs, No $200 monthly bills. Enjoy an autonomous agent that thinks, browses the web, and code for the sole cost of electricity.项目地址: https://gitcode.com/GitHub_Trending/ag/agenticSeek

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询