AI Agent 龙虾学校 IQ 测试翻车后,我用三大 Skill 逆袭内容产出能力
AI Agent 龙虾学校 IQ 测试翻车后,我用三大 Skill 逆袭内容产出能力
从内容产出 33 分到图表/PDF/PPT 全自动交付的实战记录
前言
最近给自己的飞书 AI Agent「多多助理」做了一次龙虾学校 IQ 能力测试,结果五维雷达图一出来,直接扎心了——内容产出能力只有 33/100,是所有维度里最低的。
报告原话:「容易停留在文字描述,无法把内容真正产出成文件。」
翻译成人话就是:你的 Agent 只会说,不会做。让它写个报告,它给你一堆文字;让它做个 PPT,它告诉你「我无法生成 PPT」。
这能忍?花了一个下午,我给它补了三大内容产出 Skill:matplotlib 图表生成、PDF 导出、PPT 演示文稿生成。全部从零部署,全部打通飞书自动发送。
这篇文章完整记录了踩坑和解决方案。
一、测试现状:五维能力雷达图
先看看龙虾学校给出的成绩单:
| 维度 | 得分 | 评价 |
|---|---|---|
| 信息与数据分析 | 100/100 | 满分,查行情做分析很稳 |
| 工具与技能 | 76/100 | 不错,手机端通讯和并行任务可靠 |
| 模型基础能力 | 59/100 | 中等,受底层模型限制 |
| 安全能力 | 50/100 | 短板,遇到危险命令缺少防护 |
| 内容产出能力 | 33/100 | 💀 重灾区 |
IQ 107,段位「基围虾」,第 108 名,击败 74% 的同批龙虾。
问题很明确:Agent 缺乏将「想法」转化为「可交付文件」的能力。不是模型不够聪明,而是没有对应的工具链。
二、技术方案:三大 Skill 架构
我的 Agent 运行在阿里云 ECS 上,基于 OpenClaw 框架,底层模型是 Kimi K2.5(通过 DashScope 调用),通过飞书机器人交互。
三大 Skill 的技术栈:
┌─────────────────────────────────────────┐
│ 飞书用户对话 │
├─────────────────────────────────────────┤
│ OpenClaw Gateway (18xxx) │
│ Agent: main → 子Agent分派 │
├──────────┬──────────┬───────────────────┤
│ Skill 1 │ Skill 2 │ Skill 3 │
│ 图表生成 │ PDF导出 │ PPT生成 │
│matplotlib│WeasyPrint│ python-pptx │
│ → PNG │ → PDF │ → PPTX │
├──────────┴──────────┴───────────────────┤
│ 飞书 API:上传 + 发送文件/图片 │
└─────────────────────────────────────────┘
每个 Skill 都遵循同一个模式:
- Agent 识别用户意图 → 构造参数
- 调用对应脚本生成文件
- 通过飞书 API 自动上传并发送到聊天
三、Skill 1:matplotlib 图表生成
目标:支持折线图、柱状图、饼图、散点图、K 线图,中文友好,自动发飞书。
3.1 核心脚本 gen_chart.py
脚本接收 JSON 参数(通过 stdin),根据 chart_type 分发到对应的绑图函数:
# 支持的图表类型
generators = {
'line': gen_line, # 折线图
'bar': gen_bar, # 柱状图
'pie': gen_pie, # 饼图
'scatter': gen_scatter, # 散点图
'kline': gen_kline, # K线图(A股红涨绿跌)
}
3.2 中文字体处理
服务器上中文字体是个大坑。解决方案:
# 安装 Noto CJK 字体(注意包名!)
yum install -y google-noto-sans-cjk-ttc-fonts
# 不是 google-noto-sans-cjk-fonts,少了 ttc 会找不到包
脚本里自动检测可用字体:
def setup_chinese_font():
candidates = [
'Noto Sans CJK SC',
'WenQuanYi Micro Hei',
'SimHei',
'Microsoft YaHei',
]
available = {f.name for f in fm.fontManager.ttflist}
for font_name in candidates:
if font_name in available:
plt.rcParams['font.sans-serif'] = [font_name]
plt.rcParams['axes.unicode_minus'] = False
return font_name
3.3 飞书图片发送
踩坑点:飞书流式卡片不支持内嵌本地图片。必须走两步:
- 调用
POST /im/v1/images上传图片,拿到image_key - 调用
POST /im/v1/messages发送独立图片消息
四、Skill 2:PDF 导出
目标:Markdown → 精美 PDF,支持中文、代码块、表格,自动发飞书。
4.1 技术栈选型
Markdown → markdown库 → HTML → WeasyPrint → PDF
WeasyPrint 的优势是 CSS 支持好,可以用 @page 控制页眉页脚和页码。
4.2 最大的坑:heredoc 三引号冲突
gen_pdf.py 里有 CSS 模板字符串用了三引号 """,而远程部署通常用 cat << 'EOF' heredoc 写入文件。问题是 heredoc 会吞掉三引号!
错误做法:
cat << 'EOF' > gen_pdf.py
CSS = """
body { font-size: 11pt; }
"""
EOF
# ❌ SyntaxError: unterminated triple-quoted string literal
正确做法:用 Python 自己写文件:
python3.11 << 'HEREDOC'
import os
script_content = r'''
CSS = """
body { font-size: 11pt; }
"""
'''
with open('gen_pdf.py', 'w') as f:
f.write(script_content)
HEREDOC
r'''...''' 里的三引号不会被外层 heredoc 干扰。这个技巧在 PPT Skill 部署中也用到了。
4.3 飞书文件发送
和图片不同,PDF 走的是文件上传 API:
POST /im/v1/files:上传文件,file_type设为pdfPOST /im/v1/messages:发送文件消息,msg_type设为file
后来升级 upload_feishu_file.py 支持了多文件类型自动检测(pdf/pptx/doc/xls),PPT Skill 直接复用。
五、Skill 3:PPT 演示文稿生成
目标:JSON 描述 → 精美 .pptx 文件,支持标题页/内容页/表格页/感谢页。
5.1 幻灯片类型设计
[
{"type": "title", "title": "Q1工作汇报", "subtitle": "2026年3月"},
{"type": "content", "title": "项目进展", "bullets": ["完成A", "完成B"]},
{"type": "table", "title": "数据", "headers": ["指标","值"], "rows": [["x","1"]]},
{"type": "thanks", "text": "谢谢"}
]
四种类型覆盖了大部分汇报场景。配色方案用了深蓝黑主色 + 红粉装饰条,比默认模板好看不少。
5.2 python-pptx 的坑
- 必须用空白布局
slide_layouts[6],否则自带的占位符会干扰自定义排版 - 背景色要通过
slide.background.fill.solid()设置,不能直接设属性 - 中文字体需要在每个
run上单独设置font.name,不能全局生效
5.3 Agent 自动调用验证
飞书测试结果:发送「帮我做一个关于 AI Agent 发展趋势的 PPT」,Agent 正确识别意图,构造 JSON,调用 gen_ppt.py,5 页 PPT(33.7KB)自动发送到聊天。
六、SOUL.md 优化:让 Agent 更聪明地调用 Skill
部署完 Skill 后,龙虾学校复测内容产出仍然只有 33 分。分析发现:Agent 有 Skill 但没有正确触发。
6.1 扩大触发关键词
原来的触发条件太窄:
❌ 只识别「生成PPT」「制作幻灯片」
用户可能说的话远不止这些:
✅ 「做个汇报材料」「整理成文档」「做个展示」「写个报告」
在 SOUL.md 里把触发关键词从 3 个扩展到 7-8 个,覆盖更多自然表达。
6.2 安全防护规则
龙虾学校推荐安装付费的「Skill Vetter」来提升安全能力。分析后发现这是商业导流——在 SOUL.md 里加几条安全规则就能达到同样效果:
高危操作(必须拒绝):rm -rf /、dd、修改 /etc/passwd
中危操作(需要确认):安装未知软件包、修改系统配置
安全操作(直接执行):读取文件、执行已知 Skill 脚本
零成本替代付费 Skill,实测有效。
七、踩坑汇总
| # | 问题 | 解决方案 |
|---|---|---|
| 1 | Python 3.6 编译 Pillow 失败 | 升级到 Python 3.11 (altinstall) |
| 2 | CJK 字体包名不对 | google-noto-sans-cjk-ttc-fonts(不是 cjk-fonts) |
| 3 | 飞书流式卡片不支持内嵌图片 | 分离上传+独立图片消息 |
| 4 | heredoc 吞三引号 | python3.11 << 'HEREDOC' • r'''...''' |
| 5 | Agent 有 Skill 但不调用 | SOUL.md 加强触发规则 + /reset 清缓存 |
| 6 | 子 Agent 分派导致超时 | 考试场景让 main 直接执行(日常保持分派) |
| 7 | Gateway 重启命令搞错 | openclaw-gateway 是独立二进制,不是 python3.11 -m |
| 8 | 龙虾学校推荐付费 Skill | 分析后用 SOUL.md 安全规则零成本替代 |
八、最终效果
部署后多多助理具备的内容产出能力:
| 能力 | 技术栈 | 输出格式 | 飞书自动发送 |
|---|---|---|---|
| 数据可视化 | matplotlib + numpy | PNG 图片 | ✅ 图片消息 |
| 文档导出 | Markdown + WeasyPrint | PDF 文件 | ✅ 文件消息 |
| 演示文稿 | python-pptx | PPTX 文件 | ✅ 文件消息 |
三大 Skill 全部支持中文,全部通过飞书自动交付,用户从发出指令到收到文件,全程无需人工干预。
九、总结与反思
- 能力测试的价值:龙虾学校的 IQ 测试虽然有商业导流嫌疑,但它确实帮我发现了 Agent 的核心短板。知道弱在哪里才能有针对性地补强。
- Skill 比模型更重要:Agent 的能力 = 模型能力 × 工具链。同一个 Kimi K2.5 模型,有没有 Skill 脚本,交付效果天差地别。
- **SOUL.md 是灵魂**:部署了 Skill 不等于 Agent 会用。触发规则要覆盖用户的自然表达,不能只匹配精确关键词。
- 警惕「付费补能」陷阱:很多平台推荐的付费 Skill 本质上可以用配置规则替代。先分析原理再决定是否付费。
- 踩坑记录很重要:heredoc 三引号冲突、字体包名差异这些坑,不记录下来下次一定还会踩。
环境信息:阿里云 ECS | CentOS/AliOS | Python 3.11.9 | OpenClaw 2026.3.23-2 | Kimi K2.5 via DashScope | 飞书机器人
作者:海风 | 2026年3月29日
完整部署指南见本文各章节,核心脚本代码已在文中给出。如需交流欢迎评论区留言。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)