feat: agent 能组帮派 + 群聊 (#17)#23
Closed
vhankhan wants to merge 1 commit into
Closed
Conversation
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
功能介绍
实现了帮派与群聊系统,包括以下功能:
核心功能
前端特性
后端变更
gangs,gangMembers,gangMessages,gangInvitescreateGang,joinGang,leaveGang,sendGangMessage,inviteToGang,acceptGangInvite,rejectGangInvite,kickGangMemberlistGangs,getGangDetail,getPlayerGangs,listAllPlayersWithGangStatus,getPendingInvites验证结果
bun test: 2 pass, 0 failcd ai-town-fork && bun run build: 构建成功文件变更
主要新增文件:
convex/ours/tables/gangs.ts- 帮派表定义convex/ours/mutations/gangs.ts- 帮派 mutationsconvex/ours/queries/gangs.ts- 帮派 queriesconvex/ours/gangInputs.ts- 帮派 inputsai-town-fork/src/components/GangPanel.tsx- 帮派面板组件测试方式
AI 使用披露
工具 + 模型
Claude Code, GPT-5.4 thinking
反思
在使用 Claude Code 完成 Agent Town 修改的过程中,我对 AI 辅助编程有了几点深刻体会。
首先,提示词必须高度聚焦核心需求。我曾要求 AI 模拟登录流程,结果它自行下载了多个无关插件,不仅偏离了作业范围,还引发了后续一连串的兼容性问题。这说明与 AI 协作时,边界清晰的任务描述远比模糊的“锦上添花”更重要,否则极易引入不必要的复杂度。
其次,AI 在不同层次的表现差异明显。它在后端逻辑与数据表设计上执行力很强,但在前端 UI 呈现上非常薄弱——即便表格数据已就绪,它仍难以自主转化为直观的面板展示,需要开发者一步步指明调用关系。不过,AI 对用户逻辑的考虑上反而带来了惊喜:当我仅提出“踢出成员”时,它自动补充了“只有帮主可执行”的权限判断,这种对前后逻辑的细心补全,有效避免了设计漏洞。(说明AI对逻辑推理以及上下文联系的问题解决能力较强),未来我会更明确地向 AI 拆分任务:后端交给它深挖细节,前端则由我主导架构,取长补短。(文字由AI撰写,观点由我提供,我说的大白话太难懂)
###节选关键的prompt:
要求:
我:
我希望在别人加入的时候组员的海盗图标闪烁黄光打开后出现同意或拒绝面板,并且在帮派面板添加一个列表里面有所有成员的名称,可以点击邀请他们到自己所在的帮派,
列表中成员名称的后面有他们的帮派身份(所属帮派或无帮派)(请先用ai玩家的名称搭建列表
AI:
完成!所有功能已实现。
新增功能总结
AI 写的 vs 我改的
我:
我看到你加了成员这一栏,但是这些成员并没有可以被邀请的选项,我希望点击他们的名字后跳出邀请和踢出的选项面板
AI:
完成!现在功能已经更新:
新增功能
我:
帮派的ui呢我需要它展示在游戏画面的左下角用一个海盗的图案作为进入帮派ui的按钮
AI:
好
我:
看到按钮了但是点击后没有打开页面,我需要你根据之前部署的功能设计一个面板展示出来,包括,加入帮派,帮派基础信息,创建
帮派,帮派聊天记录功能等等
AI:
好
我:
我看到了,现在的问题是跳转页尺寸不合适,超出游戏视图框边界导致无法全部展示了
AI:
好
我:
调到更小,且将帮派图案和面板换成和游戏画面一致的像素风
AI:
好
我:
点击ai玩家我发现他们的名字后面是空的 我希望在右侧他们的名字下面有标注他们的帮派名称,没有进帮派的写无帮派
AI:
好
AI 犯的错 / 我的 review 方法
我之前想让ai给我开一个暂时的账号可以测试使用功能,结果出现了很多节外生枝的问题
我:
我不想要这个功能了,能否将文件里为我占位的相关改写修改回原来的
修复成功!Vite 服务器已正常启动。
访问地址:http://localhost:5173/ai-town
问题总结:
已修复:
我:
点击人物好像就会黑屏 这是不是和convex停止有关 查找并修复一下问题
AI:
● 修复完成!我添加了错误处理来防止黑屏。
修复内容
PlayerDetails.tsx (ai-town-fork/src/components/PlayerDetails.tsx):
const playerGangs = Array.isArray(playerGangsRaw) ? playerGangsRaw : undefined;
playerGangs.map((g) => g?.gang?.name ?? '未知').join('、')
现在请:
服务状态:
AI:
修复完成!
问题原因: ai-town-fork/convex/ours/queries/ 目录缺少 playerConversations.ts 和 playerReflections.ts 文件,导致 Convex 后端无法找到这些查询。
已修复:
现在请:
如果还有问题,请发 F12 控制台的新错误。
总结来说:
一些太过与主体无关的要求可能会让ai牵连很多无关的插件或更改进来,从而影响主体的运行,我要求他帮我模拟登录一个用户,他甚至给我下载了三四个不知名的插件…这导致后续不断有其他地方运行的问题出现。
git log输出$ git log --author='Agent Town Developer' --pretty=oneline main..HEAD
9ecb663 feat: add gangs and group chat (#17)
Checklist
AGENTS.md,特别是 §4 硬规则和 §7 已知 gotchas.env*、密钥、生产 deployment URLctx.db.patch修改convex/aiTown/*表(参见 AGENTS.md §4.2)ai-town-fork/UPSTREAM_FILES.txt加了# EXEMPT: <reason>