我用Trae做了个AstrBot的AI角色扮演插件

发表于 2025-07-30 22:16 2526 字 13 min read

Spring AI学习笔记(四)工具调用和MCPSpring AI学习笔记(三)RAG从文档入库到回答Spring AI学习笔记(二)ChatClient从怎么调到怎么封装Spring AI学习笔记(一)它到底解决什么问题java新版本-java25学习笔记(四)用JFR和GC日志做一次体检java新版本-java25学习笔记(三)虚拟线程要和资源边界一起看java新版本-java25学习笔记(二)运行时基线先统一java新版本-java25学习笔记(一)LTS版本对比和学习路线主流AI Agent能力对比与工程选型我用Kiro做了个自己的工具站盘一盘虚拟线程我用Trae做了个AstrBot的AI角色扮演插件Python初学笔记(六)常用标准库先学这几个Python初学笔记(五)读写文件和处理异常Python初学笔记(四)函数让代码开始有结构Python初学笔记(三)条件、循环和推导式Python初学笔记(二)变量和基础类型比想象中重要Python初学笔记(一)先把环境和运行方式弄明白主流AI大模型能力对比Java 21和Spring Boot 3升级笔记(五)日志指标与可观测性Java 21和Spring Boot 3升级笔记(四)数据访问层适配Java 21和Spring Boot 3升级笔记(三)虚拟线程使用边界Java 21和Spring Boot 3升级笔记(二)Jakarta迁移要点Java 21和Spring Boot 3升级笔记(一)工程基线整理魔法値をどうやって我慢する?JPAのSpecification大改造!处理生僻字乱码:JPA框架对于Oracle的NVarchar2,NChar,NClob类型支持Redis Stream能不能当轻量消息队列用RocketMQ 5学习笔记:普通消息之外要看什么事件流不是换个消息队列这么简单Kubernetes学习笔记04:发布、排障和观测Kubernetes学习笔记03:配置、密钥和存储Kubernetes学习笔记02:Deployment、Service和IngressKubernetes学习笔记01:Pod和控制器mysql索引原理02--存储引擎索引的实现mysql索引原理01--索引的数据结构
この投稿は「日本語」では表示できません。元の投稿を表示しています。
  2025 年我用 AI 写代码的频率越来越高。   以前用 AI,更多是让它解释一段代码、补一个工具函数、写一段 SQL。到了 2025 年,AI 编程工具已经不只是问答助手,而是开始接近“能一起改项目”的状态。   这次我试了一下 Trae 国际版,用它做了一个 AstrBot 的 AI 角色扮演聊天插件。插件本身不复杂:接入 AI...

前言

  2025 年我用 AI 写代码的频率越来越高。

  以前用 AI,更多是让它解释一段代码、补一个工具函数、写一段 SQL。到了 2025 年,AI 编程工具已经不只是问答助手,而是开始接近“能一起改项目”的状态。

  这次我试了一下 Trae 国际版,用它做了一个 AstrBot 的 AI 角色扮演聊天插件。插件本身不复杂:接入 AI API,把用户消息转给大模型,再通过角色设定让机器人以某个角色的语气和身份聊天。

  但这次体验对我来说挺有代表性。因为它不是单纯复制一段代码,而是从读框架、理解插件结构、写配置、调 API、处理异常,到最后在聊天窗口里跑起来,完整走了一遍。

Trae 是什么

  Trae 可以理解成一个 AI 原生的编程 IDE。

它不是传统意义上的“编辑器加一个聊天插件”,而是把代码编辑、项目理解、AI 对话、代码生成、命令执行这些能力放在一起。官方给它的定位是 AI Coding Engineer,实际用起来更像一个会读项目、会改文件、会给开发建议的编程搭子。

Trae 里比较核心的体验有两个:

1.Chat:适合问问题、解释代码、让它帮你分析报错。 2.Builder:适合把一个需求交给它,让它拆任务、改代码、跑命令。

我这次用的是 Trae 国际版。整体感觉是,它比普通聊天窗口更适合做真实项目里的小功能。因为它能直接看到项目文件,也能按上下文修改代码,不需要我不断复制粘贴。

当然,它也不是魔法。需求说得不清楚,它一样会猜。项目结构乱,它也会迷路。所以用 Trae 这种 Agent 化 IDE,最重要的不是一句话让它“帮我做完”,而是把目标、边界和验收方式讲清楚。

AstrBot 适合做聊天插件

  AstrBot 是一个开源的 AI 聊天机器人框架。

它比较吸引我的地方是,它不是只绑定某一个聊天平台,而是更像一个多平台聊天机器人底座。你可以把它接到 QQ、Telegram、Discord、飞书、企业微信等场景里,也可以通过插件扩展自己的能力。

从玩法上看,AstrBot 很适合做几类东西:

1.普通 AI 聊天机器人。 2.群聊里的命令插件。 3.知识库问答。 4.角色扮演聊天。 5.接入外部 API 的小助手。

我这次做的是第 4 类和第 5 类的结合:让 AstrBot 通过插件接入 AI API,然后按预设角色来回复消息。

插件想做什么

  这个插件的目标很简单:让机器人不只是“回答问题”,而是“扮演某个角色聊天”。

比如我可以配置一个角色:

1.名字。 2.身份背景。 3.说话风格。 4.性格特点。 5.不应该说的话。 6.是否允许跳出角色。

用户在聊天窗口里发消息后,插件会把这些角色设定和用户消息一起组织成请求,发给 AI API。模型返回后,AstrBot 再把内容发回聊天平台。

核心链路大概是这样:

