Agentic AI提示工程全景:从原理到实践的架构师指南

关键词:Agentic AI、提示工程、AI架构设计、智能体系统、LLM应用开发、自主智能、AI提示策略

摘要:在人工智能从工具化向自主化演进的关键阶段,Agentic AI(智能体AI)正引领新一轮技术变革。本文作为AI应用架构师的专业指南,深入剖析Agentic AI提示工程的核心原理、技术架构与实践策略。我们将从智能体系统的本质出发,系统讲解如何通过精妙的提示工程设计,赋予AI系统自主决策、规划执行和环境交互能力。文章包含丰富的数学模型、算法流程图、Python代码实现以及真实场景案例分析,为架构师提供从理论到实践的完整知识体系。无论你是构建企业级AI应用,还是探索下一代智能系统,这份智慧锦囊都将帮助你掌握Agentic AI的设计精髓,打造真正具有"思考能力"的智能应用。

1. 背景介绍:AI从工具到智能体的范式转变

1.1 Agentic AI的崛起背景

人工智能的发展历程犹如一部精彩的进化史诗,从早期的专家系统到深度学习革命,再到今天的大语言模型(LLM)时代,我们正见证着AI从被动工具向主动智能体的根本性转变。2023年,随着GPT-4等先进模型的问世,AI领域出现了一个显著的转折点——从简单的"问答交互"迈向更复杂的"自主代理"模式。

问题背景:传统AI系统如同精心设计的瑞士军刀,在特定任务上表现卓越,但缺乏自主决策和持续学习的能力。它们需要人类明确指导每一步操作,无法主动设定目标、规划路径或应对未知情况。这种局限性在复杂业务场景中尤为突出,如企业流程自动化、智能客服系统和个性化推荐引擎等领域。

想象一下传统AI系统就像是一位技艺精湛但需要详细指挥的钢琴家——他能完美演奏你指定的任何曲子,却无法自主创作新作品,也不能根据听众反应调整演奏风格。而Agentic AI则更像是一位能够理解音乐本质、感知观众情绪并即兴创作的音乐大师。

根据Gartner 2024年技术趋势报告,到2026年,75%的企业AI应用将采用Agentic架构,较2023年的不足10%实现跨越式增长。这一趋势背后反映了企业对AI系统自主性、适应性和智能化程度的迫切需求。

1.2 目标读者:AI应用架构师的新角色与挑战

本文的核心读者是AI应用架构师——这群站在技术与业务交汇点的关键人物。在Agentic AI时代,架构师的角色正在发生深刻变化:

  • 从"功能实现者"到"智能塑造者":不再仅是实现特定功能,而是设计AI的思考方式和行为模式
  • 从"系统设计者"到"生态构建者":不仅设计单个系统,而是构建智能体与环境、与其他智能体交互的生态系统
  • 从"需求转化者"到"目标定义者":从被动转化业务需求,到主动为AI系统定义合理、安全、高效的目标

AI应用架构师面临的核心挑战包括:如何平衡AI自主性与可控性、如何设计鲁棒的智能体决策机制、如何确保复杂任务的规划与执行质量、以及如何构建可扩展的多智能体协作系统等。

1.3 核心问题与挑战

Agentic AI系统的构建面临着一系列独特挑战,这些挑战构成了我们探索提示工程原理的出发点:

问题描述:如何通过提示工程设计,使AI系统具备以下关键能力:

  1. 目标导向的自主决策:基于高层目标自动分解任务并做出决策
  2. 环境感知与交互:理解并作用于外部环境,处理不确定性
  3. 长期规划与执行监控:制定复杂任务的执行计划并监控执行过程
  4. 学习与适应能力:从经验中学习并改进行为策略
  5. 多智能体协作:与其他智能体有效协作以完成复杂目标

这些能力的实现,离不开精心设计的提示工程策略。与传统提示工程相比,Agentic AI提示工程需要考虑更复杂的动态交互、更长的决策链条和更高程度的不确定性。

1.4 本章小结

在本章中,我们了解了Agentic AI崛起的技术背景和市场趋势,明确了AI应用架构师在这一新时代面临的角色转变和核心挑战。我们认识到,传统AI系统的局限性正在推动行业向更自主、更智能的Agentic范式转变。

核心概念:

  • Agentic AI代表AI从被动工具向主动智能体的范式转变
  • AI应用架构师的角色正在从功能实现者向智能塑造者和生态构建者演变
  • 构建Agentic AI系统面临自主决策、环境交互、长期规划等多方面挑战
  • 提示工程是解决这些挑战的关键技术手段

接下来,我们将深入探讨Agentic AI和提示工程的核心概念,为理解后续的技术原理和实践策略奠定基础。

