Human‑in‑the‑Loop
什么是HitL人机在环大模型执行过程中暂停交给人类输入反馈再继续执行。两种常见 HITL 模式工具调用前请求人类审批是否允许调用工具Agent 思考一半需要人类补充信息 / 修正答案再继续工具调用前请求人类审批from typing import Optional class HumanInTheLoopAgent: def __init__(self): self.task_history [] def llm_simulate(self, prompt: str) - str: 模拟大模型输出 print(f\n [模拟大模型思考] 输入{prompt}) if 分析用户报告 in prompt: return 需要调用数据库查询用户数据需要人类审批是否执行该操作。 elif 拿到人类审批 in prompt: return ✅ 已获得人类许可开始执行查询报告已生成完成。 else: return f大模型回复基于输入[{prompt}]完成处理 def human_input(self, hint: str) - str: HITL 交互暂停等待人类输入 print(\n *60) print(f【人类介入 Human‑in‑the‑Loop】{hint}) user_input input( 请你的输入(人类反馈): ) print(*60) return user_input def run(self, user_query: str): print(f\n Agent启动用户请求{user_query} ) self.task_history.append({role:user,content:user_query}) # Step1第一轮大模型推理 resp1 self.llm_simulate(user_query) print(f Agent输出{resp1}) self.task_history.append({role:agent,content:resp1}) # 判断是否需要人机介入 if 需要人类审批 in resp1: # HITL 触发暂停等待人类 human_feedback self.human_input(模型想要执行数据库查询请审批输入 yes 允许 / 输入其他拒绝也可以写你的修改意见) self.task_history.append({role:human,content:human_feedback}) # Step2把人类反馈丢回大模型继续执行 new_prompt f拿到人类审批结果:{human_feedback}原始任务{user_query} resp2 self.llm_simulate(new_prompt) print(f\n 接收人类反馈后继续执行{resp2}) self.task_history.append({role:agent,content:resp2}) print(\n✅任务全部结束完整对话历史) for item in self.task_history: print(item) if __name__ __main__: agent HumanInTheLoopAgent() # 运行demo agent.run(分析用户报告查询数据库获取用户隐私数据)Agent 思考一半需要人类补充信息 / 修正答案再继续 LangChain Human‑in‑the‑Loop工具调用前人工确认 import os from dotenv import load_dotenv from langchain_core.tools import tool from langchain_openai import ChatOpenAI from langchain.agents import create_agent from langchain.agents.middleware import wrap_tool_call current_file_path os.path.abspath(__file__) script_folder os.path.dirname(os.path.dirname(os.path.dirname(current_file_path))) env_path os.path.join(script_folder, .env.local) load_dotenv(dotenv_pathenv_path) # print(os.getenv(DEEPSEEK_BASE_URL)) # print(env_path) tool def query_database(user_id:str)-str: 查询数据库获取用户敏感数据 return f数据库返回用户[{user_id}]的敏感信息xxx隐私数据 tools [query_database] llm ChatOpenAI(modelos.getenv(DEEPSEEK_MODEL_CHAT), api_keyos.getenv(DEEPSEEK_API_KEY), base_urlos.getenv(DEEPSEEK_BASE_URL)) # 自定义中间件在工具真正执行前拦截触发人工确认HITL wrap_tool_call def human_in_loop(request, handler): tool_call request.tool_call print(f\n⚠️ 模型准备调用工具{tool_call[name]} 参数{tool_call[args]}) human_ok input(是否允许调用该工具 yes/no) if human_ok.strip().lower() ! yes: # 人类拒绝执行该工具调用返回拒绝信息让模型继续推理 return { role: tool, content: 人类拒绝执行该工具调用, tool_call_id: tool_call[id], } # 人类批准继续执行工具 return handler(request) executor create_agent( modelllm, toolstools, system_prompt你是助手按需调用工具, middleware[human_in_loop], ) if __name__ __main__: res executor.invoke({messages: [{role: user, content: 查询id1001用户的数据库信息}]}) print(\n最终结果, res[messages][-1].content)

相关新闻

Android主题不兼容问题解析与解决方案

Android主题不兼容问题解析与解决方案

1. Android开发中主题不兼容问题的典型表现在Android应用开发过程中,主题不兼容导致的报错通常会在以下几种场景中出现:编译时报错:最常见的错误提示是java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descen…

2026/10/18 13:56:26 阅读更多 →
Kaggle花卉分类实战:从零构建PyTorch图像分类模型

Kaggle花卉分类实战:从零构建PyTorch图像分类模型

1. 项目概述:从零开始的Kaggle花卉分类挑战如果你对数据科学和机器学习感兴趣,但面对海量的理论教程和复杂的代码库感到无从下手,那么Kaggle的入门级比赛就是你最好的“新手村”。今天我想分享的,是我参加Kaggle平台上一个名为“P…

2026/10/18 13:56:40 阅读更多 →
如何让经典Windows游戏在现代系统重生:DDrawCompat完整指南

如何让经典Windows游戏在现代系统重生:DDrawCompat完整指南

如何让经典Windows游戏在现代系统重生:DDrawCompat完整指南 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/D…

2026/10/18 6:49:48 阅读更多 →

最新新闻

老旧ARM盒子部署可道云:Docker自建私有网盘的完整实战

老旧ARM盒子部署可道云:Docker自建私有网盘的完整实战

玩ARM盒子的人,迟早会走到“自建私有网盘”这一步。手头一台吃灰的ARM设备,刷上Armbian 5.77(Debian 9),跑在老旧内核上,想要一个能传大文件、能在线看文档、能挂到电脑上当网络硬盘的Web网盘,可…

2026/10/18 14:21:29 阅读更多 →
AI辅助毕业论文写作:从选题到终稿的实操指南

AI辅助毕业论文写作:从选题到终稿的实操指南

1. 毕业论文的真正难题,不是“写不出来”而是“不知道怎么开始”每年毕业季,我都能看到一大批学生对着空白的Word文档坐到天亮。有人说论文难在写作,其实写作只是最后一步。真正的痛点在前置环节:选题方向拿不准、文献堆成山却读不…

2026/10/18 14:21:29 阅读更多 →
Cursor 把 C 盘吃掉 20GB?用 Python 开源工具 cursor-clean 一键清理

Cursor 把 C 盘吃掉 20GB?用 Python 开源工具 cursor-clean 一键清理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 14:21:29 阅读更多 →
LangChain多智能体实战:用TaoToken统一Key跑通Agent协作链路

LangChain多智能体实战:用TaoToken统一Key跑通Agent协作链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 14:21:29 阅读更多 →
期权Alpha系统化交易框架:从波动率定价到风险管理四步闭环

期权Alpha系统化交易框架:从波动率定价到风险管理四步闭环

这个系列写到第4章,所有拆过的策略、参数和案例,是时候拢到一起做个收口了。Option Alpha这个题目,很多人误以为是一套能稳定盈利的期权策略模板,但四章写下来,我反复想强调的观点其实只有一个:期权本身不产…

2026/10/18 14:21:29 阅读更多 →
从空白需求到自动化数据采集:Playwright实战全链路记录

从空白需求到自动化数据采集:Playwright实战全链路记录

上周收到一个需求,项目名叫【无标题】,正文空白、关键词空白,连摘要也只留了一句“先看看能做什么”。一开始我以为是对方漏贴了内容,后来发现这事在真实工作里太常发生了:很多项目最早期根本没有成文的需求&#xff0…

2026/10/18 14:20:28 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →