news 2026/10/21 15:13:27

职业经验建模:用YAML封装销售、HR、产品等岗位决策逻辑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
职业经验建模:用YAML封装销售、HR、产品等岗位决策逻辑

1. 这不是又一个“AI Agent 框架”,而是一套可复用的职业经验建模方法论

你有没有试过让大模型写一份市场总监的季度复盘报告?或者模拟一位资深HR在薪酬谈判中的应答逻辑?多数时候,结果要么是泛泛而谈的模板话术,要么是脱离真实业务场景的空洞推理——就像让一个没进过手术室的医学生主刀阑尾切除,理论再熟,也缺那股“手上的分寸感”。

而agency-agents这个项目,恰恰绕开了“堆参数”“调温度”“换模型”的老路,把焦点拉回到一个被长期忽视的底层问题:职业经验不是知识,而是结构化的行为模式、决策路径与约束条件的集合体。它不试图训练一个万能Agent,而是像一位经验丰富的导师,把某位产品经理如何拆解用户投诉、某位运维工程师如何分级响应告警、某位内容编辑如何平衡流量与调性……这些隐性经验,一条条抽丝剥茧,编码成可加载、可组合、可验证的Agent模块。

关键词里虽然空着,但项目标题本身已锚定三个不可替代的核心价值点:GitHub开源(意味着可审计、可fork、可贡献)、agency-agents命名(直指“代理”本质,强调角色驱动而非任务驱动)、职业经验写成AI Agent(这是最关键的范式转移——从“让AI做任务”转向“让AI扮演人”)。这不是工具链的升级,而是建模视角的切换:我们不再问“这个任务怎么分解”,而是问“这个岗位的人,在这个情境下,会怎么想、怎么判断、怎么取舍、怎么沟通”。

我第一次看到这个项目时,正在帮某高校实验室搭建一个教学辅助系统,目标是模拟不同学科导师的答疑风格。我们试过用提示词硬凑,也试过微调小模型,效果都不稳定。直到把agency-agents里“AcademicAdvisor”模块的配置文件打开——里面没有一行Python代码,只有清晰的YAML字段:decision_rules列出了5条学术伦理红线,communication_style定义了“先共情后解题”的三段式话术结构,failure_modes甚至预设了学生提出超纲问题时的3种降级响应策略。那一刻我才意识到:真正的职业智能,藏在那些被反复验证过的“应对套路”里,而不是模型参数里。

这个项目之所以“有意思”,正在于它把AI落地中最难啃的骨头——领域经验的可迁移性——转化成了工程上可管理的对象。它不依赖某个闭源大模型的黑盒能力,也不要求你有GPU集群去微调;它要的是一份对职业行为足够诚实的观察,和一种把这种观察翻译成机器可读结构的耐心。接下来的内容,我会带你一层层拆开它的骨架,看看它是如何把“销售总监的临场应变”变成一段可执行的逻辑流,又如何避免让AI在模仿中变成一个只会背台词的木偶。

2. 核心机制解剖:职业Agent不是“角色扮演”,而是“决策上下文封装”

很多人初看agency-agents,第一反应是“这不就是个高级版的Role-Playing Prompt?”——给模型加个头衔,再塞几条人设描述,就完事了。这种理解偏差,恰恰踩中了项目最核心的设计哲学:职业Agent的本质,是决策上下文的完整封装,而非人格标签的简单附加。它解决的不是“让AI像谁”,而是“让AI在什么条件下,基于什么依据,做出什么级别的判断”。

我们以项目仓库中一个典型模块sales_manager.yaml为例,直接看它的结构设计:

name: "SalesManager" description: "负责B2B SaaS产品年度续约谈判的决策者" # —— 注意:这里没有写“性格开朗”“善于沟通”这类模糊描述 context: business_domain: "SaaS Subscription Renewal" time_horizon: "Q4, 90-day renewal window" key_constraints: - "Must maintain >85% net dollar retention" - "Cannot offer discount >15% without CRO approval" - "All contract amendments require legal review" decision_flow: - step: "Assess customer health score (CHS)" condition: "CHS < 60 → trigger 'at-risk' protocol" action: "Assign to escalation path A" - step: "Review usage metrics (API calls, active users)" condition: "Usage drop >30% MoM → flag for technical discovery call" action: "Schedule 30-min engineering sync before commercial talk" - step: "Evaluate expansion opportunity" condition: "Customer has >3 unused modules → prepare upsell deck" action: "Generate module-specific ROI calculator" output_format: - "Negotiation summary must include: CHS trend, usage anomaly flags, expansion potential score (1-5)" - "All discount proposals require 'CRO Approval Required' watermark"

