# second-langChain **Repository Path**: lvzhenchao/second-lang-chain ## Basic Information - **Project Name**: second-langChain - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-16 - **Last Updated**: 2025-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目说明 - 背景:后期需要识别并执行的动作越来越多,也就是接口越来越多,参数也比较复杂; ## 1、推荐项目结构(支持无限扩展) - 扩展: 新增动作:在 tools/ 下添加新模块,继承 BaseTool,定义 name, description, run(self, **params). registry 会自动发现并注册工具。 - 然后重启服务既可 ``` security_agent/ │ ├── app.py # FastAPI 启动入口 ├── config.py # 配置模型key等 ├── main_agent.py # 智能体初始化逻辑 │ ├── prompts/ │ ├── system_prompt.txt # 通用Prompt模板 │ └── examples.json # few-shot 示例(可选) │ ├── tools/ │ ├── __init__.py │ ├── registry.py # 动作注册中心(自动发现) │ ├── base_tool.py # Tool抽象类定义 │ ├── isolate_host.py # 示例:隔离主机 │ ├── release_host.py # 示例:解除隔离 │ ├── get_host_info.py # 示例:获取主机信息 │ ├── add_whitelist.py # 示例:添加白名单(后期新增) │ └── ... # 新动作直接在这里添加 │ └── utils/ ├── parser.py # 模型输出解析 └── http_client.py # 通用HTTP请求【目前还没加这个】 ``` ## 2、启动服务:新扩展完的 - uvicorn app:app --reload --port 8000 ## 3、测试调用服务 ``` 1️⃣ 用户第一次输入 curl -X POST http://127.0.0.1:8000/chat \ -H "Content-Type: application/json" \ -d '{"q": "获取主机信息"}' 返回: { "status": "need_params", "action": "get_host_info", "required_params": ["host_id"], "message": "Action 'get_host_info' 需要参数 ['host_id'],请补充后再试。" } 2️⃣ 前端或命令行补齐参数后,再发一次请求: curl -X POST http://127.0.0.1:8000/chat \ -H "Content-Type: application/json" \ -d '{ "q": "获取主机信息", "action": "get_host_info", "parameters": { "host_id": "HR-001" } }' 返回: { "status": "ok", "action": "get_host_info", "parameters": { "host_id": "HR-001" }, "result": { "hostname": "HR-001", "status": "online", "ip": "10.1.2.3" } } ``` ### 后期进阶方向 | 阶段 | 方向 | | ------ | ------------------------------------ | | ✅ 当前阶段 | 动态注册 + Prompt 动作同步 | | 🧠 阶段2 | 引入 **RAG(知识检索)**,让模型自动查接口文档 | | 🧩 阶段3 | 引入 **多Agent协作**,分析Agent + 执行Agent 分工 | | 🔐 阶段4 | 加入 **权限控制**(模型仅能执行特定Tool) | | ⚙️ 阶段5 | 动态加载 **Go服务插件**(使用 gRPC 交互) |