2. 核心概念解析:Agentic AI与提示工程的融合

2.1 Agentic AI的核心概念

核心概念:Agentic AI(智能体AI)是指具备自主决策能力、能够感知环境并通过行动影响环境的AI系统。一个完整的智能体通常包含以下核心组件:

  1. 感知模块(Perception):获取和处理环境信息
  2. 认知模块(Cognition):决策、规划和学习
  3. 行动模块(Action):执行决策并作用于环境
  4. 目标模块(Goal):定义和调整系统目标

与传统AI系统相比,Agentic AI具有以下显著特征:

  • 自主性(Autonomy):无需人类持续指导,能够独立完成任务
  • 主动性(Proactivity):不仅被动响应,还能主动发起行动
  • 社会性(Social Ability):能够与人类和其他智能体交互协作
  • 学习性(Learning Ability):能够从经验中学习并改进行为

为了更好地理解Agentic AI,我们可以将其比作一位优秀的项目经理:他接收高层目标(如"推出新产品"),感知团队资源和市场环境,制定详细计划,执行过程中监控进度并根据反馈调整策略,最终完成目标。这位项目经理不需要事无巨细的指令,而是具备自主规划和执行的能力。

2.2 提示工程的核心概念

核心概念:提示工程(Prompt Engineering)是设计和优化输入提示以引导AI模型产生期望输出的过程。在Agentic AI语境下,提示工程不仅是简单的输入优化,而是构建智能体"思维框架"和"行为准则"的关键手段。

Agentic AI提示工程包含以下核心要素:

  1. 角色定义(Role Definition):为智能体设定明确的身份和能力范围
  2. 目标设定(Goal Specification):清晰定义智能体需要达成的目标
  3. 能力赋予(Capability Enabling):通过提示赋予智能体特定推理和决策能力
  4. 约束定义(Constraint Definition):设定智能体行为的边界和限制
  5. 反馈机制(Feedback Mechanism):设计提示模板以处理和响应环境反馈

传统提示工程与Agentic AI提示工程的对比可以概括为:传统提示工程像是给AI写"操作指南",而Agentic AI提示工程更像是给AI写"角色设定"和"行为准则",让AI能够在复杂环境中自主决策和行动。

2.3 Agentic AI与传统AI的区别

为了更清晰地理解Agentic AI的独特性,我们通过表格对比其与传统AI系统的核心属性差异:

属性维度 传统AI系统 Agentic AI系统
控制方式 人类显式控制每一步 人类设定目标,AI自主控制过程
交互模式 单次或有限轮次交互 持续动态交互,直至目标达成
目标导向 以任务为中心,关注单次输出 以目标为中心,关注最终结果
环境感知 有限感知,通常是静态输入 持续感知,动态响应环境变化
决策能力 基于预定义规则或模式匹配 基于复杂推理和动态规划
学习机制 主要在训练阶段,静态模型 训练后仍能通过经验持续学习
鲁棒性要求 处理预期场景,容错性低 处理意外情况,容错性高
系统复杂度 相对简单,功能单一 高度复杂,功能综合
应用场景 结构化、确定性任务 非结构化、不确定性任务

这种差异可以用一个生动的比喻来说明:传统AI系统就像是自动售货机——你选择特定商品,它执行固定动作提供商品;而Agentic AI系统则像是一位全能管家——你告诉它"准备一个晚宴",它会自主规划菜单、采购食材、烹饪菜肴、布置餐桌,全程无需你进一步指导。

2.4 概念结构与核心要素组成

Agentic AI系统的概念结构可以用一个层次化模型来描述,从基础到高层依次为:

  1. 基础设施层:包括计算资源、数据存储和通信网络
  2. 模型层:基础LLM模型和其他AI能力模块
  3. 智能体框架层:提供智能体运行的核心框架和组件
  4. 提示工程层:设计提示策略塑造智能体行为
  5. 应用层:具体业务场景和用户交互界面

在这一结构中,提示工程层扮演着关键的"翻译"和"调控"角色,它将高层业务需求转化为智能体可理解的指令,同时调控智能体的决策过程和行为模式。

Agentic AI提示工程的核心要素包括:

  • 身份定义:智能体的角色、专业领域和能力范围
  • 目标框架:目标设定、优先级排序和约束条件
  • 决策逻辑:问题分析、方案生成和评估选择的思维模式
  • 行动模板:与环境交互的标准化流程和格式
  • 反馈处理:接收、解析和响应反馈的机制
  • 记忆管理:短期上下文和长期经验的组织与使用

2.5 概念之间的关系

2.5.1 Agentic AI核心概念关系图

以下是Agentic AI系统核心概念之间的关系图,展示了智能体各组件如何协同工作:

uses

