ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

LLM非编码任务工程化:从会议纪要到知识库的落地实践

LLM非编码任务工程化:从会议纪要到知识库的落地实践 Hacker News 上有一个提问Do you use LLMs for non-coding related work? 大多数人第一次接触大模型是从代码补全、脚本生成和报错排查开始的但真正让 LLM 在每天的工作里产生稳定价值的往往是另一类任务整理会议纪要、抽取结构化信息、维护个人知识库、辅助文档审阅、做数据报表解读。这些任务不写代码却在大量消耗人的时间。本文把这类“非编码工作”当作工程问题处理先明确输入输出再设计提示词模板或 RAG 检索流程然后用 API、Agent、MCP 把它编排成可重复的服务最后补充精度、性能和排错经验。读完这篇内容你可以直接用同一套方法把自己工作流里的文字型重复劳动逐个落地。1. 先认清非编码任务不是“聊天”而是有输入输出的工程任务很多人在使用 LLM 时始终停留在“打开对话框问一句”的层面。真正需要工程化处理的非编码任务和临时聊天之间有很大差别。1.1 从对话到任务LLM 使用的三个层次第一层是临时对话。比如翻译一段英文、润色一段邮件、解释一个概念。这类使用方式是低成本的不需要写代码也不需要稳定的输出结构。模型回答质量波动时用户可以自己判断并重试。第二层是可重复任务。同样是翻译或总结但每次处理的是固定格式的输入输出也要固定到指定字段。比如每周产品例会纪要转换成行动项输入是会议录音转写文本输出是 JSON 格式的负责人、任务、截止日期。这种使用方式已经进入“任务”范畴需要设计提示词模板、输出格式、校验逻辑和失败重试。第三层是自动代理任务。多步操作由程序串联起来模型可能在中间环节发起工具调用。比如读取一份 PDF抽取关键字段再查询数据库补全信息最后生成汇报草稿。这类任务依赖 Agent 编排需要处理上下文、日志、异常和人工复核。区分这三个层次的意义在于临时对话适合靠人的判断可重复任务必须靠提示词和代码约束自动代理任务则要在架构上增加可靠性和回退机制。如果一开始就把临时对话式的用法直接放大成自动化脚本很快会因为输出格式不稳定、无日志、无校验而失败。1.2 适合落地的非编码任务分类下面这些场景是实践中常见且容易验证收益的。它们都有明确的输入、输出和验收标准适合作为工程化起点。任务类型典型输入典型输出是否适合加入 RAG落地难度文本改写与翻译原始段落、目标风格改写后的文本低低会议纪要结构化会议转写文本主题、讨论点、行动项 JSON低低信息抽取合同、简历、邮件字段化 JSON中中文档摘要长文档、网页正文多级摘要中中邮件分类与起草邮件原文、历史规则分类标签、草稿中中个人知识库问答笔记、PDF、网页收藏带引用来源的回答高中高数据报表解读表格、SQL 结果结论、异常点、建议中中多模态辅助录入图片、扫描件表格或结构化文本中中这个表格不代表所有场景都需要 RAG。像会议纪要、邮件分类这类任务上下文短、规则清晰直接靠提示词就能完成。而知识库问答、长文档摘要因为依赖外部资料必须引入检索增强否则模型只能凭训练记忆猜测准确性无法保证。1.3 为什么 LLM 在这些任务里效果稳定LLM 擅长的是语义理解、模式归纳和指令跟随。非编码任务大量依赖这三个能力。会议纪要转写文本里经常包含口语、重复表达和指代混乱传统正则表达式很难覆盖所有说法但模型可以基于语义理解提炼出真正的行动项。同时这些任务不需要精确计算不需要实时数据也不需要强业务规则校验。也就是说它们对模型“幻觉”的容忍度相对可控。如果一个任务要求百分百准确的金额合计或者要求读取数据库中实时库存那不应该全靠 LLM 完成而应该让 LLM 只负责语义部分精确计算交给代码。2. 从最小任务开始把一段会议纪要变成结构化动作清单工程化的第一步不是搭建复杂框架而是找一个重复发生、失败容易发现的文本任务把它跑成一个最小闭环。下面以会议纪要结构化为例。2.1 定义输入、输出和验收标准输入是一段会议转写或会议记录文本包含日期、参会人、讨论内容和待办事项。输出要固定为 JSON 结构{ meeting_topic: 会议主题, meeting_time: 会议时间, participants: [参与者], discussion_points: [讨论要点], action_items: [ { task: 任务描述, owner: 负责人, deadline: 截止日期 } ] }验收标准有两条。第一输出必须是合法 JSON且字段名与约定一致。第二行动项必须从原文中可追溯不能凭空生成。这两条标准会在每次模型调用后用来判断是否成功。2.2 环境准备使用 Python 3.10 以上版本并安装 OpenAI SDK。如果使用 OpenAI 兼容接口可以通过base_url指定服务地址。生产项目不要把 API Key 写死在代码里应该从环境变量或配置中心读取。pip install openai export LLM_API_KEYyour-api-key export LLM_BASE_URLhttps://your-endpoint/v1这里的LLM_BASE_URL不是必须的。如果直接使用 OpenAI 官方接口不设置即可如果接入国内云厂商或自建本地服务需要把地址指向对应服务。不同服务之间的/v1路径也有差异具体要看接入平台文档。2.3 最小实现代码下面这段代码把会议文本传入模型并要求只输出 JSON。import os import json from openai import OpenAI client OpenAI( api_keyos.environ.get(LLM_API_KEY), base_urlos.environ.get(LLM_BASE_URL), ) def meeting_to_actions(transcript: str) - dict: system_prompt 你是一个会议纪要助手。请把原始会议记录整理成 JSON字段如下 { meeting_topic: 会议主题, meeting_time: 会议时间, participants: [参与者], discussion_points: [讨论要点], action_items: [ {task: 任务描述, owner: 负责人, deadline: 截止日期或待确定} ] } 只输出 JSON不要输出多余文字。 response client.chat.completions.create( modelyour-model-name, messages[ {role: system, content: system_prompt}, {role: user, content: f会议记录如下\n{transcript}}, ], temperature0.2, response_format{type: json_object}, ) content response.choices[0].message.content return json.loads(content) transcript 2025-06-10 产品例会 参会张三、李四、王五 张三客户端首页改版预计下周五完成。 李四埋点方案需要数据组配合周五前先出文档。 王五客服反馈登录后白屏需要紧急排查。 result meeting_to_actions(transcript) print(json.dumps(result, ensure_asciiFalse, indent2))运行后预期输出类似{ meeting_topic: 产品例会, meeting_time: 2025-06-10, participants: [张三, 李四, 王五], discussion_points: [ 客户端首页改版预计下周五完成, 埋点方案需要数据组配合周五前先出文档, 客服反馈登录后白屏需要紧急排查 ], action_items: [ {task: 完成客户端首页改版, owner: 张三, deadline: 下周五}, {task: 输出埋点方案文档, owner: 李四, deadline: 周五前}, {task: 排查登录后白屏问题, owner: 王五, deadline: 待确定} ] }2.4 关键参数说明这段代码里有几个参数会影响输出质量落地时不要沿用默认值。参数默认值推荐值说明temperature一般 1.00.0 到 0.3控制随机性。结构化抽取类任务希望输出稳定温度越低越稳定response_format随模型不同json_object要求模型按 JSON 格式输出但兼容服务不一定支持model无按任务复杂度选择简单抽取用中小模型即可长文档总结才需要更大模型max_tokens无足够容纳输出输出太短会被截断导致 JSON 不完整为什么结构化任务要把温度设低因为会议纪要抽取关心的是信息是否准确而不是表达是否多样。温度过高同一份输入可能每次生成不同的负责人分配这在工程上无法接受。2.5 常见坑输出不一定是干净 JSON第一个坑是模型把 JSON 包裹在 Markdown 代码块里返回比如以json开头。如果直接json.loads会抛JSONDecodeError。稳妥做法是先做文本清洗再尝试解析。import re content response.choices[0].message.content content re.sub(r^(?:json)?\s*|\s*$, , content.strip()) data json.loads(content)第二个坑是字段名与约定不一致。比如模型可能输出action_item而不是action_items可能把owner写成assignee。这会导致下游代码解析失败。解决方式是在提示词里给出完整示例并固定输出字段。第三个坑是response_format在部分 OpenAI 兼容服务上不生效。如果报错可以去掉该参数改用在提示词里强调“只输出 JSON”并在代码里增加解析失败重试机制。3. 让任务可重复提示词模板、结构化输出与 RAG单个任务跑通后下一步是让它稳定地重复运行。只靠一段写死在 Python 里的提示词不够需要把模板、输出规范和外部知识统一管理起来。3.1 提示词模板与版本控制提示词本质上是一段程序配置会直接影响输出质量。推荐把系统提示词从代码中抽离放入单独文件或配置中心。# prompt_templates/meeting.yaml name: meeting_action_extraction version: 1.2 system: | 你是一个会议纪要助手。请把原始会议记录整理成 JSON字段如下 ... action_items 必须基于原文不得凭空生成。 temperature: 0.2 response_format: json_object这样做的好处是当模型升级或输出质量下降时可以单独回滚提示词版本团队协作时也不会因为成员各自改代码里的字符串而产生冲突。这里的spec可以理解为任务规格类似传统软件工程里的需求规范只不过在 LLM 场景里它表现为输入输出约束、提示词内容和验收样例。3.2 结构化输出从 JSON 提示到函数调用提示词里写“只输出 JSON”是最基础的方式。更可靠的方式是使用 JSON Schema 约束或函数调用能力。以函数调用为例你可以在请求中声明一个工具函数模型会返回符合参数结构的调用参数。tools [ { type: function, function: { name: save_meeting_actions, description: 保存会议纪要中的行动项, parameters: { type: object, properties: { meeting_topic: {type: string}, meeting_time: {type: string}, participants: { type: array, items: {type: string} }, action_items: { type: array, items: { type: object, properties: { task: {type: string}, owner: {type: string}, deadline: {type: string} }, required: [task, owner, deadline] } } }, required: [meeting_topic, action_items] } } } ]为什么推荐这种方式因为函数调用模式下模型输出的是严格遵循参数结构的 JSON字段校验由模型和 SDK 共同完成比单纯在提示词里写一段 JSON 示例更稳定。但要注意不是所有模型和兼容接口都支持函数调用使用前需要确认服务端能力。3.3 RAG为什么非编码任务经常需要检索会议纪要这类任务直接靠上下文就能完成。但知识库问答、企业制度查询、历史资料总结不同。用户的问题经常涉及私有资料或最近更新的信息模型训练数据里根本没有。RAG检索增强生成的流程是先把文档切块用向量模型编码成向量并存储用户提问时把问题向量化与已有文档向量做相似度检索取最相关的几段文本拼进上下文再由 LLM 基于这些片段回答。一个最小实施示意def build_context(query: str, chunks: list, top_k: int 3) - str: query_vec embed(query) scored [] for chunk_text, chunk_vec in chunks: score cosine_similarity(query_vec, chunk_vec) scored.append((score, chunk_text)) scored.sort(reverseTrue) return \n.join(text for _, text in scored[:top_k])这里embed是对外提供文本向量的函数。很多平台有独立的 embedding API单独配置 API Key、模型名称和向量维度。实际工程中会遇到“文本向量 API 未配置”的报错这是最常见的问题之一通常发生在三个位置环境变量未设置、服务地址写错、调用向量模型时模型名不存在。RAG 的局限也很明显。如果原始文档被切块切断了关键上下文检索结果反而会误导模型。切块大小、重叠长度、相似度阈值都会影响最终回答质量。建议在项目初期准备 20 到 50 个真实问题逐个检查检索结果是否命中正确片段。3.4 本地模型和 API 的选择非编码任务对数据隐私、成本、延迟的敏感度不同选择也会不同。维度云端 API本地模型数据隐私数据离开内网需要审核合规数据不出本机或内网成本按 Token 付费高频任务成本上升一次性硬件投入电费和运维成本延迟依赖网络波动较大本地推理延迟相对稳定模型能力可选大型模型效果通常更好受显存和内存限制常用中小模型可控性接口可能变化模型可能被替换模型文件可固定行为可复现一个保险的做法是在代码层抽象调用接口让业务代码不关心云 API 还是本地模型。切换时只改base_url和model这样可以先用云端模型验证业务流程再根据成本和隐私要求迁移到本地。4. 用 Agent 与 MCP 编排多步非编码任务单次调用做不了需要多步骤协作的任务。比如“抓取网页内容、抽取核心观点、写入自己的知识库”这个流程涉及网页抓取、内容清洗、模型抽取和文件写入。如果用单个提示词让模型完成模型并没有真实访问网页和写文件的能力。这就是 Agent 和 MCP 要解决的问题。4.1 Agent规划、工具调用和记忆一个轻量 Agent 的核心能力有三个根据目标拆解步骤、调用工具获取信息、保留中间结果供后续步骤使用。举一个非编程场景用户说“帮我整理本周所有邮件中的待办”。Agent 可以拆成四步读取邮件列表过滤本周邮件。逐封邮件提取待办事项。合并相似待办。输出一份待办列表标注来源。每一步都可能调用不同工具邮件 API、向量模型、文本生成模型。如果某一步失败比如邮件 API 超时Agent 应该重试或终止而不是继续生成一个没有依据的结果。很多团队把“vibe coding”的方法迁移到非编码任务上也就是用非常口语化的指令让模型直接生成结果。这对于一次性原型很高效但进入自动化流程后效果会变得不可控。更接近“spec coding”的思路是先写清楚输入来源、输出格式、每个工具的职责和失败处理再让 Agent 执行。这里的 spec 不一定要很重但要足够让执行者不产生歧义。4.2 MCP统一模型与外部工具之间的连接方式MCP 解决的问题是工具接入成本。没有 MCP 之前每个外部能力都需要单独写一套自定义函数并手动塞给模型。MCP 可以看作一套标准协议把文件系统、数据库、浏览器、办公软件等能力封装成统一的工具列表模型通过 MCP 客户端发现和调用这些工具。一个最简单的连接关系是LLM 需要读取某个文件。Agent 通过 MCP 客户端发出“读取文件”的请求。MCP 服务端执行操作并返回结果。Agent 把结果拼入上下文继续完成后续推理。这种结构对于非编码任务很有价值。比如客服邮件处理Agent 需要同时访问客户订单表、历史邮件记录和知识库文档如果每个系统都走一套自定义 SDK维护成本会非常高而 MCP 把工具调用统一成同一套协议。4.3 Java 生态中的参考结构Spring AI MCP RAG Agent如果团队技术栈是 Java可以参考 Spring AI 生态来搭建。一个典型结构是Spring AI 负责统一接入 LLM 和向量模型。MCP 客户端负责连接外部工具。RAG 组件负责从向量库检索资料。Agent 层负责规划步骤并调用上述能力。Spring AI 中的配置通常长这样spring: ai: openai: base-url: ${LLM_BASE_URL} api-key: ${LLM_API_KEY} chat: options: model: ${LLM_MODEL} temperature: 0.2 mcp: client: enabled: true这段配置只是骨架。实际项目中具体模型名、mcp server 地址、向量库地址都需要按自己的环境填写。不同 Spring AI 版本对配置项的命名有所差异落地前先确认依赖版本不要直接把网上的配置复制到生产环境。4.4 已经看到收益的工作流案例下面这些工作流不需要写复杂业务逻辑适合作为 Agent 落地的第一版周报生成聚合本周提交记录、会议纪要和任务系统数据生成周报草稿。简历筛选解析 PDF 简历抽取工作年限、技能、教育背景按筛选条件打分。资料整理将收藏的网页文章抓取后清洗生成摘要并打标签存入知识库。数据解读读取报表数据生成异常点提示和初步解释再由人复核。每个工作流都要留一个人工审查节点。Agent 可以自动化 80% 的过程但最终确认、授权和风险判断仍然要交给人。否则一次工具调用返回了错误数据后续生成的结果会基于错误继续放大。5. 个人知识库方向Obsidian LLM Wiki 思路很多人的非编码需求其实集中在个人知识管理。笔记越记越乱标签体系前后不一致文章收藏后从不回看。LLM Wiki 这类思路想解决的就是把零散笔记变成可检索、可链接、可回答问题的知识网络。5.1 LLM Wiki 解决什么问题传统 Wiki 依赖人手动维护目录、标签和链接时间长就很难坚持。LLM Wiki 的思路是让模型在笔记入库时自动生成摘要、标签、相关链接甚至反向链接把“记录”变成“知识整理”。它和 RAG 不同。RAG 关注的是回答问题时如何找到资料LLM Wiki 关注的是资料入库时如何自动组织。两者可以结合先通过 LLM 清洗和组织笔记再通过向量检索回答问题。5.2 落地流程一个可实践的流程是收集把网页、PDF、随手记统一放入收件箱目录。清洗去除广告、重复段落、无关内容。切块较长的文档按标题或固定长度切块。向量化调用 embedding 模型生成向量。自动标签让 LLM 根据内容生成 3 到 5 个标签。双向链接把出现过的已有笔记标题自动转为链接。问答入口用 RAG 方式对全部笔记进行检索回答。这套流程里自动标签和双向链接最适合放到 Obsidian 中实现因为它们正好对应 Markdown 文件的 frontmatter 和[[链接]]语法。5.3 用脚本为 Obsidian 笔记生成标签和摘要一个轻量实现是写一个 Python 脚本扫描 Obsidian 库里的 Markdown 文件调用 LLM 生成 frontmatter。import os import re def build_frontmatter(content: str) - str: prompt f 根据下面的笔记内容生成 YAML frontmatter包含 tags 和 summary 两个字段。 tags 是 3 到 5 个标签的数组summary 是一句话摘要。 只输出 YAML 内容不要多余文字。 \n笔记内容\n{content[:2000]} result llm_call(prompt) return result.strip() def process_markdown_file(path: str) - None: with open(path, r, encodingutf-8) as f: text f.read() frontmatter_match re.match(r^---\n(.*?)\n---\n, text, re.S) body re.sub(r^---\n(.*?)\n---\n, , text, flagsre.S) new_frontmatter build_frontmatter(body) with open(path, w, encodingutf-8) as f: f.write(f---\n{new_frontmatter}\n---\n\n{body}) process_markdown_file(/path/to/obsidian-vault/note.md)这个示例里的llm_call是抽象函数你可以对接任意 OpenAI 兼容服务。注意这里批量处理所有历史笔记时如果文件量很大Token 成本会很高。建议先跑最近一个月或收藏夹里高优先级的文件确认效果后再全量处理。5.4 ComfyUI 中配置 LLM 路径另一个搜索热度很高的问题是ComfyUI 与 LLM 必须在同一台电脑上吗答案取决于节点实现。如果某个 ComfyUI 节点是在本地加载模型文件那么模型文件必须放在能访问到的本机路径上此时 ComfyUI 和 LLM 在同一台机器会省去很多配置。如果节点只是调用远程 API那么 ComfyUI 和 LLM 完全可以分开部署ComfyUI 只负责把提示词发送到远程服务。对于本地模型路径ComfyUI 可以通过extra_model_paths.yaml扩展模型目录。示例llm_models: base_path: /path/to/models llm: - local_llm这个文件的具体字段在不同版本里不一样如果填写后没有生效先确认客户端启动时是否读取了该文件再检查模型目录命名是否匹配节点代码中的路径。最常见的问题不是配置写错而是模型没有放在节点实际扫描的目录下。6. 精度、性能与本地推理选择本地运行非编码任务时经常遇到“模型能不能带得动”和“量化后输出质量差多少”的问题。这和模型数值精度直接相关。6.1 精度问题的来源模型训练和推理时权重和激活值需要存放在内存或显存里。使用更高精度的数据类型会更接近原始模型效果但占用更多资源。为了在消费级硬件上运行常把模型量化为更低精度。6.2 常见精度类型对比精度类型位宽内存占用数值范围适用场景fp3232 位高大训练和基准参考推理较少用fp1616 位中较大但精度有限GPU 推理常用显存和效果折中bf1616 位中更大但精度低训练和部分推理场景对溢出更友好int88 位低小推理量化消费级设备常见int44 位极低小移动端和低内存设备效果损失明显对于会议纪要抽取、知识库问答这类非编码任务使用 int4 或 int8 量化通常是可接受的因为任务不要求数学模型做精密数学计算。但如果任务包含复杂的数字推理、长 JSON 生成或多步骤格式嵌套量化模型的错误率会明显上升。此时优先考虑 fp16 或更高质量模型。6.3 本地推理引擎怎么选本地推理引擎的选择和硬件、目标平台有关。Ollama适合快速在本地启动 OpenAI 兼容服务的场景安装简单适合个人知识库、体验测试。llama.cpp核心是 CPU 和 GPU 混合推理对资源要求低适合没有独立显卡的服务端。MLX面向 Apple 芯片适合在 Mac 上跑本地模型与 Metal 配合较好。以 Ollama 为例拉取一个量化模型后即可用 OpenAI 兼容方式调用ollama pull qwen2.5:7b-instruct-q4_K_M ollama serveclient OpenAI( api_keyollama, base_urlhttp://localhost:11434/v1, ) response client.chat.completions.create( modelqwen2.5:7b-instruct-q4_K_M, messages[{role: user, content: 把这段会议记录整理成 JSON 行动项}], )在 Mac 上选择引擎时建议先比较 Metal 支持程度优先选择能使用 GPU 加速的方案。如果同一款模型在 CPU 上只能跑几个 Token 每秒而 GPU 加速后能达到可接受的体验那么选型就成功了一半。6.4 “文本向量 API 未配置”的排查这是一个高频问题现象通常有两种。第一种是调用 embedding 接口时直接报错第二种是检索出来结果全为空或相似度全为 0。按顺序检查环境变量是否已设置比如EMBEDDING_API_KEY。base_url是否指向正确服务不同平台路径不同。模型名是否真实存在向量模型名经常和 Chat 模型名不同。向量维度是否一致例如模型维度 1024数据库中存了 768 维向量相似度计算会失败。是否对文本先做了切块输入为空字符串或重复字符串都会影响质量。本地向量模型还需要确认模型文件是否已下载以及调用时是否指定了正确的本地服务端口。7. 常见问题排查和上线前清单进入测试或生产阶段后问题不再是“模型不会回答”而是“结果不稳定、解析失败、流程断掉”。下面把最常见的现象和处理方式整理成一张表。7.1 非编码任务常见问题表问题现象可能原因检查方式处理建议同样的输入两次输出差异很大temperature 过高或模型无状态检查调用参数把 temperature 降到 0 到 0.3返回内容不是合法 JSON输出被 Markdown 代码块包裹打印原始返回内容清洗代码块标记或用函数调用行动项或摘要凭空出现提示词没有约束来源与原文档比对在提示词中明确要求基于原文向量检索结果与问题无关切块过大或过小打印被检索的文本片段调整切块长度和 top_k报错文本向量 API 未配置embedding 配置缺失查看配置文件和日志补齐密钥、模型名和端点本地模型输出质量明显下降量化精度过低对比同模型 fp16 输出换用更高精度或更大参数模型长文档处理到一半截断上下文超长或 max_tokens 不足查看错误码和 Token 计数增加上下文限制或分段处理7.2 上线前检查清单以下是每条非编码任务脚本化、Agent 化之前建议完成的检查项。输入来源是否可靠输入长度是否有限制。输出 schema 是否固定是否经过合法性和必填字段校验。是否有 10 到 20 条历史样本作为回归评测集。模型调用失败时是否有重试、退避或降级方案。输出是否经过人工抽检抽检频次如何设定。敏感数据是否脱敏是否记录了谁在什么时间调用过模型。Token 成本是否内置监控异常消耗能否告警。提示词和模型版本是否固定能否一键回滚。这份清单对个人脚本也适用只是规模可以缩小。哪怕只是每天跑一次会议纪要转换也应该把“解析失败时保留原始文本并写入日志”这一条加上否则出了问题后无法定位。7.3 团队协作建议如果团队多人都在使用 LLM 处理非编码任务要避免每个人维护一套自己的提示词和脚本。可行的做法是建立一个共享目录按任务类型组织prompts/提示词模板和版本记录。samples/输入输出样例作为回归测试数据。scripts/可复用的调用脚本。results/人工抽检记录和问题反馈。在团队协作中一个很实用的技巧是“先给模型看一个成功输出样例再让它处理新输入”这比写一大段抽象规则更有效。这一点和 vibe coding 里的经验一致给具体例子比空泛描述需求更容易产出稳定结果。而想让结果更可控又需要回到 spec coding 的思路把输入边界、输出格式、失败处理写清楚。8. 从“会调用 API”到“工程化”的实践路线非编码任务真正难的不是技术本身而是判断哪些任务值得改造、改造后如何验证收益。8.1 先统计你的重复性文字工作不要凭空想象哪些任务适合 LLM先记录一周。例如每天写 3 封中文回复邮件。每周整理 2 份会议纪要。每月将 10 篇收藏文章整理成读书笔记。每季度把 20 份简历汇总成对比表。把它们按“发生频率”和“失败影响”排序。低频率但高影响的决策型任务不适合第一批上线高频率低影响的重复劳动才适合。8.2 用最小脚本验证而不是立刻搭 Agent第一个版本可以是“输入文本 输出 JSON”的脚本不引入 RAG不引入 Agent。先确认以下问题模型在你的业务文本上准确率是否达到 80% 以上。输出结构是否稳定。失败时是否有明确日志。人工修正一条错误需要多长时间。如果修正一条错误的成本高于人工直接做说明这个任务不适合当前模型或者提示词和输入规范还需要调整。8.3 再逐步加入缓存、监控和人工复核当脚本方式确认有效后再考虑增加缓存层、日志监控、Token 预算控制和人工复核接口。Agent 化只适合在“单次调用已经稳定”的前提下进行。否则多步 Agent 会把单点错误放大成整条链路的失败。8.4 让 LLM 只做它擅长的事非编码任务工程化最容易犯的错误是让 LLM 承担太多职责。规则判断、权限校验、数字计算、日期比较这些工作交给传统代码更可靠。LLM 负责的是语义理解、文本生成、模式归纳。把职责切分清楚系统的可维护性会好很多。回到 Hacker News 上那个问题的本质答案不是简单的 yes 或 no而是“哪些非编码任务能被安全、稳定地工程化”。会议纪要结构化、资料整理、邮件处理、知识库问答这些任务输入输出清晰失败容易被发现正是验证 LLM 工程能力的最佳起点。下一步可以做一个实验把你本周处理过的五封邮件、三份文档和一次会议纪要放进同一个提示词模板里看看结果稳定率是否达到预期再决定是否进入 Agent 编排。
返回列表