我用LazyLLM做了一个打工人述职Agent,朋友直呼打工人的福利,太完美了

1.背景

"把时间花在创造价值上,而不是重复造报告。"

作为一个打工人,每周、每个季度都少不了被 OKR、OR、KR 这些看起来"无用但又不得不做"的活儿折腾,季度末,翻遍了数周的笔记和记录,只为拼凑出一份符合要求的述职报告,耗时耗力。偏偏我是理科生,文字功底一般,写报告还得来回编辑润色,只会老老实实把事说清楚。好在这几年一直在用 AI,我干脆做个"打工人述职 Agent":我只需要输入 OKR + 一周的工作 → 周报;输入 OKR + 若干周的周报 → 季度/年度述职报告。这样不就把麻烦事交给机器了?那就开干,初步计划用LazyLLM这个低代码框架构建一个打工人述职 Agent大模型应用。

2.效果展示------让 AI 替你"写材料"

这个 Agent 的效果如何?直接看图。

2.1 打工人述职Agent的使用

Agent生成周报效果图:

Agent生成季报效果图:

2.2 朋友的体验效果

在制作完成后,我对效果挺满意的,但是一个人说了不行,我邀请朋友试用。作为同样需要频繁写材料的"牛马",他反馈生成结果完全可以,准备下个 OKR 周期直接用这套流程。如果你也想制作这样的一个打工人述职Agent,可以跟着我下面来,接下来,我将手把手教你如何搭建打工人述职Agent。

3.LazyLLM: 低代码构建多Agent大模型应用

为什么选择LazyLLM?

LazyLLM的中文仓库:github.com/LazyAGI/Laz...

在实现这个 Agent 的过程中,我考察了多个框架,最终选择了 LazyLLM 。它由商汤科技研发,旨在为大模型应用提供一条快速、高效、低门槛的构建路径。

选择它的理由有三点:

(1)像搭积木一样组装应用(小白容易上手)

不用懂大模型底层,也能把应用拼起来:LazyLLM 预置了"数据流 + 功能模块",把"生成大纲、逐段写作、结果拼接、对外服务"拆成模块,像搭积木那样串起来即可。需要多个 Agent?把模块再复制/串联一下就行,成本低、容错友好。

(2)复杂应用也能一键部署(轻松分析给好友)

在验证阶段(POC),只需一套轻量网关就能把多 Agent 各子模块(LLM、Embedding 等)串起来,免去"逐个起服务 + 到处配 URL"的烦恼。上线时,一键打镜像,借助 k8s 网关、负载均衡、容错机制,就能把服务稳定跑起来,不用再手动搬砖。

(3)模型微调更省心(打造适合自己的Agent)

如果想让效果持续变好,可以对应用里的模型做微调。LazyLLM 会按场景自动选合适的微调框架和参数切分方式,减少工程细节负担,让算法同学把时间用在"数据打磨与策略优化"上,而不是在环境与脚手架上反复折腾。

LazyLLM更像一款百宝箱工具,兼容开源社区的生态,可以轻松地将之前基于langchain、llamaindex等框架搭建的应用集成到LazyLLM中,然后享受到LazyLLM带来的便利。

值得注意的是:LazyLLM由商汤科技研发,致力于为AI大模型应用构建提供一条快速、高效、低门槛的路径。

4.手把手打造一个打工人述职Agent

4.1 环境配置

首先打开LazyLLM的中文仓库:github.com/LazyAGI/Laz...

在仓库中提供了2种安装:源码安装pip安装(推荐新手)

源码安装

Plain 复制代码
git clone git@github.com:LazyAGI/LazyLLM.git
cd LazyLLM
pip install -r requirements.txt
pip install -r requirements.full.txt # 如果想进行微调、推理部署或搭建rag应用等

pip安装(推荐新手)

Plain 复制代码
pip3 install lazyllm # 注意,如果安装失败可以换国内镜像安装
lazyllm install full

安装方式对比表

方式 优点 适用人群
源码安装 可读源码、便于自定义与调试 需要二次开发或深度定制的团队
pip安装 上手快、环境简单、一键补齐组件 只想尽快跑通业务的个人/团队

