基于康奈尔大学与 Google DeepMind 合作研究概念构建的演示应用,能够监测写作停顿并通过 Box AI API 提供可配置的、基于文档的写作建议。
AI translation, not an official translation. Refer to the original for technical details.
Adapted from @Box# 从研究论文到版本化写作伙伴:Box AI API 实践 作者:@olga_stefaniuk 如果一个写作助手能在你最需要的时刻主动提供帮助——无需等待提示,同时提升你的创作流畅度——那会怎样? 一篇近期发表的论文《为写作设计主动式思维伙伴》(Designing Proactive Thought Partners for Writing)通过可配置的思维伙伴探索了主动式 AI 写作支持这一理念。该研究由康奈尔大学与 Google DeepMind 合作开展。论文超越了"AI 能为我生成文本吗?"这一惯常问题,转而探讨 AI 如何在关键时刻提供更高层次的支持,例如提供全新视角、建议一个具体示例,或提示核查某个重要论断。这一概念通过所引研究论文中的图表加以可视化呈现:(https://arxiv.org/html/2609.01588v1) "当事件触发器(例如停顿、句子结束或文本选中)被激活时,系统会收集有关写作者会话目标、当前文本及写作行为(包括按键日志)的上下文信息。随后,系统评估所有已启用伙伴的用户自定义上下文标准,并激活其中最符合当前情境的一个或多个伙伴。每个被激活的伙伴都会生成一条建议,其中既包含对推断出的用户意图的确认,也包含一条基于其角色定位、以问题形式呈现的建议。" 这一理念提供了一种简单的方式来对抗认知上的"投降"。写作中较长的停顿,本身就是寻求引导的自然时机。AI 无需重写草稿,只需提出一个有针对性的问题,让写作者自行决定如何推进。在这个演示项目中,我将这一理念转化为一个小型 Box 应用程序。它从 Box 加载一份 Markdown 文档,监测写作停顿,将文档连同可配置的伙伴角色发送给 Box AI,并在草稿旁边显示一条基于文档内容的建议。整个实现刻意保持精简:一个 Node.js 服务器、一个浏览器页面,以及几次 Box API 调用。 ## 演示应用包含哪些内容 该应用包含一个极简风格的网页应用,用户可以从下拉菜单中选择写作伙伴角色(如"证据伙伴"、"反驳伙伴"或"清晰度伙伴")、触发频率,以及涵盖 Box AI API 所支持模型的大语言模型。 "证据伙伴"的建议示例可以是:"哪项具体指标或来源支撑了这一论断?"。"反驳伙伴"可以挑战一个假设,而"清晰度伙伴"则可在某段落变得抽象时要求提供具体示例。应用程序将源文件作为 Box AI 条目发送,并将当前草稿作为提示的一部分一并发送。Box AI 通过 `mode: "single_item_qa"` 支持单文件问答。请求中还可以包含引用说明以及可选的 AI 模型覆盖参数,详情请参阅 Box AI API"提问"指南。整个流程刻意保持轻量化:一旦写作者停顿,浏览器便按照所选时间间隔触发一次请求。随后,Node.js 服务器构建一个结合了源文件与当前草稿的角色专属提示。当 Box AI 返回建议时,该建议会显示在文本区域旁边。写作者可以选择忽略该提示,也可以将其融入草稿之中。(https://developer.box.com/guides/box-ai/ai-tutorials/ask-questions) 一旦作者准备就绪,内容既可以保存为新的 Markdown 文件(保持原始 Box 文件不变),也可以保存为原始文件的新版本,以便随时间追踪变更。第二种选项的实现使用了 Box 的上传文件版本端点。(https://developer.box.com/reference/post-files-id-content) ## 运行示例应用 要运行此示例应用,需要满足以下几个项目前提条件: - 机器上已安装 Node.js 18 或更高版本, - Box 免费开发者账户, - 具有 Box AI API 访问权限的 Box 应用开发者令牌(在免费开发者账户的第一个默认 Box 应用中,ai.readwrite 权限范围默认已启用), - 应用程序可读取的 Box 中该 Markdown 文档的文件 ID。请参阅如何在 Box 中找到所需值。 Box 开发者令牌有效期较短,仅供开发和测试使用;对于生产应用,请使用适当的 OAuth 或服务器端认证流程。请参阅 Box AI 前提条件、开发者令牌指南和 Box 权限范围参考。(https://developer.box.com/guides/box-ai/ai-tutorials/prerequisites) (https://developer.box.com/guides/authentication/tokens/developer-tokens) (https://developer.box.com/guides/api-calls/permissions-and-errors/scopes) 接下来,克隆演示项目并安装依赖项。(https://github.com/box-community/box-proactive-document-partner) 创建 .env 文件并配置环境变量。 启动服务器并打开本地主机。 ## Box AI 请求是什么样的 在底层,服务器在指定模型时,会调用 Box AI Ask 端点,并传入源文件 ID、当前草稿以及所选模型: 模型名称来自 Box 支持的各供应商 AI 模型。你也可以通过可视化界面为此 API 请求创建 JSON 配置。(https://developer.box.com/guides/box-ai/ai-models) (https://developer.box.com/agent-configurator) 此 MVP 的提示词包含 UI 中的变量,以提供定制化指导: ## 保护作者的主导权 写作是每个角色和领域都具备的通用技能。它为思维提供结构,厘清想法,并促进沟通交流。正因如此,主动式、基于提问的辅助方式远比被动的"提示-生成"工作流更为自然。通过将上下文基础与非侵入式提示相结合,开发者可以构建出在保护作者主导权的同时切实提升写作质量的工具。此 MVP 为后续扩展留有余地,例如:将开发者令牌替换为 OAuth 2.0、集成完整的富文本 Markdown 编辑器,以及允许作者自定义协作角色和时机规则。Box 负责管理文件版本控制,Box AI 提供推理层,而作者的创作流程得到增强而非被取代。