CLI AI Agent(命令行界面人工智能代理)
一个强大的AI代理,驻留在您的命令行中。它基于LangChain的DeepAgents框架构建,结合了现代AI工具的灵活性与基于终端交互的便捷性。旨在成为一个强大的检索增强生成(RAG)代理,但目前它作为一个通用代理运行。不久的将来将添加更多特定的工具、机制和提示。
💡 关键特性
- 持久内存使用Pixeltable进行对话跟踪和内存管理。仅保存用户提示、助手最终回复和关键状态属性(在此情况下为DeepAgent的文件状态)到数据库,以避免上下文过载和大量令牌消耗。如果对话超过可配置的内存大小,将很快实现对话摘要功能。
- 丰富的终端体验命令行界面,支持实时流式响应、工具调用和各种实用命令。您还可以管理过去的和新的聊天历史记录。
- MCP服务器集成除了DeepAgents内置的强大工具(如文件操作和子代理)外,MCP服务器的工具也可以轻松集成和利用。
- 高度可定制轻松配置模型、工具、系统提示和MCP,以匹配您的工作流程。
🚀 开始使用
- 按照此链接中的说明安装 uv 包:https://github.com/astral-sh/uv
- 克隆仓库:
git clone https://github.com/PhiDuyAnh/cli-agent.git
cd cli-agent- 安装依赖项并使用 uv 创建虚拟环境:
uv sync- 设置你的
.env文件用于配置环境变量(用于API密钥、MCP配置、Pixeltable、LangSmith等):
cp .env.example .env- 启动代理:
uv run src/cli_agent/cli.py🐋 使用 Docker 运行
- 构建镜像:
docker-compose build- 以交互模式启动容器:
docker-compose run --rm cli-agent🛠️ 如何自定义
- 使用Python代码添加新工具添加新工具到 tools.py 翻译为中文是“工具.py”或保持原名(因为文件名通常不翻译,直接保留原样,这里仅说明其含义)。在编程或脚本编写中,"tools.py" 通常指的是一个包含各种工具函数或实用程序的Python脚本文件这些可以是任何能够帮助智能体实现特定目标的Python函数。
- 使用JSON文件配置MCP服务器您可以在一个JSON文件中配置多个MCP服务器,默认文件位于
src/cli_agent/agent/mcp_servers/config.json。
示例:
{
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
],
"transport": "stdio"
},
"math": {
"command": "python",
"args": ["/path/to/math_server.py"],
"transport": "stdio",
},
"weather": {
"url": "http://localhost:8000/mcp/",
"transport": "streamable_http",
}
}- 选择不同的型号使用该语法选择不同的LangChain聊天模型
provider:model-namein config.py(配置文件)。
- 修改系统提示轻松修改代理的系统提示 prompts.py(文件名,可直译为“提示文件.py”,但通常根据上下文保持原样,表示一个包含提示信息的Python文件) 或者甚至添加新的提示。
- 更改代理的内存大小使用变量配置对话内存大小
MEMORY_SIZEin config.py 翻译成中文是“配置文件.py”此设置控制代理在每个会话中其上下文窗口中保留的最近消息交流数量。
🎯 路线图/发展路线
- \[ \] 如果对话超出可配置的内存大小,则添加总结机制
- \[ \] 添加专门设计用于RAG(检索增强生成)的工具或MCP(可能是指某种特定平台或系统,如“机器控制平台”或根据上下文具体定义)服务器:抓取网页内容、将抓取的内容添加到知识库中、查询知识库等。
- \[ \] 制定一个详细的系统提示
- \[ \] 使用LangGraph的检查点保存器,如PostgresSaver、SqliteSaver等,以更好地与框架集成,并支持人为干预。
