yosh95/llm-cli
GitHub: yosh95/llm-cli
一款加固安全的多 LLM 统一命令行工具,通过后量子密码学、推理监控和沙箱机制实现可验证的自主 Agent 执行。
Stars: 1 | Forks: 0
# llm-cli:面向多 LLM 的统一命令行接口

## 📄 技术报告(预印本)
以下报告提供了详细的架构见解和安全分析:
- **[Client Integrity and Adaptive Security Scaling for AI Agents](paper/pqc/trilogy_phase3_temporal_pqc.pdf)**
- **[Verified Tool Orchestration: Securing Autonomous Agents via Asymmetric Identity and SSM-based Reasoning Monitoring](paper/zero_trust/trilogy_phase2_behavioral_zero_trust.pdf)**
- **[Layered Security Guardrails for LLM Command-Line Interfaces](paper/guardrail/trilogy_phase1_structural_guardrails.pdf)**
[English] | [日本語](#japanese-description)
`llm-cli` 是一款功能多样的命令行工具,为与各种大型语言模型(LLM)交互提供了统一的接口。它支持来自 Google(Gemini)、OpenAI、Anthropic(Claude)、xAI(Grok)的服务,以及**通过 Ollama 运行的本地 LLM**,允许你通过单一命令 `llm` 在终端中切换供应商并利用它们的能力。
`:指定供应商(`google`、`openai`、`anthropic`、`xai`、`ollama`)。
- `-m, --model `:指定模型别名(例如 `pro`、`flash`、`mini`、`opus`)。
- `-s, --stdout`:将响应直接打印到标准输出并退出。
- `--raw`:在输出中禁用 Markdown 渲染。
- `--mcp`:启用 MCP 集成。
- `--mcp-server`:作为 MCP 服务器运行。
- `--session `:加载已保存的会话 JSON。
### 5. 聊天内命令
- `/p`、`/m`:切换供应商/模型。
- `/t `:插入模板。
- `/i`:显示会话信息和推理完整性分数。
- `/cp`:检查点(总结并清除历史记录)。
- `/attach `:手动附加文件/URL。
- `/save` / `/load`:管理对话历史。
- `/tools on|off`:切换工具执行。
- `/debug`:切换实时调试模式。
- `/reload`:从磁盘重新加载配置。
- `/clear`:清除对话历史。
- `/q` / `/quit`:退出。(或者随时使用 **Ctrl+C** / **Ctrl+D**)。
## 内置工具
| 工具 | 描述 |
| :--- | :--- |
| `list_files_in_directory` | 列出目录树中的文件。 |
| `search_files` | 在文件中搜索正则表达式模式。 |
| `read_file_content` | 读取文本文件的内容。 |
| `execute_python` | 执行 Python 代码以进行系统交互(替代 Shell 命令)。 |
| `edit_file` | 通过 Diff 预览编辑文件。 |
| `create_or_overwrite_file` | 创建新文件。 |
| `search_web` | 使用 Brave Search 搜索网络。 |
| `read_html_from_url` | 获取 URL 并将其转换为 Markdown。 |
## 安全与防护措施
`llm-cli` 实施了多项安全措施来保护你的系统:
### 🛡️ 结构化系统交互
为了降低命令注入的风险,`llm-cli` 避免直接访问 Shell。系统交互通过 **Python 代码执行**(设置 `shell=False`)进行。
### 🛡️ 已验证的工具执行
- **非对称身份**:使用 **RS256** 签名验证工具执行请求的来源。
- **后量子密码学(PQC)**:
- **签名(ML-DSA)**:使用混合签名(RSA + ML-DSA)进行长期验证。
- **加密(ML-KEM)**:使用混合加密(ML-KEM + AES-256-GCM)保护传输中的敏感数据和审计日志。
- **客户端验证**:客户端计算其自身的源代码哈希(SHA-256)并生成 PQC 签名令牌。这包含在 **Hybrid Identity Token(JWT)** 中,以帮助远程服务器确认客户端的状态。
- **自适应安全扩展**:根据被调用工具的感知风险调整 PQC 安全级别。
- **审计日志**:用于防篡改的链式哈希,并可选择对敏感参数进行 **ML-KEM 加密**。
### 🛡️ 推理监控器(基于 SSM)
使用 **NumPy 实现的 Mamba(State Space Model)** 来监控 LLM 的推理过程。
- **统计监控**:追踪 Mamba 模型的内部状态,以检测生成输出模式中的统计异常或显著偏移。
- **推理完整性**:如果输出显著偏离预期模式,监控器会对其进行标记。
- **用户干预**:如果检测到高异常分数,系统可以自动切换到**强制 Human-in-the-Loop** 模式。
### 🧠 意图分析器:语义验证
可以使用辅助的轻量级 LLM(验证器)在执行前审计主 Agent 的操作。它会检查生成的代码是否符合用户的原始请求。
### 🛡️ 机密信息泄露防护
有助于防止意外传输 API 密钥或密码。
- **检测**:结合**熵分析**与基于模型的评分,识别提示和 AI 响应中的潜在机密。
- **确认**:在发送或显示看起来像机密的数据之前提醒用户,并要求明确批准。
### 🛡️ 资源限制与沙箱
- **静态分析**:在执行前扫描 Python 代码以查找潜在的风险模式(例如可疑的导入)。
- **Linux 沙箱(Bubblewrap)**:在 Linux 上,使用 `bubblewrap` 为 Python 执行提供可选的隔离环境。
- **资源约束**:对工具执行应用超时和内存限制。
- **路径防护**:将文件操作限制在 `allowed_paths` 内。
- **Human-in-the-Loop**:默认情况下,代码执行和文件修改**需要人工批准**。
- **输出截断**:防止过大的输出消耗过多资源。
### 🔑 基于角色的工具访问
- **角色**:可以将工具分配给不同的角色(例如 `admin`、`user`)。
- **控制**:用户可以通过配置限制会话中可用的工具。
## 高级功能
### 🔌 插件架构:添加新工具
`llm-cli` 使用基于装饰器的插件系统。所有工具都自动需要 `explanation` 参数。
```
@tool(name="get_weather", description="Get weather", parameters={...})
def get_weather(city: str) -> dict:
return {"weather": "sunny"}
```
### 🌐 Model Context Protocol(MCP)支持
通过 SSH 连接到远程服务器,或通过 Docker 集成 GitHub 等服务。
```
[[mcp_servers]]
name = "remote"
command = "ssh"
args = ["user@host", "python3", "-m", "llm_cli.apps.mcp_server"]
```
### 🧠 推理完整性与哨兵更新
内置的推理哨兵(SSM)从已验证的推理模式中持续学习。它提供针对语义偏移和提示注入的实时保护,且无需外部依赖。
### 💡 高级用户技巧
- **后台运行(`Ctrl+Z`)**:挂起会话以执行 Shell 操作,然后使用 `fg` 返回。
- **外部编辑器(`Ctrl+X, Ctrl+E`)**:在 `vim` 或 `nano` 中打开当前提示符以进行复杂编辑。
### 🔑 安全密钥管理
管理你的 RSA 和 PQC(ML-DSA/ML-KEM)身份密钥:
```
# 生成所有密钥 (RSA, ML-DSA, ML-KEM)
llm-cli-security keygen
# 为远程认证重建完整性清单
llm-cli-security manifest
# 解密 PQC 加密的审计日志 (ML-KEM)
llm-cli-security decrypt-log ~/.llm_cli/audit.jsonl -o decrypted.jsonl
```
## 许可证
根据 [Apache License 2.0](LICENSE) 授权。
标签:AI安全, AI风险缓解, Anthropic Claude, Chat Copilot, DLL 劫持, DNS解析, GitHub Advanced Security, LLM评估, Ollama, OpenAI, Python, SSM, xAI Grok, 内存规避, 后量子密码学, 大语言模型, 安全加固, 安全护栏, 开源项目, 推理监控, 效率工具, 无后门, 服务枚举, 本地模型, 终端工具, 统一接口, 编排引擎, 网络调试, 自动化, 逆向工具, 零信任架构