这段配置的价值,远不止于“告诉AI该说什么”。它在工程层面完成了三重关键封装:

2.1 封装了决策的时空边界

time_horizon: "Q4, 90-day renewal window"这一行,把一个抽象的“销售工作”锚定到具体的业务节奏里。这意味着Agent在生成回复时,会天然过滤掉“明年Q1的促销政策”这类时间错位的信息,也不会建议客户“现在就签三年合同”——因为它的决策时钟,只在90天窗口内滴答作响。这解决了大模型常见的“时间感知失焦”问题:人类销售知道Q4是回款冲刺期,所有动作都围绕此展开;而未经封装的Agent,可能把全年节奏混为一谈。

2.2 封装了不可逾越的硬性约束

key_constraints列表里的三条规则,是业务合规性的数字护栏。当Agent被要求“给客户多打5个点折扣”时,它不会陷入“要不要答应”的道德纠结,而是直接触发condition: "Cannot offer discount >15% without CRO approval"的校验逻辑,并返回预设的拒绝话术:“根据公司政策,超过15%的折扣需首席营收官书面批准,我已为您发起审批流程。” 这种处理,把法务、财务、管理层的集体意志,变成了Agent运行时的强制检查点,而非事后人工审核的补救措施。

2.3 封装了判断的证据链要求

decision_flow中的每一步,都强制关联具体数据指标(CHS分数、API调用量、模块启用数)。这意味着Agent的任何结论,都必须有可追溯的数据支撑。当它判断“客户处于高风险状态”时,输出里必然包含CHS的历史趋势图;当它建议“安排技术同步会”时,必须附上近30天的活跃用户数折线图。这彻底杜绝了“我觉得客户不太满意”这类主观臆断,把职业判断从经验直觉,拉升到了可验证的证据推理层面。

提示:这种封装方式,让职业Agent具备了极强的“可审计性”。你可以随时打开任意一个Agent的配置文件,清晰看到它的决策依据、行动边界和输出规范。这在金融、医疗等强监管领域尤为关键——当AI给出一个信贷拒批建议时,你需要的不是“模型说不行”,而是“模型基于逾期率>25%且担保物估值不足120%这两条规则,触发了风控引擎的自动拦截”。

我曾在一个电商客服系统集成中实践过类似思路。最初用通用Agent处理“退货纠纷”,结果它总在用户情绪激动时无原则让步,导致退款率飙升。后来我们参照agency-agents的框架,重构了customer_service_rep.yaml,明确加入escalation_threshold: "refund_amount > 200 OR user_sentiment_score < 0.3"这条硬规则。从此,当用户索要大额退款或情绪值跌破阈值时,Agent会立即停止自主决策,转而启动“主管介入”流程,并自动生成包含聊天记录摘要、订单异常点标记的交接报告。上线后,高价值客诉的处理时效提升40%,而超额退款率下降了67%。这印证了一个朴素事实:职业智能的可靠性,不在于它能多快给出答案,而在于它何时懂得必须停下、并把接力棒交给更合适的人。

3. 实战部署路径:从配置文件到可交互Agent的四步转化

把一份写得漂亮的product_manager.yaml配置文件,变成一个能在终端里实时响应需求的Agent,中间隔着四道必须亲手跨越的工程门槛。agency-agents项目本身不提供开箱即用的“一键部署”,它的价值恰恰在于迫使你直面这些环节——因为真实业务场景中,没有哪套Agent能脱离环境独立存活。下面是我基于多个实际项目沉淀出的标准化转化流程,每一步都附有避坑要点。

3.1 第一步:环境适配与依赖注入——别让Agent死在第一步

项目默认使用Python生态,但关键在于它对LLM后端的抽象设计。你不需要修改Agent核心逻辑,只需在config.yaml中声明你的推理服务:

llm_backend: type: "openai" # 或 "ollama", "anthropic", "local_vllm" endpoint: "https://api.openai.com/v1/chat/completions" model: "gpt-4-turbo" api_key_env: "OPENAI_API_KEY" # —— 注意:这里不写密钥明文,而是指向环境变量

