# bionic-agent **Repository Path**: qq870/bionic-agent ## Basic Information - **Project Name**: bionic-agent - **Description**: 仿生智能体 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-05 - **Last Updated**: 2026-02-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 仿生智能体 (Bionic Agent) 基于 Node.js Express 和 OpenAI 的智能思考和验证系统。智能体可以根据用户输入的主题进行深度思考,并通过与人类交互来验证和完善答案。 ## 功能特性 - 🤖 **智能思考**:基于 OpenAI GPT-4 进行深度思考和问题分析 - 💬 **交互式问答**:智能体可以向人类提问,提供多个选项供选择 - 📁 **文件查阅**:支持查阅本地文件内容 - 🌐 **网站查阅**:支持抓取和总结网页内容 - 🔄 **反馈循环**:用户可以对答案进行 yes/no 反馈,智能体根据反馈重新思考 - 👥 **多会话支持**:支持多个用户同时使用,每个会话独立管理 - ⚡ **流式输出**:支持实时流式输出,提供更好的用户体验 ## 技术栈 - **后端**:Node.js + Express - **AI模型**:OpenAI GPT-4 - **前端**:原生 HTML/CSS/JavaScript - **其他**:axios(HTTP请求)、cheerio(网页解析) ## 安装和运行 ### 1. 安装依赖 ```bash npm install ``` ### 2. 配置环境变量 复制 `.env.example` 为 `.env` 并填写配置: ```bash cp .env.example .env ``` 编辑 `.env` 文件: ```bash # AI模型配置(支持多厂商) AI_PROVIDER=openai # 服务提供商: openai, azure, deepseek, moonshot, custom AI_API_KEY=your_api_key_here AI_MODEL=gpt-4 # 模型名称 PORT=3000 MAX_FILE_SIZE=10485760 ALLOWED_FILE_PATHS=/Users/bin.wang/Desktop/work ``` **AI模型配置说明**: - `AI_PROVIDER`:服务提供商(可选值:`openai`, `azure`, `deepseek`, `moonshot`, `custom`) - `AI_API_KEY`:API密钥(必需,兼容旧配置 `OPENAI_API_KEY`) - `AI_MODEL`:模型名称(如:`gpt-4`, `gpt-3.5-turbo`, `deepseek-chat` 等) - `AI_BASE_URL`:自定义API端点(可选,默认使用各厂商标准端点) **其他配置说明**: - `PORT`:服务器端口(默认 3000) - `MAX_FILE_SIZE`:允许读取的最大文件大小(字节,默认 10MB) - `ALLOWED_FILE_PATHS`:允许访问的文件路径白名单(逗号分隔) ### 支持的AI服务提供商 #### 1. OpenAI(默认) ```bash AI_PROVIDER=openai AI_API_KEY=sk-... AI_MODEL=gpt-4 ``` #### 2. Azure OpenAI ```bash AI_PROVIDER=azure AI_API_KEY=your_azure_api_key AI_MODEL=gpt-4 AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com AZURE_OPENAI_API_VERSION=2024-02-15-preview ``` #### 3. DeepSeek ```bash AI_PROVIDER=deepseek AI_API_KEY=sk-... AI_MODEL=deepseek-chat ``` #### 4. Moonshot ```bash AI_PROVIDER=moonshot AI_API_KEY=sk-... AI_MODEL=moonshot-v1-8k ``` #### 5. 自定义端点(兼容OpenAI API格式) ```bash AI_PROVIDER=custom AI_API_KEY=your_api_key AI_MODEL=your_model_name AI_BASE_URL=https://your-custom-api-endpoint.com/v1 ``` 更多配置示例请参考 [CONFIG_EXAMPLES.md](CONFIG_EXAMPLES.md) ### 3. 启动服务器 ```bash npm start ``` 或使用开发模式(自动重启): ```bash npm run dev ``` ### 4. 访问应用 打开浏览器访问:http://localhost:3000 ## 使用流程 1. **输入主题**:在输入框中输入你想要探讨的主题 2. **开始思考**:点击"开始思考"按钮,智能体开始分析主题 3. **回答问题**:智能体会生成问题并提供多个选项,你可以: - 点击选项按钮选择答案 - 或输入自定义内容(如:查阅文件 /path/to/file.txt) 4. **查看答案**:智能体基于你的回答生成最终答案 5. **反馈确认**: - 如果满意,点击"满意 (Yes)" - 如果不满意,点击"不满意 (No)"并说明原因,智能体会重新思考 ## 自定义输入示例 智能体支持以下自定义输入: - **查阅文件**:`查阅文件 /path/to/file.txt` 或 `读取文件 /path/to/file.md` - **查阅网站**:`查阅网站 https://example.com` 或 `访问 https://example.com` - **总结内容**:`总结上述内容` 或 `总结一下` ## API 接口 ### 创建会话 ``` POST /api/session/create Body: { "topic": "主题内容" } ``` ### 开始处理主题(流式) ``` POST /api/session/:sessionId/start-stream 响应:Server-Sent Events (SSE) 流式输出 事件类型: - thinking: 思考内容流 - question_start: 开始生成问题 - question: 问题内容流 - question_complete: 问题生成完成 - error: 错误信息 ``` ### 开始处理主题(非流式,向后兼容) ``` POST /api/session/:sessionId/start ``` ### 回答智能体的问题(流式) ``` POST /api/session/:sessionId/answer-stream Body: { "answer": "答案内容" } 响应:Server-Sent Events (SSE) 流式输出 事件类型: - processed: 处理结果(如文件查阅结果) - answer: 答案内容流 - answer_complete: 答案生成完成 - error: 错误信息 ``` ### 回答智能体的问题(非流式,向后兼容) ``` POST /api/session/:sessionId/answer Body: { "answer": "答案内容" } ``` ### 提交反馈 ``` POST /api/session/:sessionId/feedback Body: { "feedback": "yes" 或 "no" 或 "具体反馈内容" } ``` ### 获取会话状态 ``` GET /api/session/:sessionId/status ``` ## 项目结构 ``` bionic-agent/ ├── server/ │ ├── app.js # Express应用入口 │ ├── routes/ │ │ └── agent.js # API路由 │ ├── services/ │ │ ├── openaiService.js # OpenAI服务封装 │ │ ├── agentService.js # 智能体核心逻辑 │ │ ├── fileService.js # 文件查阅服务 │ │ └── sessionManager.js # 会话管理 │ ├── models/ │ │ └── session.js # 会话数据模型 │ └── utils/ │ └── webScraper.js # 网站查阅工具 ├── public/ │ ├── index.html # 前端主页面 │ ├── css/ │ │ └── style.css # 样式文件 │ └── js/ │ └── app.js # 前端交互逻辑 ├── config/ │ └── config.js # 配置文件 ├── package.json └── README.md ``` ## 安全注意事项 1. **API密钥安全**:不要将 `.env` 文件提交到版本控制系统 2. **文件访问限制**:通过 `ALLOWED_FILE_PATHS` 限制可访问的文件路径 3. **文件大小限制**:通过 `MAX_FILE_SIZE` 限制可读取的文件大小 4. **会话超时**:会话在30分钟无活动后自动清理 ## 开发说明 ### 添加新的自定义操作 1. 在 `server/services/openaiService.js` 的 `parseCustomInput` 方法中添加新的类型识别 2. 在 `server/services/agentService.js` 的 `processAnswer` 方法中添加处理逻辑 ### 扩展会话存储 当前使用内存存储,可以扩展为 Redis: 1. 安装 Redis 客户端:`npm install redis` 2. 修改 `server/services/sessionManager.js` 使用 Redis 存储 ## 许可证 MIT ## 贡献 欢迎提交 Issue 和 Pull Request!