前言 NeuralAgent 是一个基于大语言模型(LLM)的自主 AI 智能体(Autonomous Agent),专为在真实桌面环境中执行复杂任务而设计。它能够像人类一样操作浏览器、理解界面、规划步骤并实时决策,实现从“指令”到“完成”的端到端自动化。 2 搭建过程(1)下载neuralagent下载NeuralAgent相关项目文件git clone 点击下载
cd neuralagent/backend (2)创建并激活python虚拟环境为了不和本地的相关环境冲突,可以新建一个虚拟的环境
激活虚拟环境 (macOS/Linux)执行source venv/bin/activate# 激活虚拟环境 (Windows)执行venv\Scripts\activate (3)安装相关依赖使用如下命令进行安装:
pip install -r requirements.txt 复制文件夹下的.env.example文件到.env,并填上实际的内容主要是填上postgresql的相关信息和ollama相关信息我这里是用到本地的ollama环境,所以我填的地址是ollama的连接地址 (4)运行数据库迁移执行如下命令

alembic upgrade head可以进行数据库迁移操作,注意要确保你本地的postgresql是可以访问的状态 (5)启动后端服务器通过如下命令就能运行后端的脚本
uvicorn main:app --reload --host 0.0.0.0 --port 8000
(6)前端桌面应用配置通过如下命令安装Electron和React相关依赖
cd neuralagent/desktopnpm install然后进入neuralagent-app目录下再次执行
cd neuralagent-appnpm install复制neuralagent-app目录下的.env.example文件为.env修改内容如下: (7)设置守护进程和安装相关依赖按照如下命令执行:
进入aiagent目录cd aiagentlinux系统的话执行:source venv/bin/activate 安装依赖pip install -r requirements.txt# 退出虚拟环境deactivate
(8)启动桌面应用按照如下命令执行:

cd ../npm start
执行之后,可能会报错,根据实际的情况,调整以下代码,例如:
动态初始化 LLM,根据 .env 中 COMPUTER_USE_AGENT_MODEL_TYPE 决定model_type = os.getenv("COMPUTER_USE_AGENT_MODEL_TYPE", "openai").lower()model_id = os.getenv("COMPUTER_USE_AGENT_MODEL_ID", "gpt-4o") if model_type == "azure_openai": llm= AzureChatOpenAI( azure_deployment=model_id, api_version=os.getenv("OPENAI_API_VERSION", "2024-12-01-preview"), temperature=0.3, max_tokens=None, timeout=None, max_retries=2, )elif model_type == "openai": llm= ChatOpenAI( model=model_id, api_key=os.getenv("OPENAI_API_KEY"), base_url=os.getenv("OPENAI_BASE_URL"), temperature=0.3, max_tokens=None, timeout=None, max_retries=2, )else: raise ValueError(f"Unsupported COMPUTER_USE_AGENT_MODEL_TYPE: {model_type}")
(9)授权注册运行好之后,会出来一个框,要求注册用户的相关信息 点击注册,并填写相关信息 但是这里注册之后,会遇到一些问题(例如提示密码超过72字节错误,实际没超过),又要修改一下backend\utils\security.py代码
自动截断到 72 字节(bcrypt 原生限制) password_bytes = password.encode('utf-8') if len(password_bytes) > 72: password_bytes = password_bytes[:72] # bcrypt.gensalt() 默认 cost=12 salt = bcrypt.gensalt() hashed = bcrypt.hashpw(password_bytes, salt) return hashed.decode('utf-8')def verify_password(plain_password: str, hashed_password: str) -> bool: """Verify a plain-text password against a hashed password.""" plain_bytes = plain_password.encode('utf-8') if len(plain_bytes) > 72: plain_bytes = plain_bytes[:72] hashed_bytes = hashed_password.encode('utf-8') return bcrypt.checkpw(plain_bytes, hashed_bytes)
(10)开始使用可以使用提示内容,访问本地的ollamaAI进行协助操作应用 我目前是研究到这里,还需要继续修改源码,才能打通全部逻辑,感兴趣的可以自行修改代码,并研究下
请登录后发表评论
注册
停留在世界边缘,与之惜别