系列100 天系统学习 AI Agent 开发当前阶段01 - Agent 基础与环境搭建今日目标彻底搞懂 Agent System Prompt 的核心骨架角色、目标、边界、工具规则、输出格式、异常处理。标签AI Agent大模型Agent开发Prompt Engineering很多刚接触 Agent 开发的同学写 System Prompt 就像在“求神拜佛”——疯狂堆砌形容词一旦模型输出不稳定就继续往里加约束条件最后变成了一篇小作文。今天是咱们 100 天系列的第 3 天咱们要把地基打牢Prompt 不是玄学而是工程。如果 Agent 指令没有清晰地界定角色、边界、工具使用规则和异常兜底方案后面做工具调用、长文本记忆和效果评测都会变成“凭感觉盲调”。今天咱们不贪多就讲透这一件事并手撕一个你明天就能直接复制进项目里的工业级 Prompt 框架。一、 核心认知Agent 指令到底在解决什么问题在写代码之前我们需要先理清几个容易踩坑的概念边界。1. 提示词越长 ≠ 越稳定新手常有的误解是只要我把每一种情况都写进 Prompt 里Agent 就不会出错。正解真正重要的是规则可执行、指令无冲突、输出能验证。Prompt 是用来设定“工作流”而不是用来穷举“所有异常”的。2. 责任划分模型与代码的边界把普通聊天机器人叫成 Agent往往是因为分不清谁该干什么。在真实的 Agent 开发中务必记住这个原则大模型LLM负责意图理解、逻辑推理、工具参数生成、最终文本润色。代码负责权限控制、数据校验、API 状态维护、报错重试兜底。千万别让大模型去硬算精确的数学题或者判断数据库的权限这些是工程代码该干的事。二、 今日实战为“资料整理助手”写一份标准 System Prompt为了让理论落地今天的主任务是为一个【资料整理助手 Agent】编写 System Prompt。一个稳定的工业级 Agent 指令必须包含以下几个核心模块。你可以把这个模板直接保存作为以后开发 Agent 的基座# Role (角色定位) 你是一个专业、严谨的「资料整理助手」。你的主要职责是从杂乱的文本、链接或文档中提取核心信息并进行结构化归纳。 # Objective (核心目标) 1. 快速理解用户输入的冗长资料。 2. 识别并提取关键数据时间、地点、人物、核心结论。 3. 使用指定工具查证缺失的背景信息。 4. 输出格式统一、没有废话的摘要报告。 # Constraints (边界与约束 - 极其重要) - 绝对忠实于原文如果不确定某项信息请明确标记为“未提及”或调用搜索工具禁止自行捏造幻觉。 - 权限限制仅执行资料整理与信息检索任务拒绝回答与该领域无关的闲聊问题。 - 中立客观不要在总结中加入你个人的主观评价。 # Tools Strategy (工具策略) 你有权调用以下工具 1. web_search: 当用户资料中存在明显的信息断层或需要最新数据佐证时调用。 2. format_validator: 在最终输出前必须确保你的输出符合规定的 JSON 或 Markdown 格式。 - 工具使用原则先理解原文如信息足够则不调用工具如遇“不确定信息”必须先调用 web_search。 # Output Format (输出格式) 请严格按照以下 Markdown 格式输出最终结果 ## 1. 核心摘要 (100字以内) ## 2. 关键实体提取 (列表形式) ## 3. 待核实信息 (如无则写“无”)三、 最小闭环Prompt 是如何在工程中跑通的前面写的 Prompt 如果只是停留在概念上很容易出现“Demo 跑得通一上生产就崩溃”的问题。Agent 的核心在于输入 - 决策 - 工具调用 - 观察 - 输出这五步。我用一段伪代码帮你直观理解这个最小闭环中Prompt 和代码是如何配合的defrun_agent_loop(user_input,system_prompt):# 1. 初始化对话历史 (载入今天写好的框架)messages[{role:system,content:system_prompt},{role:user,content:user_input}]whileTrue:# 2. 模型决策 (LLM 负责推理)responsellm.generate(messages)# 3. 解析模型输出判断是否需要调用工具ifresponse.wants_to_call_tool:tool_nameresponse.tool_name tool_argsresponse.tool_args# 4. 代码执行工具 异常兜底 (工程代码负责)try:observationexecute_tool(tool_name,tool_args)exceptExceptionase:observationf工具执行失败错误信息:{e}。请调整参数后重试。# 将观察结果喂给模型继续循环messages.append({role:tool_observation,content:observation})else:# 5. 任务完成输出最终结果returnresponse.final_text这段伪代码揭示了 Agent 开发中最重要的一点Prompt 决定了wants_to_call_tool的准确率而execute_tool的 try-catch 决定了系统的下限。四、 今日总结与反思今天的内容可以浓缩成一张结构化的学习卡片欢迎收藏{Day:3,Topic:Agent 指令应该如何写才稳定,Core_Principle:角色定位清晰 边界约束严格 工具策略明确 输出格式可解析,Pitfall:试图用超长的 Prompt 解决所有工程 Bug。记住逻辑错误用代码兜底而不是加长提示词。,Next_Step:明天我们把这个 Prompt 放进真实的开发环境中看看模型在实际调用工具时会遇到什么坑。}100 天系列最有价值的地方不是每天换一个新名词而是每天都能留下可以复用的工程产物。今天这套 Prompt 框架和伪代码逻辑我们会在后面的实战项目中反复用到。明天我们将进入 Agent 的记忆与状态管理环节。咱们 Day 004 见 讨论时间大家在写 Prompt 的时候遇到过哪些“模型死活听不懂指令”的崩溃瞬间欢迎在评论区聊聊我来帮你诊断一下是不是“责任划分”出了问题。