Deepseek CLI工具框架
介绍
这是一个使用MCP(模型控制协议)和LangChain构建的CLI工具框架,集成了Deepseek LLM。它为创建利用LLM功能执行命令和处理自然语言请求的智能CLI应用程序提供了基础,这些应用程序具有上下文记忆和可定制的预设。
先决条件
要使用此框架,您需要在环境变量中设置Deepsseek API KEY DEEPSEEK_API_KEY 或者直接在客户端文件中。主要部件包括:
- deepseek-mcp-cli-client.py:处理用户输入、上下文记忆并与LLM交互的客户端界面
- deepseek-mcp-cli-server.py:公开工具并执行命令的MCP服务器
主要特点
- 使用Deepseek LLM进行自然语言处理
- 通过MCP(模型控制协议)执行命令
- LangChain集成用于构建AI代理
- 用于维护对话历史的上下文记忆
- 用于定义LLM角色和指令的可定制预设
- 具有用户友好界面的交互模式
- 命令行参数支持
- 模块化架构,易于扩展
用法
交互模式
在交互模式下执行客户端:
python deepseek-mcp-cli-client.py在交互模式下,您可以:
- 输入自然语言查询
- LLM使用基于工作日志的上下文记住以前的交互
- 类型
exit,quit,或q退出
命令行参数
直接执行单个查询:
python deepseek-mcp-cli-client.py "What's in my current directory?"从现有工作日志继续:
python deepseek-mcp-cli-client.py -l worklog_xxxx.log执行查询并从工作日志继续:
python deepseek-mcp-cli-client.py -l worklog_xxxx.log "Show me the current directory content"查看帮助信息:
python deepseek-mcp-cli-client.py --help可用选项
-l, --log:从中继续对话的现有工作日志文件的路径query:要执行的可选初始查询
入门指南
- 安装依赖项:
pip install -r requirements.txt- 设置你的深度搜索API密钥:
export DEEPSEEK_API_KEY="your-api-key"或编辑 deepseek-mcp-cli-client.py 并直接添加您的API密钥。
- 运行客户端(服务器自动启动):
python deepseek-mcp-cli-client.py建筑
该框架遵循客户端-服务器架构:
- 客户端:处理用户交互、LLM集成和上下文记忆
- 服务器:管理工具执行和命令处理
- MCP协议:启用客户端和服务器之间的通信
- LangChain:提供代理框架和工具集成
上下文记忆
该框架使用基于工作日志的上下文存储系统:
- 工作日志作为上下文:所有用户交互和AI响应都记录到工作日志文件中
- 自动上下文加载:从现有工作日志继续时,整个对话历史记录将作为上下文加载
- 最小内存使用:内存中仅保留当前系统配置和工作日志内容
- 会话保持:通过指定工作日志文件,可以随时恢复对话
这种方法减少了令牌的使用,同时跨会话维护了全面的上下文内存。
可用工具
默认情况下,服务器提供以下工具:
list_files:列出目录中的文件current_directory:获取当前工作目录create_file:创建包含内容的新文件read_file:读取文件内容execute_command:执行shell命令
强制工作日志功能
默认预设包括一个强制性的工作日志要求:所有用户请求和AI响应都会自动记录到带有时间戳的会话日志文件中。这确保了通过CLI执行的所有交互和操作的完整审计跟踪。
工作日志功能:
- 每个新的对话会话都会生成一个基于时间戳命名的唯一日志文件
- 从现有会话继续时,支持自定义文件名
- 所有用户请求都会自动记录时间戳
- 所有AI响应都会自动记录时间戳
- 时间戳格式:
YYYY-MM-DD HH:MM:SS - 用作继续对话的上下文记忆
- 可用于随时恢复对话
日志条目示例:
[2023-11-01 14:30:25] USER REQUEST: List files in my current directory
[2023-11-01 14:30:27] AI RESPONSE: I'll list the files in your current directory...
[2023-11-01 14:30:28] Executing command: ls -la
[2023-11-01 14:30:28] Command result - Exit code: 0继续对话:
要从现有工作日志继续对话,请执行以下操作:
python deepseek-mcp-cli-client.py -l worklog_xxxxx.log工作日志中的整个对话历史记录将用作新会话的上下文。
许可证
MIT许可证
