Skip to content

wang19901110/agf-php

Repository files navigation

AGF PHP

AGF PHP 是一个基于 PHP 8.xWorkerman 5.1NeuronAI 3.3 的单进程智能体服务端项目。

项目目标不是做一个纯前端演示,而是把后端能力先做稳定,包括:

  • HTTP 和 WebSocket 双入口
  • 会话管理与聊天流式输出
  • RAG 知识库与检索工具
  • 工具注册、安装、启用、直连测试
  • 搜索引擎配置与统一搜索工具
  • 单 worker 启动模式和进程内状态管理

当前能力

  • HTTP 服务
  • WebSocket 服务
  • 会话与消息持久化
  • SQLChatHistory 对话历史恢复
  • 工具系统
    • 系统命令执行
    • Neuron 计算工具
    • Neuron 文件系统工具
    • 网页搜索工具 search_web
  • RAG 知识库
    • 知识库管理
    • 知识源管理
    • 检索工具注入
  • 配置管理
    • AI Provider
    • RAG Provider
    • 工具运行配置
    • 搜索引擎配置

当前设置页里的搜索引擎只保留:

  • Tavily
  • Exa
  • Brave

工具侧新增了一个 search_web,会直接读取设置里的搜索配置。

技术栈

  • PHP 8.x
  • Workerman 5.1
  • NeuronAI 3.3
  • SQLite
  • Vue 3 + TypeScript + Vite

目录结构

agf-php/
├── app/
├── config/
├── frontend/
├── resource/
├── scripts/
├── storage/
├── tools/
├── start.php
├── start.bat
├── composer.json
└── README.md

app/Service

核心业务服务:

  • BootstrapService.php
  • ChatDispatchService.php
  • ConfigService.php
  • ConversationService.php
  • HttpService.php
  • SessionAgentFactory.php
  • SessionService.php
  • ToolApprovalService.php
  • ToolRegistry.php
  • WebSocketService.php

app/Rag

知识库与向量检索:

  • KnowledgeBaseService.php
  • KnowledgeToolService.php
  • RagFactory.php

app/Support

基础支撑:

  • Config.php
  • Database.php
  • EventBus.php
  • Paths.php
  • AgfHttpClient.php

tools

项目内工具目录:

  • Contracts/AgfToolInterface.php
  • Support/AgfAbstractTool.php
  • Support/SearchEngineClient.php
  • Extension/AgfSystemCommandTool.php
  • Extension/NeuronCalculatorToolkitTool.php
  • Extension/NeuronFileSystemToolkitTool.php
  • Extension/AgfSearchTool.php

启动方式

后端

Windows 下可以直接执行:

start.bat

或者命令行执行:

php start.php

后端默认监听:

  • HTTP: http://127.0.0.1:8786
  • WebSocket: websocket://127.0.0.1:8787

前端开发

前端在 frontend/ 目录下:

cd frontend
npm install
npm run dev

Vite 默认开发端口是 5173,并代理以下后端接口:

  • /health
  • /sessions
  • /chat
  • /tools
  • /config
  • /knowledge

前端构建

cd frontend
npm run build

构建产物输出到 frontend/public/

初始化步骤

首次运行建议按下面顺序:

composer install
cd frontend
npm install

然后:

php start.php

如果需要开发前端,再单独起 Vite:

cd frontend
npm run dev

配置说明

config/workerman.php

定义服务监听地址与事件循环驱动:

  • Swoole 优先
  • Swow 其次
  • 两者都没有则无法正常启动

config/tools.php

这里保存工具安装状态、启用状态和搜索配置。

当前搜索配置结构只保留三种引擎:

  • tavily
  • exa
  • brave

并且 search_web 工具会直接读取这里的配置。

config/provider.php

保存 AI Provider 配置,例如默认模型厂商、模型名、上下文长度、密钥等。

config/rag.php

保存知识库、向量库和嵌入模型相关配置。

工具系统

项目内工具通过 ToolRegistry 扫描 tools/ 目录,再由 SessionAgentFactory 注入到智能体。

当前已包含:

  • agf_system_command
  • neuron_calculator
  • neuron_file_system
  • search_web

其中:

  • agf_system_command 用于受控命令执行
  • neuron_calculator 用于数学计算
  • neuron_file_system 用于文件系统相关操作
  • search_web 用于网页搜索,读取设置中的 Tavily / Exa / Brave 配置

会话与聊天

聊天链路的核心是:

  1. HTTP 或 WebSocket 接收请求
  2. SessionService 维护会话状态
  3. SessionAgentFactory 创建或恢复 Agent
  4. ChatDispatchService 负责流式事件分发
  5. EventBus 向前端推送 chunk 和完成事件

说明

  • 当前项目没有“提案”功能。
  • 当前项目的搜索引擎设置已经收敛为 Tavily / Exa / Brave。
  • 当前项目的网页搜索能力统一通过 search_web 工具接入。

常见问题

为什么 Agent 没拿到搜索工具

通常是因为:

  1. 搜索引擎没有配置密钥
  2. 搜索引擎被禁用
  3. search_web 没有安装或启用

确认 config/tools.php 中的 search_web 已安装并启用后,Agent 才会注入这个工具。

前端为什么要重新 build

因为前端构建产物输出到 frontend/public/,如果改了 UI 或配置页面,通常需要重新执行:

cd frontend
npm run build

许可证

未单独声明,按项目现状处理。

About

NeuronAI+wokerman 智能体

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors