简介:本教程帮助开发者理解并落地Agent时代的界面设计范式:哪些任务交给Agent、哪些结果保留给人。你将学会任务接续设计、上下文保持、人机分工边界划分,并掌握从需求拆解到结果验证的完整实施流程。
本教程要帮助读者完成的核心任务是:在Agent(智能体)参与业务流程的前提下,重新设计用户与软件之间的交互方式。具体而言,你需要完成三件事:
适合阅读本文的读者包括:负责客户端或前端架构的开发者、负责Agent编排与任务调度的后端开发者、技术负责人,以及正在规划智能化功能落地的企业技术团队。
前置知识要求:了解基本的客户端与服务端交互模型,理解任务队列、会话状态、事件回调等通用概念;对Agent的基本工作方式(接收目标、规划步骤、调用能力、返回结果)有初步认知即可,无需掌握特定平台细节。
本教程讨论的交互范式适用于以下几类典型场景:
场景一:跨模块任务接续。 用户在搜索框中发起一个目标,Agent在后台继续推进,随后需要在邮件、文档、日程等不同功能之间切换完成任务。用户不希望重新描述一遍需求。
场景二:长时任务后台执行。 某些任务耗时较长(如整理资料、批量生成草稿),Agent在后台持续工作,用户可以先去做别的事,完成后收到通知再回到屏幕前检查。
场景三:结果需人工确认。 Agent完成内容生成或数据整理后,结果必须由人查看、修改、批准,才能进入下一步。此时屏幕仍然是不可替代的确认界面。
场景四:人机混合流程。 一个完整业务由多个步骤组成,其中一部分适合自动化,一部分必须人工介入,需要明确分工边界。
在开始设计之前,请先完成以下准备:
为什么要这么做:把任务简单分成“自动化”和“人工”是不够的。真正需要区分的是“谁执行”和“谁确认”。很多任务可以由Agent执行,但结果必须由人确认。如果不拆开这两个维度,就容易出现“Agent做完了但用户不知道”“用户想检查却找不到入口”的问题。
操作方式:为每个步骤打两个标签。
如果一个步骤的执行者是Agent、确认者是人,那么它就属于“后台执行 + 前台确认”的类型,需要在设计时预留结果展示界面。
为什么要这么做:原始观点强调“希望Agent记得用户的上下文,在后台持续工作,让人不必反复寻找入口”。反复寻找入口的本质,是上下文在模块之间丢失了。要让任务跨模块接续,必须有统一的上下文存储与传递机制。
操作方式:
示意性伪代码:
task = create_task(goal, user_context)context_store.save(task.id, {goal: task.goal,steps_done: [],artifacts: [],user_preferences: user_context.preferences})# 任意模块接续时def resume_task(task_id, module):ctx = context_store.load(task_id)module.bind(ctx)return module.continue_from(ctx.steps_done)
注意点:上下文存储要设置合理的有效期和清理策略,避免长期占用资源;涉及敏感信息时,需要做脱敏或加密处理。
为什么要这么做:同一Agent要在不同功能模块之间接续任务,模块之间必须有统一的“交接语言”。否则每个模块各写一套逻辑,维护成本会迅速上升。
操作方式:定义一组通用的任务状态和事件。
通用流程示意:
1. 模块收到 task_id2. 查询任务状态3. 若状态为“进行中”且当前步骤属于本模块 -> 执行4. 若状态为“等待人工确认” -> 渲染确认界面5. 执行完成后更新状态并写回上下文6. 若还有后续步骤 -> 触发下一模块或通知用户
注意点:状态更新要保证一致性,避免两个模块同时修改同一任务导致冲突。可以采用乐观锁或队列串行化处理。
为什么要这么做:原始观点指出,“人要看视频、检查AI交出的内容时,屏幕仍然有用”。这意味着界面设计不能一味追求“无界面”,而要把屏幕留给真正需要人关注的部分。
操作方式:把界面元素分成两类。
后台执行区(屏幕可不常驻):
屏幕保留区(必须清晰呈现):
设计原则:后台执行区追求“静默可靠”,屏幕保留区追求“清晰可控”。两者之间通过通知或状态提示衔接,而不是让用户一直盯着进度条。
为什么要这么做:Agent在后台完成任务后,如果没有明确的结果回传路径,用户就不知道任务是否完成、结果在哪里。确认闭环是人机分工能否真正落地的关键。
操作方式:
示意性配置说明:
notification:trigger: task_status == "waiting_for_human"channel: [in_app, email]payload:task_id: <id>summary: <agent生成的结果摘要>action_url: <对应确认界面入口>
注意点:通知内容应包含足够的上下文摘要,让用户不必打开界面就能判断是否需要立即处理;同时要避免过度通知造成干扰。
为什么要这么做:Agent在后台持续工作,一旦出现错误,用户可能无法立即察觉。没有可观测性和回滚能力,问题会积累到确认环节才暴露,修复成本很高。
操作方式:
完成上述配置后,可以通过以下方式验证方案是否有效:
问题1:任务在模块之间切换后上下文丢失。
排查方向:检查Task ID是否在所有模块间正确传递;检查上下文存储的读写权限和有效期设置;确认模块是否从统一存储读取,而不是各自缓存。
问题2:用户收到通知但打开界面看不到结果。
排查方向:确认结果是否已写入上下文存储;检查界面加载时是否使用了正确的Task ID;检查状态是否已从“进行中”更新为“等待人工确认”。
问题3:Agent在后台重复执行同一步骤。
排查方向:检查步骤完成状态是否及时写回;检查任务恢复逻辑是否根据已完成步骤做了跳过判断;检查是否存在并发执行同一任务的情况。
问题4:高风险操作被Agent自动执行。
排查方向:检查操作分级策略是否落地;确认高风险操作是否强制进入人工确认状态;检查是否存在绕过确认流程的调用路径。
本教程围绕Agent时代的界面设计,完成了从任务拆分、上下文保持、任务接续协议、人机分工边界,到结果回传、可观测与回滚的完整实施路径。核心结论是:Agent负责在后台替人推进任务,但屏幕仍然要留给人去观看内容、检查结果、做出确认。开发者需要重新决定哪些步骤交给Agent、哪些结果摆到人面前,而不是简单地讨论“所有界面是否会消失”。后续可以继续关注的方向包括:任务接续协议的标准化、人机确认交互的效率优化,以及多任务并行时的上下文隔离策略。