实操心得:很多新手卡在这一步,以为只要填对API地址就行。但真实部署中,网络延迟与Token吞吐量的匹配度,比模型选择更重要。比如你在本地用Ollama跑Llama3-8B,单次响应平均耗时1.2秒,而你的Agent配置里设置了3层嵌套决策流(每层都要调用一次LLM),那么一次完整交互就要3.6秒——用户早已失去耐心。我的解决方案是:在llm_backend配置中增加fallback_strategy字段:

fallback_strategy: timeout_ms: 1500 fallback_model: "phi-3-mini" # 超时后自动切到轻量模型 max_retries: 2

这样,当主模型响应超时,Agent会自动降级到本地Phi-3模型完成基础判断,保证交互不中断。这个细节在项目文档里没提,却是我在某跨境电商客服项目中,把首响时间从4.2秒压到1.8秒的关键。

3.2 第二步:数据管道对接——让Agent的“眼睛”看见真实世界

一个销售经理Agent若只能读配置文件,那它连实习生都不如。agency-agents通过data_sources模块,把外部数据接入变成声明式操作:

data_sources: - name: "customer_health_db" type: "postgres" query: "SELECT chs_score, last_login FROM customers WHERE id = {{customer_id}}" cache_ttl: "300" # 缓存5分钟,避免高频查询 - name: "usage_metrics_api" type: "rest" url: "https://metrics-api.example.com/v1/usage?cid={{customer_id}}" auth_header: "Bearer {{API_TOKEN}}"

避坑重点:这里最容易犯的错误,是把敏感凭证硬编码在YAML里。正确做法是利用环境变量注入:

auth_header: "Bearer ${METRICS_API_TOKEN}"

然后在启动脚本中:

export METRICS_API_TOKEN=$(cat /run/secrets/metrics_token) python run_agent.py --agent sales_manager

更关键的是数据新鲜度控制。我见过太多项目,Agent读取的客户健康分是3天前的缓存数据,而用户刚在APP里完成了一笔大额续费——结果Agent还在按旧数据建议“加强客户关怀”。解决方案是在data_sources中加入stale_threshold字段:

- name: "customer_health_db" stale_threshold: "300" # 数据超过5分钟即视为陈旧,强制刷新

3.3 第三步:交互协议绑定——让Agent学会“听懂人话”

agency-agents默认提供CLI和HTTP两种接口,但真正决定用户体验的,是输入指令如何映射到Agent的决策流。项目中的input_mapping是核心枢纽:

input_mapping: - intent: "renewal_negotiation" trigger_phrases: ["续约", "合同到期", "续费价格"] required_slots: ["customer_id", "current_plan"] # —— 当用户说“帮我看看A公司续约的事”,Agent自动提取customer_id=A - intent: "expansion_analysis" trigger_phrases: ["升级", "买更多模块", "功能扩展"] required_slots: ["customer_id", "target_module"]

实战技巧:这里的trigger_phrases别写得太死板。我建议用正则表达式替代纯字符串匹配:

trigger_phrases: - "续约|续费|合同.*到期|服务.*终止" - "(?i)discount|优惠|降价|打折" # (?i)开启忽略大小写

同时,务必为每个intent配置fallback_response:

fallback_response: "我需要知道客户编号才能查询续约信息,请提供A公司或客户ID"

这能极大降低用户因表述不标准导致的交互失败率。在某教育机构项目中,我们把trigger_phrases从12个关键词扩展到47个正则模式后,意图识别准确率从68%跃升至92%。

3.4 第四步:输出渲染与动作执行——让Agent的“手”真正动起来

Agent的最终价值,不在于它说了什么,而在于它推动了什么。output_rendering模块决定了它的行动力:

output_rendering: - format: "markdown" template: | ## 📊 续约分析报告({{customer_id}}) - **健康分**: {{chs_score}}(近3月趋势:{{chs_trend}}) - **风险提示**: {{risk_flags | join(', ')}} - **行动建议**: {% if discount_proposal %}✅ 已生成{{discount_proposal}}折扣方案{% endif %} {% if tech_sync_scheduled %}📞 已预约技术同步会({{tech_sync_time}}){% endif %} - actions: - name: "send_discount_approval_request" condition: "{{discount_proposal > 0.15}}" payload: "{{json.dumps({'customer_id': customer_id, 'discount': discount_proposal})}}"

