https://github.com/daymade/pkuxkx-mud-agent
https://github.com/daymade/pkuxkx-mud-agent
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/daymade/pkuxkx-mud-agent
- Owner: daymade
- License: mit
- Created: 2025-04-23T15:50:00.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-23T16:12:37.000Z (about 1 year ago)
- Last Synced: 2025-04-23T17:27:05.774Z (about 1 year ago)
- Language: Python
- Size: 6.84 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PKUXKX MUD Agent
这是一个用于北大侠客行(PKUXKX)MUD 游戏的命令行客户端。它提供了一个后台运行的游戏会话,通过命令行与游戏进行交互,并支持 Cursor AI 辅助模式。
## 功能特点
- 后台运行游戏会话
- 支持 UTF-8 编码
- 实时日志记录
- 命令行交互(通过命名管道)
- 自动重连机制
- 信号处理和优雅退出
- Cursor AI 辅助模式(计划中)
## 系统架构
```mermaid
graph TB
subgraph "Cursor AI Layer"
CursorAgent[Cursor Agent]
GameKnowledge[Game Knowledge]
ActionPlanner[Action Planner]
end
subgraph "Core Components"
TelnetConn[Telnet Connection]
InputHandler[Input Handler]
OutputHandler[Output Handler]
Logger[Logger]
StateTracker[State Tracker]
end
subgraph "I/O Files"
InputPipe[Input Pipe]
LogFile[Log File]
PidFile[PID File]
GameState[Game State]
end
subgraph "MUD Server"
Server[PKUXKX Server]
end
%% Core Flow
InputPipe --> InputHandler
InputHandler --> TelnetConn
TelnetConn <--> Server
TelnetConn --> OutputHandler
OutputHandler --> LogFile
Logger --> LogFile
%% AI Flow
OutputHandler --> StateTracker
StateTracker --> GameState
GameState --> GameKnowledge
GameKnowledge --> ActionPlanner
ActionPlanner --> CursorAgent
CursorAgent --> InputHandler
%% State Management
StateTracker --> GameKnowledge
classDef planned fill:#f9f,stroke:#333,stroke-dasharray: 5 5
class CursorAgent,GameKnowledge,ActionPlanner,StateTracker,GameState planned
```
## 技术实现
### 核心组件
- **Telnet Connection**: 负责与 MUD 服务器的网络通信
- **Input Handler**: 处理来自命名管道的用户输入
- **Output Handler**: 处理服务器返回的游戏输出
- **Logger**: 日志记录系统,使用 rich 库提供美化输出
### Cursor AI 组件(计划中)
- **Cursor Agent**: AI 代理,负责游戏决策和行动
- **Game Knowledge**: 游戏知识库,存储地图、物品、NPC等信息
- **Action Planner**: 行动规划器,根据当前状态和目标生成行动序列
- **State Tracker**: 状态追踪器,维护游戏世界状态
### 运行时文件
- **mud_output.log**: 游戏输出日志
- **mud_input_pipe**: 命令输入管道
- **mud.pid**: 进程 ID 文件
- **game_state.json**: 游戏状态存储(计划中)
## 安装和配置
1. 克隆仓库:
```bash
git clone https://github.com/daymade/pkuxkx-mud-agent.git
cd pkuxkx-mud-agent
```
2. 安装依赖:
```bash
pip install -r requirements.txt
```
3. 配置环境变量:
```bash
cp .env.example .env
```
然后编辑 `.env` 文件,填入你的账号信息:
```
MUD_HOST=mud.pkuxkx.net
MUD_PORT=8081
MUD_USERNAME=your_username
MUD_PASSWORD=your_password
```
## 使用方法
1. 后台启动代理:
```bash
python3 mud_agent.py &
```
2. 查看游戏输出:
```bash
tail -f mud_output.log
```
3. 发送命令:
```bash
echo "命令" > mud_input_pipe
```
4. 停止代理:
```bash
kill $(cat mud.pid)
```
## 项目结构
```
pkuxkx-mud-agent/
├── mud_agent.py # 主程序
├── requirements.txt # 依赖列表
├── .env.example # 环境变量示例
├── .env # 实际环境变量(不提交到git)
├── .gitignore # git忽略文件
└── README.md # 说明文档
```
## 依赖说明
- python-dotenv (1.0.0): 用于加载环境变量
- rich (10.16.2): 用于美化控制台输出
## 贡献
欢迎提交 Issue 和 Pull Request!
## 许可证
MIT License