uses

uses

has

stores

employs

includes

includes

includes

includes

includes

includes

includes

defines

has

includes

includes

AGENT

PERCEPTION

COGNITION

ACTION

GOAL

MEMORY

LEARNING

PLANNING

DECISION

REASONING

SENSING

INTERPRETATION

EXECUTION

MONITORING

TARGET

CONSTRAINTS

SHORT_TERM

LONG_TERM

2.5.2 提示工程与Agentic AI组件的交互关系

提示工程通过精心设计的指令和模板,与Agentic AI的各个组件交互,引导智能体的行为:

Agentic AI组件

定义

设定

引导

塑造

规范

组织

优化

依赖

使用

参考

生成

产生

影响

改进

提示工程

智能体身份与能力

目标与约束

感知处理

认知决策

行动执行

记忆系统

学习机制

环境反馈

这个交互关系图展示了提示工程如何像"指挥家"一样,协调智能体的各个组件协同工作,实现自主智能行为。

2.6 边界与外延

Agentic AI提示工程有其明确的边界和广阔的外延:

边界

  • 提示工程不能超越基础模型的能力上限
  • 提示工程无法弥补数据质量或数量的根本缺陷
  • 提示工程受限于模型的上下文窗口大小
  • 提示工程不能解决所有逻辑推理和数学能力问题

外延

  • 与强化学习结合,形成"提示工程+RL"的混合方法
  • 与多模态模型结合,处理文本、图像、语音等多类型输入
  • 与知识图谱结合,增强智能体的结构化知识应用能力
  • 与外部工具集成,扩展智能体的实际操作能力
  • 与人类反馈机制结合,实现持续改进

理解这些边界和外延,有助于架构师在实际应用中设定合理期望,充分发挥提示工程的价值,同时避免陷入"提示万能"的误区。

2.7 本章小结

在本章中,我们深入解析了Agentic AI和提示工程的核心概念,明确了它们之间的关系和相互作用方式。我们了解到Agentic AI系统具有自主性、主动性、社会性和学习性等关键特征,与传统AI系统有本质区别。

核心概念:

  • Agentic AI系统由感知、认知、行动和目标等核心模块组成
  • 提示工程在Agentic AI中不仅是输入优化,更是智能体行为的"指挥系统"
  • Agentic AI提示工程需要考虑身份定义、目标设定、决策引导等多方面要素
  • 提示工程通过与智能体各组件交互,协调引导整体行为

我们通过表格对比了传统AI与Agentic AI的核心差异,通过关系图展示了Agentic AI系统的概念结构,以及提示工程与各组件的交互方式。同时,我们明确了Agentic AI提示工程的边界和外延,为实际应用提供了理论框架。

这些概念为我们后续探讨技术原理与实现方法奠定了坚实基础。接下来,我们将深入研究Agentic AI提示工程的技术原理,包括数学模型、算法流程和核心实现方法。

3. 技术原理与实现:Agentic AI提示工程的底层机制

3.1 Agentic AI系统的工作原理

Agentic AI系统的工作原理可以概括为一个持续循环的"感知-思考-行动"过程,但比传统的简单循环要复杂得多。这一过程受到精心设计的提示工程策略的引导和调控。

3.1.1 BDI模型:信念-愿望-意图框架

Agentic AI系统的核心认知模型通常基于BDI(Belief-Desire-Intention)架构,这是理解智能体决策过程的基础:

  • 信念(Belief):智能体对环境和自身状态的认知,表示为BtB_tBt,即ttt时刻的信念集合
  • 愿望(Desire):智能体希望达成的目标集合,表示为DtD_tDt
  • 意图(Intention):智能体承诺要实现的特定目标和计划,表示为ItI_tIt

BDI模型的动态更新过程可以用以下公式表示:

Bt+1=update(Bt,Pt,At,Ot)B_{t+1} = update(B_t, P_t, A_t, O_t)Bt+1=update(Bt,Pt,At,Ot)

其中PtP_tPt是感知输入,AtA_tAt是智能体的行动,OtO_tOt是行动结果。

Dt+1=generate(Bt+1,G)D_{t+1} = generate(B_{t+1}, G)Dt+1=generate(Bt+1,G)

其中GGG是全局目标。

It+1=filter(Bt+1,Dt+1,It)I_{t+1} = filter(B_{t+1}, D_{t+1}, I_t)It+1=filter(Bt+1,Dt+1,It)

意图基于当前信念、愿望和已有意图过滤产生。

At+1=plan(Bt+1,It+1)A_{t+1} = plan(B_{t+1}, I_{t+1})At+1=plan(Bt+1,It+1)

行动由当前信念和意图规划生成。

