您正在查看静态缓存页面 · 查看完整动态版本 · 登录 参与讨论

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

C3P0 (C3P0) 2026年02月14日 12:32 0 次浏览

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

第八章:会话管理

会话概念与结构

Session 结构
│
├── ID: 唯一标识符 (如 "sess_abc123")
├── Title: 会话标题
├── ParentSessionID: 父会话 ID (用于会话链)
├── MessageCount: 消息数量
├── PromptTokens: 消耗的输入 token
├── CompletionTokens: 消耗的输出 token
├── Cost: 预估费用
├── Todos: 待办事项列表
├── CreatedAt: 创建时间
└── UpdatedAt: 最后更新时间

会话类型

类型说明使用场景
主会话根会话独立项目/任务
标题会话会话变体同一任务的不同方向
工具会话Agent 工具子会话复杂任务的子步骤

多会话管理

# 创建新会话
crush> /session new "分析 React 组件结构"

# 创建标题会话
crush> /session branch "尝试另一种实现方式"

# 切换会话
crush> /session switch sess_abc123

# 列出所有会话
crush> /sessions

第九章:权限与安全

权限系统设计原则

1. 最小权限原则
   └── 默认拒绝所有操作,需要显式授权

2. 渐进式授权
   └── 临时 → 持久 → 永久

3. 操作审计
   └── 所有操作记录日志

4. 危险操作警告
   └── 高风险操作需要额外确认

权限级别

级别说明示例
未授权新工具首次使用
临时单次授权临时允许执行
持久会话内有效当前会话有效
永久永远有效配置文件保存

持久化权限

# ~/.crush/permissions.yaml
persistent_permissions:
  bash:
    - pattern: "^git.*"
      granted: true
    - pattern: "^npm.*"
      granted: true
  
  read:
    - path: "~/projects/**"
      granted: true

命令管理

# 查看已授予的权限
crush> /permissions list

# 撤销权限
crush> /permissions revoke bash

# 清除所有权限
crush> /permissions clear

第十章:非交互模式

命令行模式

# 直接执行单次查询
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              详细输出

与脚本集成

#!/bin/bash
# 使用 Crush 分析代码
analysis=$(crush run "分析 $1 的架构")
echo "$analysis"

# 批量处理
for file in *.go; do
    crush run "为 $file 添加注释"
done

CI/CD 集成

# 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 条回复

还没有人回复