关键经验:actions部分必须与企业现有系统深度耦合。比如send_discount_approval_request这个动作,不能只停留在“发个请求”,而要对接真实的OA审批流。我们在某制造业客户项目中,把这一动作直接映射到钉钉宜搭的审批API,Agent生成折扣方案后,自动创建审批单并@CRO,整个过程无需人工干预。这才是职业Agent从“能说”到“能干”的质变点。

4. 职业经验建模的黄金法则:如何写出真正有用的Agent配置

agency-agents项目的威力,80%取决于你能否把真实职业经验,精准地翻译成YAML配置。这不是简单的文字搬运,而是一场严谨的“经验考古学”——你要像考古队员清理文物一样,小心剥离经验中的噪音,只留下可复用的决策骨骼。以下是我在指导20+个团队建模过程中,总结出的四条不可妥协的黄金法则。

4.1 法则一:拒绝“形容词陷阱”,用动词定义Agent能力

翻看很多新手写的配置文件,开头总是:“name: 'SeniorDeveloper'”,description里堆满“经验丰富”“逻辑严谨”“善于沟通”这类形容词。这毫无工程价值。职业能力必须用可观察、可验证的动词来定义。

正确示范(来自项目仓库的senior_developer.yaml):

capabilities: - name: "code_review" input: "pull_request_url, target_branch" output: "review_summary, critical_issues, merge_readiness_score" constraints: "must check security_scanner_report AND test_coverage > 80%" - name: "incident_response" input: "alert_id, service_name" output: "root_cause_analysis, rollback_plan, comms_template" constraints: "must reference last_3_incidents_of_same_type"

这里没有一句“资深”,但每一条capability都在回答:“当给它一个PR链接,它能输出什么?依据什么规则?失败时如何兜底?” 这才是工程师思维。我曾让某团队把他们的“架构师Agent”描述从“具备全局视野”改为“能基于QPS、P99延迟、错误率三维度,对微服务拓扑图进行自动瓶颈定位”,结果建模效率提升了3倍——因为大家终于明白,要捕捉的不是虚无缥缈的“视野”,而是那个在监控大盘前快速圈出问题服务的手势。

4.2 法则二:暴露“失败模式”,比定义成功路径更重要

绝大多数Agent配置只写“该做什么”,却回避“做错了怎么办”。而真实职场中,高手和新手的差距,往往体现在对失败的预案深度上。agency-agents强制要求在每个模块中声明failure_modes:

failure_modes: - scenario: "customer_health_db_unavailable" response: "切换至离线模式:使用最近72小时缓存数据,并标注'数据可能滞后'" escalation: "自动向运维群发送告警,附带DB连接日志" - scenario: "llm_timeout_during_negotiation" response: "提供3个标准化谈判话术选项,由用户选择其一" escalation: "记录本次超时,触发模型性能诊断流程"

为什么这至关重要?因为用户信任的不是“永远正确”的Agent,而是“出错时依然可控”的Agent。在某银行理财顾问项目中,我们为wealth_advisor.yaml设计了7种失败模式,包括“市场数据接口超时”“客户风险测评问卷未完成”“监管新规库未更新”等。当真实发生“监管新规库未更新”时,Agent没有强行推荐产品,而是弹出:“根据最新监管要求,XX类产品销售需额外签署风险告知书,我已为您生成文书模板,请确认是否继续?”——这种坦诚的失败处理,反而让用户满意度提升了22%。

4.3 法则三:用“约束条件”代替“自由发挥”,划定职业行为的安全区

大模型的“创造力”在职业场景中往往是危险的。一个销售经理Agent如果被允许“自由发挥谈判话术”,它可能编造根本不存在的优惠政策,引发法律风险。agency-agents用constraints字段构建安全护栏:

constraints: - "all_price_quotes_must_include_validity_period (e.g., '报价有效期至2024-12-31')" - "no_commitment_to_delivery_date_without_production_capacity_check" - "all_compliance_statements_must_link_to_section_in_policy_document_v3.2"

