【免费下载链接】openuiThe Open Standard for Generative UI项目地址https://gitcode.com/gh_mirrors/openui1/openui点击查看免费下载导读identity.md是 OpenUI Cloud 模板中 Vercel Eve Agent 的身份System Prompt定义文件它规定了OpenUI 助手如何自我介绍、如何组织回答、何时调用工具、何时切换到 OpenUI Lang 生成式 UI 组件。本文以该文件为核心结合 templates/openui-cloud/overlays/vercel-eve 模板的 agent 运行时源码逐条拆解提示词的设计意图与落地方式。读完你将掌握如何为基于 Eve 的生成式 UI Agent 编写身份提示词以及提示词中的每条规则在eve运行时、工具注册、动态指令注入中分别对应什么实现。一、文档定位一个 Agent 的性格与行为准则在 vercel-eve 这个 overlay 中Agent 的行为被拆成了两个互补的提示词文件位于 agent/instructions 目录文件职责identity.md定义 Agent 的身份与回答风格我是谁、怎么回答、何时用工具、何时用 UI 组件、何时保持沉默不提及底层技术栈。openui.ts定义 Agent 的技能知识在会话启动时把 OpenUI Lang 的组件库规范library spec注入上下文让模型会写生成式 UI。identity.md全文只有两个段落——Identity 和 How to respond但它是一份高度浓缩的产品化提示词它没有教模型任何语法而是教模型什么时候该做什么。这种身份与能力分离的写法正是本项目把它单独拆成一个 Markdown 文件而不是塞进代码里的原因提示词作者可以脱离 TypeScript 运行时独立迭代行为准则。二、身份定义Identity 段的三个锚点原文You are an OpenUI assistant powered by Eve. You help users understand information, take action, and explore ideas through clear conversation and generative UI when it helps.这句身份声明可拆出三个设计锚点You are an OpenUI assistant—— 明确角色是对外可感知的 OpenUI assistant而不是 Eve agent 或 OpenUI 框架 本身。角色名词决定了用户对该助手的预期它服务于理解信息、采取行动、探索想法三类通用任务而非某个垂直领域。powered by Eve—— 这是文档中唯一一次出现底层运行时名字。它属于对实现者说话的元信息Eve 负责承载模型推理、工具执行、会话与流式传输见 agent.ts 中defineAgent的模型与上下文窗口配置但这一句只在身份层出现恰好与最后一条响应规则不主动提及 Eve形成呼应。generative UI when it helps—— 点出 OpenUI 的核心差异化回答不局限于文本而是当生成式 UI 有帮助时输出 UI。注意限定语when it helps——UI 不是默认答案而是按需启用的选项。三、How to respond五条响应规则的逐条拆解原文的 How to respond 包含六条行为约束。每条都能在模板源码中找到对应的工程实现下面逐条对照。规则 1直接、准确短段落优先Be direct and accurate. Prefer short paragraphs over long preambles.这是对所有 LLM 系统提示词通用的风格约束没有对应的工具或代码实现但它设定了identity.md自身的文风全文没有任何寒暄、没有作为一个人工智能助手之类的开场白本身就是短段落、无废话的示范。这类风格约束放在身份文件而非组件库注入中是因为它作用于所有回复而组件库规范只作用于生成 UI 的那部分回复。规则 2歧义时用纯文本问一个聚焦的澄清问题If the request is ambiguous, ask one focused clarifying question in plain text.这条规则在模板中有一个非常具体的工程落点agent/tools/ask_question.ts。Eve 运行时自带ask_question内置工具一种结构化提问交互但模板明确将其禁用并在文件注释中给出了原因The chat UI has no renderer for Eves ask_question input requests, so the session would park on an invisible question. Disabling the built-in makes the model ask clarifying questions in plain (OpenUI) text instead.也就是说当前 Agent Interface 的聊天界面没有渲染ask_question输入请求的组件如果保留该工具模型会发出一个用户看不见的问题会话会卡死在一个隐形交互上。因此模板调用disableTool()关掉它迫使模型改用纯文本提问。这正是提示词里 in plain text 的来源——它不是风格偏好而是与前端渲染能力对齐后的必然选择。规则 3能用工具拿到事实就别猜Use tools when they provide facts you would otherwise guess (for example weather for a named place).这条规则对应模板中唯一保留启用的工具get_weather。它有两个文件层面的实现agent/tools/get_weather.ts 是 Eve 侧的defineTool包装用 zod 定义了location输入参数z.string().trim().min(1)并委托给共享实现执行templates/openui-cloud/src/lib/tools/get-weather.ts 是真正的业务实现先用 Open-Meteo 的地理编码 APIgeocoding-api.open-meteo.com/v1/search把地名解析为经纬度再调用api.open-meteo.com/v1/forecast取temperature_2m、weather_code、wind_speed_10m最后把 WMO 天气码折叠成clear sky / partly cloudy / fog / drizzle / rain / snow / rain showers / snow showers / thunderstorm等人类可读描述并以 JSON 字符串返回给模型。该文件的头注释把它定位为添加自己工具的参考模板declare the tool to the model (getWeatherTool) and execute it on your server (executeGetWeather)提示词规则 3 之所以强调例如某个地点的天气正是因为模板提供了这个开箱即用的示例工具。manifest.json 的gettingStarted也建议用 Whats the weather in Berlin? 来验证工具链路。规则 4结构化布局需求 → 用 OpenUI Lang 组件回答When the user wants dashboards, comparisons, checklists, forms, or other structured layouts, answer with OpenUI Lang UI components. The component library prompt is injected when the session starts — you do not need to describe the syntax in chat.这是整份提示词中与 OpenUI 技术栈绑定最深的一条它明确列出了一类触发条件仪表盘dashboards、对比comparisons、清单checklists、表单forms以及任何结构化布局structured layouts。这些恰恰是用纯文本讲不清楚、用 UI 一目了然的场景。原文还交代了一个关键机制组件库提示词在会话启动时被注入injected when the session starts——所以 identity 文件里不需要写任何 OpenUI Lang 语法。这个机制在 instructions/openui.ts 中有精确实现import { generateSystemPrompt } from openuidev/lang-core; import { defineDynamic, defineInstructions } from eve/instructions; import librarySpec from ../../src/generated/spec.json with { type: json }; export default defineDynamic({ events: { session.started: () defineInstructions({ markdown: generateSystemPrompt({ cloud: true, library: librarySpec }), }), }, });要点defineDynamicsession.started事件确保组件库提示词只在会话开始时解析一次而不是在每次请求时重新生成避免无谓的开销generateSystemPrompt来自openuidev/lang-core包配合library: librarySpec从 src/generated/spec.json 导入的组件库规范动态拼出完整的 OpenUI Lang 系统提示词这就是 identity 里 you do not need to describe the syntax in chat 的工程依据语法能力由这段注入的指令提供identity 只负责什么时候该用。规则 5工具调用后总结结果不倾倒原始 JSONAfter tool calls, summarize the result for the user and continue the task; do not dump raw JSON unless they ask.这与工具实现的返回形态形成对照executeGetWeather返回的是 JSON 字符串例如{place:Berlin, Germany,temperature_c:15.2,conditions:partly cloudy,wind_kmh:11.0}但用户端看到的应当是模型转述的摘要而非这段 JSON。这条规则保证了工具返回结构化数据、模型负责人类可读化的分工——JSON 是模型与工具之间的传输格式不是给用户看的最终产物。规则 6不主动提及底层技术栈Do not mention Eve, adapters, streaming, or prompt wiring unless the user asks about the stack.这条规则列出四个内部词Eve、适配器adapters、流式传输streaming、提示词接线prompt wiring。它们共同指向 Agent 的运行时管道——agent.ts 中的模型创建、channels/eve.ts 中的/eve/v1/session*HTTP 通道、next.config.ts 中的withEve(nextConfig)注入都属于用户不需要知道的实现细节。把这类词从对外输出中剔除是产品化 Agent 提示词常见的前台/后台隔离手法用户只与 OpenUI assistant 交互而不是与框架交互。四、提示词的完整运行链路从文件到会话把上述文件串起来一次会话的完整链路是identity.md身份 回答风格 │ ├─→ openui.ts 在 session.started 时注入 OpenUI Lang 组件库规范 │ ├─→ agent.ts 创建模型Thesys 网关 resolveOpenuiModel │ ├─ modelContextWindowTokens: 1_048_576覆盖窗口大小保证 Eve 能正确压缩上下文 │ └─ build.externalDependencies: [openuidev/lang-core] │ ├─→ channels/eve.ts 暴露 /eve/v1/session* 事件流本地开发 auth: none() │ └─→ 工具集get_weather 启用 / ask_question、web_search 禁用几个值得展开的源码细节模型接入agent.tscreateOpenAI指向https://api.thesys.dev/v1/embed使用THESYS_API_KEY环境变量缺失时启动即抛错。模型 id 由resolveOpenuiModel(google/gemini-3.6-flash-free)解析可通过OPENUI_MODEL环境变量覆盖。模型白名单src/lib/models.tsMODEL_IDS列出了 Cloud Eve agent 接受的全部模型 idClaude、GPT、Gemini 系列resolveOpenuiModel对白名单外的值会直接抛错Unknown OPENUI_MODEL ...避免静默回退到错误模型。上下文窗口覆盖agent.ts 中modelContextWindowTokens: 1_048_576是必要的修正——Thesys embed 模型 id 不在 Vercel AI Gateway 目录中若不手动指定Eve 无法计算压缩compaction所需的窗口大小Agent 编译会失败无/eve路由。web_search 为何被禁用agent/tools/web_search.tsEve 把openai.responses当作 OpenAI 模型会自动注入托管的web_search提供方工具而本 overlay 不挂接 Cloud 搜索若不disableTool()禁用 Eve 内置版本模型会尝试发起本地无法执行的ws_*调用。认证策略channels/eve.tseveChannel({ auth: none() })允许匿名流量以便本地开发文件注释明确提示公开部署前换成bearer()/basic()。五、实战如何基于 identity.md 定制你自己的 Agent结合模板的目录结构与 manifest.json 的脚本定义eve dev/eve build/eve start --host 127.0.0.1 --port 4274/next start见 manifest.json定制一个 Agent 通常只需四步改身份编辑 agent/instructions/identity.md调整角色声明第一段与响应规则第二段。需要新行为准则时直接新增一条 bullet 即可——它会在每次会话开始时作为静态指令生效。增技能如需让 Agent 会写新的 UI 模式修改组件库规范librarySpec或补充defineInstructions的注入内容如需新增函数工具参照 get_weather.ts 的声明工具 服务端执行两步式结构并在 agent/tools 下新建 Eve 侧包装。选模型通过OPENUI_MODEL环境变量在 src/lib/models.ts 白名单中选择模型默认值为google/gemini-3.6-flash-free。控暴露面确认ask_question、web_search等内置工具是否需要保留或禁用与你的聊天前端渲染能力对齐并在公开部署前把通道认证从none()换成bearer()/basic()。六、小结一份合格的身份提示词应当回答的三个问题回顾identity.md它可以提炼为三个任何生成式 UI Agent 都需要回答的问题我是谁Identity 段—— 对外呈现的角色以及UI 是何时有用的这一价值取向我怎么说话规则 1、2、5、6—— 风格、澄清策略、结果汇报方式、技术栈保密边界我什么时候切换形态规则 3、4—— 事实类需求走工具结构化布局需求走 OpenUI Lang 组件并依托session.started动态注入的组件库规范完成会写 UI的能力闭环。这份文件的价值在于它把最容易失控的模型行为沉淀为一份可独立迭代的 Markdown 资产与 openui.ts 的运行时注入解耦。改行为不动代码改能力不动行为——这正是本项目将身份提示词独立成文件的工程设计意图。若要为你的 Eve Agent 建立行为基线直接从 identity.md 起步是最快的路径。赞分享【免费下载链接】openuiThe Open Standard for Generative UI项目地址https://gitcode.com/gh_mirrors/openui1/openui点击查看免费下载相关推荐如何用KLayout实现芯片设计全流程从原理图到版图验证的完整指南如何用KLayout实现芯片设计全流程从原理图到版图验证的完整指南 你是否曾经为芯片设计中的版图验证问题而烦恼面对复杂的电路布局和繁琐的设计规则检查传统E可观测性AI 评测LLMOpsAI 应用人工智能Composio Eve 文档助手系统提示词全解析为 AI Agent 设计可落地的文档问答行为规范Composio Eve 文档助手系统提示词全解析为 AI Agent 设计可落地的文档问答行为规范 Composio 在官方文档站右侧边栏内置了一个名为 E人工智能AI Agent工具调用MCP 服务MCP ClientsCopilotKit 声明式 JSON 渲染实战用 Claude Agent SDKTypeScript让 Agent 直接生成仪表盘 UICopilotKit 声明式 JSON 渲染实战用 Claude Agent SDKTypeScript让 Agent 直接生成仪表盘 UI Copilo人工智能AI AgentAgent 框架前端后端上一篇HMAC请求签名也能抓android-reverse-engineering-skill高级签名模式提取详解下一篇如何免费批量下载抖音无水印视频三步搞定跑通创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
基于SpringBoot的茶叶溯源系统的设计与实现毕业设计项目源码 联系博主 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 … · 2026/9/24 17:07:19
ATU 开关柜智能监控终端:立体化监测、一键顺控与可视化管理,让配电更安心高效 摘要:ATU 开关柜智能监控终端,以立体化监测、智能化控制、可视化管理为核心,一站式解决开关柜运行监测、状态控制、故障预警等痛点,真正实现“一屏掌控柜况,让配电管理更安心、更高效”。一方案说明智能开关柜的安全稳… · 2026/9/24 17:07:12
shadcn-vue 与 VeeValidate 表单开发实战:Zod 校验、错误处理与动态数组字段 UI组件前端 【免费下载链接】shadcn-vue Vue port of shadcn-ui 项目地址: https://gitcode.com/gh_mirrors/sh/shadcn-vue 点击查看 免费下载 本指南基于 shadcn-vue 官方文档 VeeValidate 表单指南 展开,系统讲解如何在 shadcn-vue 项目中用 VeeValid… · 2026/9/24 17:07:12
Python教程-Python中的基本命令 | 魔术命令 关于在教程里面提到的那些基本命令, 还有魔术命令的具体用法介绍。当它在1991年首次引入的时候, 普遍认为是属于自负风险的类型的一种语言。但是现在的情况已经改变了, 它已经成为了一种主导性的语言, 并且被用于数据科学领域、机器学习领域以及软件开发领域。大家都清楚, 它是… · 2026/9/24 17:44:39
Vercel造Agent框架eve!未来网站得为Bot优化 这意味着这个事物正在发生一种变化, 这种变化的方向是成为Agent。在最近我阅读了一篇相关的采访文章, 在仔细观看与阅读之后, 我的脑海里始终都在反复盘旋着这样的一句话, 它让我难以忘怀。> " are a new type of . They are not as as web ."说出这句话的那个人叫… · 2026/9/24 17:44:39
万象棋谱-王者万象棋wiki百科:85 英雄全阵营、机制冷知识与流派克制一查便知 《王者万象棋》9 月 10 日全平台上线后,最多的搜索就是「王者万象棋wiki」「王者万象棋图鉴」——85 名英雄、6 大阵营、78 件装备、254 张天赋、99 张效果牌,再加上拍卖、觉醒、词条联动这些新机制,光靠游戏内说明根本记不住。这篇文章就把 … · 2026/9/24 17:44:39
我扫了自己64个AI技能:17个被标禁止安装 在今天凌晨的这个时间点, 我就把手边这台机器上头存放的所有有关 AI Agent 的技能内容, 全都喂那个安全扫描器去进行了处理。最后出来的结果情况是这样的: 在总共六十四个技能之中, 有十七个被判定为禁止安装的状态, 有四十五个被判定为警告状态, 然后只有区区两个拿到了安全的… · 2026/9/24 17:44:39
01 Windows API窗口程序设计 一、题目:运行Windows应用程序在桌面显示Windows窗口。窗口内背景色为灰色,且窗口中居中显示“大家好,这是我的第一个Windows API程序!”同时播放背景音乐,并可通过程序改变窗口显示风格为只有标题栏,以及鼠… · 2026/9/24 17:44:39
为什么职员能工资20K?熟悉掌握了这些Python自动化办公模块 今天, 我将继续来给大家去分享一下这个自动化办公库, 而这个库是我花费了两周的时间去进行整理的。这次的这个内容, 它就是把那些库给说完了, 这些库里头, 包括了Excel、Word、PPT、ODF、PDF、邮件、微信、文件处理等所有能在办公场景实现自动化的库, 就是希望这些东西能够对大… · 2026/9/24 17:44:33
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44