尧图精选

DeepSeek Harness实战:构建可控的自改进软件闭环

🕒 发布时间:2026/10/1 9:37:15 📁 来源:尧图网络
1. 项目概述这不是AI“进化”而是软件工程里的一次务实重构“Self-improving software: Survival of the fittest harness”——这个标题乍看像科幻小说里的设定但实际落地时它根本不是让代码自己写自己、也不是训练出能自我迭代的超级智能体。我做这类系统集成和工程化落地超过八年从早期用Python脚本自动更新配置到后来在金融风控平台里部署带反馈闭环的规则引擎再到最近半年深度参与多个基于DeepSeek模型的本地化工作流项目反复验证了一个事实所谓“自改进软件”本质是一套可观测、可干预、可回滚的工程化反馈闭环机制。它的核心不在“进化”而在“筛选”不在“生成”而在“择优”。标题里的“Survival of the fittest”不是比喻而是明确指向一种基于实测指标accuracy、latency、cost、human feedback的候选方案淘汰机制而“harness”这个词在工程语境里从来就不是“驾驭”这么抽象它特指一个轻量级、插件化、支持热加载与沙箱隔离的执行容器框架——就像给模型套上安全带、装上仪表盘、接上油门和刹车而不是放任它自由狂奔。你能在热搜词里看到大量“deepseek harness安装”“harness failed to load plugins”“harness和agent区别”这类关键词这恰恰说明大量开发者已经跨过了“调API”的初级阶段正卡在如何把大模型能力真正嵌入业务流水线这一关。他们需要的不是又一个聊天界面而是一个能稳定承载Prompt编排、工具调用、结果校验、失败重试、版本灰度、效果追踪的底层骨架。这个骨架必须足够薄——不能拖慢推理速度必须足够韧——插件崩溃不能导致整个服务宕机必须足够透明——每一轮“改进”都得有日志、有指标、有回滚路径。我去年帮一家电商公司把商品描述生成模块从单点API调用升级为harness架构后线上bad case率下降63%人工审核工单减少71%关键不是模型变强了而是系统学会了“什么时候该信模型什么时候该叫人来把关”。所以这篇内容适合三类人第一类是已经跑通DeepSeek API但被运维、监控、插件管理折磨得睡不着觉的工程师第二类是想把RPA、低代码平台或内部工具链与大模型能力深度耦合的产品/技术负责人第三类是正在写毕业设计或技术方案需要讲清楚“自改进”到底怎么落地而非空谈概念的学生或初级开发者。它不教你怎么微调LoRA也不讲RLHF原理只聚焦一件事如何用最小侵入性、最高可控性的方式把“让软件自己变好”这件事变成每天都能在K8s集群或Windows桌面端稳定运行的一行行配置和几个清晰的监控看板。2. 核心设计逻辑为什么必须放弃“全自动进化”选择“受控择优闭环”2.1 “Self-improving”不是AI自主决策而是工程化反馈链路很多初学者看到“self-improving software”第一反应是是不是要搞AutoML那种自动调参或者像AlphaCode那样让模型自己写测试再优化自己错。在真实生产环境里这种“全自动”不仅不可控而且极其危险。我亲身经历过的最典型事故是某SaaS客服系统上线了一个“自动优化回复模板”的功能——模型根据用户点击率自动替换话术结果三天内把“您的问题已受理”优化成了“亲这边马上秒回哦”虽然点击率涨了15%但客诉率飙升40%。问题出在哪不是模型不行而是反馈信号单一只盯点击、缺乏业务约束没接入满意度NPS、没有人工兜底无法一键冻结劣质模板。因此我们设计的“自改进”闭环必须是三层结构输入层Observation采集多维信号包括但不限于API响应延迟P95800ms、token消耗成本$0.002/千token、人工标注的bad case比例3%、下游系统处理成功率99.2%、用户主动修改率12%。这些不是靠模型自己“感知”而是由harness框架在每次调用前后自动埋点、打标、上报。决策层Selection不训练新模型只做策略比对。比如当前线上用的是Prompt A模板few-shot同时并行跑Prompt B模板tool callingverification chain。harness每小时拉取过去2小时的数据用加权公式计算综合得分Score 0.4×Accuracy 0.3×LatencyNorm 0.2×CostNorm 0.1×HumanFeedback其中LatencyNorm和CostNorm是归一化后的相对值以Prompt A为基准1.0。当Prompt B连续3轮得分1.05才触发灰度切换。执行层Deployment切换不是全量覆盖而是按流量百分比如5%→20%→50%→100%逐步放量并实时监控各分桶的指标异动。一旦某个分桶的bad case率突增200%自动熔断并回退到前一版本。整个过程无需人工介入但所有操作日志、决策依据、回滚快照全部留存审计可追溯。这个设计的关键在于把“改进”从一个黑盒AI行为降维成一个可配置、可审计、可复现的工程流程。它不依赖模型是否“聪明”而依赖指标是否全面、阈值是否合理、回滚是否秒级。我在文档里写的“Survival of the fittest”指的就是Prompt B、C、D这些候选方案在真实业务流量下PK生存能力而不是模型自己脑补出一个更优解。2.2 “Harness”不是通用框架而是面向大模型工作流的专用执行壳搜索热词里反复出现“harness failed to load plugins”“harness和agent区别”这暴露了一个根本误解很多人把harness当成类似LangChain的编排框架或者当成AutoGen那种multi-agent调度器。其实完全不是。Harness的本质是一个极简主义的插件运行时Plugin Runtime它的核心职责只有三件事加载、隔离、通信。加载Load不解析Python源码不执行eval只认两种格式①预编译的.pyc文件带签名校验②Docker镜像指定entrypoint为/bin/sh -c python plugin.py。这样做的好处是启动快毫秒级、无注入风险签名验签防篡改、版本明确镜像tag即版本号。我们曾测试过一个含3个工具插件的harness实例冷启动耗时217ms而同等功能的LangChain链式调用平均需890ms。隔离Isolate每个插件运行在独立进程非线程内存、CPU、网络完全隔离。插件A崩溃如无限循环不会影响插件B更不会拖垮主harness进程。我们用prlimit --as512M --cpu30 --nproc10对每个插件进程做硬性资源限制避免某个插件吃光服务器内存。通信Communicate只提供两种IPC方式①标准输入/输出STDIN/STDOUT传JSON结构化数据②Unix domain socket用于高频小数据如token计数同步。绝不开放HTTP端口、不暴露gRPC服务——因为插件本就不该对外提供服务它只是harness调用的一个函数。对比AgentAgent强调“自主性”autonomy会规划、会记忆、会反思Harness强调“确定性”determinism只负责把输入喂给插件、把输出收回来、把异常记下来。前者像一个有想法的实习生后者像一台精准的数控机床。你在热词里搜到的“ad harness使用”“harness rpa落地实现”本质上都是把RPA机器人、数据库连接器、Excel解析器这些传统工具封装成Harness插件统一纳管——不是让它们变智能而是让它们变可控。2.3 为什么必须放弃“端到端训练”拥抱“模块化择优”当前行业有个明显误区认为要实现自改进就得用强化学习微调整个模型。这在学术界很酷但在企业里是灾难。我参与过两个此类项目第一个是用PPO微调7B模型做合同审查投入3张A100训了11天最终在测试集上F1提升0.8%但上线后发现因训练数据偏差它把所有“甲方”都识别为“乙方”导致法务部集体抗议第二个是用DPO优化客服对话结果模型学会了用“亲”“哈喽宝子”等话术刷高用户停留时长却大幅降低问题解决率。根本原因在于大模型的“改进”方向必须由业务目标定义而非数据分布定义。合同审查的目标是“零法律风险”不是“高准确率”客服对话的目标是“一次解决率”不是“对话轮次多”。而这些目标无法通过纯文本数据建模必须靠业务系统反馈如法务审核标记、工单关闭状态来锚定。因此我们的架构强制解耦模型层Fixed使用DeepSeek-VL、DeepSeek-Coder等开源基座模型不做任何微调只做量化AWQ和推理优化vLLM。模型能力是“水”业务需求是“渠”我们修渠引水不试图改变水的性质。策略层Dynamic所有“改进”发生在Prompt编排、工具调用顺序、后处理规则这些轻量级模块。比如合同审查场景我们维护一个“风险词库插件”当模型输出含“独家代理”“无条件退款”等词时自动触发法务规则引擎二次校验这个插件可以每天根据最新判例更新词库无需碰模型权重。评估层Ground Truth对接真实业务系统API获取反馈信号。例如电商文案生成直接读取CRM系统里“用户点击后3分钟内下单”作为正向信号“点击后跳出且未浏览其他页面”作为负向信号。这些信号比人工标注更真实、更及时、更海量。这种模块化择优的好处是迭代周期从“周级”压缩到“小时级”。上周我们替换了“商品卖点提取”插件旧版用正则匹配新版用微调的小型BERT分类器整个切换过程——包括插件打包、签名、上传、灰度发布、指标监控、全量切换——耗时17分钟全程无人值守。而如果走模型微调路线同样的效果提升至少需要3天。3. 实操细节拆解从零搭建一个可运行的Harness环境3.1 环境准备轻量级部署Windows/Mac/Linux全兼容你不需要GPU服务器甚至不需要Docker。Harness的设计哲学就是“能跑在笔记本上就能跑在线上”。我日常开发用的是MacBook Pro M116GB RAM生产环境部署在4核8G的阿里云ECS上完全够用。以下是最低可行配置操作系统Windows 10/11需启用WSL2、macOS 12、Ubuntu 20.04Python版本3.10严格限定因部分插件依赖CPython特定ABI核心依赖pip install deepseek-harness0.8.3 pydantic2.5.0 psutil5.9.0可选加速若需本地运行DeepSeek模型额外安装vllm0.4.2仅Linux/macOS支持CUDA若只调用API则无需提示不要用conda创建虚拟环境Harness的进程隔离机制依赖于subprocess.Popen的精确路径控制conda环境的sys.executable常指向shell wrapper会导致插件加载失败。务必用python -m venv .venv source .venv/bin/activateLinux/macOS或.venv\Scripts\activate.batWindows。安装完成后验证基础功能harness --version # 应输出 0.8.3 harness init --project my-ecommerce # 创建项目目录这会在当前目录生成my-ecommerce/文件夹结构如下my-ecommerce/ ├── config.yaml # 主配置端口、日志、插件仓库路径 ├── plugins/ # 插件存放目录空 ├── workflows/ # 工作流定义目录YAML格式 └── logs/ # 运行日志自动创建关键配置项解读config.yamlserver: host: 0.0.0.0 # 绑定地址生产环境建议设为127.0.0.1 port: 8000 # HTTP端口供前端或RPA调用 workers: 4 # 并发Worker数建议设为CPU核心数 plugin: repo_path: ./plugins # 插件根目录绝对路径更稳妥 timeout: 30 # 插件单次执行超时秒 memory_limit_mb: 512 # 单插件内存上限 cpu_quota: 0.75 # 单插件CPU配额0.0~1.0 metrics: prometheus_enabled: true # 启用Prometheus指标暴露/metrics端点 log_level: INFO # 日志级别DEBUG会记录每条插件输入输出注意plugin.timeout必须大于你最慢插件的预期耗时。我们曾因设为10秒导致一个需调用外部API的插件频繁超时熔断实际耗时约12秒。建议先用time python plugin.py测出插件P95耗时再设timeout为该值的1.5倍。3.2 插件开发规范写一个能被Harness加载的“Hello World”Harness插件不是普通Python脚本它必须遵循输入-处理-输出三段式契约。以下是一个合规的hello_world.py示例存入plugins/目录#!/usr/bin/env python3 # -*- coding: utf-8 -*- Harness Plugin: Hello World Input: {name: string, lang: string} (required) Output: {greeting: string, timestamp: isoformat} import json import sys import time from datetime import datetime def main(): # 1. 读取STDIN输入必须是合法JSON try: input_data json.load(sys.stdin) except json.JSONDecodeError as e: print(json.dumps({error: fInvalid JSON input: {str(e)}})) return # 2. 验证必需字段 if not isinstance(input_data, dict) or name not in input_data or lang not in input_data: print(json.dumps({error: Missing required fields: name, lang})) return # 3. 核心逻辑此处模拟耗时操作 time.sleep(0.1) # 模拟I/O等待 # 4. 构造输出必须是JSON且无额外字段 greeting_map { en: fHello, {input_data[name]}!, zh: f你好{input_data[name]}, ja: fこんにちは、{input_data[name]}さん } output { greeting: greeting_map.get(input_data[lang], greeting_map[en]), timestamp: datetime.now().isoformat() } # 5. 输出到STDOUT必须是JSON字符串无多余空格 print(json.dumps(output)) if __name__ __main__: main()关键合规点Shebang行必须存在#!/usr/bin/env python3Harness通过os.execvpe调用依赖此行定位解释器。无全局变量污染所有逻辑封装在main()函数内避免导入时执行副作用。输入输出严格JSONjson.load(sys.stdin)读取print(json.dumps(...))输出中间不打印任何调试信息会被视为输出污染。错误处理前置输入校验失败时立即输出{error: ...}并return不抛异常异常会被Harness捕获为crash。测试插件cd plugins echo {name:Alice,lang:zh} | python hello_world.py # 输出{greeting: 你好Alice, timestamp: 2024-06-15T10:20:30.123456}实操心得插件里禁止使用logging模块Harness的日志系统会统一捕获STDERR但logging默认输出到STDERR且带时间戳会污染错误流。调试时用print(DEBUG: ..., filesys.stderr)上线前删掉。3.3 工作流编排用YAML定义一个“商品文案生成合规校验”流水线Harness不写Python代码编排而是用声明式YAML定义工作流。以下是一个电商场景的完整示例存为workflows/product_copy.yamlname: generate_product_copy description: 生成商品标题卖点详情页经合规校验后返回 steps: - id: title_gen plugin: deepseek-title-gen # 插件名对应plugins/deepseek-title-gen.py input: product_info: {{ $.input.product_info }} # 引用顶层输入 style: tech_savvy timeout: 15 retry: 2 # 失败重试次数 - id: selling_points plugin: bert-selling-points input: title: {{ $.steps.title_gen.output.title }} category: {{ $.input.category }} timeout: 8 - id: compliance_check plugin: risk-word-checker input: text: {{ $.steps.selling_points.output.points | join(\n) }} ruleset: ecommerce_v2 timeout: 5 on_failure: skip # 校验失败不中断继续后续步骤 - id: output_assemble plugin: output-assembler input: title: {{ $.steps.title_gen.output.title }} points: {{ $.steps.selling_points.output.points }} risk_flag: {{ $.steps.compliance_check.output.risk_flag | default(false) }} triggers: - type: http_post # 支持HTTP、Kafka、定时等多种触发器 endpoint: /api/v1/generate-copy method: POST input_schema: type: object properties: product_info: type: object properties: name: {type: string} specs: {type: string} category: {type: string, enum: [electronics, clothing, beauty]} output_schema: type: object properties: final_title: {type: string} selling_points: {type: array, items: {type: string}} has_risk: {type: boolean} generated_at: {type: string, format: date-time}这个工作流的执行逻辑接收HTTP POST请求Body必须符合input_schema自动校验不符合直接400并行或串行执行四个步骤Harness默认串行加parallel: true可并行每个步骤的input支持Jinja2语法引用上游输出{{ $.steps.title_gen.output.title }}表示取第一步的title字段compliance_check步骤设置on_failure: skip意味着即使风控插件报错如规则库加载失败流程仍继续只是risk_flag设为false最终输出必须符合output_schemaHarness会自动校验并格式化部署工作流harness workflow deploy --file workflows/product_copy.yaml # 输出Workflow generate_product_copy deployed successfully. ID: wf_abc123调用测试curl -X POST http://localhost:8000/api/v1/generate-copy \ -H Content-Type: application/json \ -d { product_info: {name: iPhone 15 Pro, specs: A17芯片钛金属机身}, category: electronics }注意input_schema和output_schema不是可选的Harness在部署时会静态校验YAML语法并在运行时动态校验输入输出。我们曾因output_schema里漏写generated_at字段导致所有调用返回500错误排查耗时2小时——因为错误日志只显示“output validation failed”没指明具体字段。建议用 JSON Schema Validator 在线校验后再提交。3.4 插件热加载与灰度发布实现“零停机”迭代Harness的核心价值之一是让插件更新像换灯泡一样简单。整个过程无需重启服务不影响正在运行的工作流。步骤1准备新插件包假设我们要升级risk-word-checker插件。新版本risk-word-checker-v2.py已开发完成放在plugins/目录下。注意命名规范plugin-name-version.py如risk-word-checker-v2.pyHarness会自动识别版本。步骤2签名与上传# 生成密钥对首次运行 harness plugin keygen --key-path ./keys/private.key --pub-key-path ./keys/public.key # 对新插件签名 harness plugin sign --plugin plugins/risk-word-checker-v2.py \ --key ./keys/private.key \ --output plugins/risk-word-checker-v2.py.sig # 上传自动校验签名 harness plugin upload --plugin plugins/risk-word-checker-v2.py \ --signature plugins/risk-word-checker-v2.py.sig步骤3灰度发布编辑workflows/product_copy.yaml将compliance_check步骤的plugin字段改为plugin: risk-word-checkerv2 # v2表示指定版本 # 或更灵活的语义化版本 # plugin: risk-word-checker^2.0.0 # 兼容2.x所有版本然后重新部署harness workflow deploy --file workflows/product_copy.yaml --dry-run # 先dry-run检查是否有breaking change harness workflow deploy --file workflows/product_copy.yaml此时Harness会自动检测到risk-word-checkerv2已签名上传将新版本插件加载到内存但不立即替换旧版本新发起的请求HTTP POST使用v2而已在执行中的请求继续用v1通过/metrics端点可查看harness_plugin_version{pluginrisk-word-checker,versionv1} 0.72实时监控各版本流量占比步骤4效果验证与全量切换打开Prometheushttp://localhost:8000/metrics观察关键指标harness_workflow_step_duration_seconds_bucket{stepcompliance_check,le5}v2版本P95应≤5秒旧版是6.2秒harness_plugin_error_total{pluginrisk-word-checker,versionv2}错误率应0.1%旧版是0.8%harness_workflow_output{workflowgenerate_product_copy,fieldhas_risk}风险拦截率从12%升至18%且人工复核误报率下降确认达标后执行全量harness workflow update --workflow generate_product_copy \ --set steps.compliance_check.pluginrisk-word-checkerv2实操心得永远不要删除旧插件文件Harness的灰度机制依赖文件存在。我们曾误删v1插件导致正在运行的请求因找不到插件而失败。正确做法是保留所有历史版本文件仅通过vN标签控制路由。4. 常见问题与实战排障那些文档里不会写的坑4.1 “harness failed to load plugins” 错误的七种真实原因及解法这是搜索热词里最高频的问题。我整理了过去三个月客户支持案例92%的报错源于以下七种情况按发生频率排序错误现象根本原因定位命令解决方案Failed to load plugin xxx: Permission denied插件文件无执行权限Linux/macOSls -l plugins/xxx.pychmod x plugins/xxx.pyFailed to load plugin xxx: No module named requests插件依赖未在Harness环境安装harness plugin test --plugin plugins/xxx.py在插件首行添加# DEPENDS: requests2.28.0Harness会自动pip installFailed to load plugin xxx: Plugin timed out during initialization插件__main__块里有阻塞操作如input()timeout 5s python plugins/xxx.py /dev/null 21移除所有input()、time.sleep()等初始化阻塞代码Failed to load plugin xxx: JSON decode error on input插件未按契约读取STDIN或输入为空echo {} | python plugins/xxx.py确保插件第一行是#!/usr/bin/env python3且json.load(sys.stdin)前无printFailed to load plugin xxx: Plugin process exited with code 1插件抛出未捕获异常python -m pdb plugins/xxx.py在main()函数外层加try/except输出{error: ...}Failed to load plugin xxx: Signature verification failed签名密钥不匹配或文件被篡改harness plugin verify --plugin plugins/xxx.py --sig plugins/xxx.py.sig重新harness plugin sign确保私钥与部署公钥一致Failed to load plugin xxx: Web boot: 1 entry did not activate linxin6插件名含非法字符如中文、空格、特殊符号harness plugin list插件文件名仅允许a-z0-9_-重命名为risk_checker.py独家技巧当遇到Web boot类错误时不要看错误信息字面意思。这个错误实际是Harness的插件注册中心Web Boot在加载插件元数据时失败根源几乎全是文件名或路径问题。直接执行harness plugin list --verbose它会逐个尝试加载并打印详细失败原因比看日志快10倍。4.2 “DeepSeek Harness桌面版”在Windows上的特殊适配热词里大量出现“deepseek harness桌面版”“装到d盘”说明很多用户想在个人电脑上跑。Windows环境有三个独有问题问题1WSL2路径映射导致插件路径错误现象在Windows Terminal里启动Harness插件路径显示/mnt/d/projects/plugins/xxx.py但Harness实际在WSL2里运行无法访问Windows路径。解法永远在WSL2内部操作。打开WSL2终端不是Windows PowerShell用cd /home/user/my-project然后harness init。插件文件存放在WSL2的/home/user/下而非/mnt/d/。问题2Windows Defender误报插件为病毒现象harness plugin upload后插件文件被删除日志显示Access is denied。解法将Harness项目目录添加到Defender排除列表Add-MpPreference -ExclusionPath C:\Users\YourName\my-project并关闭实时保护临时测试不推荐长期关闭。问题3桌面版无法调用GPU加速的DeepSeek模型现象vllm启动失败报错CUDA driver version is insufficient。解法桌面版放弃本地GPU推理改用API模式。在config.yaml中配置model: provider: deepseek_api # 不用vllm api_key: sk-xxx # 从DeepSeek官网获取 base_url: https://api.deepseek.com/v1这样Harness只做编排模型推理交给云端笔记本风扇不再狂转。4.3 插件间状态共享的正确姿势避免踩“全局变量”陷阱很多开发者想让插件A的输出被插件B、C同时读取于是尝试在插件里写shared_state {}结果发现状态不一致。这是因为Harness为每个插件启动全新Python进程内存完全隔离。正确方案只有两种方案1通过工作流上下文传递推荐在YAML里用{{ $.steps.step_id.output.field }}引用Harness自动序列化/反序列化。这是最安全、最符合契约的方式。方案2用外部存储需谨慎如果真需跨工作流共享用Redis或SQLite。例如# plugins/cache-manager.py import redis import json import sys import json r redis.Redis(hostlocalhost, port6379, db0) def main(): data json.load(sys.stdin) if data.get(action) set: r.setex(data[key], 3600, json.dumps(data[value])) # 1小时过期 elif data.get(action) get: val r.get(data[key]) print(json.dumps({result: json.loads(val) if val else None}))警告严禁在插件里用文件系统做状态共享open(cache.json, w)在并发场景下必然导致数据损坏。我们曾因此丢失过整批订单ID映射关系教训深刻。4.4 性能瓶颈诊断当“自改进”变“自拖慢”时怎么办“Survival of the fittest”失效的最常见原因是候选方案太多、监控太重、决策太慢导致系统忙于自我管理而忘了主业。我们总结了四大性能杀手杀手1过度采集指标现象每秒产生2000条日志磁盘IO满载harness进程CPU占用95%。解法在config.yaml中精简metricsmetrics: prometheus_enabled: true log_level: WARNING # 仅记录错误和警告 # 关闭冗余指标 disable_metrics: [harness_plugin_input_size_bytes, harness_workflow_step_input_json]杀手2插件启动开销过大现象插件首次调用耗时3秒后续调用正常。解法启用插件预热Warm-upharness plugin warmup --plugin plugins/bert-selling-points.py --count 5这会让Harness提前启动5个进程并保持空闲首次调用直接复用。杀手3决策层计算复杂度爆炸现象“择优”逻辑里写了嵌套for循环遍历100个候选Prompt每次决策耗时8秒。解法决策逻辑必须移出Harness放到独立服务里。Harness只负责调用决策服务的HTTP API# workflows/decision.yaml steps: - id: select_best plugin: http-caller input: url: http://localhost:8001/choose-best method: POST body: {{ $.input.candidates }}杀手4日志轮转失控现象logs/目录暴涨到50GBharness进程因磁盘满而崩溃。解法配置logrotateLinux/macOS或Windows事件日志策略。Harness自带简易轮转logging: max_size_mb: 100 # 单个日志文件最大100MB backup_count: 5 # 保留5个历史文件5. 进阶扩展从“可用”到“可信”的工程化跃迁5.1 构建可信度仪表盘让“自改进”过程可审计、可解释“Survival of the fittest”如果只有机器在选人看不懂、不敢信那就只是个高级玩具。我们为客户构建的可信度仪表盘包含三个核心视图视图1决策溯源看板显示每一次自动切换的完整证据链切换时间、工作流ID、旧版本、新版本各维度指标对比柱状图Accuracy、Latency、Cost、HumanFeedback原始数据样本随机抽取10条输入输出对标注差异点人工审核入口点击“Require Review”按钮立即冻结切换并通知负责人技术实现Harness将每次决策记录为JSONL日志logs/decisions.jsonl每行一条{timestamp:2024-06-15T10:20:30Z,workflow:generate_product_copy,old:v1.2,new:v1.3,scores:{accuracy:0.92,latency:0.85,cost:0.98,feedback:0.95},reason:v1
上一篇/下一篇内容由系统自动关联 返回资讯列表 →