实操注释:这些约束必须是可程序化校验的。比如第一条,Agent输出的任何报价,系统都会用正则r'有效期至\d{4}-\d{2}-\d{2}'自动扫描;第二条,会在生成交付承诺前,强制调用production_capacity_api接口;第三条,则要求每句合规声明后,必须跟一个[POLICY_V3.2-4.2.1]这样的锚点。我在某医疗器械公司项目中,把constraints从5条扩充到19条后,Agent生成的销售材料,一次性通过法务审核率从31%提升到98%。

4.4 法则四:建立“经验版本管理”,让职业知识持续进化

职业经验不是静态的。去年有效的销售策略,今年可能因竞品动作而失效;上个月的合规红线,下个月可能因新规调整。agency-agents通过versioning机制,让经验建模进入软件工程轨道:

version: "2.3.1" changelog: - "2.3.1: 新增对GDPR第32条数据跨境传输条款的响应逻辑" - "2.2.0: 移除'免费试用期延长'话术(公司政策变更)" - "2.1.5: 优化CHS计算公式,加入NPS权重因子"

关键实践:每个版本必须关联真实业务事件。我们要求团队在提交新版本时,必须填写business_event_ref:

business_event_ref: - "COMPANY_POLICY_2024_Q3_UPDATE" - "EU_GDPR_AMENDMENT_2024_07" - "CUSTOMER_FEEDBACK_SURVEY_JUNE2024"

这使得当某次客户投诉指向Agent话术不当,我们可以立刻追溯到是哪个版本、依据哪条业务事件引入的变更,从而实现精准归因。在某SaaS公司,这套版本管理让职业Agent的迭代周期从平均47天缩短到11天,因为大家不再争论“该不该改”,而是聚焦于“上次改的依据是否还成立”。

5. 边界与反思:当职业Agent开始“太像真人”,我们该如何守住底线?

agency-agents项目最迷人的地方,也是它最需要警惕的深渊:当一个Agent能把某位总监的决策逻辑、话术风格、甚至口头禅都模仿得惟妙惟肖时,“有用”和“危险”的界限,正在变得模糊。这不是技术问题,而是职业伦理的试金石。作为深度参与过多个落地项目的实践者,我想分享三个必须前置思考的边界问题。

5.1 边界一:职业经验建模 ≠ 个人行为复制

项目名称叫“agency-agents”,但它的目标绝不是克隆某个具体的人。我见过最危险的尝试,是某团队试图用CEO的过往邮件、会议纪要、公开演讲,训练一个“CEO-Agent”来代为审批预算。他们甚至加入了CEO常用的感叹词“太棒了!”和标志性手势描述“右手食指轻敲桌面三次”。这已经滑向了人格盗用的边缘。

正确姿势:职业Agent建模的对象,必须是岗位职责(Job Description)所定义的公共行为规范,而非任职者的私人习惯。ceo.yaml的communication_style应该写:“采用‘结论先行’结构,每项决策陈述包含商业影响、资源需求、风险等级三要素”,而不是“喜欢在说完结论后停顿2秒”。前者是可传承的组织智慧,后者只是无法复制的个体印记。

注意:所有配置文件中,禁止出现真实人名、绰号、内部代号。name字段只能是岗位名称(如"CTO"),description中不得出现“张总”“李工”等称谓。这是项目安全运行的第一道防火墙。

5.2 边界二:自动化决策 ≠ 免责化决策

当Agent生成了一份完美的续约方案,客户签字确认,后续若因市场突变导致方案失效,责任在谁?agency-agents的设计哲学很清醒:它从不声称自己能替代人类决策,而是定位为“增强型决策支持系统”。因此,每个Agent的输出,必须携带不可篡改的“决策溯源水印”:

output_watermark: - "Generated by agency-agents v2.3.1 on 2024-07-15T14:22:03Z" - "Based on customer_health_db (cached at 2024-07-15T14:18:01Z)" - "Constraints applied: POLICY_V3.2-4.2.1, GDPR_ART32"

我的实践建议:在生产环境中,必须将此水印与企业电子签章系统联动。当Agent输出的合同附件被签署时,水印信息自动写入区块链存证,确保未来任何争议都能回溯到“当时Agent依据什么数据、什么规则、什么版本生成了该内容”。这既保护了使用者,也倒逼建模者对每一条规则负责。

5.3 边界三:效率提升 ≠ 人性消解