聊天消息 -> AstrBot 插件 -> 角色设定 + 用户输入 -> AI API -> 模型回复 -> 聊天窗口

从代码上看,它不一定很难。难点反而在几个细节:

1.角色提示词怎么写,才不会每次都出戏。 2.上下文要保留多少,才不会越聊越乱。 3.API 报错、超时、限流时怎么回复。 4.配置项怎么设计,后面换角色才方便。 5.群聊里要不要限制触发方式,避免机器人乱接话。

我怎么让 Trae 帮我做

  一开始我没有直接让 Trae 写完整插件。

我先让它读 AstrBot 的插件结构,确认一个插件至少需要哪些文件、入口函数怎么写、事件怎么接、配置怎么读。这个阶段我更像是在让它做项目导读。

然后我把需求拆成几步:

1.先生成插件骨架。 2.再实现 AI API 调用。 3.再加入角色设定配置。 4.再处理聊天消息。 5.最后补异常处理和简单日志。

这样做比一句“帮我写个角色扮演插件”稳定很多。因为每一步都能看 diff,发现不对可以马上纠正。

Trae 在这个过程中比较有用的地方是,它能结合当前项目上下文改文件。比如我要它调整配置读取方式,它会去看现有文件怎么写,而不是凭空生成一套风格完全不同的代码。

接入 AI API 的几个点

  插件接入 AI API 时,我主要关注几个点。

第一是配置不要写死。API 地址、模型名、密钥、超时时间、角色提示词都应该放在配置里。这样后面换 OpenAI 兼容接口、本地模型网关,或者换不同模型,都不用改代码。

第二是请求结构要清楚。角色扮演不是简单把用户消息扔给模型,而是要把系统提示词、角色设定、历史上下文、当前用户输入分清楚。

可以简单理解成:

system: 你现在要扮演某个角色,遵守这些规则
history: 前面聊过什么
user: 用户这次说了什么

第三是失败要能兜底。AI API 调用失败很正常,可能是网络问题,也可能是额度、限流、模型服务异常。插件不能因为一次失败就把整个机器人搞挂。

我让 Trae 帮我补了几类处理:

1.请求超时。 2.HTTP 状态码异常。 3.返回结构不符合预期。 4.API key 没配置。 5.模型返回空内容。

这些代码不炫,但真正使用时很重要。聊天插件最怕的不是回复不够聪明,而是动不动就报错没反应。

角色扮演最重要的是边界

  做角色扮演聊天,很容易只关注“像不像”。

但真正用起来,我觉得更重要的是边界。

比如一个角色可以活泼,可以毒舌,可以中二,但不能无限制地乱说。特别是在群聊里,机器人说话会影响其他人,所以插件最好有一些限制:

1.只在被 @ 或指定命令触发时回复。 2.不保存敏感内容。 3.上下文长度有限制。 4.角色设定里写清楚不能越界的内容。 5.管理员可以快速关闭插件。

这也是我觉得 AstrBot 适合做这件事的原因。它本身就是聊天机器人框架,平台接入、插件管理、配置管理这些能力已经有了。我要做的是在这个框架里加一个具体玩法,而不是从零写一个聊天机器人。

Trae 的体验

  这次用 Trae 国际版,我最明显的感受是:它适合做中小粒度的真实功能。

如果只是问一个语法问题,用普通聊天工具也够了。但如果要改一个插件、读多个文件、顺手调整配置和异常处理,AI IDE 的体验会好很多。

我觉得 Trae 的优势主要在这几方面:

1.能理解项目上下文,不用反复复制代码。 2.可以按文件直接改,反馈很快。 3.Builder 适合把需求拆成可执行步骤。 4.对新框架的入门帮助比较明显。 5.适合做插件、小工具、原型功能。

但它也有一些需要注意的地方:

1.不要一次让它改太大。 2.每次改完都要看 diff。 3.关键逻辑要自己读一遍。 4.异常处理和权限边界不能完全交给它猜。 5.能跑起来不等于写得好。

我的用法是把它当成一个速度很快的结对开发者,而不是外包。它可以帮我写第一版、补样板代码、解释框架,但最后代码能不能进项目,还是要我自己判断。

这类插件还能继续做什么

  角色扮演插件只是一个开始。

后面还可以继续扩展:

1.多角色配置,不同群用不同角色。 2.按命令切换角色。 3.给每个角色配置独立温度和模型。 4.加入短期记忆,让对话更连续。 5.接入知识库,让角色知道固定设定。 6.加白名单,限制谁能触发。 7.做 WebUI 配置,不用手改配置文件。

如果再往复杂做,就会接近一个“聊天人格管理器”。但我现在觉得没必要一开始就做大。插件这种东西,先把一个场景跑顺,再慢慢加能力更稳。

小结

  这次用 Trae 做 AstrBot 的 AI 角色扮演插件,我最大的感受不是“AI 已经能替我写所有代码”,而是“AI 终于能更自然地参与一个小功能的完整开发过程”。

  Trae 负责提速,AstrBot 提供聊天机器人框架,AI API 提供对话能力。三者组合起来,就能很快做出一个能在聊天窗口里玩的角色扮演插件。

  但真正让它可用的,还是那些不太显眼的工程细节:配置、超时、错误处理、上下文控制、触发方式、权限边界。

  所以我现在对 AI 编程工具的态度还是一样:可以多用,但要带着工程习惯用。AI 可以帮我写得更快,但不能替我判断什么是可靠的代码。

参考资料

気に入ったならばコメントを残してくださいね~

© 2019 - 2026 VincentHo @VincentHo
Powered by theme astro-koharu · Inspired by Shoka