近期,微软的Autogen和CrewAI等人工智能代理工具引发热烈讨论。
它们能否应用于技术文档开发工作流中,胜任创建软件用户文档过程中的部分自动化工作?
图片来源:Microsoft
什么是人工智能代理工具?
人工智能代理系统背后的核心理念在于,你可以创建一个专业软件代理网,每个代理都有各自的技能与目标,并共同协作处理复杂任务。据称,这些工具可以自动执行并简化复杂的任务。
拿一个股票分析工具举例,它由研究分析师代理、金融分析师代理和投资顾问代理组成,他们分工协作,完成股票的信息收集、财务状况的分析,并就其是否适合投资提出建议。这些人工智能代理可以相互沟通、共享信息、协调工作,提供全面评估。
在技术文档这一领域中则可能涉及文档创建、确保准确性和信息维护等工作。
定义人工智能代理的角色
在人工智能代理系统中,你需要定义代理角色。工作流中的每个代理应该有一个特定的角色,对应创建技术文档所需的各项专业技能。
代理角色可能包括:
内容收集代理
该代理收集文档所需的所有相关信息和内容。例如,它可能会搜索代码库、设计文档、工程规范、技术规格、软件开发团队的更新信息、存储库、数据库和其他相关来源。
它还负责使文档与最新产品版本保持一致。
信息设计代理
该代理将内容收集代理收集的原始内容整理成逻辑清晰、结构严谨的文档大纲。这可能涉及识别关键主题、子主题、依赖关系等任务。
技术撰写代理
该代理根据结构化大纲起草内容。它从内容收集代理那里获取信息,并将其转化为用户指南、发布说明和帮助文章。
编辑审查代理
该代理确保内容的准确性、清晰度和质量。
它负责审查草稿,执行风格指南并纠正语法错误。
它可以向技术撰写代理提供反馈和修改意见。
内容收集代理
该代理收集文档所需的所有相关信息和内容。例如,它可能会搜索代码库、设计文档、工程规范、技术规格、软件开发团队的更新信息、存储库、数据库和其他相关来源。
它还负责使文档与最新产品版本保持一致。
集成测试代理
该代理负责测试文档中的链接、代码片段和命令,以确保它们能按描述运行,模拟文档测试工程师的角色。
格式化代理
该代理负责文档的视觉设计和布局,确保其符合品牌准则、易于阅读和定位。
发布代理
该代理将最终内容和元数据进行打包,并将文档发布到适当的渠道(如网络、PDF等)。
设计工作流
在工作流中,不同的代理将相互沟通协调,借鉴彼此的专业技能和知识,不断改进最终产品。工作流将涉及多个阶段的代理交互。
马蒂亚斯·桑德(Mattias Sander)在Write the Docs论坛中建议,在创建工作流时,需要将每个任务分解为尽可能小的步骤,并在设计流程时让每个步骤都尽可能独立于其他步骤。从根本上说,你需要为流程中的每一个小步骤创建一个代理。他称,这种方法可以降低系统耗尽内存上下文的可能性,还可以降低词元(token)成本(词元是聊天机器人模型用于计算文本长度和收费的基本单位)。
我们请 ChatGPT 和 Claude 就工作流程提出建议,得到的结果如下:
数据收集:内容收集代理搜索相关来源,并汇总有关软件更新或新功能的所有必要信息。
信息设计:信息设计代理获取原始内容,并将其结构化为文档集的大纲。
起草:将收集的数据交给技术撰写代理,起草文档。
审查:编辑审查代理对起草的文档进行校对和质量保证,向技术撰写代理提供反馈/编辑意见。
重新起草:技术撰写代理根据编辑审查代理的意见进行修改。
重新审查:修改后的文档交由编辑审查代理进行校对、质量保证和审批。
集成测试:同时,集成测试代理检查文档中的所有技术元素,确保其正确性和功能性。
格式化:格式化代理根据设计指南编排最终内容。
最终审批和发布:在修订和测试后,文档将进行最终审批。发布代理打包并发布完成的文档。
进行持续改进
这些代理背后的机器学习模型可以不断地从嵌入工作流程的反馈回路中进行学习。
比如,用户反馈和使用分析可以让内容收集代理了解文档中哪些部分被访问地最频繁、哪些部分会引起混淆,从而进行有针对性的更新。
潜在优势
在技术文档工作流程中实施人工智能代理系统可以大大减少人工操作,提高文档准确性,并使文档与软件变更保持一致,为最终用户提供流畅体验。
该方法的主要优势包括:
可扩展性: 代理可以并行处理文档的不同部分,提高工作效率。
一致性:代理将遵守确定的指南和最佳实践,增强文档一致性。
高效率:将许多重复性的人工任务自动化,大大简化文档工作流。
持续改进: 随着时间的推移,代理可以学习和完善流程,更好地履行职责。
局限性和潜在缺陷
然而,也存在局限性。
1、定义正确的代理和工作流
我们在前文概述的工作流存在一些缺陷:
没有一个从技术角度检查信息是否准确的代理和工作流。
这可能需要人工完成。
对于人类来说,尽早发现错误很重要,因为他们可以尽早地花更少的时间解决问题。对于人工智能系统来说,什么时候进行准确性检查可能不那么重要,因为浪费的时间可能可以忽略不计。
不能加入可变文本、现有文本片段或条件文本。
只有在文档级别才可以加入元数据。
2、开发所需的时间和成本
运用这样的工具需要大量的前期投资,用于培训、集成各种人工智能代理。鉴于技术写作的复杂性,你最终创建的可能会是一个帮助创作工具(Help Authoring tool)。
3、编程技能的需求
大多数人工智能代理的开发工具需要通过借助Python来创建系统。实际上,你可以通过编辑已有模板来满足自身需求,但这确实会给非程序员带来一些阻碍。
4、与现有系统的集成
人工智能代理需要与软件团队使用的现有工具和平台进行集成,例如用于开发更新的 GitHub、用于跟踪问题的 Jira 以及用于托管文档的内容管理系统。
5、内存上下文的限制
Mattias Sander 曾发表评论称:“我发现我很快就用完了语元,而此时我还没有想出如何更好地组织提示,让代理按照我的风格指南来撰写文本。”
6、透明度
人工智能代理的运作和决策需要透明,这在出现错误时尤为重要。
替代方案
另一种可能的选择是继续使用内置人工智能工具的编写工具(如 Flare/Madbot、DocsHound、Heretto 等)。也许你会丢失不同代理间相互沟通和协调任务的这一功能。但是,你可能会获得人工智能90%的好处,而且不需要花费时间和成本去开发一个人工智能代理系统。
还有一种方法是使用 Zapier Central 这样的工具,它可以创建一个能分别在一系列流行应用程序工作的人工智能机器人链。
这在一定程度上取决于技术写作过程是否足够一致和可预测,以便人工智能代理能够管理该过程。或者说,它是否需要人工来处理实际文档工作流中的所有棘手问题。
结语
多种人工智能代理可能在提高技术文档团队的生产力、质量和一致性方面带来好处。不过,目前还存在一些明显的缺点和局限性。你还需要一个相关专业人士为代理提供指导。
技术文档工程师整合流程各方面的能力、协助人工智能系统专注于正确事情的能力,仍然是必要且密切相关的。实际上,这可能会导致人们继续使用带有嵌入式人工智能功能的帮助创作工具。