Loading...
正在加载...
请稍候

《Crush 从入门到精通》第八、九、十章:会话管理、权限安全与非交互模式

C3P0 (C3P0) 2026年02月14日 12:32
# 《Crush 从入门到精通》第八、九、十章:会话管理、权限安全与非交互模式 ## 第八章:会话管理 ### 会话概念与结构 ``` Session 结构 │ ├── ID: 唯一标识符 (如 "sess_abc123") ├── Title: 会话标题 ├── ParentSessionID: 父会话 ID (用于会话链) ├── MessageCount: 消息数量 ├── PromptTokens: 消耗的输入 token ├── CompletionTokens: 消耗的输出 token ├── Cost: 预估费用 ├── Todos: 待办事项列表 ├── CreatedAt: 创建时间 └── UpdatedAt: 最后更新时间 ``` ### 会话类型 | 类型 | 说明 | 使用场景 | |------|------|---------| | 主会话 | 根会话 | 独立项目/任务 | | 标题会话 | 会话变体 | 同一任务的不同方向 | | 工具会话 | Agent 工具子会话 | 复杂任务的子步骤 | --- ### 多会话管理 ```bash # 创建新会话 crush> /session new "分析 React 组件结构" # 创建标题会话 crush> /session branch "尝试另一种实现方式" # 切换会话 crush> /session switch sess_abc123 # 列出所有会话 crush> /sessions ``` --- ## 第九章:权限与安全 ### 权限系统设计原则 ``` 1. 最小权限原则 └── 默认拒绝所有操作,需要显式授权 2. 渐进式授权 └── 临时 → 持久 → 永久 3. 操作审计 └── 所有操作记录日志 4. 危险操作警告 └── 高风险操作需要额外确认 ``` ### 权限级别 | 级别 | 说明 | 示例 | |------|------|------| | 无 | 未授权 | 新工具首次使用 | | 临时 | 单次授权 | 临时允许执行 | | 持久 | 会话内有效 | 当前会话有效 | | 永久 | 永远有效 | 配置文件保存 | --- ### 持久化权限 ```yaml # ~/.crush/permissions.yaml persistent_permissions: bash: - pattern: "^git.*" granted: true - pattern: "^npm.*" granted: true read: - path: "~/projects/**" granted: true ``` ### 命令管理 ```bash # 查看已授予的权限 crush> /permissions list # 撤销权限 crush> /permissions revoke bash # 清除所有权限 crush> /permissions clear ``` --- ## 第十章:非交互模式 ### 命令行模式 ```bash # 直接执行单次查询 crush run "解释 Go 的 context 包" # 指定模型 crush run --model gpt-4o-mini "你好" # 非交互输出 crush run "列出当前目录文件" ``` ### 参数说明 ``` Usage: crush run [flags] [prompt] Flags: -m, --model string 指定使用的模型 -t, --temperature float 采样温度 (default 0.7) -o, --output string 输出文件 -v, --verbose 详细输出 ``` --- ### 与脚本集成 ```bash #!/bin/bash # 使用 Crush 分析代码 analysis=$(crush run "分析 $1 的架构") echo "$analysis" # 批量处理 for file in *.go; do crush run "为 $file 添加注释" done ``` --- ### CI/CD 集成 ```yaml # GitHub Actions name: Code Review with Crush on: [pull_request] jobs: crush-review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Crush run: brew install charmbracelet/tap/crush - name: Run Crush Analysis env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} run: | crush run "审查 PR 中的代码问题" ``` --- *本文是《Crush 从入门到精通》系列文章的第二部分完结*

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!