1. 基于我的需求,搜寻现有的官方skill。
2. 提供完整的配置步骤。
3. 发现配置步骤的问题,提出疑问。
-ps:这里,我还只是想尝试部署已有的skill
4. 了解三个配置文件的内容,并评估安全隐患。
5. 我想让DeepSeek综合三个skill的能力,写一个符合我需要的skill。
-ps:经过2天,耗时6小时折腾,我最终没能搞到符合预期的skill
6. 代码我看不懂,DeepSeek你帮我测试下,版本1.0测试。
7. 既然测试发现问题,那么修复下吧
8. 版本1.1测试.
9. 突然想到一些优化点,重新整改,版本2.0
10. 版本2.0测试
11. 修复问题继续发版,版本2.1
12. 版本2.1测试
13. 既然是命令部署,继续让DeepSeek生成批处理脚本,一键部署更方便
14. 既然测试都通过了,我就安装部署试试看,希望别坑我
-ps:到这里,一个skill包已经创建完成,DeepSeek也给我搞了一个一键部署的批处理脚本,双击就完成部署。
-ps:经过多次尝试,可能技术能力有限,我未能通过163、126的安全验证,导致openclaw无法访问在线邮箱读取邮件内容.故我采用读取本地邮件文件的方案,我是Outlook,故读取的是pst文件
15. 重新开发本地pst文件读取方案
16. 版本parental-leave-extractor-pst v1.0测试
17. 哎,开发的东西难免有问题,继续修复
18. 版本parental-leave-extractor-pst v1.1测试
19. 让DeepSeek生成一键部署脚本
20. 我猜测skill无法精准读取数据,可能是因为我邮件内容的格式千奇百怪,开发(ai)无法智能识别,所以我考虑简化需求,只提供了2种请假的格式,让AI能读取。
21. 嗯...我发现它还是不太聪明,我进一步给出了我的建议
22. 没有成功获取日期数据,提供取数过程给DeepSeek,DeepSeek建议开启debug
23. 提供debug日志,DeepSeek终于定位问题,提供最终解决问题的代码
24. 去掉debug代码,只取邮件正文数据就好,提供最终版本
-ps:展示下成品,反复折腾了20多个版本,成品终于出来了,很有成就感,虽然绕了好几圈,折腾了10多个小时。
16-19,是反复开发测试阶段,不再赘述
20. 我猜测skill无法精准读取数据,可能是因为我邮件内容的格式千奇百怪,开发(ai)无法智能识别,所以我考虑简化需求,只提供了2种请假的格式,让AI能读取。
20.1. Prompt:
目前我的邮件正文,会有这2种格式的育儿假信息,基于这2种格式,让skill能准确的提取员工工号、员工姓名、育请假类型、请假开始日期、请假结束日期、请假小时。
格式1

格式2

20.1. DeepSeek:
详细内容不在赘述

21. 嗯...我发现它还是不太聪明,我进一步给出了我的建议
21.1. Prompt:
第一个图:日期关键字是“休假时间”;第二个图:第一行是字段名,第二行、第三行是数据。你需要针对第一个图、第二个图分别编写提取数据的方法。无论图一还是图二,都统一输出结构,把开始日期和结束日期放在同一个单元格即可,命名为育儿假请假日期。请优化提取命令,给出完整版本的命令
21.2. DeepSeek:
# 最终优化版:针对两种邮件表格的精准提取,详细内容不在赘述
22. 没有成功获取日期数据,提供取数过程给DeepSeek,DeepSeek建议开启debug
--ps:期间经历了13个版本,主要还是作为技术小白的我,不懂得如何提问,能让DeepSeek查到问题的根源,最后还是DeepSeek自己建议我开启debug,才最终能定位问题
22.1. Prompt:
D:\OperclawWorkspace\.openclaw\workspace\skills\parental-leave-extractor-pst> python extractor.py "D:\育儿假.pst"
2026-03-27 17:46:11,237 - INFO - 已加载配置: D:\OperclawWorkspace\.openclaw\workspace\skills\parental-leave-extractor-pst\config.yaml
2026-03-27 17:46:11,284 - INFO - 开始提取育儿假信息...
2026-03-27 17:46:11,733 - INFO - 已加载 PST: D:\育儿假.pst
2026-03-27 17:46:11,734 - INFO - Outlook 连接成功
2026-03-27 17:46:11,943 - INFO - ✅ 提取: 姓名=张三, 工号=H01111, 类型=育儿假, 天数=1, 小时=16, 日期范围=
2026-03-27 17:46:11,994 - INFO - ✅ 提取: 姓名=张三, 工号=H01111, 类型=育儿假, 天数=1, 小时=8, 日期范围=
2026-03-27 17:46:12,043 - INFO - 处理完成: 共扫描 3 封邮件,找到 2 条有效记录
2026-03-27 17:46:12,066 - INFO - Excel 已保存: C:\Users\Dell\Desktop\育儿假汇总_20260327_174612.xlsx
✅ 成功!Excel文件已生成: C:\Users\Dell\Desktop\育儿假汇总_20260327_174612.xlsx
✅ 共找到 2 条育儿假记录
22.2. DeepSeek:
# 启用调试日志并精确定位问题
您运行的结果显示日期仍为空,且未出现调试信息,这表明 `mail_parser.py` 中的调试日志未生效,很可能是因为代码未正确替换或日志级别未设置。
23. 提供debug日志,DeepSeek终于定位问题,提供最终解决问题的代码
--ps,虽然有debug,还是经历了4个版本,才是达成最终满意的版本,这里就不一一展示,反正就是把debug内容和自己的要求反馈给DeepSeek就好。
23.1. Prompt:
提交debug日志
23.1. DeepSeek:
# 修复版 `mail_parser.py`(修正姓名和工号提取错误)
根据日志,问题在于 HTML 表格解析时,将表头行误判为数据行,导致:
- 表头行 `['员工ID', 'H01111', '姓名', '张三', ...]` 被当作表头,但 `H01111` 和 `张三` 被当作数据。
- 实际数据行(请假天数、休假时间等)被正确解析,但姓名和工号未从表头行提取。
修复方案:
1. **优化表头识别**:只有当单元格内容包含目标字段(如“姓名”、“开始日期”)时才视为表头,而不是任意包含字段的行。
2. **从表头行提取数据**:当表头行本身包含数据(如 `H01111`、`张三`)时,应将其提取到结果中。
3. **过滤无效数据行**:跳过“直接经理”、“隔级经理”等非数据行。
以下是修复后的完整代码(带 DEBUG):
```python
"""邮件内容解析模块 - 修复版(修正姓名和工号提取)"""
......
# ========== 调试:打印文本开头 ==========
logger.debug("=" * 60)
logger.debug("邮件文本前500字符:")
logger.debug(text[:500])
logger.debug("=" * 60)
lines = text.split('\n')
# ========== 格式1: 管道表格(可能在 HTML 中) ==========
table_lines = []
# 查找 HTML 中的表格,提取 2 内容
......
if hours_match and not result['hours']:
result['hours'] = hours_match.group(1)
# ========== 格式2: 键值对表格(多行) ==========
logger.debug("开始解析键值对表格...")
......
24. 去掉debug代码,只取邮件正文数据就好,提供最终版本
24.1. Prompt:
很好,已经完成取数需求,取消debug相关代码,只取邮件正文的内容
24.2. DeepSeek:
# 最终生产版 `mail_parser.py`(移除 DEBUG,只取正文)
......
夜雨聆风