# AIAgentFramework **Repository Path**: huayeyehh/aiagent-framework ## Basic Information - **Project Name**: AIAgentFramework - **Description**: AIAgent Framework Using langchain and streamlit. - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-03 - **Last Updated**: 2026-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## DiagnosticAgent 分析Agent, 详见 [DiagnosticAgent/README.md](DiagnosticAgent/README.md) ## KnowledgeBase 知识库, 详见 [KnowledgeBase/README.md](KnowledgeBase/README.md) ## 启动说明 本项目提供了 `cmd` 脚本用于统一管理服务的启动、停止和状态查验。 ### 运行前配置 `cmd` 会在项目根目录读取正式配置文件 `config`,文件不存在会直接退出。 当前 `config` 示例(也是默认建议值): ```bash KB_APP_PORT=8001 KB_API_PORT=8002 DIAG_AGENT_PORT=8504 TOOLKIT_ADMIN_PORT=8003 FLASK_API_PORT=5000 ``` ### 使用方法 ```bash chmod +x cmd ./cmd {start|stop|restart|status|update} ``` ### 命令参数 - `start`: 启动所有服务 (Agent, Knowledge Base, API 等) - `stop`: 停止相关服务 - `restart`: 重启服务 - `status`: 查看服务运行状态 - `update`: 更新代码并重启 `kb_api` 与 `app_flask` ### 服务端口列表 (参考) - Knowledge Base App: 8001 - Knowledge Base API: 8002 - Diagnostic Agent: 8504 - Toolkit Admin: 8003 - Flask API: 5000 ## Docker 启动 已提供以下文件用于容器化启动: - `Dockerfile` - `Dockerfile-kb` - `Dockerfile-mcp` - `.dockerignore` ### 1) 构建镜像 ```bash docker compose build ``` ### 2) 启动核心服务 ```bash docker compose up -d ``` 核心服务包含: - `kb-api` (FastAPI): 8002 - `kb-app` (KnowledgeBase UI): 8001 - `app-streamlit` (诊断主界面): 8504 - `toolkit-admin` (工具箱管理): 8003 ### 3) 可选启动 Flask API ```bash docker compose --profile full up -d ``` 会额外启动: - `app-flask` (Flask API): 5000 ### 4) 查看日志 ```bash docker compose logs -f kb-api docker compose logs -f kb-app docker compose logs -f app-streamlit docker compose logs -f toolkit-admin docker compose logs -f app-flask ``` ### 5) 停止服务 ```bash docker compose down ``` ### 6) Docker 环境变量(已在 compose 默认设置) - `KB_API_BASE_URL`:容器内服务访问知识库 API 的地址(默认 `http://kb-api:8002`) - `TOOLKIT_ADMIN_WEB_URL`:主界面“管理/编辑”按钮跳转地址(默认 `http://localhost:8003`) - `DIAG_AGENT_WEB_URL`:管理后台“打开主应用”按钮跳转地址(默认 `http://localhost:8504`) ### 6.1) 持久化知识库与 ONNX 模型缓存 `diagnostic_kb_api` 在首次触发检索时,ChromaDB 默认会下载 `all-MiniLM-L6-v2` 的 ONNX 模型。 如果容器被重建,这类运行期下载的内容会随着容器可写层一起消失。要避免每次重新下载,至少需要持久化两个目录: - `/app/KnowledgeBase/knowledge_bases`:知识库数据 - `/app/KnowledgeBase/.cache`:ONNX 模型与 Hugging Face 缓存 以你当前的 `diagnostic_kb_api` 服务为例,compose 建议补成这样: ```yaml services: diagnostic_kb_api: restart: unless-stopped cpus: "0.50" mem_limit: "1024m" mem_reservation: "640m" pids_limit: 260 build: context: ./agents/diagnostic_agent_master dockerfile: Dockerfile-kb env_file: - .env environment: DIAGNOSTIC_AGENT_CACHE_DIR: /app/KnowledgeBase/.cache CHROMA_MODEL_CACHE_DIR: /app/KnowledgeBase/.cache/chroma/onnx_models/all-MiniLM-L6-v2 command: - python - KnowledgeBase/kb_api.py - "8002" volumes: - diagnostic_kb_data:/app/KnowledgeBase/knowledge_bases - diagnostic_kb_cache:/app/KnowledgeBase/.cache networks: - agent-net expose: - "8002" healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8002/diagnostic_kb_api', timeout=5)"] interval: 20s timeout: 6s retries: 5 start_period: 30s volumes: diagnostic_kb_data: diagnostic_kb_cache: ``` 如果你不是 `docker compose restart`,而是每次发布时执行 `docker compose up -d --build`、`down && up`、或平台自动重建容器,那么没有卷的运行期缓存一定会丢。 ### 7) 首次排查建议 如果你遇到 `kb_api.py` 本地启动失败,优先使用容器方式启动;容器会统一安装依赖并隔离环境,避免本机 Python 包版本冲突。 如果你需要在 `toolkit-admin` 页面里执行 Git 提交与推送,当前 compose 已为该服务挂载整个项目目录、宿主机 `~/.ssh` 与 `~/.gitconfig`;请确保这两个路径在宿主机存在且具备可用凭据。