在仓库中还提供了4个例子,包括:**对话机器人,检索增强生成,故事创作,AI绘画助手【**感兴趣的也可以来试试】。

4.2 流程图及分析流程

程序流程图

执行流程详解

  1. 用户在 Web 端输入 OKR 与工作事实;
  2. outline_writer 先判断"周报"或"季度/年度述职",并给出 JSON 大纲;
  3. story_generator 逐段生成正文,保证语言风格一致且量化表达;
  4. synthesizer 将标题与段落拼装成完整 Markdown;
  5. Web 服务返回文本,用户快速得到可直接复制或少量润色后提交的文案。

4.3 获取API_KEY

在本地写的代码,我们要让他有AI功能,无外乎就2种方法,第1种本地部署大模型,第2种API_KEY调用。

本次我们采用API_KEY。

第一步:打开console.sensecore.cn/home,进行注册并登录。

第二步:打开console.sensecore.cn/rm/source,开通模型日日新模型。

第三步:打开console.sensecore.cn/iam/Securit...,点击创建访问密钥,并将其复制保留。

就这样我们就得到了API_KEY。

如果有其他问题,可以查看用户手册: docs.lazyllm.ai/en/stable/

⚠️⚠️⚠️【注意】一定要先完成实名认证!!!否则无法调用。

4.4 提示词设计及代码

提示词的作用:就是我们给大模型赋予定位,就是让它作为什么来处理问题。

本次关键在于设计两个精准的提示词(Prompt):,第一个 toc_prompt 为生成大纲,第二个 completion_prompt 为生成正文。下面是我的提示词:

toc_prompt 提示词(作用:判断周报或季度/年度述职,生成大纲):

JavaScript 复制代码
你现在是一个职场智能助手。你的任务是根据用户的 OKR 目标和实际工作内容,先判断是周报还是季度/年度述职,再根据判断结果对应的将大纲以列表嵌套字典的列表。每个字典包含一个 `title` 和 `describe`,其中 `title` 中需要用Markdown格式标清层级,`describe` `describe` 是对该部分的写作指导,说明应包含哪些内容、如何组织语言

请根据以下用户输入,先判断是周报还是季度/年度述职,再生成相应的列表嵌套字典:

---
输出示例:
[
    {{
        "title": "# 本周/本季度工作总结",
        "describe": "概述本周/本季度整体工作完成情况,突出与 OKR 的对齐程度。"
    }},
    {{
        "title": "## 关键成果",
        "describe": "列出最重要的 2-3 项成果,结合数据说明其影响和价值。"
    }},
    {{
        "title": "## 问题与挑战",
        "describe": "描述遇到的主要困难,以及采取的应对措施或需要的支持。"
    }},
    {{
        "title": "## 下一步计划",
        "describe": "明确后续行动项,确保与 OKR 保持一致,并设定可衡量的目标。"
    }}
]

注意:
- 不要在周报中出现季度/年度述职,本季度相关这些词;
- 不要在季度/年度述职中出现周报,周,周期相关这些词;
- 如果是周报,侧重执行细节、进度追踪,内容全部采用周报;
- 如果是季度/年度述职,需增加"目标达成分析"、"能力成长"、"团队协作"、"未来展望"等内容,内容全部采用季度/年度述职;
- 输出必须为合法 JSON 格式。

completion_prompt 提示词(作用:强调量化、避免空话套话):

Markdown 复制代码
你现在是一名资深职场人士,正在撰写正式的工作汇报材料。你的语言风格应专业、简洁、结果导向,避免空话套话。

你的任务是:根据给定的标题和写作指导,结合提供的 OKR 和工作内容,生成一段高质量的文字内容。

要求:
- 内容紧扣 OKR,体现目标对齐
- 成果尽量量化(如"提升 30%"、"节省 5 人日")
- 语言客观、条理清晰
- 不要添加额外标题或格式
- 不要在周报中出现季度/年度述职,本季度相关这些词,不要在季度/年度述职中出现周报相关这些词;

