让界面成为 Agent 的一种语言:我做了个 DeepSeek Harness GenUI 插件 #2114
pengyue-polaron
started this conversation in
Show Your Plugins!
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
人和 Agent 之间,不该只有聊天框。
现在大多数 Agent 的工作流还是:用户说一段话,Agent 再回一段话。多数时候这没问题,但有两类任务会变得很别扭。
一类是文字很难讲清的东西。比如一个系统里的调用路径、光合作用中几个变量的关系,或者银河系里的尺度。与其读几段解释,不如直接拖动、点击,看结果怎么变。
另一类是用户很难用文字回答的东西。比如从一周日程里挑三个时间段、组合一组复杂参数,或者在多个方案之间反复比较。让用户把每个条件重新打一遍,既慢,也容易丢信息。
所以我做了 DeepSeek Harness GenUI。
它不是“输入一句话,生成一个网站”的 App Builder。它更像是 Agent 任务里临时长出来的一层界面:需要时出现,不需要单独部署,也不用把工作切到另一个 App 里。
我想打通的是这条链路:
语言 → 界面 → 操作 → 状态 → 下一轮对话或工具行动
Agent 可以用界面表达;用户可以直接在界面里回应;页面明确保存的选择、输入、草稿和进度会回到当前任务,供 Agent 后续轮次读取。
关键不只是“生成了一个页面”。如果页面声明了某个 Harness/MCP 工具,它还可以在用户对当前任务授权后调用这个工具。没有声明的调用会被拒绝,MCP 凭据也不会进入生成代码。页面直连只支持提前声明、无需凭据的公开 HTTPS。
也就是说,这块界面可以同时是 Agent 的表达、用户的结构化回应,以及经授权后连接真实工具的入口。
比如安排日程时,Agent 可以先把候选时间做成一个可选界面。用户保存三个时段后,下一轮直接说“把我刚才选的三个建好”,Agent 就能读取这些选择;真正调用日历工具时仍会单独申请授权。
解释概念时,则可以把变量和关系做成能操作的模型:
在 CLI 里也能用。明确要求生成 GenUI 后,Agent 会返回一个 localhost 页面;页面中保存过的代码路径或参数,同样可以在下一轮接着问。
普通问答、改写、摘要和简单列表仍然只返回文字。只有当点击、拖动、比较或图形化表达确实更合适,或者用户明确要求时,才生成界面。
目前支持 Inline、Canvas、全屏、CLI localhost、任务级状态回读、经授权调用已声明工具,以及导入和导出
DESIGN.md。生成代码在沙箱中运行。项目地址:https://github.com/pengyue-polaron/deepseek-harness-genui
npm:https://www.npmjs.com/package/dsh-plugin-genui
当前版本是
v0.12.2,MIT License,非官方插件,由我个人维护。我现在最想收集的是真实使用场景:你有没有遇到过那种文字来回说很久,但如果 Agent 当场给你一个能点、能拖、还能继续用的界面,事情会简单很多的任务?
All reactions