本地AI代理终端

一个基于Rig和Ollama的本地AI代理终端,提供丰富的TUI界面和本地工具支持。

  • by jchultarsky101
  • Rust
  • 本地部署
  • 更新于
在 GitHub 查看 jchultarsky101/pcli2-rig

使用说明

PCLI2-钻机

一个漂亮的基于TUI的本地AI代理,由 钻机 和 Ollama.

特性

  • 🎨 美丽温暖的TUI -黑色背景,暖橙色/金色渐变横幅和表情丰富的界面
  • 🤖 本地AI -使用Ollama完全在笔记本电脑上运行
  • 🛠️ 工具支持 -用于文件操作、命令执行和代码搜索的内置工具
  • 🔒 隐私优先 -所有推理都在本地进行,没有数据离开您的机器
  • ⚡ 轻量级 -针对快速启动和最小资源使用进行了优化
  • 🎯 YOLO模式 -跳过工具确认 --yolo 标记以加快工作流程
  • 🖱️ 鼠标支持 -点击以聚焦窗格,滚动滚轮导航(使用Ctrl+M切换)
  • 📋 文本选择 -从聊天记录中复制/粘贴(默认情况下禁用鼠标)
  • 📜 帮助模态 -媒体 /help 有关平台特定配置路径的详细命令参考
  • 🔌 MCP支持 -模型上下文协议服务器集成
  • 📊 CPU监控 -LLM请求期间的实时CPU使用火花线
  • ⌨️ 横向滚动 -滚动长日志行←/→ 箭头键和起始/结束
  • 🚫 请求取消 -按Esc键取消飞行中的LLM请求
  • 📜 命令历史记录 -Bash风格的向上/向下导航,用于以前的输入

截图


██████╗  ██████╗██╗     ██╗██████╗     ██████╗ ██╗ ██████╗ 
██╔══██╗██╔════╝██║     ██║╚════██╗    ██╔══██╗██║██╔════╝ 
██████╔╝██║     ██║     ██║ █████╔╝    ██████╔╝██║██║  ███╗
██╔═══╝ ██║     ██║     ██║██╔═══╝     ██╔══██╗██║██║   ██║
██║     ╚██████╗███████╗██║███████╗    ██║  ██║██║╚██████╔╝
╚═╝      ╚═════╝╚══════╝╚═╝╚══════╝    ╚═╝  ╚═╝╚═╝ ╚═════╝

┌─ Chat History [5] ─────────────────────────────────┐
│ 👤 You: Hello, can you help me with my code?       │
│                                                     │
│ 🤖 Assistant: Of course! I'd be happy to help.     │
│    What language are you working with?              │
│                                                     │
└─────────────────────────────────────────────────────┘

┌─ Input │ qwen2.5-coder:3b │ 🔌0 ───────────────────┐
│ I'm working on a Rust project... █                 │
└─────────────────────────────────────────────────────┘

┌─ Logs ─────────────────────────────────────────────┐
│ ✓ INFO Starting PCLI2-RIG with model: ...          │
│ • DEBUG Sending request to Ollama model: ...       │
│ ✓ Ready                                            │
└─────────────────────────────────────────────────────┘

 ✓ Ready │ Model: qwen2.5-coder:3b │ CPU: ▁▃▅▇█ (45%)

安装

先决条件

  1. 安装Ollama:从下载 ollama.com

  2. 拉一个模型 (推荐:Qwen2.5编码器):

    ollama pull qwen2.5-coder:3b
    

    其他支持工具调用的轻量级模型:

    • llama3.2:3b -良好的一般推理
    • phi3.5:mini -快速响应
    • mistral:7b-instruct-q3_K_M -最佳质量/尺寸比

从源代码构建

# Clone the repository
git clone https://github.com/physna/pcli2-rig.git
cd pcli2-rig

# Build
cargo build --release

# Run
./target/release/pcli2-rig

用法

基本用法

# Run with default model (qwen2.5-coder:3b)
pcli2-rig

# Specify a model
pcli2-rig --model llama3.2:3b

# Connect to remote Ollama server
pcli2-rig --host http://192.168.1.100:11434

# YOLO mode (skip tool confirmation)
pcli2-rig --yolo

# Verbose logging
pcli2-rig --verbose

MCP集成

PCLI2-RIG与 pcli2-mcp 通过模型上下文协议(MCP)提供对外部工具和服务的访问。

快速设置(推荐)

配置MCP的最简单方法是使用 --setup-mcp 选项,读取pcli2-mcp配置并永久保存:

# One-time setup: pipe pcli2-mcp config directly
pcli2-mcp config | pcli2-rig --setup-mcp -