输入示例:
{
    "title": "## 关键成果",
    "describe": "列出最重要的 2-3 项成果..."
}

输出示例:
本周完成了推荐算法的迭代优化,A/B 测试结果显示点击率提升了 18%,超出了 O1-KR2 中设定的 15% 目标。同时修复了历史遗留的冷启动问题,DAU 提升约 7%。

注意:
- 不要在周报中出现季度/年度述职,本季度相关这些词;
- 不要在季度/年度述职中出现周报,周,周期相关这些词;
- 如果是周报,侧重执行细节、进度追踪,内容全部采用周报;
- 如果是季度/年度述职,需增加"目标达成分析"、"能力成长"、"团队协作"、"未来展望"等内容,内容全部采用季度/年度述职;

在代码的最开头,需要加载API_KEY(也可以直接加载到本地),这是AI回复的关键,代码如下:

Plain 复制代码
import os
os.environ["LAZYLLM_SENSENOVA_API_KEY"] = "你的API_KEY"

构造多轮对话 Prompt,会生成大纲,然后逐段生成正文,最后合成最终文章,并且开放了一个端口:23466,核心管线代码如下:

Python 复制代码
writer_prompt = {"system": completion_prompt, "user": '{"title": {title}, "describe": {describe}}'}
# 构造多轮对话 Prompt
writer_prompt = {"system": completion_prompt, "user": '{"title": {title}, "describe": {describe}}'}
with pipeline() as ppl:
    # 生成大纲
    ppl.outline_writer = lazyllm.OnlineChatModule(stream=False).formatter(JsonFormatter()).prompt(toc_prompt)
    # 逐段生成正文
    ppl.story_generater = warp(lazyllm.OnlineChatModule(stream=False).prompt(writer_prompt))
    # 合成最终文章
    ppl.synthesizer = (lambda *storys, outlines: "\n".join([f"{o['title']}\n{s}" for s, o in zip(storys, outlines)])) | bind(outlines=ppl.output('outline_writer'))
lazyllm.WebModule(ppl, port=23466).start().wait()

完整代码如下:

Python 复制代码
import os
os.environ["LAZYLLM_SENSENOVA_API_KEY"] = "你的API_KEY"

import lazyllm
from lazyllm import pipeline, warp, bind
from lazyllm.components.formatter import JsonFormatter

# toc_prompt:生成大纲
toc_prompt = """
你现在是一个职场智能助手。你的任务是根据用户的 OKR 目标和实际工作内容,先判断是周报还是季度/年度述职,再根据判断结果对应的将大纲以列表嵌套字典的列表。每个字典包含一个 `title` 和 `describe`,其中 `title` 中需要用Markdown格式标清层级,`describe` `describe` 是对该部分的写作指导,说明应包含哪些内容、如何组织语言

请根据以下用户输入,先判断是周报还是季度/年度述职,再生成相应的列表嵌套字典:

---
输出示例:
[
    {{
        "title": "# 本周/本季度工作总结",
        "describe": "概述本周/本季度整体工作完成情况,突出与 OKR 的对齐程度。"
    }},
    {{
        "title": "## 关键成果",
        "describe": "列出最重要的 2-3 项成果,结合数据说明其影响和价值。"
    }},
    {{
        "title": "## 问题与挑战",
        "describe": "描述遇到的主要困难,以及采取的应对措施或需要的支持。"
    }},
    {{
        "title": "## 下一步计划",
        "describe": "明确后续行动项,确保与 OKR 保持一致,并设定可衡量的目标。"
    }}
]

注意:
- 不要在周报中出现季度/年度述职,本季度相关这些词;
- 不要在季度/年度述职中出现周报,周,周期相关这些词;
- 如果是周报,侧重执行细节、进度追踪,内容全部采用周报;
- 如果是季度/年度述职,需增加"目标达成分析"、"能力成长"、"团队协作"、"未来展望"等内容,内容全部采用季度/年度述职;
- 输出必须为合法 JSON 格式。

"""

