注册并分享邀请链接,可获得视频播放与邀请奖励。

搜索结果 義時撮影
義時撮影 贴吧
一个关键词就是一个贴吧,路径全站唯一。
创建贴吧
用户
未找到
包含 義時撮影 的推特
性生活学习技巧指南--第2节:“手淫的艺术” 性爱可不只是生殖器的互相摩擦,而是要探索各种不同的变化来增强你性生活的质量,别让它变成一种走调的例行公事。对你的伴侣手淫是一件能令你们彼此激动的事,所以,不妨看一下本文,让你的手指学会走路。 互相手淫会是一种令人战栗的经历,不过首先,我们要来学一下手势技巧的基础知识。许多男人感觉他们的女伴在用手抚摸他们的阴茎时不够熟练,女人的手本身看上去是那样不盈一握,以致于在抓住男人阴茎时也显得软弱无力。她们似乎害怕用力,却又常常在不恰当的时候使劲拉拽,结果破坏了节奏,她们还常有搔刮的倾向。显然,我们应该对互相手淫有一个正确全面的了解。你和你的伴侣不妨依照下面所说练习,这是一个在这方面有不少经历的我给大家的经验。 我们第一要考虑的总是大小问题,太大还是太小呢?关于男人阴茎的大小总是有着各种各样的讨论,其时它较多的是取决于祖先的遗传。事实上就人类的性欲程度而言,花大量功夫来研究这个问题实在是浪费时间,一个大号的阳具并不会给妇女带去更多生理上的快感,除非一些女人天生心里爱好大阳具。 那么形状呢?是弯把子好还是笔直如箭好?其时主要还是要看你是否握得合手,是否能完全地把握它?那样你才能对它整个地进行挤捏。但是别当做是手风琴来乱拉一气。要轻柔地,但要有力。如果阴茎的尺寸确实非同寻常,建议用两只手爱抚,以免遗漏了哪个部份。 好好地发掘男人阴茎的每一寸地方,男人喜欢自己的阴茎受到女人的崇拜、戏乐、逗弄、爱抚和按摩,让他知道你对此并不害怕、害羞或者厌恶。开始时现别急着抽拉,而去感觉一下它的饱满,用手指从睪丸一直抚到龟头,然后慢慢划过从另一边回到睪丸,整个动作要短捷而连贯,不要停顿。 现在你要渐渐加速了,不过仍然不要狠命抽拉或拍打,不妨挑逗一下阴茎的敏感部位。包括龟头、其膨大部份及阴茎底部一些柔软的地方。 把手摊平,然后慢慢握紧龟头的顶部,作旋转运动就像你要打开可口可乐盖一样(不是拉罐式的),相信你的男人会快乐地呻吟。龟头可是超级敏感的,这举动会带给它细腻的快感。也许他会表情痛苦,大叫出声,甚至想推开你的手,但实际上他一秒钟都舍不得你的手离开。现在你得继续耕作哪怕他求你停下。 做了一阵之后,将你的手滑向他的睪丸,一定要轻柔地将它们抓在手指中,慢慢向外拉。如果它们大得像洋鸡蛋,在手中掂上几次,高速他它们有多重,有多性感。 不管你怎么做,别去挤捏它们!否则浪漫的一天还没开始就可能结束。你可能会注意到他的鸡蛋有一只比另一只垂得更低,这是正常情况,当你的手握正睪丸而且感觉舒服后,慢慢将它往阴茎方向推,通常可以推至一半的高度,这一方面也取决于他阴囊的大小。男人们是会喜欢你这样的。 好了,放开他的睪丸,把手指捏成鹅头样子(即拇指和另四指对捏),轻轻抽拉他那愤怒的阴茎,在到达龟头顶部时,可以离开一两秒以便让它喘口气。 此时,阴茎可能会分泌出一些润滑液体,这是用来润滑尿道使精子畅通游出龟头湾的。未割过包皮的阴茎通常将这种液体攒积在包皮内,使龟头保持湿润光滑。就着这液体润滑来阴茎,有时它的麝香味对你们俩是一种摧欲剂。当然即使液体很少或没有也别担心,这不是必须的,也不每次在同一时刻出现。如果能用上一点外用润滑液应该不错,滴上几滴于阴茎上,然后轻轻摩擦。有人建议在此前最好先用手心将润滑液摩擦摩擦,这样可使之便得暖和,以免让热情似火的阳具受到冷遇。 如果你的伴侣昂起得不够坚挺(最好不要发生这种情况),可以给它抹一点肉桂质的软膏,一半在性保健商店都有出售,只是叫法各有不同罢了,那微微的灼烧感会让阴茎怒发冲天。别忘了给睪丸也涂一点。 左右开弓 用两只手,轮流来回拍打抚摸它,让它兴奋。不要像例行公事那样,使得节奏变得沉闷,马马虎虎,让他愉悦直到他说︰「我服了你啦!」 双管齐下 用两只润滑过的手同时握住阴茎,有些阴茎实在大得需要两只手,如果你的伴侣不是(显然在东方这种情况更多一些),那么令一只手别闲着,去抚摸、摆弄他的睪丸。若用得上两只手,则一齐上下套动,像打泵那样。假像你正握着一根棒球杆,准备来个本垒打。你也可以两只手错开套动,一只手上时,另一只手向下。显然,双管齐下比单枪匹马更有效,孤掌难鸣呀! 铁砧功 一只手从上往下掠摩阳具,到达底端时放手,另一只手接着做同样的动作。 想一下两名铁匠是如何轮流砸铁的,顾名思义。 竖笛 很少有人听说过这个词,因为这根本就是MFM工作室发明的,两手拿住阴茎,手指各在两边轮流轻弹阴茎,想想吹竖笛时手指的移动。可能你会觉得这好像没什么大不了的,但逐渐逐渐,阴茎就会聚积很大的能量,让他达到不错的高潮。你要是嘴同时像吹竖笛那样来点什么,效果可想而知,不过本文谈论的主要是手的要领。 书夹 两手像书夹那样夹住阴茎,稍稍向内侧用力,然后上下搓动,这感觉你大概想也想得到。 钻木取火 手指朝下左右抵住阴茎,现在你是在野外,想生一堆火,该怎么转动不用多说吧,你会让他的心火久烧不灭! 乾坤一扣 用拇指和食指围绕捏住阴茎的底端,朝睪丸方向稍稍用力,这样可以阻断血液的流通,也可起到稳定阴茎的用处(像是在阴茎上戴了一枚戒指)。另一只手怎么做不用我教了吧。 爱屋及乌 在你拉抚他时,轻轻从睪丸处拉起一小撮阴毛。不要太用力,以免拔下来,应轻轻且充满爱意地调情。这会让男人兴奋地大吼,并对你的新创举感到敬畏。 各伺其主 当一只手在上下抽拉阴茎时,另一只手去挠他的睪丸。 威猛轻敲 用一只空出的手有力且亲昵地拍打他大腿的内侧。 出其不意 在抽拉他时另一只手作拳头状抵住他的会阴部,他可能更为分开双腿让你能用得上劲,保证此法能让他疯狂。 说了这么多方法,其实要想在性爱时获得快乐,最重要的因素,还是心理问题,在安全的前提下,尽可能幻想着各种前所未及的行为。要想成为一名性爱先锋,你应该不断努力来发掘自身的性欲极限。
显示更多
workbuddy已经悄无声息推出了5.7.6的灰度测试版本,本次更新推出的新功能有以下9点,但是看具体放出来能有多少呢! 本次是直接进行了拆解安装包代码的操作,官网上还正式推出Workbuddy的5.7.6的版本 并且有很多就是在上一个版本就写好的内容,但是没有放开入口。 简单来说 5.7.6和5.6.2两个版本的差异是体积变小、按需加载了,并且一些文件图标进行了更换,目前更大的是UI上的变化 可以期待一下这一次的正式版5.7.6的变化吧 下面是新功能: 1. 日历 · 日程 · 会议(本次最大增量) 日历 6 → 73|日程 4 → 87|会议室 6 → 21 日程管理:新建 / 编辑 / 删除日程,重复日程(每日、每周、每双周、每月第 N 个周几、每年)、全天日程、自定义时长(15 分钟倍数)、时区、农历显示 会议室:会议室占用查询、按时间段筛选可用会议室、预订 / 释放房间、冲突提示 在线会议:创建日程自动生成腾讯会议链接、会议纪要、会后行动项 多日历体系:个人日历、团队日历、频道日历、订阅公共日历 第三方日历同步:CalDAV / Exchange 账户接入、同步至 Mac / Windows 系统日历、日历专用密码与获取记录、断开 / 重连 邀约与忙闲:日程邀约、待处理邀约、参与人忙闲展示、主讲日历不可删除 2. 受限模式(工作区安全) 受限模式 0 → 8 以「受限模式」打开目录:不自动加载项目级配置、不自动执行终端命令、禁用 Agent Runtime 的 Bash 工具 配合工作区「信任 / 不信任」授信状态 3. 频道体系扩张 频道 5 → 35 创建频道、频道设置、频道助理、频道成员与权限(可见 / 可编辑)、频道日历、频道内日程、进入频道 4. 独立窗口 独立窗口 0 → 2(组件 conversation-window-app、developer-profile-window-app) 对话 / 文件 / 开发者主页可在新窗口中打开,与主窗口并行查看 5. 电脑操控与云端 电脑应用操控(新增文案):安装后可让 WorkBuddy 操控电脑应用,过程中可能截屏或读取窗口内容,权限可随时收回 云电脑 0 → 2 投递渠道 0 → 9:产物投递状态(待投递 / 投递中 / 投递失败 / 终止) 6. 技能与专家付费、退款 退款 1 → 16 购买、续期 1 个月、有效期展示 申请退款、7 天内可退、退款 3 次后不可再购买、超过 7 天不可退款 付费技能不支持重新上传;体验版不支持购买积分 7. 安全体系扩展(组件 SecurityCenterPanel、security-center-event-bridge) 网络严格模式:阻断网络访问、仅允许域名白名单、拦截绕过代理的直连 命令 / 文件 / 域名三级策略:放行名单、询问名单、拒绝名单,按优先级匹配,命中高风险路径强制审批 审计日志:本机审计记录清空与日志导出(企业侧审计不受影响) 内容级风险检测(新增)、企业规则(新增)、运行时安全事件回执 拦截类别涵盖:危险代码执行、恶意网络行为、信息窃取、隐私泄露、系统破坏、有害内容生成、钓鱼欺诈站点等 8. 定时任务增强 暂停 / 恢复(任务已暂停)、运行记录与执行详情、失败重试与第 N 次运行结果 下次运行时间、错过补跑窗口、产物生成后系统弹窗提醒 设备离线未运行提示、触发频率下限(最低每 5 分钟) 9. 其他新增 Outlook 连接器(Outlook 0 → 2) 智能诊断(新增)、设置默认打开方式(新增) 实验室面板(LaboratoryPanel)、模型设置面板、记忆设置面板、数据管理面板、扩展设置面板 新会话自动推荐专家与技能(「每次启动新任务时,为你推荐适合完成任务的专家与技能」) 本地运行的 AI 模型下载与管理
显示更多
從「雖遠必誅」到「好好吃飯」,中國主旋律電影的敘事變了? 狂攬20億票房的《歡迎來龍餐館》,講述一個中國廚子徐福在中東戰亂中庇護孤兒的故事。這部電影代表着中國新主流電影的新形態:國家退居幕後,不再以強硬姿態彰顯力量。 徐福「沒有信仰、沒有立場」,用中國美食征服各方。這呼應了中國社會的實用主義,傳達出一種「不爭做世界警察,只求中立和平過日子」的中式和平觀。 然而,許多觀眾感動於其中的反戰與人道主義時,電影卻將中東複雜的歷史情境抽空。戰爭被簡化為模糊的殘酷奇觀,觀眾不需要了解當地的真實脈絡,只需要知道「打仗很壞、人民很慘」。 誠如導演所言,希望觀眾看完覺得「生活在和平的國家很幸福」。伊拉克人的真實境況並非電影真正要理解的對象,他們的苦難,最終只是作為中國觀眾確認自身幸福、得出「中國很好」的一面鏡子。 當異域被處理為背景,這種對世界的想像,會否只是一場簡化世界後的自我投射與廉價感動? 👉點擊連結,閱讀全文:
显示更多
活動結束..💓非常感謝臺灣朋友們💓我們度過了非常有意義的時間。 我很快會回到臺灣的 我愛你💓
0
14
803
33
转发到社区
즐거웠던 대만 FF45 현장✨💗 내 인생에 브라운더스트2를 만난건 정말 행운이야..💓 이번 웨딩이클립스도 좋아해주셔서 감사합니다💍💗 託這次臺灣活動的福,度過了非常有意義的時間。 謝謝你和我在一起。 我愛你…💓
显示更多
0
22
4.5K
263
转发到社区
【從購買力到創造力!美媒:“中國設計”正在時尚奢侈品領域崛起】 美國時尚雜志《Vogue》22日發布文章,聚焦中國在全球時尚奢侈品領域的角色轉換:一直以來,中國的重要性主要通過其消費力來體現,如今隨著本土設計師激增、本土品牌站穩腳跟,“中國設計”作為一股新興力量正在崛起。 文章稱,從西方時尚行業的角度來看,中國本土設計師品牌市場只有短短三十年歷史。如今,這一市場終於走向成熟,原因在於近年來中國設計師數量激增,當中許多人曾在歐美知名時尚學府就讀,之後回國創辦自己的品牌。 國際市場調研機構歐睿國際奢侈品部門負責人弗盧爾·羅伯茨說:“(中國)本土品牌的日益崛起正在拓寬競爭格局,為消費者提供更多元的選擇,以替代那些久負盛名的國際大牌。” 比利時時尚雜誌《A Magazine Curated by》主編布萊克·阿比指出,中國設計行業近年來發展勢頭迅猛,“大部分增長發生在近15年”。 “那麼,未來15年會是什麼樣呢?這對一直依賴中國市場實現增長的全球奢侈品牌而言,又意味著什麼?”文章留下了這樣一個疑問。 日前,中國設計師品牌荷木HEMU以“絲路”系列開啟2027春夏上海時裝周開幕大秀,該系列從絲綢之路汲取靈感,在賦予中國絲綢現代感的同時,又在廓形與氣質上彰顯東方韻味;中國品牌SAMUEL GUÌ YANG的新系列則以中國古老傳說“白蛇傳”為主題,品牌創辦人楊桂東表示,國際消費者正越來越接受傳統中國美學。 文章稱,民族自豪感持續在中國時尚界高漲,本土設計師不斷探索新途徑,將自身文化融入到設計當中。這一趨勢最早出現在2010年代後期,標誌著中國設計師逐漸擺脫對西方時尚的模仿,轉而以更具當代性的方式詮釋自身傳統。 新加坡《聯合早報》此前援引北京青山資本報告稱,中國年輕一代消費群體在本國經濟騰飛和數碼化環境中成長起來,有著全球視野與文化自信,會平等看待國貨與海外品牌,為本土品牌發展提供了深層次的心理基礎。 歐睿國際的羅伯茨指出,挖掘自身傳統是本土品牌與全球品牌競爭的關鍵,因為這能更直接地觸動本土消費者,先在國內打下堅實基礎,再藉此勢頭拓展海外業務。 《Vogue》文章稱,中國設計師的崛起,正值亞洲時尚界蓬勃發展。國際時尚人才與國際品牌都越來越多地將目光投向廣闊的亞洲,儘管該地區的時尚產業相對年輕,但已有不少成功品牌先例,比如日本設計師川久保玲創辦的Comme des Garçons。 專家一致認為,亞洲在時尚界的重要性日益提升,但將其視為潛在的“新歐洲”是一種誤導。“上海不需要成為‘新巴黎’,它需要成為‘新上海’。”國際時尚集團OTB大中華區前首席執行官喬瓦尼·普格內蒂說,“對我來說,它已經是某種中心了,但他們(中國設計師)需要找到自己的方式來發展本土時尚文化。” “從經濟角度來看,我認為亞洲的各個時尚之都將在世界舞台持續崛起、不斷發展,並獲得更多認可。”法國品牌公關專家大衛·西維基說,“摒棄西方中心主義的時尚觀念,讓我們受益匪淺。”(來源:香港新聞網) 詳情:
显示更多
AWS 资深专家解决方案架构师 Daniel Abib 在官方博客里算了一笔账:同步调用时,Lambda 的计费时长几乎等于 agent 思考的时长,等待本身在按全量计算计费。 《在无服务器流水线中异步调用 Amazon Bedrock AgentCore agent 的模式》 在无服务器流水线里异步调用 Amazon Bedrock AgentCore agent,可以消除你的 AI agent 处理请求期间的空转计算成本。一个常见的例子是文档校验:在房地产融资的后台办公室里,agent 可以读取房产记录或贷款合同,推理信息是否完整、一致,然后返回一个下游步骤据此行动的结论。Amazon Bedrock AgentCore 提供了一个平台,让你能用任意框架或模型大规模地构建、连接和优化 agent。 这类 agent 带来一个传统流水线步骤没有的特性:它们在回答之前要思考一会儿。思考多久取决于提示词、模型和文档,但很少是即时的,而这个延迟改变了你调用它的方式。最常见的首版实现是用一个计算服务(比如 AWS Lambda 函数)调用 agent 并等待响应。函数等待期间什么都不做,但它仍在运行,每一秒都在计费。 值得看清成本到底落在哪里,因为调用的两侧计费方式不同。Amazon Bedrock AgentCore runtime(Amazon Bedrock AgentCore 的一项能力)采用基于消耗的计费模型,agent 空闲时不收 CPU 费用。例如,在等待大语言模型生成响应、或等待工具或 Model Context Protocol(MCP)调用返回的这段时间里,你只按内存计费,不按 CPU 计费。调用 agent 的那个计算服务没有这种特性。发出同步调用的 Lambda 函数、容器或 Amazon EC2 实例会一直阻塞,在 agent 响应之前始终持有(并支付)完整的计算配额。所以浪费不在 agent 一侧,而在调用方——它挂在一个打开的连接上空转。 这就让调用方的成本跟着 agent 的运行时间走。阻塞在 agent 上的函数,计费时长几乎等于整个处理时间;而启动 agent 后立即返回的函数,只按短暂的派发计费。解法是在等待期间释放调用方的计算资源,等 agent 出了结果再恢复流水线。本文展示三种做到这一点的模式(task-token 回调、直接服务集成、durable function),并与阻塞式反模式对比。 示例流水线 为了让各模式在同等条件下比较,我们把每个模式都跑在同一条流水线上,只更换调用 agent 的那一步。这条流水线是一个刻意简单、虚构的场景(房地产融资文档校验),选它只是为了把编排讲清楚。它不是本文的重点,它代表任何先调用 agent(或其他慢服务)、再对结果采取行动的流程,你可以把自家用例代入。 流水线有五个阶段: 1. Extract:一个 Lambda 函数对文档做 OCR 和文本提取。(提取是模拟的,所以场景不需要真实文档。) 2. Identify:一个 Lambda 函数对文档分类并设置路由标志(shouldOrganize、shouldValidate)。 3. Route:一个 Choice 状态根据这些标志决定流程走向。 4. Organize and Validate:一个 Parallel 状态在组织文档的同时,让 Amazon Bedrock AgentCore agent 在另一个分支里做校验。这个 Validate 分支是各模式之间唯一变化的部分。 5. Result:一个 Lambda 函数处理 agent 的结论,决定下一步动作(批准,或退回修改)。 图示如下:水平流程依次是 Start、Extract、Identify、Route(Choice)、并行的 Organize-and-Validate 阶段、Result、End,Validate 分支被标为可更换,图例列出了它的四种实现方式:阻塞反模式、模式 1(task token)、模式 2(直接集成)、模式 3(durable function)。流水线本身在每种情况下保持不变,只有 Validate 分支被换掉来演示各自的调用模式。 同一个 Amazon Bedrock AgentCore agent 服务全部四种情况。agent 检查每次调用并选择如何响应:如果收到 AWS Step Functions 的 task token,就在完成时唤醒那个执行;如果收到 durable function 的 callback ID,就唤醒那个 durable function;两者都没收到,就直接在响应里返回结论。这意味着你可以更换编排模式,而不必修改或重新部署 agent。 agent 如何不阻塞调用方就把控制权交回来 机制是 agent 的 action group 里的一个"归还控制权"动作。agent 推理结束后,调用一个 Lambda,把结果和 task token 发回 Step Functions。(后面的模式 2 会让 Step Functions 直接与 AgentCore 集成,完全省掉这个 Lambda。) 下面这段代码是这个 Lambda 的核心: The tool the agent calls once it reaches a verdict @tool def conclude_validation(approved: bool, issues: list, summary: str) -> str: verdict = {"approved": approved, "issues": issues, "summary": summary, "source": "agentcore"} # A Step Functions task token was passed: resume that execution if task_token: sfn.send_task_success(taskToken=task_token, output=json.dumps(verdict)) return "Step Functions resumed." # A durable-function callback ID was passed: resume the durable function if callback_id: lambda_client.send_durable_execution_callback_success( CallbackId=callback_id, Result=json.dumps(verdict).encode("utf-8")) return "Durable function resumed." # Neither was passed: this is a synchronous call, return the verdict inline return "Verdict recorded." 入口函数根据同样的信号决定在后台跑还是同步跑: @app.async_task async def validate_document_async(prompt, document, extracted_text): # Background work; conclude_validation fires the right callback when done agent = build_agent() await agent.invoke_async(message(prompt, document, extracted_text)) @app.entrypoint async def handler(event): task_token = event.get("taskToken") # passed by the task-token pattern callback_id = event.get("callbackId") # passed by the durable-function pattern # Asynchronous: start the work and return "accepted" right away if task_token or callback_id: asyncio.create_task(validate_document_async(...)) return {"status": "accepted"} # Synchronous: run now and return the verdict in the response agent = build_agent() await agent.invoke_async(message(...)) return verdict agent 就位之后,本文剩下的部分聚焦于调用它的四种方式。代码和基础设施定义都是示例中的摘录,用来演示每种模式。 调用 agent:四种方式 先讲阻塞式反模式以确立基准成本,再展示避开它的三个模式。 阻塞式反模式 最直接的实现:在同一个 Lambda 函数里调用 agent 并等待答案。它能用,而且实现简单——这正是它如此常见的原因——但函数在 agent 思考的整个期间一直活着。 // The Lambda function blocks here until the agent responds const response = await agentcore.send( new InvokeAgentRuntimeCommand({ agentRuntimeArn: AGENT_RUNTIME_ARN, payload: new TextEncoder().encode(JSON.stringify(payload)), runtimeSessionId: sessionId, }) ); // The function stays alive and billed for the entire time the agent is thinking. 函数的计费时长最终大约等于 agent 的处理时间。后面三个模式消除这段空闲成本,各自做出不同的取舍。特别是模式 2 使用 Step Functions 对 AgentCore Harness (InvokeHarness) 的优化集成,完全去掉 Lambda。 模式 1:task-token 回调 + 派发函数 这个模式在路径里保留一个 Lambda 做自定义逻辑,但去掉空闲成本。Step Functions 用 waitForTaskToken 集成调用这个函数——传入一个 task token 后暂停执行。函数用这个 token 启动 agent,然后在几秒内返回。执行保持暂停,不产生任何计算计费,直到 agent 用这个 token 调用 SendTaskSuccess 恢复它。 // Start the agent, pass the task token, and return without waiting const response = await agentcore.send( new InvokeAgentRuntimeCommand({ agentRuntimeArn: AGENT_RUNTIME_ARN, payload: new TextEncoder().encode(JSON.stringify({ ...payload, taskToken })), runtimeSessionId: sessionId, }) ); // Returning here does not complete the step. Step Functions stays paused until // the agent calls SendTaskSuccess with this task token. return { dispatched: true }; 对应的状态从上下文取出 token,并设置超时和心跳作为安全网——这样沉默的 agent 会让执行干净地失败,而不是无限期停在那里: "ValidateDispatch": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke.waitForTaskToken", "Parameters": { "FunctionName": "${ValidateDispatcherFunctionArn}", "Payload": { "taskToken.$": "$$.Task.Token", "document.$": "$.document", "extractedText.$": "$.extract.extractedText", "executionId.$": "$$.Execution.Id" } }, "TimeoutSeconds": 120, "HeartbeatSeconds": 60, "Next": "AgentCoreValidation" } 成本。 Lambda 函数仍然会跑,但只跑到启动 agent 并返回为止:几秒钟,无论 agent 之后要跑多久。你只为这次短暂派发付费,不为等待付费——因为函数在 agent 干活时已经关掉了。等待由暂停的 Step Functions 执行承担,它不为空闲计算计费。这是与阻塞版本的关键区别:阻塞版本里函数的计费时间跟着 agent 的处理时间走。 模式 2:直接服务集成 当你不需要围绕 agent 调用写自定义代码时,可以去掉派发函数,让 Lambda 完全离开路径。Step Functions 可以通过 AWS SDK 服务集成直接调用 Amazon Bedrock AgentCore,所以 agent 的响应直接流入下一个状态。Validate 分支于是变成单个 Task 状态: "ValidateDirect": { "Type": "Task", "Resource": "arn:aws:states:::aws-sdk:bedrockagentcore:invokeAgentRuntime", "Parameters": { "AgentRuntimeArn": "${AgentRuntimeArn}", "RuntimeSessionId.$": "States.Hash($$.Execution.Id, 'SHA-256')", "Payload.$": "States.JsonToString($.prep.agentInput)" }, "ResultSelector": { "raw.$": "$.Response" }, "TimeoutSeconds": 120, "Next": "ParseVerdict" } 成本。 路径里没有 Lambda,所以没有空闲的 Lambda 计算可付。Step Functions 承担等待,Standard 工作流按状态转换计费而不是按等待时长计费——处理期间的实质成本只有 agent 本身。 模式 3:Lambda durable function 如果你更愿意用代码而不是状态机来表达编排,Lambda durable function 给你同样的成本行为。用 @aws/durable-execution-sdk-js SDK,流水线阶段变成 context.step 调用,并行工作变成 context.parallel,等待 agent 变成 context.waitForCallback。等待期间函数挂起,不计计算费。agent 用 SendDurableExecutionCallbackSuccess 恢复它。 // Suspend the function until the agent calls back const result = await ctx.waitForCallback( "validate-agentcore", async (callbackId) => dispatchAgentCore(callbackId, document, extractedText, executionId), { timeout: { seconds: 120 } } ); 成本。 一个函数承载整条流水线,但挂起等待 agent 期间不按计算计费。你只为挂起之间短暂爆发的那几次执行付费——与 task-token 模式相同的经济性——而不是为等待付费。 测量差异 重点不是某个具体数字。agent 的运行时间随提示词、模型和文档变化。重要的是 task-token 模式里两个值之间的关系:Validate 状态活跃了多久,对比派发函数实际被计费了多久。我们测试中的单次运行让这个关系可见: Step Functions, ValidateDispatch state Returned (TaskSubmitted): 14:08:19 <- the function returned and shut down Resumed (TaskSucceeded): 14:08:34 <- the agent woke the execution State active ........ 19.6s Lambda, dispatcher function (CloudWatch REPORT) Billed duration ..... 4.8s Result: the state was active for 19.6s, but the function was billed for 4.8s. The ~14.8s in between is wait time with no Lambda function running. 在 Step Functions 的事件历史里也能看到同样的事:task-token 模式下,TaskSubmitted 事件(函数返回)与 TaskSucceeded(agent 恢复流程)之间隔着 agent 的处理时间。同步调用没有这样的间隔。 下表总结了每种模式下 Validate 分支(前面图示中高亮的部分)的实现方式: • 编排器:阻塞=Step Functions;模式 1=Step Functions;模式 2=Step Functions;模式 3=Lambda(代码) • 路径中的 Lambda:阻塞=有,存活且计费;模式 1=有,但提前返回;模式 2=无;模式 3=durable function 本身(挂起) • 等待期间的空闲 Lambda 计算:阻塞=为整个等待付费;模式 1=无;模式 2=无;模式 3=无 • agent 调用周围的自定义代码:阻塞=有;模式 1=有;模式 2=有限(状态转换);模式 3=有 • 调用方与 agent 解耦:阻塞=否;模式 1=是;模式 2=否;模式 3=是 • 相对复杂度:阻塞=最低;模式 1=较高(token 和回调的 IAM);模式 2=最低;模式 3=中等(检查点/重放) 读这张表时有一个提醒:总流水线时长不是有用的比较指标,因为它被 agent 自己的推理时间主导——每次运行都不同,而且在所有场景里基本相同。有意义的差异是等待期间你为多少计算付了钱,这由上表和计费时长读数体现。agent 运行时间增长时,派发函数的计费时间保持平稳。上面的数字来自单次运行,把它们当作这个关系的示意而非基准,请测量你自己的负载。 如何选择模式 下表总结了取舍,帮你选择模式: • 调用方成本:阻塞=整个 agent 处理时间;模式 1=几秒(仅派发);模式 2=零(无 Lambda);模式 3=几秒(仅派发) • 集成工作量:阻塞=低;模式 1=中高(IAM、心跳、超时);模式 2=低(单个 Task 状态);模式 3=中等(检查点-重放模型) • 业务逻辑位置:阻塞=在 Lambda(前 + 后);模式 1=在 Lambda(前 + 后);模式 2=只在 Amazon States Language(ASL)(内置函数);模式 3=在 Lambda(顺序代码) • 最适合:阻塞=原型、短 agent;模式 1=自定义前后处理逻辑;模式 2=纯编排、无自定义代码;模式 3=单个函数里的复杂异步工作流 最佳实践 防 agent 永不回答。 给每个 waitForTaskToken 状态设置 TimeoutSeconds,让执行以 States.Timeout 失败,而不是无限期挂起。如果你的 agent 发送心跳,也设置 HeartbeatSeconds 以更快发现死掉的 agent。捕获错误并路由到失败或人工审核路径。 重试时使用稳定的会话 ID。 把 sessionId 设为从执行上下文派生的值(比如 Step Functions 执行名),这样重试会恢复同一个 agent 会话,而不是重新开始。task-token 模式里在派发函数中设置;直接集成模式里在 Task 状态参数中设置。 打开 AWS X-Ray。 在 Step Functions 和 Lambda 配置中启用 Tracing: Active。X-Ray 会精确显示 agent 思考了多久、调用方等待了多久,确认你的模式确实在间隔期间释放了计算。 按速度而不是按 agent 的负载来配派发函数。 派发函数只序列化请求并调用端点。256 MB 内存和 30 秒超时通常就够。重活都在 agent 那边。 成本 这些模式会产生 Lambda 计算、Step Functions 状态转换、durable function 执行存储的费用,以及所有方案共有的 Amazon Bedrock AgentCore runtime 和 Amazon Bedrock 模型推理费用。agent 和模型成本在四种情况下相同。架构只改变编排开销,以及阻塞反模式中浪费的空闲 Lambda 计算。当前价格请查看各服务的定价页。 结论 把 AI agent 放进流水线是简单的部分。让它被经济地调用,才是区分原型与生产设计的地方。阻塞在 agent 上的 Lambda 函数实现简单,却在悄悄烧钱——计费时间里的大部分都在等待。本文展示了三种规避方式:需要在路径里保留 Lambda 时用 task-token 回调;最简单的情况用直接服务集成;偏好用代码表达编排时用 durable function。三者由同一个 Amazon Bedrock AgentCore agent 驱动,它会根据被调用方式调整自己的响应。 完整示例(完整的 agent、状态机定义和 durable function)在 GitHub 的 sample-bedrock-agentcore-async-stepfunctions 仓库。想深入的话,可以看 Amazon Bedrock AgentCore 关于异步任务处理的文档。生产部署请使用 Amazon Bedrock Guardrails,对 agent 的输入输出实施负责任 AI 控制。 原文: #Bedrock# #Serverless# #StepFunctions#
显示更多
브더 2주년 라이브 방송 끝..💓 너무 즐거운 시간이였어요💓 On the 2nd anniversary live broadcast of Brown Dust 2.. 💓 We had a very meaningful time! Thank you 💓! 在紀念Brown Dust 22週年的直播中...💓我們度過了一段非常有意義的時間! 謝謝💓!
显示更多
0
13
1.7K
118
转发到社区
【Pick Yiwu韓國站 :時尚飾品激活“潮流經濟”】如今,產自#義烏# 的時尚飾品在韓國市場愈發受到歡迎,並藉助當地的本土落地服務逐漸實現共定標準、共創品牌。今天,中新社《Pick Yiwu》系列走進韓國首爾,看一件件小飾品如何匯聚為充滿活力的“潮流經濟”。
显示更多