用 Godot 与 HelloAgents 构建赛博小镇:多智能体 AI NPC 对话系统实战(记忆、好感度与日志全解析)

用 Godot 与 HelloAgents 构建赛博小镇:多智能体 AI NPC 对话系统实战(记忆、好感度与日志全解析) 用 Godot 与 HelloAgents 构建赛博小镇多智能体 AI NPC 对话系统实战记忆、好感度与日志全解析【免费下载链接】hello-agents 《从零开始构建智能体》——从零开始的智能体原理与实践教程项目地址: https://gitcode.com/GitHub_Trending/he/hello-agents赛博小镇Helloagents-AI-Town是《Hello-agents》教材第 15 章的配套案例项目它演示了如何基于 HelloAgents 框架构建一个带有 3 个 AI NPC张三、李四、王五的 2D 小镇模拟游戏将多智能体系统、LLM 对话、双级记忆、情感化好感度与游戏引擎深度结合。阅读本文后你将掌握从零搭建FastAPI HelloAgents Godot三层智能体游戏应用的完整方案既能看懂项目 README 与四份配套指南安装配置、记忆系统、好感度系统、对话日志也能对照后端源码理解每个系统的底层实现原理。项目全景赛博小镇是什么赛博小镇是一个基于 HelloAgents 框架的 AI 小镇模拟游戏用于展示多智能体系统Multi-Agent System在游戏场景中的应用。玩家可以在一间 2D 办公室中自由移动走近 NPC 并按 E 键与其实时对话——每个 NPC 都由独立的 Agent 驱动拥有自己的性格、岗位、记忆和对你玩家的好感度。功能特性一览项目 README 明确列出的核心能力包括3 个 AI NPC张三、李四、王五各自拥有独立的角色设定智能对话系统基于 HelloAgents 的SimpleAgent驱动记忆系统短期工作记忆 长期情景记忆双层记忆好感度系统5 个关系等级陌生 / 熟悉 / 友好 / 亲密 / 挚友NPC 自主行为即使玩家不交互NPC 也会闲逛、工作并定时产出状态对话完整的日志系统控制台 文件双路输出按日期归档。技术栈层级技术选型游戏客户端Godot 4.x推荐 4.3最低 4.2GDScript 编写后端服务FastAPI Python 3.10AI 框架HelloAgentsSimpleAgent、HelloAgentsLLM、MemoryManagerLLM默认 Qwen/Qwen2.5-72B-InstructModelScope 推理服务可配置为 OpenAI GPT-4 等任意兼容服务说明README 中标注 LLM 为 OpenAI GPT-4 (可配置其余的LLM服务)而当前仓库 backend/config.py 实际默认配置为Qwen/Qwen2.5-72B-Instruct与 ModelScope 兼容端点两者都支持通过环境变量自由切换下文第 3 节会给出完整参数说明。三个 NPC 角色角色定义全部集中在 backend/agents.py 的NPC_ROLES字典中NPC职位位置当前活动性格标签张三Python 工程师工位区写代码技术宅喜欢讨论算法和框架李四产品经理会议室整理需求外向健谈善于沟通协调王五UI 设计师休息区喝咖啡细腻敏感注重美感每个角色还配置了expertise专长、style说话风格、hobbies爱好等字段这些字段会直接注入到系统提示词中决定 NPC 的对话人设。项目目录结构code/chapter15/Helloagents-AI-Town/ ├── README.md # 项目总览本文主文档 ├── SETUP_GUIDE.md # 安装配置指南 ├── MEMORY_SYSTEM_GUIDE.md # 记忆系统指南 ├── AFFINITY_SYSTEM_GUIDE.md # 好感度系统指南 ├── DIALOGUE_LOG_GUIDE.md # 对话日志系统指南 ├── backend/ # FastAPI 后端 │ ├── main.py # 主程序与全部 API 路由 │ ├── config.py # 配置.env 加载 │ ├── models.py # Pydantic 数据模型 │ ├── agents.py # NPC Agent 管理器含记忆与好感度集成 │ ├── relationship_manager.py # 好感度管理器 │ ├── batch_generator.py # 批量对话生成器 │ ├── state_manager.py # NPC 状态管理器定时批量更新 │ ├── logger.py / view_logs.py # 日志系统与查看工具 │ └── memory_data/ # 每个 NPC 独立的记忆存储目录 └── helloagents-ai-town/ # Godot 游戏工程 ├── scenes/ # main / npc / player / dialogue_ui 场景 ├── scripts/ # GDScriptapi_client.gd、config.gd 等 └── project.godot # Godot 项目配置环境要求与安装配置快速开始完整的安装步骤详见 SETUP_GUIDE.md以下为核心流程整理。系统要求操作系统Windows 10/11、macOS、Linux 均可Godot4.2推荐 4.3Python3.10Git可选用于克隆项目。安装步骤步骤 1获取项目。若使用 Git克隆仓库后进入chapter15目录也可以直接下载项目 ZIP 解压。步骤 2安装 Godot。从 Godot 官网下载 4.2 版本解压后直接运行无需额外安装依赖。步骤 3配置 Python 环境。在backend目录下创建并激活虚拟环境然后安装依赖cd backend python -m venv venv # Windows: venv\Scripts\activate # macOS/Linux: source venv/bin/activate pip install -r requirements.txt步骤 4安装 HelloAgents 框架。agents.py、relationship_manager.py、batch_generator.py均通过sys.path.insert(0, .../HelloAgents)将框架目录加入 Python 路径因此需要先以可编辑模式安装cd ../HelloAgents pip install -e . cd ../backend步骤 5配置环境变量。创建.env文件config.py通过dotenv自动加载backend/.env按需填写 LLM 相关配置# API配置 API_HOST0.0.0.0 API_PORT8000 # LLM配置 - 请填写你的API密钥 LLM_API_KEYsk-your-api-key-here LLM_BASE_URLhttps://api-inference.modelscope.cn/v1/ LLM_MODEL_IDQwen/Qwen2.5-72B-Instruct重要LLM_API_KEY必须替换为你的真实密钥。若不配置 API 密钥后端会以模拟模式/预设对话模式运行agents.py中 LLM 初始化失败会降级为self.llm Nonebatch_generator.py则会使用内置的preset_dialogues预设对话库基础游戏功能仍可用只是 NPC 不再具备真实 AI 对话能力。步骤 6启动后端服务cd backend python main.py预期输出 对话日志文件: .../backend/logs/dialogue_2025-10-15.log 日志目录: .../backend/logs 赛博小镇后端服务启动中... ... ✅ 所有服务已启动! API地址: http://0.0.0.0:8000 API文档: http://0.0.0.0:8000/docs 步骤 7打开 Godot 项目。启动 Godot → 点击导入 → 选择Helloagents-AI-Town/helloagents-ai-town/scenes/main.tscn→ 导入并编辑。步骤 8运行游戏。在 Godot 编辑器中点击右上角运行按钮或按 F5游戏窗口打开后即可操作。游戏操作按键功能WASD移动玩家E与 NPC 交互开启对话Enter发送消息ESC关闭对话框快速测试测试后端 API访问http://localhost:8000/docsFastAPI 自动生成的 Swagger 文档可在页面直接调试所有接口查看对话日志cd backend python view_logs.py tail实时滚动显示对话记录。系统架构FastAPI 后端与 Godot 客户端的协作三层调用架构┌─────────────────────────────────────────────────────┐ │ Godot 客户端 (helloagents-ai-town) │ │ api_client.gd ──HTTP── POST /chat、GET /npcs/status│ └──────────────────────────┬──────────────────────────┘ │ ┌──────────────────────────▼──────────────────────────┐ │ FastAPI 后端 (backend/main.py) │ │ ├─ NPCAgentManager 对话 记忆 好感度 │ │ ├─ RelationshipManager LLM 情感分析更新好感度 │ │ ├─ NPCStateManager 定时批量更新 NPC 自主状态 │ │ └─ NPCBatchGenerator 一次 LLM 调用生成所有 NPC 话 │ └──────────────────────────┬──────────────────────────┘ │ ┌──────────────────────────▼──────────────────────────┐ │ HelloAgents 框架 │ │ SimpleAgent / HelloAgentsLLM / MemoryManager │ │ (SQLite 权威存储 向量检索) │ └─────────────────────────────────────────────────────┘后端模块职责backend/README.md 给出了清晰的模块划分文件职责main.pyFastAPI 主程序定义全部 API 路由与生命周期lifespan管理config.py应用配置Settings 类加载.envmodels.pyPydantic 数据模型ChatRequest、ChatResponse、NPCStatusResponse等agents.pyNPC Agent 系统角色定义、系统提示词、对话编排记忆检索 → 回复 → 好感度 → 存记忆batch_generator.py批量对话生成器一次 LLM 调用生成所有 NPC 的自主状态对话state_manager.pyNPC 状态管理器定时触发批量生成并缓存状态relationship_manager.py好感度管理器LLM 情感分析 好感度增减 关系等级logger.py/view_logs.py日志系统核心模块与日志查看命令行工具API 路由总览从 backend/main.py 的源码可以确认以下完整路由方法路径功能GET/API 信息与端点清单GET/health健康检查POST/chat与指定 NPC 对话记忆 好感度全流程GET/npcs获取所有 NPC 列表GET/npcs/status获取 NPC 当前自主状态批量生成结果POST/npcs/status/refresh强制立即刷新 NPC 状态GET/npcs/{npc_name}获取单个 NPC 详情含当前对话GET/npcs/{npc_name}/memories获取 NPC 记忆列表DELETE/npcs/{npc_name}/memories清空 NPC 记忆测试用GET/npcs/{npc_name}/affinity获取 NPC 对玩家的好感度PUT/npcs/{npc_name}/affinity设置好感度测试用0-100GET/affinities获取所有 NPC 好感度main.py使用lifespan生命周期钩子启动时依次执行settings.validate()配置校验、get_npc_manager()初始化 NPC 与记忆、get_state_manager(...)启动状态管理器后台任务关闭时优雅停止。配置说明config.pybackend/config.py 的Settings类通过load_dotenv加载同目录.env配置项默认值说明API_HOST0.0.0.0后端监听地址API_PORT8000后端端口NPC_UPDATE_INTERVAL30NPC 自主状态更新间隔秒LLM_MODEL_IDQwen/Qwen2.5-72B-InstructLLM 模型名LLM_API_KEY无LLM API 密钥必填LLM_BASE_URLhttps://api-inference.modelscope.cn/v1/LLM 服务端点兼容 OpenAI 格式CORS_ORIGINS[*]跨域白名单生产环境应限制为具体域名Settings.validate()在启动时检查LLM_API_KEY缺失时打印警告并返回False提示在.env中配置密钥。NPC 角色设计与系统提示词工程系统提示词的生成create_system_prompt函数agents.py将NPC_ROLES中的角色字段动态渲染成一段结构化的 system prompt包含四个部分角色设定职位、性格、专长、说话风格、爱好、当前位置、当前活动行为准则保持角色一致性、用第一人称我、回复控制在 30-50 字、可以提及工作内容与爱好、对玩家友好、超出专长时推荐其他同事、偶尔展现个性化口头禅对话示例给出你好你是做什么的最近在做什么项目两个 few-shot 示例重要约束不能说我是 AI/语言模型要像真实办公室同事一样自然对话可以表达情绪回复要有人情味。这段提示词是 NPC人设感的核心来源也是教学上理解system prompt 工程的最佳范例。Agent 的创建与降级NPCAgentManager.__init__先尝试HelloAgentsLLM()初始化 LLM成功则用SimpleAgent(namef{name}-{role[title]}, llmself.llm, system_promptsystem_prompt)为每个 NPC 创建独立 Agent失败则进入模拟模式agentNone对话返回当前为模拟模式请配置 API_KEY 以启用 AI 对话的提示。记忆系统让 NPC 记住你赛博小镇的 NPC 通过 HelloAgents 的MemoryManager获得记忆能力能够记住与玩家的对话历史并在后续对话中引用。详见 MEMORY_SYSTEM_GUIDE.md。核心功能工作记忆Working Memory短期存储最近的 10 条对话2 小时后自动过期用于当前对话上下文情景记忆Episodic Memory长期持久化存储重要对话支持语义检索基于向量索引最多 100 条自动遗忘重要性低于 0.3 的记忆记忆隔离每个 NPC 拥有独立的记忆系统NPC 之间互不干扰每个玩家的对话独立存储。使用效果示例短期记忆玩家 5 分钟后问还记得我刚才问你什么吗张三能复述之前的问答内容长期记忆第二天再问我们之前聊过编程语言吗NPC 能回忆起前一天的话题记忆隔离问李四我刚才和张三聊了什么李四会明确表示不知道因为记忆按 NPC 隔离。技术实现记忆检索与增强对话NPCAgentManager.chat()agents.py的完整调用链1. 记录对话开始日志系统 2. 获取当前好感度生成「当前关系 对话风格」上下文 3. 用玩家消息检索相关记忆working episodiclimit5min_importance0.3 4. 构建增强提示词 好感度上下文 记忆上下文 当前对话 5. 调用 agent.run() 生成回复 6. 好感度分析并更新 7. 把玩家消息与 NPC 回复写入记忆含好感度、情感等元数据关键实现细节记忆检索memory_manager.retrieve_memories(querymessage, memory_types[working, episodic], limit5, min_importance0.3)同时检索短期与长期记忆并按重要性和相关性过滤记忆上下文构建_build_memory_context将检索到的记忆按时间戳%H:%M格式化为【之前的对话记忆】段落记忆写入_save_conversation_to_memory将玩家说...importance0.5与我说...importance0.6两条记录写入工作记忆同时附带affinity当时好感度、affinity_change变化量、sentiment情感等元数据实现记忆与好感度两个系统的数据联动。记忆配置MemoryConfig每个 NPC 初始化记忆管理器时的默认配置agents.pymemory_config MemoryConfig( storage_pathf./memory_data/{npc_name}, # 存储路径 working_memory_capacity10, # 工作记忆容量最近10条 working_memory_tokens2000, # 工作记忆token限制 max_capacity100, # 长期记忆总容量 importance_threshold0.3, # 重要性阈值 decay_factor0.95 # 时间衰减系数 ) memory_manager MemoryManager( configmemory_config, user_idnpc_name, enable_workingTrue, # 启用工作记忆短期 enable_episodicTrue, # 启用情景记忆长期 enable_semanticFalse, # 不需要语义记忆 enable_perceptualFalse # 不需要感知记忆 )参数调整建议来自记忆系统指南参数默认值建议范围说明working_memory_capacity105-20工作记忆容量越大越占内存working_memory_tokens20001000-4000Token 限制影响上下文长度max_capacity10050-500记忆总容量越大越占磁盘importance_threshold0.30.1-0.5重要性阈值越高越偏向保留重要记忆decay_factor0.950.8-0.99时间衰减系数越低越强调近期记忆记忆 API 与测试POST /chat对话自动读写记忆GET /npcs/张三/memories?limit10查看记忆DELETE /npcs/张三/memories?memory_typeworking清空指定类型记忆不传memory_type则清空全部。测试方法运行python test_memory.py或通过 Swagger 文档连续对话后查看记忆列表或在 Godot 中与 NPC 多次对话观察其是否记住之前的内容。调试技巧在chat()中打印检索到N条相关记忆、对话已保存到NPC的记忆中直接查 SQLitesqlite3 memory_data/张三/memory.db后SELECT * FROM memories;仓库中memory_data/下实际生成的文件名为memory.db各 NPC 目录相互独立排查记不住问题检查日志中是否有记忆系统已初始化、memory_data目录是否存在、是否被遗忘机制清除可降低importance_threshold。好感度系统NPC 的情绪反馈好感度系统让 NPC 能根据玩家对话内容自动调整亲疏态度并实时影响对话风格。详见 AFFINITY_SYSTEM_GUIDE.md。核心功能自动情感分析使用独立的 LLM AgentAffinityAnalyzer分析对话——判断玩家态度友好/中立/不友好、对话内容积极/中立/消极、互动质量深入/一般/敷衍、情感倾向赞美/批评/中性好感度动态调整友好对话 1~10批评对话 -3~-15数值限定在 0-100关系等级系统get_affinity_level见 relationship_manager.py等级数值区间对话风格陌生0-20冷淡疏离不太愿意多说熟悉20-40礼貌但略显生疏友好40-60礼貌友善正常交流亲密60-80友好热情愿意多聊挚友80-100非常热情像老朋友一样对话风格调整好感度等级对应的修饰词get_affinity_modifier被注入 NPC 的对话上下文实现高好感度更热情、低好感度更冷淡的实时风格切换。好感度变化规则情感分析提示词中内置的变化规则对话类型变化量示例赞美、感谢、请教3 到 8你真棒谢谢你能教教我吗友好问候、正常交流1 到 3你好最近怎么样普通闲聊、中性话题0今天天气不错批评、质疑、不耐烦-3 到 -8这个不太好真的吗侮辱、攻击、恶意-8 到 -15你太烂了技术实现情感分析全流程RelationshipManager.analyze_and_update_affinity的执行链路relationship_manager.py玩家消息 NPC 回复 ↓ 构建分析提示玩家/张三 两轮对话文本 ↓ 调用 analyzer_agent.run(prompt) ↓ _parse_analysis 解析 LLM 的 JSON 响应 ↓ should_changetrue 时 new_affinity clamp(当前好感度 change_amount, 0, 100) 记录 old_level / new_level返回分析结果值得学习的是_parse_analysis的三层容错解析策略relationship_manager.py先尝试json.loads直接解析完整 JSON失败则截取首个{到末个}之间的子串再解析再失败则用正则表达式分别提取should_change、change_amount、reason、sentiment四个字段全部失败则返回默认值不改变好感度并打印警告。这种直接解析 → 提取 JSON 片段 → 正则兜底的层级策略对任何调用 LLM 输出结构化 JSON 的生产代码都有直接借鉴意义。好感度 API 与测试GET /npcs/张三/affinity?player_idplayer返回{affinity, level, modifier}GET /affinities?player_idplayer返回所有 NPC 好感度PUT /npcs/张三/affinity?affinity80player_idplayer手动设置好感度测试用参数范围 0-100越界返回 400测试脚本python test_affinity.py覆盖基本功能、提升/降低、等级变化、对话风格调整、渐进提升。调优建议想调整敏感度修改relationship_manager.py中的情感分析提示词更敏感可扩大变化量范围如 -20 到 15更保守可缩小如 -5 到 5更细腻可增加分析维度。如果好感度长期不变优先检查日志中的情感分析结果与 LLM JSON 解析是否成功。对话日志系统全流程可视化日志系统把所有对话信息同时输出到控制台与按日期命名的文件便于学习者观察记忆检索 → 回复生成 → 好感度变化 → 记忆保存的完整链路。详见 DIALOGUE_LOG_GUIDE.md。自动记录的信息每次对话自动记录对话开始/结束、玩家消息、当前好感度与关系等级、检索到的相关记忆、NPC 回复内容、好感度变化分析、关系等级变化、记忆保存确认。日志查看工具命令功能python main.py启动后端日志同时输出到控制台与logs/dialogue_YYYY-MM-DD.logpython view_logs.py tail实时滚动查看日志类似tail -fCtrlC 停止python view_logs.py view显示今天的完整日志python view_logs.py list列出所有日志文件名称、大小、修改时间日志格式示例14:30:25 - 14:30:25 - 对话开始: 张三 - 玩家 14:30:25 - 14:30:25 - 玩家消息: 你好,很高兴认识你! 14:30:25 - 当前好感度: 50.0/100 (友好) 14:30:25 - 检索到0条相关记忆 14:30:26 - 正在生成回复... 14:30:28 - 张三回复: 你好!我也很高兴认识你。我是Python工程师张三,最近在研究多智能体系统。 14:30:28 - 正在分析好感度变化... 14:30:30 - 好感度变化: 50.0 - 56.0 (6.0) 14:30:30 - 原因: 友好问候 14:30:30 - 情感: positive 14:30:30 - 对话已保存到张三的记忆中 14:30:30 - 14:30:30 - ✅ 对话完成技术实现logger.py使用 Python 标准库logging创建名为dialogue的 logger同时挂载FileHandler写文件utf-8 编码与StreamHandler输出控制台实现双路输出。agents.py的chat()方法通过log_dialogue_start、log_affinity、log_memory_retrieval、log_generating_response、log_npc_response、log_analyzing_affinity、log_affinity_change、log_memory_saved、log_dialogue_end等函数在流程各节点埋点把整个对话生命周期录制下来。说明日志按日期分类每次对话约 0.5-1 KB一天通常不超过 1 MB磁盘占用很小。NPC 自主行为批量对话生成与状态管理即使玩家不与 NPC 交互NPC 也会像真实同事一样自言自语写代码、开评审会、喝咖啡并在头顶气泡中展示。这套自主行为由state_manager.pybatch_generator.py协作完成。批量生成一次调用生成三个 NPC 的状态backend/README.md 说明了批量策略的成本优势按 30 秒更新一次估算传统方式3 个 NPC × 每 30 秒各调一次 6 次 API 调用/分钟每小时 360 次批量方式1 次批量调用/30 秒 2 次 API 调用/分钟每小时 120 次成本降低约 66%。工作流程1. 定时器触发默认30秒 ↓ 2. 批量生成器构建提示词含场景与3个NPC信息 ↓ 3. 一次 LLM 调用生成所有 NPC 对话JSON ↓ 4. 解析 JSON 响应容错提取 ↓ 5. 更新状态管理器缓存current_dialogues ↓ 6. Godot 客户端定时 GET /npcs/status 获取源码级细节场景推断batch_generator.py的_get_current_context()按当前小时自动推断场景清晨/上午/午餐/下午/傍晚/夜晚并注入提示词JSON 容错解析_parse_response先直接解析失败则截取首尾大括号再解析并校验三个 NPC 键是否齐全预设降级LLM 不可用时使用preset_dialoguesmorning/noon/afternoon/evening 四套预设台词状态缓存state_manager.py的get_current_state()返回{dialogues, last_update, next_update_in}其中next_update_in为距下次更新的倒计时秒数更新频率调优修改config.py的NPC_UPDATE_INTERVAL——开发测试 10 秒、正式运行 30-60 秒、低成本模式 120 秒。Godot 客户端接入Godot 端通过 scripts/api_client.gd 与后端通信这是一个Node脚本封装了三个HTTPRequest节点请求端点信号对话POST /chatPOST JSONchat_response_received(npc_name, message)状态轮询GET /npcs/statusnpc_status_received(dialogues)NPC 列表GET /npcsnpc_list_received(npcs)代码要点通过JSON.stringify序列化请求体携带Content-Type: application/json头回调中先检查response_code ! 200并发出错误信号再解析 JSON 并emit对应信号UI 层通过连接这些信号更新对话框与 NPC 气泡状态请求做了请求进行中跳过本次的防重入保护检查HTTPClient.STATUS_DISCONNECTED避免高频轮询堆积请求。场景与脚本文件位于 helloagents-ai-town/scenesmain.tscn、npc.tscn、player.tscn、dialogue_ui.tscn与 scriptsmain.gd、npc.gd、player.gd、dialogue_ui.gd、config.gd。后端已配置 CORS 中间件CORS_ORIGINS默认[*]支持 Godot HTML5 导出时的跨域访问。常见问题排查后端启动失败依次检查Python 版本是否 ≥ 3.10、是否激活虚拟环境、依赖是否安装完整pip install -r requirements.txt、.env是否配置正确若出现LLM 初始化失败确认LLM_API_KEY已设置。Godot 无法打开项目确认 Godot 版本 ≥ 4.2、project.godot文件存在、选择了正确的导入目录helloagents-ai-town工程目录。游戏运行但无法对话检查后端服务是否在运行、后端地址是否正确默认http://localhost:8000、查看 Godot 控制台错误信息。NPC 记不住对话 / 好感度不变化参见前文记忆系统与好感度系统的调试技巧检查日志中的记忆系统已初始化与情感分析输出、确认memory_data目录存在、必要时降低importance_threshold或调整情感分析提示词。对话无响应后端会自动降级到预设对话/模拟模式日志提示将使用预设对话模式基础功能不受影响配置 API 密钥后即可恢复真实 AI 对话。教学价值与扩展方向本项目是《Hello-agents》第 15 章的配套案例其教学价值在于把教材中的理论概念落到可运行的游戏项目上MemoryManager 实战初始化记忆管理器、配置工作/情景记忆、添加与检索记忆记忆检索策略工作记忆快速检索、情景记忆语义检索、混合检索结合时间与相关性双存储机制SQLite 权威存储 向量索引语义检索保证数据一致性与检索能力记忆遗忘机制基于重要性的自动遗忘、基于时间的 TTL 过期、容量限制的优先级淘汰LLM 情感分析设计情感分析提示词、约束 JSON 输出、三级容错解析多系统协同好感度 ↔ 记忆 ↔ 日志 ↔ 状态管理的数据联动设计成本工程批量生成策略显著降低 LLM API 调用次数。从源码结构看项目预留了清晰的扩展点backend/README.md 的开发建议在agents.py的NPC_ROLES中添加配置即可新增 NPC同时需在batch_generator.py的preset_dialogues中补充预设台词修改create_system_prompt可自定义对话风格修改batch_generator.py的_build_batch_prompt可调整批量生成提示词在 Godot 中可进一步实现好感度 UI 显示与更多基于好感度的游戏机制。本项目遵循 CC BY-NC-SA 4.0 许可证发布后端部分遵循 HelloAgents 项目的开源协议。现在启动后端、按下 F5走进 Datawhale 办公室和三位各有性格的 AI 同事聊聊吧。【免费下载链接】hello-agents 《从零开始构建智能体》——从零开始的智能体原理与实践教程项目地址: https://gitcode.com/GitHub_Trending/he/hello-agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考