最后,也是最根本的反思:当我们用Agent完美复现了销售总监的谈判技巧、HRBP的员工关怀话术、医生的问诊流程时,那些无法被编码的、属于“人”的部分——比如面对绝望客户的沉默陪伴,比如在数据冰冷结论外多问一句“你最近睡得好吗”,比如明知方案不完美却仍选择相信同事的担当——这些,是否正在被我们悄然删除?

agency-agents项目最值得致敬的地方,或许不在于它多精巧地封装了职业经验,而在于它用代码的绝对理性,反向照亮了人性的不可替代性。我在某心理咨询平台项目中,刻意为counselor_agent.yaml设置了一条铁律:

hard_constraint: "never_generate_advice_on_medication_or_diagnosis"

并强制所有输出结尾加上:

【重要提醒】本建议不能替代专业心理评估。如您感到持续困扰,请立即联系持证咨询师或拨打心理援助热线。

这行字,比任何精妙的共情话术都更有力量。因为它承认了技术的边界,也守护了职业的尊严。

所以,当你下次打开agency-agents仓库,准备新建一个teacher_agent.yaml时,不妨先问自己:我要封装的,是教师这个职业中那些经过时间检验的、可共享的教学法,还是某位特级教师个人魅力的幻影?前者让我们走得更远,后者只会让我们迷失在技术的镜像迷宫里。真正的职业智能,永远始于对“人”的敬畏,而非对“像”的执念。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 15:12:40

多元线性回归实战避坑指南:从原理推导到多重共线性诊断

前阵子给某电商团队做促销销量预估时&#xff0c;我用多元线性回归跑了一版模型&#xff0c;结果发现广告投入的系数居然是负的——广告花得越多&#xff0c;预期销量反而越低。当时运营同事直接问我&#xff1a;"模型是不是写错了&#xff1f;"我第一反应也是代码有…

作者头像 李华
网站建设 2026/10/21 15:12:39

企业级Agent模型路由:不止fallback,更是服务契约治理

1. 为什么“配个备用模型”根本挡不住企业级 Agent 的真实崩塌“给 Agent 配个备用模型”——这句话我去年在三个不同行业的客户现场都听过。一次是某金融后台的智能工单分派系统&#xff0c;一次是某制造企业的设备故障语音诊断助手&#xff0c;还有一次是某教育平台的个性化学…

作者头像 李华
网站建设 2026/10/21 15:12:29

Trae AI编程IDE实战全解析:从对话式编程到自动改代码

最近我大部分写业务代码的时间&#xff0c;都搬进了一个叫 Trae 的 AI 编程 IDE 里。刚开始只是冲着“免费、能直接用上主流模型”的心态去试&#xff0c;真正用下来发现&#xff0c;这个工具最难得的是把“对话上下文”这件事做得足够细&#xff1a;它既能当“聊天助手”回答问…

作者头像 李华
网站建设 2026/10/21 15:11:27

技能管理实操指南:构建你的技能树与系统成长路径

我这些年看过的简历没有一千也有八百&#xff0c;"skills"这个词基本人人都写&#xff0c;但九成以上的人写出来就是一行干巴巴的标签&#xff1a;"熟悉Python、熟练Office、英语四级"。这不是技能清单&#xff0c;这是名词堆砌。真正的技能体系&#xff0…

作者头像 李华
网站建设 2026/10/21 15:10:29

K8S实战:从Zookeeper、MySQL到Dubbo微服务的容器化部署全解析

前阵子帮某集团客户做容器化改造&#xff0c;一个环境里同时上了 Zookeeper、Redis Cluster、MySQL 主从、Nginx 加 Tomcat 的 Java 应用、LNMP 一套、Dubbo 微服务&#xff0c;还有 Ingress 统一网关&#xff0c;整套搬进 Kubernetes 之后踩了不少坑&#xff0c;也沉淀了不少经…

作者头像 李华
网站建设 2026/10/21 15:09:32

打造知识工作插件体系:从采集、整理到复用的完整工作流

做知识工作的人&#xff0c;大概都经历过这么一天&#xff1a;早上打开笔记软件&#xff0c;想把昨天读到的一篇文章摘录进去&#xff0c;结果复制粘贴之后格式全乱&#xff1b;下午写项目复盘&#xff0c;翻遍十几个文档才找到半年前的结论&#xff1b;晚上临下班&#xff0c;…

作者头像 李华