#completion_prompt:生成正文
completion_prompt = """
你现在是一名资深职场人士,正在撰写正式的工作汇报材料。你的语言风格应专业、简洁、结果导向,避免空话套话。

你的任务是:根据给定的标题和写作指导,结合提供的 OKR 和工作内容,生成一段高质量的文字内容。

要求:
- 内容紧扣 OKR,体现目标对齐
- 成果尽量量化(如"提升 30%"、"节省 5 人日")
- 语言客观、条理清晰
- 不要添加额外标题或格式
- 不要在周报中出现季度/年度述职,本季度相关这些词,不要在季度/年度述职中出现周报相关这些词;

输入示例:
{
    "title": "## 关键成果",
    "describe": "列出最重要的 2-3 项成果..."
}

输出示例:
本周完成了推荐算法的迭代优化,A/B 测试结果显示点击率提升了 18%,超出了 O1-KR2 中设定的 15% 目标。同时修复了历史遗留的冷启动问题,DAU 提升约 7%。

注意:
- 不要在周报中出现季度/年度述职,本季度相关这些词;
- 不要在季度/年度述职中出现周报,周,周期相关这些词;
- 如果是周报,侧重执行细节、进度追踪,内容全部采用周报;
- 如果是季度/年度述职,需增加"目标达成分析"、"能力成长"、"团队协作"、"未来展望"等内容,内容全部采用季度/年度述职;
"""

writer_prompt = {"system": completion_prompt, "user": '{"title": {title}, "describe": {describe}}'}
# 构造多轮对话 Prompt
writer_prompt = {"system": completion_prompt, "user": '{"title": {title}, "describe": {describe}}'}
with pipeline() as ppl:
    # 生成大纲
    ppl.outline_writer = lazyllm.OnlineChatModule(stream=False).formatter(JsonFormatter()).prompt(toc_prompt)
    # 逐段生成正文
    ppl.story_generater = warp(lazyllm.OnlineChatModule(stream=False).prompt(writer_prompt))
    # 合成最终文章
    ppl.synthesizer = (lambda *storys, outlines: "\n".join([f"{o['title']}\n{s}" for s, o in zip(storys, outlines)])) | bind(outlines=ppl.output('outline_writer'))
lazyllm.WebModule(ppl, port=23466).start().wait()

就这样就完成了打工人述职Agent的开发,到了启动运行的环节。

4.5 启动与交互

直接在pycharm中启动程序:

输出日志: D:\miniconda\python3.12\python.exe D:\Program\pycharm\python_project\pythonProject3.12\main.py Running on local URL: http://0.0.0.0:23466To create a public link, set share=True in launch(). 19256: 2025-09-02 16:59:05 lazyllm SUCCESS: (lazyllm.tools.webpages.webmodule:455) LazyLLM webmodule launched successfully: Running on: http://0.0.0.0:23466, local URL: http://127.0.0.1:23466

显示:LazyLLM Web 服务已经成功启动!并且监听 23466 端口。

这个时候只需要在浏览器的地址栏中输入:http://127.0.0.1:23466http://localhost:23466,然后按回车就可以访问了。

打开网站http://127.0.0.1:23466后,左侧是模型结构和处理日志,在右侧我们就可以进行AI对话了。

在右侧输入框中,粘贴以下任一示例:

示例一:生成周报

Plain 复制代码
# 周报
{
  "okr": "O1: 提升推荐系统效果;KR1: 点击率提升15%;KR2: 覆盖80%用户",
  "weekly_report": "1. 完成了新模型上线;2. A/B测试CTR提升18%;3. 修复冷启动问题"
}

示例二:生成季度/年度述职报告