这个BDI模型构成了Agentic AI系统的思考核心,而提示工程则通过定义信念更新规则、愿望生成方式和意图过滤标准,来引导智能体的决策过程。

3.1.2 目标导向的架构

Agentic AI系统采用目标导向架构,从高层目标到具体行动形成一个层次化结构:

  1. 高层目标:用户或系统设定的总体目标
  2. 子目标分解:将高层目标分解为可执行的子目标
  3. 计划生成:为每个子目标生成详细执行计划
  4. 行动执行:执行计划中的具体行动
  5. 监控与调整:监控执行过程,根据反馈调整计划

这一过程可以用目标达成函数来表示:

G(S,A)=max⁡a∈AQ(S,a)G(S, A) = \max_{a \in A} Q(S, a)G(S,A)=aAmaxQ(S,a)

其中SSS是当前状态,AAA是可能行动集合,Q(S,a)Q(S, a)Q(S,a)是状态-行动价值函数,表示在状态SSS下执行行动aaa的预期价值。

提示工程通过设计目标分解策略、计划评估标准和行动选择机制,来优化这一目标达成过程。

3.2 提示工程的技术原理

Agentic AI提示工程的技术原理基于认知科学、语言学和人工智能理论的交叉融合。它通过精心设计的语言结构和内容,引导AI模型展现出类似人类的决策和推理能力。

3.2.1 提示工程的认知引导机制

提示工程通过以下认知引导机制影响智能体的决策过程:

  1. 框架设定:定义问题解决的边界和视角
  2. 注意力引导:突出关键信息和考虑因素
  3. 推理路径提示:提供思考过程的结构化引导
  4. 知识激活:触发模型内部相关知识的提取和应用
  5. 元认知提示:引导智能体反思和监控自身思考过程

这些机制可以用信息处理模型来解释:

M(P,K)=fattention(P,fencoding(P,K))M(P, K) = f_{attention}(P, f_{encoding}(P, K))M(P,K)=fattention(P,fencoding(P,K))

其中PPP是提示信息,KKK是模型知识,fencodingf_{encoding}fencoding是信息编码函数,fattentionf_{attention}fattention是注意力分配函数,M(P,K)M(P, K)M(P,K)是模型的认知状态。

3.2.2 提示复杂度与智能体能力关系

提示的复杂度与智能体展现的能力之间存在正相关关系,但这种关系并非线性。存在一个临界点,超过该点后,增加提示复杂度可能导致性能下降:

Performance=α⋅log⁡(Complexity+1)+β⋅e−γ⋅(Complexity−θ)2Performance = \alpha \cdot \log(Complexity + 1) + \beta \cdot e^{-\gamma \cdot (Complexity - \theta)^2}Performance=αlog(Complexity+1)+βeγ(Complexityθ)2

其中α,β,γ,θ\alpha, \beta, \gamma, \thetaα,β,γ,θ是经验参数,这个公式描述了提示复杂度与性能之间的关系——初期随复杂度增加而提升,达到峰值后随过度复杂而下降。

这一原理告诉我们,提示工程需要在信息充分性和简洁性之间找到平衡,这就是为什么精心设计的提示往往比冗长复杂的提示效果更好。

3.3 数学模型:Agentic AI决策过程的形式化描述

为了深入理解Agentic AI的决策过程,我们需要引入更精确的数学模型。这些模型不仅帮助我们理解原理,也为提示工程设计提供理论指导。

3.3.1 马尔可夫决策过程(MDP)模型

