Codex + Skills让每次讨论都变成可检索的资产
办公里还有一类最容易被浪费的资产:会议。一场会产出几页纪要,散落在聊天记录和笔记本里,三个月后没人记得"当时谁说要对私有化做 PoC"。本篇讲最佳实践——用 Codex + 知识库 skill,把会议文字沉淀成可检索、可追踪的团队知识。
一、痛点:会议结论在遗忘曲线上蒸发
会议的真正价值不在"开了",而在"后续有人跟进"。但现实里,纪要往往写完即归档、归档即消失。待办散落在不同人的记忆里,关键词没被提取,历史讨论没法被搜到。新人想了解"上次客户对合规的要求",只能挨个翻聊天记录。知识没有沉淀,组织就会反复踩同一个坑。
最佳实践:每次会议结束后,skill 自动抽取行动项、提取关键词、建立倒排索引,让会议从"一次性事件"变成"可检索的知识节点"。

二、方法:三件事一次做完
知识库 skill 在会议结束后做三件事。第一,抽取行动项:扫描含"待办/行动/跟进/负责人/截止"等触发词的句子,自动列成清单,谁负责、何时交一目了然。第二,提取关键词:识别"项目/预算/合规/上线"等实体,作为这篇会议的索引标签。第三,建立倒排索引:关键词映射到文档,后续用自然语言即可检索。
下面表是 demo 从三篇会议中自动抽出的行动项,无需人工逐条整理:
这套抽取不是黑盒:skill 会标注每条行动项的来源句子,人复核时能一键定位原文,确认或修正。正是这种"可溯源"让自动抽取能被信任——它替代的是抄写,不是判断。


三、避坑:抽取要可核验,索引要常新
两个坑。一是抽取不可信:自动抽的行动项若不准,反而误导跟进。做法是让 skill 把抽取结果回显给人确认,人点一下"无误"才进库,形成"机器初筛 + 人确认"的闭环。二是索引陈旧:会议越积越多,旧索引要能随新会议增量更新,而不是每次全量重建。把增量更新做成 skill 的默认行为,知识库才会越用越活。
检索体验上,支持"关键词 + 时间 + 会议类型"组合过滤会更实用,比如"2026 年 8 月所有提到合规的拜访",skill 直接缩小范围,而非返回一堆无关历史。过滤能力越强,知识库从"能搜"走向"好用",使用率才会真正上去。
真正拉开差距的,是把知识库接到日常问答:新人问"客户对私有化有什么要求",skill 直接检索并返回对应会议片段与行动项,而不是让人去翻三个月前的群聊。
可执行 Demo:office_kb.py
零依赖 Python,内置三篇会议文字,extract_actions 抽行动项、extract_terms 提关键词、build_index 建倒排索引、search 做检索。你跑起来会看到每篇会议的待办清单,以及对"合规 私有化""转化 路线图"等查询的精准命中。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
office_kb.py
============
演示"最佳实践 3":把每次会议的文字记录交给一个知识库 Skill,
自动抽出行动项(待办/负责人/截止)、提取关键词、建立倒排索引,
后续用自然语言关键词即可检索历史会议,沉淀为团队知识资产。
运行:
python office_kb.py
"""
import re
# 行动项识别:含这些触发词的句子视为待办
ACTION_HINTS = ["待办", "行动", "跟进", "负责人", "截止", "下周", "排期"]
# 关键词词表(领域词,用于索引与检索)
VOCAB = ["项目", "预算", "上线", "风险", "客户", "合规", "私有化",
"性能", "转化", "路线图", "PoC", "报价", "压测", "评审"]
NOTES = [
{"date": "2026-08-12", "title": "产品周会",
"text": "核心模块完成联调,性能达标。待办:修复导出中文乱码,负责人小林,下周排期。"
"风险:边界缺陷可能影响上线。评审下季度路线图。"},
{"date": "2026-08-15", "title": "A 银行拜访",
"text": "客户关注合规与私有化部署,预算约 80 万。行动:输出合规对照表,安排私有化 PoC。"
"下周跟进报价。客户对性能压测结果较满意。"},
{"date": "2026-08-18", "title": "运营月会",
"text": "新增注册环比 +18%,付费转化略低。待办:复盘落地页 A/B,优化激活邮件。"
"路线图:Q4 重点提升转化。跟进新手引导补全。"},
]
def extract_actions(text):
hits = []
for sent in re.split(r"[。!\n]", text):
if any(h in sent for h in ACTION_HINTS):
hits.append(sent.strip())
return hits
def extract_terms(text):
return [term for term in VOCAB if term in text]
def build_index(notes):
index = {} # term -> [doc_ids]
docs = []
for i, n in enumerate(notes):
terms = extract_terms(n["text"])
actions = extract_actions(n["text"])
docs.append({"id": i, "title": n["title"], "date": n["date"],
"terms": terms, "actions": actions, "text": n["text"]})
for t in terms:
index.setdefault(t, []).append(i)
return docs, index
def search(index, docs, query):
# 命中词汇得分;取最相关的前若干文档
q_terms = [t for t in VOCAB if t in query]
scored = []
for i, d in enumerate(docs):
score = sum(1 for t in q_terms if t in d["terms"])
if score:
scored.append((score, d))
scored.sort(key=lambda x: -x[0])
return q_terms, scored
def main():
print("=" * 64)
print(" Codex + 知识库 Skill 演示")
print("=" * 64)
docs, index = build_index(NOTES)
print(f"\n[索引] 已沉淀 {len(docs)} 篇会议,共 {len(index)} 个关键词")
print(" 关键词样例:", " / ".join(list(index.keys())[:8]))
print("\n[行动项抽取] 每篇会议自动提取的待办:")
for d in docs:
print(f" ▸ {d['date']} {d['title']}")
for a in d["actions"]:
print(f" - {a}")
for q in ("合规 私有化", "转化 路线图", "风险 上线"):
q_terms, scored = search(index, docs, q)
print(f"\n[检索] 关键词「{q}」命中词汇:{q_terms}")
if scored:
top = scored[0][1]
print(f" 最相关:{top['date']} {top['title']}(得分 {scored[0][0]})")
print(f" 片段:{top['text'][:40]}...")
else:
print(" 无匹配文档")
print("\n[完成] 会议文字 → 待办 + 关键词 + 倒排索引 = 可检索的团队知识库。")
if __name__ == "__main__":
main()
把"会议 → 知识"的沉淀过程完整跑通,正是知识库 skill 的最小可用内核。

四、总结
会议纪要的最佳实践,是把每次讨论从"开完即忘"变成"沉淀可查":skill 抽行动项保证有人跟、提关键词保证搜得到、建索引保证用得上。当团队的每一次会议都汇入同一个知识库,组织记忆就不再依赖某个人脑子好,而是沉淀成可检索、可继承的资产。至此,文档、数据、会议三类办公场景的最佳实践就齐了。
葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。
更多推荐



所有评论(0)