Plain 复制代码
# 季度/年度述职报告
{
  "okr": "O1: 提升推荐系统效果;KR1: 点击率(CTR)提升15%;KR2: 新推荐策略覆盖80%以上活跃用户",
  "multi_week_reports": [
    "第1周:完成用户行为日志清洗与特征提取,清洗异常数据约5%,构建用户画像基础特征表,支持后续模型训练。",
    "第2周:基于协同过滤与深度学习模型(DIN)完成初版推荐模型训练,离线AUC达到0.82,较旧模型提升6%。",
    "第3周:启动A/B测试,灰度发布至10%流量,初步数据显示CTR提升12%,用户停留时长增加9%,未发现明显性能瓶颈。",
    "第4周:根据测试反馈优化排序策略,全量发布新推荐模型,监控数据显示CTR提升18%,覆盖90%活跃用户,目标超额达成。"
  ]
}

可以看到LazyLLM成功的返回了一个丰富的周报。如果你也感兴趣不妨实际来试试。

5.总结:让 AI 成为真正的生产力

直白点说,LazyLLM 就是这套"打工人述职 Agent"的大脑和地基。复杂的 AI 流程它都给拆成小积木:用 pipeline 一串,outline_writer 负责出大纲,story_generator 负责写内容,synthesizer 把内容拼成文,最后 WebModule 一键对外。低代码 + 模块化,门槛直接降下来,不是算法出身的人也能很快把想法做成能跑的原型。

LazyLLM 另外还支持按场景做微调,还能根据任务自动选合适的微调框架和切分策略(如果有实力的可以来尝试),让"提示词工程 + 数据迭代 + 小样本微调"跑成闭环。再配上统一的管线与日志,生成时的关键元数据都能回溯,方便从"准确性、条理性、量化表达、风格一致性、可编辑性、时效"等维度打分,哪些地方该加强一目了然。说白了,它不光"能跑",还能越跑越顺。

回到这个项目本身,LazyLLM 让"写周报/述职"从纯体力活变成了标准流程:按 OKR 自动出大纲 → 按提示逐段成文 → 一键拼成统一风格的 Markdown。组织层面结构统一、阅读友好;个人层面可以随时补充事实和数字。对个人来说,是实打实的省时间,把精力放回到真正有产出的事上;对团队来说,结构统一、量化清晰,横向对比、纵向复盘都更顺,目标和结果也更容易对齐。

总之,把 LazyLLM 用起来,别在工程细节上内耗,把时间和预算花在更有价值的目标上,让 AI 真正变成提效提质的生产力。我们的目标不是让 AI 替我们写报告,而是让 AI 帮我们把时间还给创造。

如果你也想亲手搭建这样一个"打工人述职Agent",或者想系统掌握 LazyLLM 的核心能力与实战技巧,强烈推荐你跟着这门课程一步步实操:👉 《全网最硬核的RAG教学,速度优化,效果提升,多模态,ChatBI,Agent一网打尽》:https://www.bilibili.com/video/BV1kSG2zUEqL/?spm_id_from=333.788.videopod.sections

课程从环境搭建、API配置、Prompt工程,到Pipeline编排、Web部署、效果优化,全程手把手教学,零基础也能轻松上手。别再在工程细节里内耗了------把时间还给创造,让 AI 真正为你打工!

相关网站:

LazyLLM的中文仓库: github.com/LazyAGI/Laz...

商汤大装置用户手册: docs.lazyllm.ai/en/stable/

相关推荐
小蒜学长4 小时前
旅行社旅游管理系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·旅游
码事漫谈4 小时前
深入理解C++对象切片(Object Slicing):从 benign bug 到 dangerous corruption
后端
码事漫谈4 小时前
C++对象切片:机制、应用场景与规避策略
后端
坤坤不吃鸡4 小时前
RabbitMQ的常见问题与解决方法
后端
程序员白话4 小时前
使用kube-prometheus在K8s集群快速部署Prometheus+Grafana
后端·数据可视化
dl7434 小时前
spirng事务原理
后端
往事随风去4 小时前
Redis的内存淘汰策略(Eviction Policies)有哪些?
redis·后端·算法
秦禹辰4 小时前
宝塔面板安装MySQL数据库并通过内网穿透工具实现公网远程访问
开发语言·后端·golang
lypzcgf4 小时前
Coze源码分析-资源库-删除插件-后端源码-应用和领域服务层
后端·go·coze·coze插件·coze源码分析·智能体平台·ai应用平台