这将:

  1. 解析pcli2-mcp JSON配置
  2. 从配置中提取MCP服务器URL
  3. 将它们保存到 ~/.config/pcli2-rig/config.toml (或特定于平台的配置目录)
  4. 显示已配置服务器的确认信息

设置后,只需运行 pcli2-rig 通常情况下,您的MCP服务器将自动加载。

pcli2-mcp配置格式示例

pcli2-mcp配置JSON看起来像这样:

{
  "mcpServers": {
    "pcli2": {
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:8080/mcp"
      ],
      "command": "npx"
    },
    "filesystem": {
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:8081/mcp"
      ],
      "command": "npx"
    }
  }
}

PCLI2-RIG从中提取HTTP/HTTPS URL args 阵列,并将其配置为MCP服务器。

替代方案:手动服务器设置

如果您更喜欢手动运行MCP服务器:

  1. 构建并启动pcli2-mcp:

    # Build pcli2-mcp
    cd /path/to/pcli2-mcp
    cargo build --release
    
    # Start the server (default port 8080)
    ./target/release/pcli2-mcp serve --port 8080
    
  2. 将pcli2钻机连接到MCP服务器:

    # Add MCP server URL directly (session-only)
    pcli2-rig --mcp-remote http://localhost:8080/mcp
    
    # Multiple MCP servers
    pcli2-rig --mcp-remote http://localhost:8080/mcp --mcp-remote http://localhost:8081/mcp
    

临时会话(无配置文件)

对于不保存配置的一次性会话:

# Load MCP servers from pcli2-mcp config (pipe from stdin)
pcli2-mcp config | pcli2-rig --mcp-config -

# Combine with additional direct URLs
pcli2-mcp config | pcli2-rig --mcp-config - --mcp-remote http://localhost:9000/mcp

手动配置文件编辑

您还可以直接在以下位置编辑配置文件 ~/.config/pcli2-rig/config.toml:

model = "qwen2.5-coder:3b"
host = "http://localhost:11434"
yolo = false

[[mcp_servers]]
name = "pcli2"
url = "http://localhost:8080/mcp"
enabled = true

[[mcp_servers]]
name = "filesystem"
url = "http://localhost:8081/mcp"
enabled = true

验证MCP配置

配置后,您可以验证MCP服务器是否已加载:

# Inside pcli2-rig, use the /mcp command
/mcp list      # List configured MCP servers
/mcp tools     # Show available MCP tools

环境变量

# Set default model
export OLLAMA_MODEL=qwen2.5-coder:3b

# Set default host
export OLLAMA_HOST=http://localhost:11434

键盘快捷键

全球

关键 行动
Ctrl+C 退出应用程序
Ctrl+K 清除聊天记录
Ctrl+M 切换鼠标模式
Tab 在窗格之间切换焦点
Shift+Tab 向后切换焦点
Esc 关闭模态对话框 或 取消飞行中的LLM请求

鼠标模式(Ctrl+M):

  • 启用:左键单击可聚焦窗格,滚轮可滚动
  • 残障人士 (默认):从终端选择并复制文本

启用鼠标模式后,单击任何窗格(聊天、输入或日志)将聚焦该窗格。

输入窗格(聚焦时)

关键 行动
Enter 发送消息
↑/↓ 历史中的上一个/下一个命令(bash风格)
Home/End 跳转到输入的开始/结束
Backspace 删除光标前的字符
Delete 删除光标处的字符

聊天/日志窗格(聚焦时)

关键 行动
↑/↓ 滚动1行
PageUp/PageDown 滚动5行
←/→ 水平滚动(仅日志窗格)
Home/End 跳转到行首/行尾(仅限日志窗格)

鼠标控制

动作 效果
左键单击 聚焦于已单击的窗格
滚轮 在聚焦窗格中滚动(3行)

工具确认

关键 行动
Y 或 Enter 确认工具执行
N 或 Esc 取消工具执行

内置工具

代理可以访问这些工具:

工具 说明
read_file 读取文件内容
write_file 写入/创建文件
list_directory 列出目录内容
run_command 执行shell命令
search_code 使用grep搜索代码

工具确认

默认情况下,工具执行需要确认。您将看到如下对话框:

┌─ Confirmation Required ──────────────────────────┐
│                                                   │
│ 🔧 Tool Execution Requested                      │
│                                                   │
│ Tool: read_file                                  │
│ Arguments: {"path": "Cargo.toml"}                │
│                                                   │
│ Execute this tool? (Y/n)                         │
│                                                   │
└───────────────────────────────────────────────────┘

使用 --yolo 模式跳过确认以加快工作流程。

建筑学

