Hello-Agents
目录1日常助手提示词里面基本要有什么2还有文案优化助手3数据查询助手4def和class的区别5使用Autogen时遇到的问题?6异步程序的入口是什么7这注解staticmethod有什么用?8解释下面代码 9解释这段代码10async with MsgHub 这个 with 是什么意思11**kwargs有什么用12Literal[user, assistant, system, tool]?13Agent基本框架14为什么调用工具返回结果后还要调用agent?15记忆系统的架构设计?16RAG系统17有哪四种记忆类型?如何区分?18为什么要构建上下文有什么用19刚才是 apppend怎么这里是 extend?20NoteTool的最佳实践原则?21笔记类型有哪些22智能体通信协议学习框架?23MCP三层架构对应什么?24不是 A2AServer 吗怎么来了个 A2ATool?25智能体性能评估有哪三种方式?26旅游助手框架及实现27Agent回答超时怎么解决?(如何解决通义千问 qwen3.8-27b 大模型请求超时的问题?)28实现了 pydantic, 也就是继承 BasModel 后会自动校验数据类型格式的正确与否吗29思考模式怎么关闭?30reloadTrue作用?31为什么不直接调用API?而是使用多agent?32如果一个MCPTool需要多个agent使用该怎么办?33重写的流式 think 撞上空 choices 块什么意思?34返回类型 - Configuration 为什么加引号?35yield fdata: {json.dumps (event,ensure_asciiFalse)}\n\n yield 是干嘛的36总结1日常助手提示词里面基本要有什么1角色role2角色配置profile3技能skills4规则rules5工作流程workflow6初始化段Initialization2还有文案优化助手3数据查询助手124def和class的区别为什么调用def需要加(),调用类就不需要5使用Autogen时遇到的问题?def create_openai_model_client(): 创建 OpenAI 模型客户端用于测试 return OpenAIChatCompletionClient( modelos.getenv(LLM_MODEL_ID, gpt-4o), api_keyos.getenv(LLM_API_KEY), base_urlos.getenv(LLM_BASE_URL, https://api.openai.com/v1), # 使用非 OpenAI 官方模型如阿里云百炼 qwen时必须显式提供 model_info # 否则会报 model_info is required when model name is not a valid OpenAI model model_info{ vision: False, function_calling: True, json_output: True, family: ModelFamily.UNKNOWN, structured_output: True, multiple_system_messages: True, }, )注意model_info声明出来6异步程序的入口是什么asyncio.run7这注解staticmethod有什么用?8解释下面代码 vote: Literal[tuple(_.name for _ in agents)] Field( description你要投票淘汰的玩家姓名, )9解释这段代码for i, (role, character) in enumerate(zip(roles, characters)):10async with MsgHub 这个 with 是什么意思其实就是不用写try-catch了11**kwargs有什么用def __init__( self, model: Optional[str] None, api_key: Optional[str] None, base_url: Optional[str] None, provider: Optional[str] auto, **kwargs ):12Literal[user, assistant, system, tool]?13Agent基本框架14为什么调用工具返回结果后还要调用agent?15记忆系统的架构设计?16RAG系统框架17有哪四种记忆类型?如何区分?18为什么要构建上下文有什么用19刚才是 apppend怎么这里是 extend?20NoteTool的最佳实践原则?21笔记类型有哪些# 笔记类型: blocker(阻塞问题)、action(行动计划)、task_state(任务状态)、conclusion(结论)22智能体通信协议学习框架?23MCP三层架构对应什么?24不是 A2AServer 吗怎么来了个 A2ATool?A2AServer智能体本身启动 Web 服务提供能力服务提供者A2ATool封装好的远程调用工具用来去调用 A2AServer客户端代理25智能体性能评估有哪三种方式?26旅游助手框架及实现27Agent回答超时怎么解决?(如何解决通义千问 qwen3.8-27b 大模型请求超时的问题?)28实现了 pydantic, 也就是继承 BasModel 后会自动校验数据类型格式的正确与否吗29思考模式怎么关闭?class NoThinkingLLM(HelloAgentsLLM): 关闭思考模式的LLM子类 Qwen3系列模型默认开启思考(thinking)模式会先产生大量推理token 显著拖慢响应行程规划这类重调用容易超时。这里在每次非流式调用时 自动附加 extra_body{enable_thinking: False} 以关闭思考。 def invoke(self, messages, **kwargs): extra_body kwargs.pop(extra_body, None) or {} extra_body.setdefault(enable_thinking, False) kwargs[extra_body] extra_body return super().invoke(messages, **kwargs) def get_llm() - HelloAgentsLLM: 获取LLM实例(单例模式) Returns: HelloAgentsLLM实例 global _llm_instance if _llm_instance is None: settings get_settings() # HelloAgentsLLM会自动从环境变量读取配置 # 包括OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL等 # 使用NoThinkingLLM关闭Qwen3的思考模式加快响应 _llm_instance NoThinkingLLM() print(f✅ LLM服务初始化成功) print(f 提供商: {_llm_instance.provider}) print(f 模型: {_llm_instance.model}) return _llm_instance30reloadTrue作用?31为什么不直接调用API?而是使用多agent?32如果一个MCPTool需要多个agent使用该怎么办?# 创建共享的MCP工具(只创建一次) print( - 创建共享MCP工具...) self.amap_tool MCPTool( nameamap, description高德地图服务, server_command[uvx, amap-mcp-server], env{AMAP_MAPS_API_KEY: settings.amap_api_key}, auto_expandTrue ) self.amap_tool.expandableTrue # 创建景点搜索Agent print( - 创建景点搜索Agent...) self.attraction_agent SimpleAgent( name景点搜索专家, llmself.llm, system_promptATTRACTION_AGENT_PROMPT ) self.attraction_agent.add_tool(self.amap_tool) # 创建天气查询Agent print( - 创建天气查询Agent...) self.weather_agent SimpleAgent( name天气查询专家, llmself.llm, system_promptWEATHER_AGENT_PROMPT ) self.weather_agent.add_tool(self.amap_tool) # 创建酒店推荐Agent print( - 创建酒店推荐Agent...) self.hotel_agent SimpleAgent( name酒店推荐专家, llmself.llm, system_promptHOTEL_AGENT_PROMPT ) self.hotel_agent.add_tool(self.amap_tool)33重写的流式 think 撞上空 choices 块什么意思?class NoThinkingLLM(HelloAgentsLLM): 关闭思考模式的 LLM 子类。 Qwen3 等模型默认开启思考(thinking)模式会先产生大量推理 token 显著拖慢响应、增加超时风险。这里在真正发起请求时注入 extra_body{enable_thinking: False} 关闭思考。 注意hello_agents 的 invoke 只透传“调用时”的 kwargs不合并构造函数 kwargs而流式 think() 内部写死 create(...) 不接受 extra_body 因此必须同时重写 invoke 与 think 才能覆盖非流式与流式两条路径。 本地 provider(ollama/lmstudio) 不注入避免非 Qwen 服务报错。 _SKIP_PROVIDERS {ollama, lmstudio} def _should_disable_thinking(self) - bool: return getattr(self, provider, None) not in self._SKIP_PROVIDERS def invoke(self, messages: list[dict[str, str]], **kwargs) - str: if self._should_disable_thinking(): extra_body kwargs.pop(extra_body, None) or {} extra_body.setdefault(enable_thinking, False) kwargs[extra_body] extra_body return super().invoke(messages, **kwargs) def think(self, messages: list[dict[str, str]], temperature: float | None None): extra: dict[str, Any] {} if self._should_disable_thinking(): extra[extra_body] {enable_thinking: False} response self._client.chat.completions.create( modelself.model, messagesmessages, temperaturetemperature if temperature is not None else self.temperature, max_tokensself.max_tokens, streamTrue, **extra, ) for chunk in response: # DashScope/Qwen 流式响应中会出现 choices 为空列表的控制块首/尾或 usage 块 # 直接取 [0] 会 IndexError需跳过delta 也可能为 None。 if not getattr(chunk, choices, None): continue delta chunk.choices[0].delta content (delta.content or ) if delta else if content: yield content34返回类型 - Configuration 为什么加引号?35yield fdata: {json.dumps (event,ensure_asciiFalse)}\n\n yield 是干嘛的36总结日常助手提示词应包含角色Role、配置Profile、技能Skills、规则Rules、工作流程Workflow及初始化段Initialization。文案优化与数据查询助手需明确任务目标与输出格式。def定义函数需加括号调用而类实例化不加asyncio.run是异步程序入口。staticmethod使方法无需实例即可调用。Literal限定类型取值**kwargs接收任意关键字参数。async with MsgHub自动管理资源避免手动异常处理。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →