CLI工具框架

一个基于MCP和LangChain的CLI工具框架,集成了Deepseek LLM,用于创建智能命令行应用程序,支持自然语言处理和上下文记忆。

  • by aqzzaq
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aqzzaq/deepseek-mcp-cli

使用说明

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:要执行的可选初始查询

入门指南

  1. 安装依赖项:

    pip install -r requirements.txt
    
  2. 设置你的深度搜索API密钥:

    export DEEPSEEK_API_KEY="your-api-key"
    

    或编辑 deepseek-mcp-cli-client.py 并直接添加您的API密钥。

  3. 运行客户端(服务器自动启动):

    python deepseek-mcp-cli-client.py
    

建筑

该框架遵循客户端-服务器架构:

  • 客户端:处理用户交互、LLM集成和上下文记忆
  • 服务器:管理工具执行和命令处理
  • MCP协议:启用客户端和服务器之间的通信
  • LangChain:提供代理框架和工具集成

上下文记忆

该框架使用基于工作日志的上下文存储系统:

  1. 工作日志作为上下文:所有用户交互和AI响应都记录到工作日志文件中
  2. 自动上下文加载:从现有工作日志继续时,整个对话历史记录将作为上下文加载
  3. 最小内存使用:内存中仅保留当前系统配置和工作日志内容
  4. 会话保持:通过指定工作日志文件,可以随时恢复对话

这种方法减少了令牌的使用,同时跨会话维护了全面的上下文内存。

可用工具

默认情况下,服务器提供以下工具:

  • 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许可证