# AgentDNS-lite-client
**Repository Path**: jsjfailab/AgentDNS-lite-client
## Basic Information
- **Project Name**: AgentDNS-lite-client
- **Description**: AgentDNS-lite-client is a lightweight command-line tool for interacting with the AgentDNS network. It enables fast querying and invocation of intelligent agents directly from your terminal.
- **Primary Language**: Python
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-07
- **Last Updated**: 2025-11-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# agentdns-lite-client
本工程是一个基于 **MCP 协议** 的智能体网络客户端,结合了 **gentDNS** 与 **大模型**,实现了以下功能:
- 🔍 将用户输入的自然语言问题 **自动拆分为子任务**
- 📂 使用 **规则 + AgentDNS 提供的 categories** 进行任务分类
- 🌐 调用 **AgentDNS** 获取对应的智能服务入口 (Smart 服务 baseurl)
- ⚙️ 通过 **Smart 服务** 的工具(`get_available_tools` / `execute_tool`)执行任务
- 🤖 当分类失败(`unknown`)时,自动回退到 **大模型** 直接回答
- 🌐 **多语言支持**:支持中文和英文界面切换
---
## 📂 工程结构
```
agent-cli-client
├── ai_agent_dns.py # AgentDNS SSE 客户端 (获取 categories / query category)
├── config_loader.py # 配置文件加载器
├── configure.json # 配置文件(语言设置 / 大模型 API Key / AgentDNS SSE URL / 分类规则)
├── match.py # 任务与类别的规则匹配
├── question_classify.py # 使用大模型将用户问题拆分为子任务
├── task_decompose.py # 调用工具以获取任务所需的可用工具 (get_available_tools / execute_tool)
├── i18n.py # 国际化支持模块
├── resources/ # 资源文件目录
│ ├── banner_zh_CN.txt # 中文启动横幅
│ ├── banner_en_US.txt # 英文启动横幅
│ └── i18n/ # 国际化配置文件
│ ├── zh-CN.json # 中文语言包
│ └── en-US.json # 英文语言包
├── README.md # 项目说明
└── start_aiagentdns_loop_threads.py # 主入口:完整流程 (分类 → 匹配 → Smart 调用 → 大模型兜底)
```
安装依赖:
``` bash
pip install -r requirements.txt
```
## 📑 配置文件
请编辑 configure.json:
``` json
{
"language": "zh-CN", // 界面语言:zh-CN (中文) 或 en-US (英文)
"deepseek": {
"api_key": "sk-xxxxxxx", // 你的大模型 API Key
"base_url": "https://api.deepseek.com/v1" // 大模型 base URL
},
"agentdns": {
"sse_url": "https://aitest.jsjfsz.com:8300/agentdns/main/sse" // AgentDNS SSE 服务地址
},
"category_rules": {
"weather_forecast": ["天气", "weather", "气温", "湿度", "风力"],
"maps_location": ["餐馆", "地图", "位置", "附近", "饭店", "地铁", "map"],
"video_search": ["视频", "b站", "抖音", "youtube", "video", "影片"]
}
}
```
## 🌐 多语言支持
### 方式一:配置文件设置
在 `configure.json` 中设置 `language` 字段:
- `"zh-CN"`: 中文界面
- `"en-US"`: 英文界面
### 方式二:环境变量设置
```bash
# 使用英文界面
export AGENTDNS_LANG=en-US
python start_aiagentdns_loop_threads.py
# 使用中文界面
export AGENTDNS_LANG=zh-CN
python start_aiagentdns_loop_threads.py
```
### 支持的语言
- **中文 (zh-CN)**: 默认语言,完整功能支持
- **英文 (en-US)**: 完整功能支持,包含英文启动横幅和界面文本
## ▶️ 运行示例
### 中文界面运行
```bash
python start_aiagentdns_loop_threads.py
```
### 英文界面运行
```bash
# 方式一:修改配置文件 configure.json 中的 "language": "en-US"
python start_aiagentdns_loop_threads.py
# 方式二:使用环境变量
export AGENTDNS_LANG=en-US
python start_aiagentdns_loop_threads.py
```
---
## 📌 功能说明
1. **任务拆分**
question_classify.py 使用大模型将用户输入拆分成多个编号任务。
2. **分类匹配**
match.py 根据配置文件中的关键词规则匹配到 AgentDNS 提供的 categories。
- 匹配到 → 使用 Smart 服务执行
- 匹配失败 → 使用大模型兜底回答
3. **任务适配服务调用**
task_decompose.py
- get_available_tools → 获取候选工具
- 遍历工具并调用 execute_tool,自动用大模型生成 arguments
- 先找到能返回结果的工具就停止
4. **兜底机制**
- 当全部任务都是 unknown 时,直接调用大模型输出结果。
- 当部分任务 unknown,部分匹配到 → 混合输出(部分任务适配,部分大模型)。
5. **多语言国际化**
i18n.py 提供完整的国际化支持:
- 自动根据配置文件或环境变量切换语言
- 支持动态加载不同语言的界面文本和启动横幅
- 可扩展的语言包系统,支持自定义添加新语言