凌晨2点14分,我把Temperature从0.7调到0.2。AI突然从"诗人"变成了"会计"。那一刻我明白:参数不是数字,是AI的人格开关。
同样的模型,不同的参数,输出可能天差地别。Temperature=0的代码补全几乎不会出错,Temperature=1的创意写作充满惊喜。学会调参,让你的AI"指哪打哪"。
控制输出的随机性。值越高,AI越"放飞自我";值越低,AI越"循规蹈矩"。
范围:0.0 - 2.0 | 默认:0.7
控制AI考虑的词汇范围。Top-P=0.9表示只考虑概率最高的90%词汇。
范围:0.0 - 1.0 | 默认:1.0
限制AI一次回复的最大token数。既控制输出长度,也影响成本。
# ~/.openclaw/config.yaml
models:
default:
provider: anthropic
model: claude-3-5-sonnet-20241022
api_key: ${ANTHROPIC_API_KEY}
# 生成参数
parameters:
temperature: 0.7
top_p: 1.0
max_tokens: 4096
# 代码专用模型 - 低温度
coder:
provider: anthropic
model: claude-3-5-sonnet-20241022
api_key: ${ANTHROPIC_API_KEY}
parameters:
temperature: 0.2 # 精确最重要
top_p: 0.95
max_tokens: 8192 # 代码可能需要更长输出
# 在SOUL.md中定义不同任务的参数
## 任务:写代码
当用户要求生成代码时:
- 使用temperature=0.2确保准确性
- max_tokens根据代码复杂度设置(1024-8192)
- 优先提供可运行的完整代码
## 任务:创意写作
当用户要求创意内容时:
- 使用temperature=0.9激发创意
- 鼓励独特的想法和表达
- 可以适当使用比喻和隐喻
## 任务:事实问答
当用户询问事实信息时:
- 使用temperature=0.1确保准确性
- 不确定时明确告知"我不确定"
- 提供信息来源(如有)
| 场景 | Temperature | Top-P | Max Tokens | 原因 |
|---|---|---|---|---|
| 代码生成/审查 | 0.0-0.2 | 0.95 | 4096 | 精确性优先 |
| 代码解释/文档 | 0.3-0.5 | 1.0 | 2048 | 清晰易懂 |
| 数据分析 | 0.1-0.3 | 0.9 | 2048 | 避免编造数据 |
| 技术写作 | 0.4-0.6 | 0.95 | 4096 | 专业但不僵硬 |
| 客服回复 | 0.5-0.7 | 1.0 | 1024 | 友好自然 |
| 创意写作 | 0.8-1.0 | 0.95 | 2048 | 激发创造力 |
| 头脑风暴 | 1.0-1.3 | 0.9 | 1024 | 多样性优先 |
| 角色扮演 | 0.7-0.9 | 0.95 | 2048 | 保持角色一致性 |
temperature: 0.0 # 最确定性的输出
top_p: 0.1 # 只考虑最可能的词
presence_penalty: 0 # 不惩罚重复
frequency_penalty: 0 # 不惩罚重复
temperature: 0.9 # 高度随机
top_p: 0.95 # 较宽的采样范围
presence_penalty: 0.6 # 鼓励提及新概念
frequency_penalty: 0.3 # 轻微避免重复用词
temperature: 0.7 # 平衡
top_p: 1.0 # 完整考虑
presence_penalty: 0.3 # 保持话题多样性
frequency_penalty: 0.5 # 避免机器人式重复
在对话中让用户控制"创意程度":
# 在SOUL.md中添加
用户可以通过以下指令调整回复风格:
- "/精确" → temperature=0.2 (适合事实、代码)
- "/平衡" → temperature=0.7 (默认)
- "/创意" → temperature=1.0 (适合头脑风暴)
切换后回复:"已切换到[精确/平衡/创意]模式"
# 创建多个配置对比
models:
conservative: # 保守型
temperature: 0.3
balanced: # 平衡型
temperature: 0.7
creative: # 创意型
temperature: 1.0
# 测试指标
- 用户满意度评分
- 任务完成率
- 重新生成请求次数
- 平均回复长度