38b21d7adb
- BIZ-11: 组织架构与岗位职责体系建设方案 - BIZ-12: 文档存储、命名与索引规范方案 - BIZ-13: 运行稳定性保障方案(任务停滞与429速率限制) - BIZ-14: 知识库体系建设方案 - BIZ-15: 配置文件持续优化机制方案 所有方案均为初稿,待刘总审阅。
11 KiB
11 KiB
BIZ-15 智能体配置文件持续优化方案
版本:v1.0
编制:陆怀瑾(COO)
日期:2026-06-22
状态:待审阅
一、目标
建立配置文件持续优化机制,通过定时任务每周检查并优化所有智能体的配置文件,核心策略是**"引用代替填塞"**,避免 Token 无谓增长。
二、问题分析
2.1 当前配置文件的 Token 浪费
| 文件 | 典型问题 | Token 浪费 |
|---|---|---|
| AGENTS.md | 嵌入全部 Agent 详细信息 | 3000+ tokens |
| SOUL.md | 嵌入完整的 SOP 模板 | 2000+ tokens |
| TOOLS.md | 嵌入工具使用详情 | 1500+ tokens |
| MEMORY.md | 未归档的历史记忆堆积 | 5000+ tokens |
总计浪费:~11,500 tokens/Agent
2.2 根本原因
- 内联而非引用:详细内容直接写入配置文件,而非引用外部文档
- 缺乏归档机制:历史记忆不断累积,从不归档清理
- 无优化检查:没有定期检查和优化机制
三、核心策略:引用代替填塞
3.1 优化前后对比
优化前(错误做法):
# AGENTS.md
## 团队成员详情
### 刘诗妮(secretary)
- Feishu ID: ou_6201fa2f987300046ca659cf231f1d3f
- 核心职能:业务入口、进度跟进、飞书对接
- 工作模式:不进项目,专职支持 Vincent
- 可用时间:工作日 9:00-18:00
- 技能清单:...
- 联系方式:...
(每个 Agent 都有 300+ tokens 的详细信息)
### 陆怀瑾(coo)
...
(共 12 个 Agent,总计 3600+ tokens)
优化后(正确做法):
# AGENTS.md
## 团队成员详情
完整 Agent 信息请参阅:[docs/agent-roster.md](docs/agent-roster.md)
核心协作协议:
| Agent | 核心职能 | 何时联系 |
|-------|----------|----------|
| secretary | 业务入口/进度跟进 | 任务接收、结果汇报 |
| coo | 资源协调/风险 | 资源协调、风险识别 |
...
(仅保留核心协作表,200 tokens)
3.2 可外部化的内容
| 配置文件 | 可外部化内容 | 外部文档路径 |
|---|---|---|
| AGENTS.md | Agent 详细信息 | docs/agent-roster.md |
| AGENTS.md | 协作流程图 | docs/collaboration-flow.md |
| SOUL.md | SOP 模板 | docs/sop-templates/ |
| SOUL.md | 个性描述详情 | docs/persona-details/ |
| TOOLS.md | 工具使用详情 | docs/tools-reference.md |
| MEMORY.md | 超过 30 天的记忆 | memory/archive/YYYY-MM/ |
四、每周优化流程
4.1 流程概览
定时任务触发(每周日凌晨 2:00)
↓
扫描所有 Agent 配置文件
↓
检测内联冗余内容
↓
生成优化建议报告
↓
┌─────┴─────┐
│ │
自动优化 需人工审批
(低风险) (高风险)
↓ ↓
执行优化 COO 审批 → 执行
↓
更新优化日志
↓
通知 COO
4.2 检测规则
规则 1:大段内联内容检测
def detect_inline_blocks(file_path):
"""检测超过 N 行的内联内容块"""
with open(file_path) as f:
lines = f.readlines()
blocks = []
current_block = []
in_code_block = False
for i, line in enumerate(lines):
if line.startswith('```'):
in_code_block = not in_code_block
continue
if in_code_block:
continue
# 检测密集内容(无空行的连续行)
if line.strip() and (not current_block or lines[i-1].strip()):
current_block.append((i+1, line))
else:
if len(current_block) >= 20: # 20 行阈值
blocks.append({
'start': current_block[0][0],
'end': current_block[-1][0],
'lines': len(current_block),
'preview': ''.join([l for _, l in current_block[:5]])
})
current_block = []
return blocks
规则 2:重复内容检测
def detect_duplicates(config_files):
"""检测多个配置文件中的重复内容"""
content_hashes = {}
duplicates = []
for file_path in config_files:
with open(file_path) as f:
content = f.read()
# 分块计算 hash
blocks = split_into_blocks(content)
for block in blocks:
h = hash(block)
if h in content_hashes:
duplicates.append({
'content': block[:100] + '...',
'files': [content_hashes[h], file_path]
})
else:
content_hashes[h] = file_path
return duplicates
规则 3:引用缺失检测
def detect_missing_refs(file_path, docs_dir):
"""检测应该引用但未引用的外部文档"""
known_externalizable = [
'SOP 模板', '岗位说明书', '工具详情', '流程图', '检查清单'
]
with open(file_path) as f:
content = f.read()
missing = []
for keyword in known_externalizable:
if keyword in content and 'docs/' not in content:
missing.append({
'keyword': keyword,
'suggestion': f'建议创建 docs/{keyword_to_filename(keyword)}.md 并引用'
})
return missing
4.3 优化建议报告格式
# 配置文件优化报告
**检查时间**: 2026-06-22 02:00
**检查范围**: 所有 Agent 配置文件
---
## 概览
| 指标 | 数值 |
|------|------|
| 检查文件数 | 7 × 12 Agent = 84 |
| 发现冗余块 | 23 |
| 可优化 Token | 15,000 |
| 高风险变更 | 3 |
---
## 详细建议
### AGENTS.md (coo)
#### 建议 1:外部化 Agent 详情
- **位置**: 第 15-230 行
- **内容**: 12 个 Agent 的详细信息
- **建议**: 移动到 docs/agent-roster.md,AGENTS.md 仅保留协作表
- **节省**: 3,400 tokens
- **风险**: 低(只读引用)
#### 建议 2:外部化协作流程
- **位置**: 第 245-300 行
- **内容**: 开发 SOP 详细流程
- **建议**: 移动到 docs/sop-development.md,AGENTS.md 仅保留引用
- **节省**: 800 tokens
- **风险**: 低
---
### SOUL.md (secretary)
#### 建议 3:外部化 SOP 模板
- **位置**: 第 50-150 行
- **内容**: 完整 SOP 模板
- **建议**: 移动到 docs/sop-template.md,SOUL.md 仅保留引用
- **节省**: 1,500 tokens
- **风险**: 中(其他 Agent 可能引用)
---
## 自动优化建议
以下建议可自动执行(低风险):
- [ ] 建议 1:外部化 Agent 详情
- [ ] 建议 2:外部化协作流程
以下建议需人工审批(中高风险):
- [ ] 建议 3:外部化 SOP 模板(需确认无其他引用)
---
## 执行日志
执行后将在此处记录:
- 执行的优化项
- 跳过的优化项及原因
- Token 节省统计
五、优化工具实现
5.1 扫描脚本
#!/bin/bash
# optimize-configs.sh - 配置文件优化扫描脚本
WORKSPACE="/home/vincent/.openclaw/workspace/coo"
REPORT_FILE="$WORKSPACE/reports/$(date +%Y-%m-%d)_配置优化报告.md"
echo "# 配置文件优化报告" > "$REPORT_FILE"
echo "" >> "$REPORT_FILE"
echo "**检查时间**: $(date '+%Y-%m-%d %H:%M')" >> "$REPORT_FILE"
# 扫描所有 Agent 目录
for agent_dir in "$WORKSPACE"/agent-*/; do
agent_name=$(basename "$agent_dir")
echo "扫描 $agent_name..."
# 检查各配置文件
for config in AGENTS.md SOUL.md TOOLS.md MEMORY.md; do
if [ -f "$agent_dir/$config" ]; then
# 运行检测规则
python3 detect_redundancy.py "$agent_dir/$config" >> "$REPORT_FILE"
fi
done
done
echo "报告已生成:$REPORT_FILE"
5.2 自动优化脚本
#!/usr/bin/env python3
# auto-optimize.py - 自动执行低风险优化
import sys
import os
def extract_and_replace(file_path, start_line, end_line, external_doc_path):
"""提取内容到外部文档,并替换为引用"""
# 读取原文件
with open(file_path, 'r') as f:
lines = f.readlines()
# 提取内容
extracted = ''.join(lines[start_line-1:end_line])
# 写入外部文档
os.makedirs(os.path.dirname(external_doc_path), exist_ok=True)
with open(external_doc_path, 'w') as f:
f.write(extracted)
# 替换为引用
ref_line = f"\n详细内容请参阅:[{external_doc_path}]({external_doc_path})\n"
new_lines = lines[:start_line-1] + [ref_line] + lines[end_line:]
with open(file_path, 'w') as f:
f.writelines(new_lines)
return len(extracted.split()) # 返回节省的字数估算
六、定时任务配置
6.1 Cron 配置
# 每周日凌晨 2:00 执行配置文件优化检查
0 2 * * 0 /home/vincent/.openclaw/workspace/coo/scripts/optimize-configs.sh
6.2 任务执行流程
Cron 触发
↓
运行扫描脚本
↓
生成优化报告
↓
检查是否有低风险优化项
↓
┌─────┴─────┐
│ │
有 无
│ │
自动执行 仅通知
↓
更新报告
↓
通知 COO(飞书)
七、Token 节省估算
7.1 预期效果
| 配置文件 | 优化前 | 优化后 | 节省 |
|---|---|---|---|
| AGENTS.md | 4,000 | 500 | 87.5% |
| SOUL.md | 3,500 | 800 | 77% |
| TOOLS.md | 2,500 | 400 | 84% |
| MEMORY.md | 5,000 | 2,000 | 60% |
| 总计/Agent | 15,000 | 3,700 | 75% |
7.2 全局影响
- 12 个 Agent × 11,300 tokens = 135,600 tokens 节省
- 每次对话 节省上下文,提升响应速度
- 降低成本:减少 Token 使用量
八、风险控制
8.1 风险等级划分
| 等级 | 标准 | 处理方式 |
|---|---|---|
| 低 | 仅影响当前 Agent 的只读引用 | 自动执行 |
| 中 | 可能影响其他 Agent 的共享内容 | COO 审批 |
| 高 | 核心配置变更 | Vincent 审批 |
8.2 回滚机制
# 每次优化前自动备份
backup_file="$file_path.backup.$(date +%Y%m%d%H%M%S)"
cp "$file_path" "$backup_file"
# 如需回滚
cp "$backup_file" "$file_path"
8.3 变更日志
# 配置文件优化日志
| 日期 | Agent | 文件 | 优化项 | 节省 Token | 执行者 |
|------|-------|------|--------|------------|--------|
| 2026-06-22 | coo | AGENTS.md | 外部化 Agent 详情 | 3,400 | auto |
| 2026-06-22 | coo | AGENTS.md | 外部化协作流程 | 800 | auto |
九、实施步骤
阶段 1:工具开发(本周)
- 编写检测规则脚本
- 编写自动优化脚本
- 编写报告生成脚本
- 测试工具链
阶段 2:首次优化(下周)
- 运行首次全面扫描
- 生成基线报告
- 人工审批后执行首批优化
- 验证优化效果
阶段 3:自动化(持续)
- 配置 Cron 定时任务
- 配置飞书通知
- 建立回滚和审计机制
十、交付物清单
- 配置文件优化检测脚本
- 自动优化工具
- 优化报告模板
- Cron 定时任务配置
- 变更日志模板
- 回滚脚本
⚠️ 本方案需 Vincent 审阅后方可实施。审阅前不修改任何 Agent 配置文件。