一个强大的命令行代理,可以通过持久化的 bash 会话执行和分析 bash 命令。该代理旨在帮助用户完成文件系统操作和命令执行任务。
- Python 3.8 或更高版本
- Git Bash(Windows 用户需要)
- OpenAI API 密钥
- 克隆仓库:
git clone https://github.com/yourusername/CyberAgent.git
cd CyberAgent- 安装依赖:
pip install -e .需要设置以下环境变量:
# OpenAI API 配置
OPENAI_API_KEY=your_api_key_here
OPENAI_API_BASE=your_api_base_url_here # 可选,用于自定义 API 端点
# 模型配置
MODEL_NAME=gpt-4o-mini # 或您偏好的其他模型您可以通过以下两种方式设置这些变量:
- 在 shell 中导出:
export OPENAI_API_KEY=your_api_key_here
export OPENAI_API_BASE=your_api_base_url_here
export MODEL_NAME=gpt-4o-mini- 在项目根目录创建
.env文件(该文件已被 git 忽略):
OPENAI_API_KEY=your_api_key_here
OPENAI_API_BASE=your_api_base_url_here
MODEL_NAME=gpt-4o-mini代理需要安装并正确配置 Git Bash。如果您使用 Windows:
- 从 git-scm.com 安装 Git for Windows
- 代理会自动检测以下常见安装位置的 Git Bash:
C:\Program Files\Git\bin\bash.exeC:\Program Files (x86)\Git\bin\bash.exeC:\Program Files\Git\usr\bin\bash.exe
如果 Git Bash 安装在其他位置,您可以使用 BASH_EXEC_PATH 环境变量设置路径:
export BASH_EXEC_PATH="C:\path\to\your\bash.exe"- 首先,确保所有环境变量都正确设置
- 以开发模式安装包:
pip install -e .- 启动 FastAPI 服务器:
python main.py- 在另一个终端中运行测试代理:
python tests/test_agent.py测试代理将执行预定义的一组命令来验证代理的功能。
CyberAgent/
├── src/
│ ├── agent/
│ │ └── base_agent.py # 核心代理实现
│ ├── tools/
│ │ └── system_tools.py # 系统命令执行工具
│ └── utils/
│ └── logger.py # 日志工具
├── tests/
│ ├── test_agent.py # 代理测试用例
│ └── test_command_tool.py # 命令工具测试用例
├── logs/ # 日志文件目录
├── main.py # FastAPI 服务器入口点
└── setup.py # 包配置
代理在以下目录中生成详细的日志:
logs/base_agent_runs/- 基础代理执行日志logs/api_agent_runs/- API 代理执行日志logs/test_runs/- 测试执行日志
每个日志文件包含:
- 环境信息
- 命令执行详情
- 工具使用情况和结果
- 错误信息和调试信息
-
Docker 容器集成
- 添加与 Docker 容器交互的支持
- 实现容器管理命令
- 添加容器状态持久化
-
API URL 配置
- 添加在不同 API 端点之间切换的支持
- 实现 API 端点验证
- 添加 API 故障的备用机制
虽然代理主要在 Windows 上测试,但它也包含对其他操作系统的支持:
- Linux:使用系统 bash(
/bin/bash或/usr/bin/bash) - macOS:支持通过 Homebrew 安装的 bash(
/usr/local/bin/bash)
注意:非 Windows 平台的完整测试尚未完成。某些功能可能需要额外的配置或调整。
欢迎贡献!请随时提交 Pull Request。
本项目采用 MIT 许可证 - 详见 LICENSE 文件。