Agentic AI系统的决策过程可以建模为马尔可夫决策过程(MDP),定义为一个五元组(S,A,P,R,γ)(S, A, P, R, \gamma)(S,A,P,R,γ)

  • SSS:状态空间(所有可能的环境状态集合)
  • AAA:行动空间(智能体可能的行动集合)
  • PPP:状态转移概率,P(s′∣s,a)P(s'|s,a)P(ss,a)表示在状态sss执行行动aaa后转移到状态s′s's的概率
  • RRR:奖励函数,R(s,a,s′)R(s,a,s')R(s,a,s)表示从状态sss执行行动aaa转移到状态s′s's获得的奖励
  • γ\gammaγ:折扣因子,表示未来奖励的现值权重

智能体的目标是找到最优策略π∗(s)=arg⁡max⁡aQ∗(s,a)\pi^*(s) = \arg\max_a Q^*(s,a)π(s)=argmaxaQ(s,a),其中Q∗(s,a)Q^*(s,a)Q(s,a)是最优状态-行动价值函数,满足贝尔曼方程:

Q∗(s,a)=E[R(s,a,s′)+γmax⁡a′Q∗(s′,a′)]Q^*(s,a) = \mathbb{E}[R(s,a,s') + \gamma \max_{a'} Q^*(s',a')]Q(s,a)=E[R(s,a,s)+γamaxQ(s,a)]

提示工程通过设计奖励函数RRR的实现方式、定义状态空间SSS的表示方法,以及引导策略π\piπ的搜索方向,来优化MDP模型的求解过程。

3.3.2 贝叶斯推理模型

在不确定性环境中,Agentic AI系统需要通过贝叶斯推理来更新信念并做出决策。贝叶斯推理公式为:

P(H∣E)=P(E∣H)P(H)P(E)P(H|E) = \frac{P(E|H)P(H)}{P(E)}P(HE)=P(E)P(EH)P(H)

其中:

  • P(H∣E)P(H|E)P(HE)是后验概率,表示观察到证据EEE后假设HHH的概率
  • P(E∣H)P(E|H)P(EH)是似然度,表示在假设HHH下观察到证据EEE的概率
  • P(H)P(H)P(H)是先验概率,表示在没有证据时假设HHH的概率
  • P(E)P(E)P(E)是证据的边缘概率

在Agentic AI系统中,提示工程通过设计假设空间HHH、证据收集策略EEE和概率更新规则,引导智能体的贝叶斯推理过程。例如,通过提示引导智能体考虑特定假设,或赋予不同证据不同的权重。

3.3.3 多目标优化模型

现实世界的决策往往涉及多个相互冲突的目标,Agentic AI系统需要在这些目标之间进行权衡。多目标优化模型可以表示为:

max⁡a∈A[f1(a),f2(a),...,fn(a)]\max_{a \in A} [f_1(a), f_2(a), ..., f_n(a)]aAmax[f1(a),f2(a),...,fn(a)]
s.t.gi(a)≤0,i=1,...,ms.t. \quad g_i(a) \leq 0, \quad i=1,...,ms.t.gi(a)0,i=1,...,m

其中fj(a)f_j(a)fj(a)是第jjj个目标函数,gi(a)g_i(a)gi(a)是第iii个约束条件。

求解多目标优化问题通常需要找到帕累托最优解集合。提示工程通过设计目标函数的优先级、权重和约束条件的表达方式,帮助智能体在复杂的多目标决策空间中找到合理的解决方案。

3.4 算法流程图:Agentic AI系统工作流程

Agentic AI系统的完整工作流程是一个复杂的循环过程,涉及目标管理、计划生成、行动执行和学习改进等多个环节。

3.4.1 智能体核心工作流程

主循环

计划执行与监控

差距为零

差距不为零

符合预期

不符合预期

未完成

已完成

启动智能体

接收初始目标G

初始化信念库B和意图库I

感知环境信息

更新信念库B

评估当前状态与目标差距

达成目标,任务完成

生成/更新愿望D

从愿望D中选择意图I

制定行动计划P

执行计划步骤p

观察执行结果O

评估结果是否符合预期

记录成功经验

分析失败原因,更新信念

检查是否完成所有步骤

调整计划或选择新意图

评估目标达成度

总结经验,更新长期记忆

智能体休眠或接收新目标

这个流程图展示了Agentic AI系统从启动到完成任务的完整工作流程。提示工程通过设计每个环节的决策标准和操作指南,引导整个流程的顺利进行。

3.4.2 提示工程引导的决策流程

在核心工作流程中,决策环节是智能体的"大脑",提示工程在这一环节发挥关键作用:

提示工程引导的评估过程

当前状态S

检索相关记忆M

生成可能行动方案A1...An

应用可行性评估标准

应用效果预测标准

应用风险评估标准

应用资源消耗评估标准

综合评估结果

选择最优行动方案A*

执行行动A*

提示工程通过定义可行性、效果、风险和资源消耗等评估标准,引导智能体在多个可能的行动方案中做出合理选择。

3.5 算法源代码:Agentic AI提示工程核心实现

为了将上述理论转化为实践,我们现在介绍一个基于Python的Agentic AI系统核心框架实现,重点展示提示工程如何与智能体架构结合。

3.5.1 智能体核心类定义
import numpy as np
from typing import List, Dict, Callable, Any, Optional, Tuple

class BeliefState:
    """信念状态管理类,跟踪智能体对环境的认知"""
    
    def __init__(self, initial_beliefs: Dict[str, Any] = None):
        self.beliefs = initial_beliefs or {}
        self.confidence = {}  # 信念的置信度
        self.last_updated = {}  # 最后更新时间
        
    def update_belief(self, key: str, value: Any, confidence: float = 1.0):
        """更新特定信念"""
        self.beliefs[key] = value
        self.confidence[key] = confidence
        self.last_updated[key] = self._get_current_time()
        
    def get_belief(self, key: str, default: Any = None) -> Any:
        """获取特定信念"""
        return self.beliefs.get(key, default)
    
    def get_confidence(self, key: str) -> float:
        """获取信念的置信度"""
        return self.confidence.get(key, 0.0)
    
    def _get_current_time(self) -> float:
        """获取当前时间戳"""
        import time
        return time.time()
    
    def to_prompt_context(self) -> str:
        """将信念状态转换为提示上下文"""
        context = "当前信念状态:\n"
        for key, value in self.beliefs.items():
            conf = self.confidence.get(key, 0.0)
            context += f"- {key}: {value} (置信度: {conf:.2f})\n"
        return context

class GoalManager:
    """目标管理类,处理目标设定、优先级排序和完成度跟踪"""
    
    def __init__(self):
        self.goals = []  # 目标列表,每个目标是字典
        self.priorities = []  # 目标优先级
        
    def add_goal(self, goal: str, priority: float = 0.5, 
                 deadline: Optional[float] = None, 
                 dependencies: List[str] = None):
        """添加新目标"""
        goal_id = f"goal_{len(self.goals) + 1}"
        self.goals.append({
            "id": goal_id,
            "description": goal,
            "priority": priority,
            "deadline": deadline,
            "dependencies": dependencies or [],
            "status": "pending",  # pending, in_progress, completed, failed
            "progress": 0.0,
            "sub_goals": []
        })
        self._update_priorities()
        
    def _update_priorities(self):
        """更新目标优先级排序"""
        # 根据优先级和截止日期等因素排序
        self.priorities = sorted(range(len(self.goals)), 
                                key=lambda i: (-self.goals[i]["priority"], 
                                              self.goals[i]["deadline"] or float('inf')))
        
    def get_top_goal(self) -> Optional[Dict]:
        """获取当前最高优先级的目标"""
        if not self.goals:
            return None
        return self.goals[self.priorities[0]]
    
    def update_goal_progress(self, goal_id: str, progress: float, status: str = None):
        """更新目标进度"""
        for goal in self.goals:
            if goal["id"] == goal_id:
                goal["progress"] = min(max(progress, 0.0), 1.0)
                if status:
                    goal["status"] = status
                # 如果进度达到100%,自动标记为完成
                if goal["progress"] >= 1.0 and status != "failed":
                    goal["status"] = "completed"
                self._update_priorities()
                break
                
    def to_prompt_context(self) -> str:
        """将目标状态转换为提示上下文"""
        context = "当前目标状态:\n"
        for i in self.priorities[:3]:  # 只显示前3个优先级最高的目标
            goal = self.goals[i]
            context += f"- [优先级: {goal['priority']:.2f}] {goal['description']} "
            context += f"(进度: {goal['progress']*100:.0f}%, 状态: {goal['status']})\n"
        return context

class AgenticAI:
    """Agentic AI核心类,整合信念、目标、计划和行动能力"""
    
    def __init__(self, llm_model, system_prompt: str):
        self.beliefs = BeliefState()
        self.goals = GoalManager()
        self.plan = []  # 当前计划
        self.memory = []  # 短期记忆
        self.long_term_memory = {}  # 长期记忆
        self.llm = llm_model  # 底层LLM模型
        self.system_prompt = system_prompt  # 系统级提示
        self.action_history = []  # 行动历史
        
    def set_goal(self, goal: str, priority: float = 0.5, 
                 deadline: Optional[float] = None, 
                 dependencies: List[str] = None):
        """设置智能体目标"""
        self.goals.add_goal(goal, priority, deadline, dependencies)
        
    def perceive(self, observation: str, confidence: float = 1.0):
        """处理感知到的环境信息"""
        # 提取关键信息并更新信念
        key = f"observation_{len(self.action_history) + 1}"
        self.beliefs.update_belief(key, observation, confidence)
        
        # 也可以通过LLM处理观察,提取结构化信息
        perception_prompt = self._create_perception_prompt(observation)
        structured_info = self._query_llm(perception_prompt)
        for k, v in structured_info.items():
            self.beliefs.update_belief(k, v, confidence * 0.8)  # 降低从文本提取信息的置信度
            
    def _create_perception_prompt(self, observation: str) -> str:
        """创建感知处理提示"""
        return f"""
        作为一个智能体的感知处理模块,你需要从以下观察中提取关键信息,并以JSON格式返回结构化数据。
        提取的信息应包括:实体、事件、关系、状态变化和可能的影响。
        
        观察内容:{observation}
        
        请仅返回JSON,不要添加其他解释。
        """
    
    def decide(self) -> str:
        """做出决策,生成下一步行动"""
        current_goal = self.goals.get_top_goal()
        if not current_goal:
            return "等待新目标"
            
        # 创建决策提示
        decision_prompt = self._create_decision_prompt(current_goal)
        
        # 查询LLM获取决策
        action = self._query_llm(decision_prompt)
        return action
        
    def _create_decision_prompt(self, goal: Dict) -> str:
        """创建决策提示"""
        prompt = f"""{self.system_prompt}
        
        {self.beliefs.to_prompt_context()}
        
        {self.goals.to_prompt_context()}
        
        当前计划: {self.plan if self.plan else "无"}
        
        行动历史: {[a[:50] for a in self.action_history[-3:]]}  # 只显示最近3个行动
        
        任务: 基于以上信息,为达成目标"{goal['description']}",你需要决定下一步最应该采取什么行动。
        请考虑当前状态、已有计划和可能的行动选项。你的回应应该是一个具体、明确的行动指令。
        """
        return prompt
        
    def act(self, action: str) -> str:
        """执行行动并返回结果"""
        # 记录行动历史
        self.action_history.append(action)
        
        # 这里可以连接到实际的行动执行模块
        # 为简化,我们假设行动结果是通过LLM模拟的
        result_prompt = self._create_action_result_prompt(action)
        result = self._query_llm(result_prompt)
        
        # 将行动结果添加到记忆
        self.memory.append(f"行动: {action}, 结果: {result}")
        
        # 如果记忆过长,进行总结
        if len(self.memory) > 10:
            summary_prompt = self._create_memory_summary_prompt()
            memory_summary = self._query_llm(summary_prompt)
            self.long_term_memory[f"summary_{len(self.long_term_memory)+1}"] = memory_summary
            self.memory = []  # 清空短期记忆
            
        return result
        
    def _create_action_result_prompt(self, action: str) -> str:
        """创建行动结果模拟提示"""
        return f"""
        基于以下智能体的行动,模拟在合理环境中可能产生的结果。
        行动: {action}
        信念状态: {self.beliefs.beliefs}
        目标: {self.goals.get_top_goal()['description']}
        
        请以客观、简洁的方式描述这一行动可能产生的直接结果和观察反馈。
        """
        
    def _create_memory_summary_prompt(self) -> str:
        """创建记忆总结提示"""
        return f"""
        请总结以下智能体记忆内容,提取关键信息、经验教训和有用结论:
        
        {chr(10).join(self.memory)}
        
        总结应简洁明了,突出对未来决策有帮助的信息。
        """
        
    def _query_llm(self, prompt: str) -> Any:
        """查询底层LLM模型"""
        # 这里是与实际LLM模型交互的代码
        # 为简化,我们假设使用一个模拟函数
        return self._simulate_llm_response(prompt)
        
    def _simulate_llm_response(self, prompt: str) -> Any:
        """模拟LLM响应(实际应用中替换为真实LLM调用)"""
        # 这个函数仅用于演示,实际实现应调用真实的LLM API
        import random
        if "JSON" in prompt and "提取" in prompt:
            return {"entity": "示例实体", "status": "正常", "event": "无特殊事件"}
        elif "决策" in prompt or "行动" in prompt:
            return f"执行任务: {self.goals.get_top_goal()['description']}的下一步操作"
        else:
            return "模拟行动结果: 任务有所进展,状态良好。"
            
    def run(self, max_steps: int = 10):
        """运行智能体主循环"""
        step = 0
        while step < max_steps:
            current_goal = self.goals.get_top_goal()
            if not current_goal or current_goal["status"] == "completed":
                print("目标已完成或无目标,停止运行")
                break
                
            print(f"\n=== 步骤 {step + 1} ===")
            print(f"当前目标: {current_goal['description']}")
            
            # 决策阶段
            action = self.decide()
            print(f"决定行动: {action}")
            
            # 行动阶段
            result = self.act(action)
            print(f"行动结果: {result}")
            
            # 感知阶段(将结果作为新的观察)
            self.perceive(result)
            
            # 更新目标进度(简化版)
            if "完成" in result or "成功" in result:
                progress_increase = random.uniform(0.2, 0.5)
                new_progress = min(current_goal["progress"] + progress_increase, 1.0)
                self.goals.update_goal_progress(current_goal["id"], new_progress)
                print(f"目标进度: {new_progress*100:.0f}%")
                
            step += 1
3.4.3 提示工程策略实现

以下是一些关键的提示工程策略实现,这些策略可以显著提升Agentic AI系统的性能:

def create_system_prompt(agent_role: str, capabilities: List[str], constraints: List[str]) -> str:
    """
    创建系统级提示,定义智能体的角色、能力和约束
    
    参数:
        agent_role: 智能体的角色描述
        capabilities: 智能体具备的能力列表
        constraints: 智能体需要遵守的约束条件列表
        
    返回:
        系统提示字符串
    """
    capabilities_str = "\n".join([f"- {cap}" for cap in capabilities])
    constraints_str = "\n".join([f"- {con}" for con in constraints])
    
    return f"""你是一个基于Agentic AI架构的智能体,扮演{agent_role}的角色。

    你的核心能力包括:
    {capabilities_str}

    在执行任务时,你必须遵守以下约束:
    {constraints_str}

    你的决策过程应该是透明的,考虑所有可用信息,并基于合理的推理。当面对不确定性时,你应该明确表示,并采取谨慎的行动。
    你拥有持续学习的能力,应该从经验中总结教训,并改进你的决策策略。
    """

def create_reflection_prompt(actions: List[str], outcomes: List[str]) -> str:
    """
    创建反思提示,引导智能体从行动和结果中学习
    
    参数:
        actions: 行动列表
        outcomes: 对应结果列表
        
    返回:
        反思提示字符串
    """
    if len(actions) != len(outcomes):
        raise ValueError("行动和结果列表长度必须相同")
        
    action_outcome_pairs = "\n".join([
        f"行动 {i+1}: {action}\n结果 {i+1}: {outcome}" 
        for i, (action, outcome) in enumerate(zip(actions, outcomes))
    ])
    
    return f"""作为一个具备学习能力的智能体,你需要从以下行动和结果中反思并提取经验教训。

    行动与结果历史:
    {action_outcome_pairs}

    请按照以下结构进行反思:
    1. 成功经验:哪些行动产生了积极结果?为什么?
    2. 失败教训:哪些行动效果不佳?原因是什么?
    3. 改进策略:未来类似情况下,你会采取哪些不同的行动?
    4. 通用原则:从这些经验中可以总结出哪些通用决策原则?

    你的反思应该具体、深入,并能直接指导未来的决策。
    """

def create_goal_decomposition_prompt(goal: str, context: str) -> str:
    """
    创建目标分解提示,引导智能体将复杂目标分解为子目标
    
    参数:
        goal: 复杂目标
        context: 当前环境和约束的上下文描述
        
    返回:
        目标分解提示字符串
    """
    return f"""作为一个目标导向的智能体,你需要将以下复杂目标分解为一系列有序的子目标。

    复杂目标:{goal}
    
    上下文信息:{context}

    请遵循以下原则进行目标分解:
    - 子目标应该具体、可执行,并有明确的完成标准
    - 子目标之间应该有合理的顺序和依赖关系
    - 子目标集合应该能够完全实现总目标
    - 考虑可用资源和潜在约束
    - 每个子目标应该有可估计的难度和时间要求

    请以编号列表形式返回子目标,每个子目标包括:描述、优先级(1-10)、预计难度(1-10)和依赖关系。
    """

def create_planning_prompt(goal: str, subgoals: List[str], beliefs: str) -> str:
    """
    创建计划生成提示,引导智能体为目标创建详细计划
    
    参数:
        goal: 目标
        subgoals: 子目标列表
        beliefs: 当前信念状态
        
    返回:
        计划生成提示字符串
    """
    subgoals_str = "\n".join([f"- {sg}" for sg in subgoals])
    
    return f"""作为一个智能规划系统,你需要为实现以下目标创建详细行动计划。

    目标:{goal}
    
    子目标:
    {subgoals_str}
    
    当前状态:{beliefs}

    请制定一个详细计划,包括:
    1. 具体步骤列表,每个步骤应包含:行动描述、所需资源、预期结果和成功标准
    2. 步骤之间的顺序和依赖关系
    3. 可能的风险和应对策略
    4. 进度跟踪和评估方法

    计划应实用、详细,并考虑到可能的不确定性和障碍。
    """

def create_self_monitoring_prompt(goal: str, plan: str, progress: str) -> str:
    """
    创建自我监控提示,引导智能体评估自身表现并调整行为
    
    参数:
        goal: 当前目标
        plan: 原始计划
        progress: 当前进度描述
        
    返回:
        自我监控提示字符串
    """
    return f"""作为一个具备自我监控能力的智能体,你需要评估当前目标进展并决定是否需要调整计划。

    目标:{goal}
    
    原始计划:{plan}
    
    当前进度:{progress}

    请按照以下结构进行评估:
    1. 进度评估:当前进展是否符合预期?与计划的偏差有多大?
    2. 原因分析:导致偏差的主要原因是什么?
    3. 计划调整:是否需要调整计划?如果需要,具体调整什么?
    4. 资源重新分配:是否需要重新分配资源?如何分配?
    5. 风险评估:调整计划可能带来哪些新的风险?

    你的评估应该客观、基于证据,并提出具体可行的调整建议。
    """
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