3.4 KiB
3.4 KiB
Token 效率规范
规则
-
精简输出:
- 默认输出控制在必要最小范围内,优先提供关键信息而非完整内容。
- 避免冗余解释,用户已知的背景信息不再重复。
- 单次回复总长度建议控制在 2000 字以内,复杂任务可分步输出。
-
代码输出优化:
- 只输出修改相关的代码片段,禁止输出完整文件内容。
- 使用
// ...或注释省略未修改部分,保留必要的上下文(通常前后 3-5 行)。 - 多文件修改时,逐个文件展示,每个文件只展示变更部分。
-
避免重复:
- 不重复用户已提供的信息或上下文。
- 不重复解释同一概念,首次提及即可。
- 列表或表格中避免重复字段,使用引用或缩写。
-
结构化压缩:
- 优先使用列表、表格替代段落描述,减少连接词和过渡句。
- 使用符号(如
→、⇒)替代文字表达因果关系。 - 技术术语使用标准缩写(如 API、DB、UI),避免全称重复。
-
智能省略:
- 通用代码模板(如 import 语句、标准配置)可省略,必要时提供链接或提示。
- 错误堆栈只保留关键帧,过滤框架内部调用。
- 日志输出只保留与问题相关的行,使用
...省略无关内容。
-
分步响应:
- 复杂任务先给出概要方案和关键步骤,确认后再展开细节。
- 多步骤任务每步只输出当前步骤内容,不预输出后续步骤。
与现有规则的关联
| 关联规则 | 说明 |
|---|---|
output-format.md 第 2 条"简洁优先" |
本规则是对"简洁优先"的具体化和量化补充,侧重 Token 层面的优化 |
output-format.md 第 8 条"代码输出" |
本规则第 2 条是对该条的扩展,增加了具体的代码省略策略 |
示例
代码输出(优化前)
package com.example.service;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private OrderRepository orderRepository;
// ... 其他代码 ...
public User getUserById(Long id) {
return userRepository.findById(id).orElse(null);
}
// ... 其他代码 ...
}
代码输出(优化后)
// UserService.java
public User getUserById(Long id) {
return userRepository.findById(id).orElse(null);
}
日志输出(优化前)
2024-01-01 10:00:01 INFO [main] Starting application...
2024-01-01 10:00:02 INFO [main] Loading configuration...
2024-01-01 10:00:03 ERROR [main] Failed to connect to database
java.sql.SQLException: Connection refused
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1234)
at com.mysql.jdbc.Connection.<init>(Connection.java:567)
at com.mysql.jdbc.Driver.connect(Driver.java:89)
at java.sql.DriverManager.getConnection(DriverManager.java:123)
at com.example.config.DatabaseConfig.init(DatabaseConfig.java:45)
... 省略 20 行框架内部调用
日志输出(优化后)
ERROR: Failed to connect to database (Connection refused)
at DatabaseConfig.init(DatabaseConfig.java:45)
适用范围
- 所有代码和技术内容输出
- 日志和错误信息展示
- 多步骤任务的分步回复