┌─────────────────────────────────────────────────┐
│              PCLI2-RIG Architecture              │
├─────────────────────────────────────────────────┤
│  ┌───────────────────────────────────────────┐  │
│  │         TUI Layer (ratatui)               │  │
│  │  ┌─────────┐ ┌─────────┐ ┌────────────┐  │  │
│  │  │ Banner  │ │  Chat   │ │   Status   │  │  │
│  │  └─────────┘ └─────────┘ └────────────┘  │  │
│  └───────────────────────────────────────────┘  │
│                      │                          │
│                      ▼                          │
│  ┌───────────────────────────────────────────┐  │
│  │         Agent Core (Rig)                  │  │
│  │  ┌─────────┐ ┌─────────┐ ┌────────────┐  │  │
│  │  │ Ollama  │ │  Tool   │ │  Message   │  │  │
│  │  │ Client  │ │ Registry│ │  History   │  │  │
│  │  └─────────┘ └─────────┘ └────────────┘  │  │
│  └───────────────────────────────────────────┘  │
│                      │                          │
│                      ▼                          │
│  ┌───────────────────────────────────────────┐  │
│  │    Ollama (localhost:11434)               │  │
│  │         qwen2.5-coder:3b                  │  │
│  └───────────────────────────────────────────┘  │
└─────────────────────────────────────────────────┘

配置

配置文件

配置文件位于特定于平台的路径中:

  • Linux: ~/.config/pcli2-rig/config.toml
  • macOS: ~/Library/Application Support/pcli2-rig/config.toml
  • 视窗: %APPDATA%\pcli2-rig\config.toml

确切的路径如图所示 /help 模式,并在启动时记录。

配置示例:

model = "qwen2.5-coder:3b"
host = "http://localhost:11434"
yolo = false

# MCP Server Configuration (optional)
[[mcp_servers]]
name = "filesystem"
url = "http://localhost:3000"
enabled = true

[[mcp_servers]]
name = "github"
url = "http://localhost:3001"
token = "ghp_..."  # Optional auth
enabled = false

加载配置文件时,INFO日志消息会显示确切的路径:

✓ INFO Loaded config from /home/user/.config/pcli2-rig/config.toml

MCP命令

命令 描述
/mcp 显示MCP服务器状态
/mcp list 列出已配置的MCP服务器
/mcp tools 显示可用的MCP工具

Cargo.toml依赖关系

该项目使用以下关键依赖关系:

  • rig-core -AI代理框架(带 rmcp 特征)
  • rmcp -模型上下文协议客户端
  • ratatui -TUI框架
  • crossterm -终端后端
  • tokio -异步运行时
  • clap -CLI参数解析
  • tracing -日志记录
  • tui-markdown -Markdown渲染

模型选择

为了在资源有限的笔记本电脑上获得最佳效果:

RAM 推荐型号 质量
4GB qwen2.5-coder:1.5b 很好
8GB qwen2.5-coder:3b 好多了
16GB qwen2.5-coder:7b 最好的

故障排除

“创建Ollama客户端失败”

确保Ollama正在跑步:

ollama serve

“找不到模型”

先拉模型:

ollama pull qwen2.5-coder:3b

TUI渲染问题

尝试调整终端大小或检查终端是否支持UTF-8。

长长的原木线被切断了

Use ←/→ 当“日志”窗格聚焦时,使用箭头键水平滚动。

想要取消慢速LLM请求吗?

按 Esc 同时等待取消请求的响应。

CPU火花线未显示?

CPU使用火花线仅在等待LLM响应时出现在状态栏中。

命令

命令 描述
/help, /h, /? 显示详细的帮助模式
/quit, /exit, /q 退出应用程序
/clear, /cls 清除聊天记录
/model [name] 显示或设置当前模型
/history, /hist 显示消息计数
/status 显示当前状态
/mcp 显示MCP服务器状态
/mcp list 列出已配置的MCP服务器
/mcp tools 显示可用的MCP工具

CLI选项

选项 描述
--model <MODEL> 设置要使用的Olama模型
--host <HOST> 设置Ollama服务器主机(默认值: http://localhost:11434)
--setup-mcp <FILE> 一次性设置: 从pcli2-MCP配置加载MCP服务器并保存到配置文件
--mcp-config <PATH> 仅从配置文件加载此会话的MCP服务器(使用 - 对于stdin)
--mcp-remote <URL> 直接添加MCP服务器URL(可以多次使用)
--yolo 跳过工具确认提示
--verbose 启用详细日志记录
--help, -h 显示CLI帮助

发展

# Run in development mode
cargo run

# Run with verbose logging
RUST_LOG=debug cargo run -- --verbose

# Build release
cargo build --release

# Run tests
cargo test

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

致谢