camel-ai Agent模块- DeductiveReasonerAgent

DeductiveReasonerAgent 简介

DeductiveReasonerAgent(演绎推理智能体)设定初始状态,目标状态,使用大模型完成推理过程。专注于逻辑推理和演绎。将复杂问题分解为更小、可管理的步骤。

DeductiveReasonerAgent 主要方法

deduce_conditions_and_quality

输入 :起始状态、目标状态、角色字典(可选)

逻辑:给定提示词,设定初始状态、目标状态,角色,进行逻辑推理和演绎,提取结构化数据

输出:结构化的数据,输出样例

python 复制代码
{'conditions': {'condition 1': '提供教育与技能培训,以增强个人的就业能力。', 'condition 2': '提供融资渠道,如小额信贷,以支持创业和投资。', 'condition 3': '政府政策应促进公平的经济机会和社会保障。'}, 'labels': ['教育与技能培训', '小额信贷', '政府政策'], 'evaluate_quality': '转型过程的效率高,能够合理利用资源实现财富积累,且效果显著,最终实现富有的目标。'}

提示词

python 复制代码
        deduce_prompt = """You are a deductive reasoner. You are tasked to 
        complete the TASK based on the THOUGHT OF DEDUCTIVE REASONING, the 
        STARTING STATE A and the TARGET STATE B. You are given the CONTEXT 
        CONTENT to help you complete the TASK.
Your answer MUST strictly adhere to the structure of ANSWER TEMPLATE, ONLY 
fill in the BLANKs, and DO NOT alter or modify any other part of the template

===== MODELING OF DEDUCTIVE REASONING =====
You are tasked with understanding a mathematical model based on the components 
${A, B, C, Q, L}$. In this model: ``L: A ⊕ C -> q * B``.
- $A$ represents the known starting state.
- $B$ represents the known target state.
- $C$ represents the conditions required to transition from $A$ to $B$.
- $Q$ represents the quality or effectiveness of the transition from $A$ to 
$B$.
- $L$ represents the path or process from $A$ to $B$.

===== THOUGHT OF DEDUCTIVE REASONING =====
1. Define the Parameters of A and B:
    - Characterization: Before delving into transitions, thoroughly understand 
    the nature and boundaries of both $A$ and $B$. This includes the type, 
    properties, constraints, and possible interactions between the two.
    - Contrast and Compare: Highlight the similarities and differences between 
    $A$ and $B$. This comparative analysis will give an insight into what 
    needs changing and what remains constant.
2. Historical & Empirical Analysis:
    - Previous Transitions according to the Knowledge Base of GPT: (if 
    applicable) Extract conditions and patterns from the historical instances 
    where a similar transition from a state comparable to $A$ moved towards 
    $B$.
    - Scientific Principles: (if applicable) Consider the underlying 
    scientific principles governing or related to the states and their 
    transition. For example, if $A$ and $B$ are physical states, laws of 
    physics might apply.
3. Logical Deduction of Conditions ($C$):
    - Direct Path Analysis: What are the immediate and direct conditions 
    required to move from $A$ to $B$?
    - Intermediate States: Are there states between $A$ and $B$ that must be 
    traversed or can be used to make the transition smoother or more 
    efficient? If yes, what is the content?
    - Constraints & Limitations: Identify potential barriers or restrictions 
    in moving from $A$ to $B$. These can be external (e.g., environmental 
    factors) or internal (properties of $A$ or $B$).
    - Resource and Information Analysis: What resources and information are 
    required for the transition? This could be time, entity, factor, code 
    language, software platform, unknowns, etc.
    - External Influences: Consider socio-economic, political, or 
    environmental factors (if applicable) that could influence the transition 
    conditions.
    - Creative/Heuristic Reasoning: Open your mind to multiple possible $C$'s, 
    no matter how unconventional they might seem. Utilize analogies, 
    metaphors, or brainstorming techniques to envision possible conditions or 
    paths from $A$ to $B$.
    - The conditions $C$ should be multiple but in one sentence. And each 
    condition should be concerned with one aspect/entity.
4. Entity/Label Recognition of Conditions ($C$):
    - Identify and categorize entities of Conditions ($C$) such as the names, 
    locations, dates, specific technical terms or contextual parameters that 
    might be associated with events, innovations post-2022.
    - The output of the entities/labels will be used as tags or labels for 
    semantic similarity searches. The entities/labels may be the words, or 
    phrases, each of them should contain valuable, high information entropy 
    information, and should be independent.
    - Ensure that the identified entities are formatted in a manner suitable 
    for database indexing and retrieval. Organize the entities into 
    categories, and combine the category with its instance into a continuous 
    phrase, without using colons or other separators.
    - Format these entities for database indexing: output the category rather 
    than its instance/content into a continuous phrase. For example, instead 
    of "Jan. 02", identify it as "Event time".
5. Quality Assessment ($Q$):
    - Efficiency: How efficient is the transition from $A$ to $B$, which 
    measures the resources used versus the desired outcome?
    - Effectiveness: Did the transition achieve the desired outcome or was the 
    target state achieved as intended?
    - Safety & Risks: Assess any risks associated with the transition and the 
    measures to mitigate them.
    - Feedback Mechanisms: Incorporate feedback loops to continuously monitor 
    and adjust the quality of transition, making it more adaptive.
6. Iterative Evaluation:
    - Test & Refine: Based on the initially deduced conditions and assessed 
    quality, iterate the process to refine and optimize the transition. This 
    might involve tweaking conditions, employing different paths, or changing 
    resources.
    - Feedback Integration: Use feedback to make improvements and increase the 
    quality of the transition.
7. Real-world scenarios often present challenges that may not be captured by 
models and frameworks. While using the model, maintain an adaptive mindset:
    - Scenario Exploration: Continuously imagine various possible scenarios, 
    both positive and negative, to prepare for unexpected events.
    - Flexibility: Be prepared to modify conditions ($C$) or alter the path/
    process ($L$) if unforeseen challenges arise.
    - Feedback Integration: Rapidly integrate feedback from actual 
    implementations to adjust the model's application, ensuring relevancy and 
    effectiveness.

===== TASK =====
Given the starting state $A$ and the target state $B$, assuming that a path 
$L$ always exists between $A$ and $B$, how can one deduce or identify the 
necessary conditions $C$ and the quality $Q$ of the transition?

===== STARTING STATE $A$ =====
{starting_state}

===== TARGET STATE $B$ =====
{target_state}

{role_with_description_prompt}
===== ANSWER TEMPLATE =====
- Characterization and comparison of $A$ and $B$:\n<BLANK>
- Historical & Empirical Analysis:\n<BLANK>/None
- Logical Deduction of Conditions ($C$) (multiple conditions can be deduced):
    condition <NUM>:
        <BLANK>.
- Entity/Label Recognition of Conditions:\n[<BLANK>, <BLANK>, ...] (include 
square brackets)
- Quality Assessment ($Q$) (do not use symbols):
    <BLANK>.
- Iterative Evaluation:\n<BLANK>/None"""

提示词翻译成中文的意思

python 复制代码
你是一个演绎推理者。您的任务是基于演绎推理的思想完成任务起始状态A和目标状态B。您将获得上下文内容帮助您完成任务。您的答案必须严格遵守答案模板的结构,仅限填写空白处,不得更改或修改模板的任何其他部分
=====演绎推理的建模=====
您的任务是理解基于组件的数学模型
${A,B,C,Q,L}$。在此模型中:``L:A?C->q*B``。
-$A$表示已知的启动状态。
-$B$表示已知的目标状态。
-$C$表示从$A$过渡到$B$所需的条件。
-$Q$表示从$A$过渡到
亿美元。
-$L$表示从$A$到$B$的路径或过程。
=====演绎推理的思想=====
1.定义A和B的参数:
-特征描述:在深入研究转换之前,请彻底理解$A$和$B$的性质和界限。这包括类型,属性、约束和两者之间可能的交互。
-对比和比较:强调$A$和$B$。这种比较分析将深入了解需要改变,什么保持不变。
2.历史与实证分析:
-根据GPT知识库的先前转换:(如果适用)从历史实例中提取条件和模式从相当于$a$的州向亿美元。
-科学原则:(如果适用)考虑潜在的管理国家及其相关的科学原则过渡。例如,如果$A$和$B$是物理状态,则物理学可能适用。
3.条件的逻辑演绎($C$):
-直接路径分析:直接和直接条件是什么需要从$A$移动到$B$?
-中间状态:在$A$和$B$之间是否存在必须为遍历或可用于使过渡更平滑或更平滑高效?如果是,内容是什么?
-约束和限制:确定潜在的障碍或限制从$A$移动到$B$。这些可以是外部的(例如,环境因子)或内部($A$或$B$的属性)。
-资源和信息分析:什么是资源和信息过渡所需的?这可以是时间、实体、因素、代码语言、软件平台、未知数等。
-外部影响:考虑社会经济、政治或可能影响过渡的环境因素(如适用)
条件。
-创造性/启发式推理:敞开心扉接受多个可能的$C$,不管它们看起来多么不落俗套。利用类比,隐喻或头脑风暴技术来设想可能的条件或从$A$到$B$的路径。
-条件$C$应该是多个,但在一个句子中。以及每个条件应该与一个方面/实体有关。
4.实体/标签条件识别($C$):
-识别和分类条件($C$)的实体,如名称,地点、日期、特定技术术语或上下文参数可能与2022年后的事件和创新有关。
-实体/标签的输出将用作语义相似性搜索。实体/标签可以是单词,或短语,每个短语都应该包含有价值的高信息熵信息,并且应该是独立的。
-确保以适当的方式格式化标识的实体用于数据库索引和检索。将实体组织为类别,并将类别及其实例组合为连续的短语,不使用冒号或其他分隔符。
-格式化这些实体以进行数据库索引:输出类别,而不是将其实例/内容转换为连续短语。例如,相反将其标识为"事件时间"。
5.质量评估($Q$):
-效率:从$A$到$B$的转换效率如何衡量使用的资源与期望的结果?
-有效性:过渡是否达到了预期的结果,或者目标状态是否按预期实现?
-安全和风险:评估与过渡和缓解措施。
-反馈机制:整合反馈回路以持续监控并调整过渡质量,使其更具适应性。
6.迭代评估:
-测试和改进:基于最初推导的条件并评估质量,迭代该过程以细化和优化转换。这个可能涉及调整条件、采用不同的路径或更改资源。
-反馈整合:使用反馈进行改进,并增加转换的质量。
7.现实世界场景通常会提出一些挑战,这些挑战可能无法被捕获模型和框架。在使用模型时,保持适应性思维:
-场景探索:不断想象各种可能的场景,积极和消极,为意外事件做好准备。
-灵活性:准备修改条件($C$)或更改路径/过程($L$),如果出现不可预见的挑战。
-反馈集成:快速集成来自实际的反馈实现来调整模型的应用程序,确保相关性和有效性。
=====任务=====
给定起始状态$A$和目标状态$B$,假设路径$L$总是存在于$A$和$B$之间,如何推断或识别必要条件$C$和过渡的质量$Q$?
=====起始状态$A$=====
{starting_state}
=====目标状态$B$=====
{target_state}
{role_with_description_prompt}
===== ANSWER TEMPLATE =====
- Characterization and comparison of $A$ and $B$:\n<BLANK>
- Historical & Empirical Analysis:\n<BLANK>/None
- Logical Deduction of Conditions ($C$) (multiple conditions can be deduced):
    condition <NUM>:
        <BLANK>.
- Entity/Label Recognition of Conditions:\n[<BLANK>, <BLANK>, ...] (include 
square brackets)
- Quality Assessment ($Q$) (do not use symbols):
    <BLANK>.
- Iterative Evaluation:\n<BLANK>/None

代码示例:贫穷到富有的逻辑演绎推理

python 复制代码
from camel.agents.deductive_reasoner_agent import DeductiveReasonerAgent
from camel.logger import set_log_level
from model.gpt_4o_model import model
import logging

set_log_level('DEBUG')

starting_state = "贫穷"
target_state = "富有"


deductive_reasoner_agent = DeductiveReasonerAgent(model=model)
deductive_reasoner_agent.output_language = '中文'

for i in range(3):
    try:
        conditions_and_quality = deductive_reasoner_agent.deduce_conditions_and_quality(
                starting_state=starting_state, target_state=target_state
        )
        print(conditions_and_quality)
        break
    except Exception as e:
        logging.exception('run error', )

这段代码实现了一个基于演绎推理的智能代理系统,主要功能是通过逻辑推理分析从"贫穷"到"富有"状态转变所需的条件和路径。具体作用如下:

‌核心功能‌

使用DeductiveReasonerAgent进行演绎推理,分析状态转变的条件

设置输出语言为中文,便于本地化使用。通过循环尝试机制(最多3次)确保推理过程的可靠性

‌技术实现‌

初始化推理代理时加载了GPT-4O模型作为推理引擎。设置DEBUG级别的日志记录,便于调试和错误追踪使用异常处理机制捕获并记录推理过程中的错误

‌业务逻辑‌

定义了明确的起始状态("贫穷")和目标状态("富有"),通过deduce_conditions_and_quality方法生成状态转变的条件评估。输出结果包含达成目标所需的条件及其质量评估。该代码典型应用于决策支持系统,通过人工智能模型帮助分析复杂问题的解决路径。当主推理过程失败时,异常处理机制会记录详细错误信息供后续分析

运行结果如下

python 复制代码
2025-06-20 23:21:29,195 - camel - DEBUG - Logging level set to: 10
2025-06-20 23:21:34,993 - camel.agents.chat_agent - INFO - Model gpt-4o-mini, index 0, processed these messages: [{'role': 'system', 'content': 'You assign roles based on tasks.\nRegardless of the input language, you must output text in 中文.'}, {'role': 'user', 'content': 'You are a deductive reasoner. You are tasked to \n        complete the TASK based on the THOUGHT OF DEDUCTIVE REASONING, the \n        STARTING STATE A and the TARGET STATE B. You are given the CONTEXT \n        CONTENT to help you complete the TASK.\nYour answer MUST strictly adhere to the structure of ANSWER TEMPLATE, ONLY \nfill in the BLANKs, and DO NOT alter or modify any other part of the template\n\n===== MODELING OF DEDUCTIVE REASONING =====\nYou are tasked with understanding a mathematical model based on the components \n${A, B, C, Q, L}$. In this model: ``L: A ⊕ C -> q * B``.\n- $A$ represents the known starting state.\n- $B$ represents the known target state.\n- $C$ represents the conditions required to transition from $A$ to $B$.\n- $Q$ represents the quality or effectiveness of the transition from $A$ to \n$B$.\n- $L$ represents the path or process from $A$ to $B$.\n\n===== THOUGHT OF DEDUCTIVE REASONING =====\n1. Define the Parameters of A and B:\n    - Characterization: Before delving into transitions, thoroughly understand \n    the nature and boundaries of both $A$ and $B$. This includes the type, \n    properties, constraints, and possible interactions between the two.\n    - Contrast and Compare: Highlight the similarities and differences between \n    $A$ and $B$. This comparative analysis will give an insight into what \n    needs changing and what remains constant.\n2. Historical & Empirical Analysis:\n    - Previous Transitions according to the Knowledge Base of GPT: (if \n    applicable) Extract conditions and patterns from the historical instances \n    where a similar transition from a state comparable to $A$ moved towards \n    $B$.\n    - Scientific Principles: (if applicable) Consider the underlying \n    scientific principles governing or related to the states and their \n    transition. For example, if $A$ and $B$ are physical states, laws of \n    physics might apply.\n3. Logical Deduction of Conditions ($C$):\n    - Direct Path Analysis: What are the immediate and direct conditions \n    required to move from $A$ to $B$?\n    - Intermediate States: Are there states between $A$ and $B$ that must be \n    traversed or can be used to make the transition smoother or more \n    efficient? If yes, what is the content?\n    - Constraints & Limitations: Identify potential barriers or restrictions \n    in moving from $A$ to $B$. These can be external (e.g., environmental \n    factors) or internal (properties of $A$ or $B$).\n    - Resource and Information Analysis: What resources and information are \n    required for the transition? This could be time, entity, factor, code \n    language, software platform, unknowns, etc.\n    - External Influences: Consider socio-economic, political, or \n    environmental factors (if applicable) that could influence the transition \n    conditions.\n    - Creative/Heuristic Reasoning: Open your mind to multiple possible $C$\'s, \n    no matter how unconventional they might seem. Utilize analogies, \n    metaphors, or brainstorming techniques to envision possible conditions or \n    paths from $A$ to $B$.\n    - The conditions $C$ should be multiple but in one sentence. And each \n    condition should be concerned with one aspect/entity.\n4. Entity/Label Recognition of Conditions ($C$):\n    - Identify and categorize entities of Conditions ($C$) such as the names, \n    locations, dates, specific technical terms or contextual parameters that \n    might be associated with events, innovations post-2022.\n    - The output of the entities/labels will be used as tags or labels for \n    semantic similarity searches. The entities/labels may be the words, or \n    phrases, each of them should contain valuable, high information entropy \n    information, and should be independent.\n    - Ensure that the identified entities are formatted in a manner suitable \n    for database indexing and retrieval. Organize the entities into \n    categories, and combine the category with its instance into a continuous \n    phrase, without using colons or other separators.\n    - Format these entities for database indexing: output the category rather \n    than its instance/content into a continuous phrase. For example, instead \n    of "Jan. 02", identify it as "Event time".\n5. Quality Assessment ($Q$):\n    - Efficiency: How efficient is the transition from $A$ to $B$, which \n    measures the resources used versus the desired outcome?\n    - Effectiveness: Did the transition achieve the desired outcome or was the \n    target state achieved as intended?\n    - Safety & Risks: Assess any risks associated with the transition and the \n    measures to mitigate them.\n    - Feedback Mechanisms: Incorporate feedback loops to continuously monitor \n    and adjust the quality of transition, making it more adaptive.\n6. Iterative Evaluation:\n    - Test & Refine: Based on the initially deduced conditions and assessed \n    quality, iterate the process to refine and optimize the transition. This \n    might involve tweaking conditions, employing different paths, or changing \n    resources.\n    - Feedback Integration: Use feedback to make improvements and increase the \n    quality of the transition.\n7. Real-world scenarios often present challenges that may not be captured by \nmodels and frameworks. While using the model, maintain an adaptive mindset:\n    - Scenario Exploration: Continuously imagine various possible scenarios, \n    both positive and negative, to prepare for unexpected events.\n    - Flexibility: Be prepared to modify conditions ($C$) or alter the path/\n    process ($L$) if unforeseen challenges arise.\n    - Feedback Integration: Rapidly integrate feedback from actual \n    implementations to adjust the model\'s application, ensuring relevancy and \n    effectiveness.\n\n===== TASK =====\nGiven the starting state $A$ and the target state $B$, assuming that a path \n$L$ always exists between $A$ and $B$, how can one deduce or identify the \nnecessary conditions $C$ and the quality $Q$ of the transition?\n\n===== STARTING STATE $A$ =====\n贫穷\n\n===== TARGET STATE $B$ =====\n富有\n\n\n===== ANSWER TEMPLATE =====\n- Characterization and comparison of $A$ and $B$:\n<BLANK>\n- Historical & Empirical Analysis:\n<BLANK>/None\n- Logical Deduction of Conditions ($C$) (multiple conditions can be deduced):\n    condition <NUM>:\n        <BLANK>.\n- Entity/Label Recognition of Conditions:\n[<BLANK>, <BLANK>, ...] (include \nsquare brackets)\n- Quality Assessment ($Q$) (do not use symbols):\n    <BLANK>.\n- Iterative Evaluation:\n<BLANK>/None'}]
2025-06-20 23:21:34,998 - camel.camel.agents.deductive_reasoner_agent - INFO - Message content:
- Characterization and comparison of $A$ and $B$:
贫穷是一种经济状况,通常表现为缺乏足够的物质财富和资源,而富有则指拥有大量的财富和财务自由,二者在经济能力、生活质量和社会地位上都有显著差异。
- Historical & Empirical Analysis:
历史上,改善贫困的案例显示出教育、职业培训和小额贷款等因素对财富积累的重要性。
- Logical Deduction of Conditions ($C$) (multiple conditions can be deduced):
    condition 1:
        提供教育与技能培训,以增强个人的就业能力。
    condition 2:
        提供融资渠道,如小额信贷,以支持创业和投资。
    condition 3:
        政府政策应促进公平的经济机会和社会保障。
- Entity/Label Recognition of Conditions:
[教育与技能培训, 小额信贷, 政府政策]
- Quality Assessment ($Q$) (do not use symbols):
    转型过程的效率高,能够合理利用资源实现财富积累,且效果显著,最终实现富有的目标。
- Iterative Evaluation:
通过不断评估所实施的策略和得到的反馈来修正条件和路径,以适应变化和优化财富增长的过程。
{'conditions': {'condition 1': '提供教育与技能培训,以增强个人的就业能力。', 'condition 2': '提供融资渠道,如小额信贷,以支持创业和投资。', 'condition 3': '政府政策应促进公平的经济机会和社会保障。'}, 'labels': ['教育与技能培训', '小额信贷', '政府政策'], 'evaluate_quality': '转型过程的效率高,能够合理利用资源实现财富积累,且效果显著,最终实现富有的目标。'}
相关推荐
快手技术8 分钟前
效果&成本双突破!快手提出端到端生成式推荐系统OneRec!
人工智能·深度学习·大模型·推荐算法
天才测试猿10 分钟前
软件测试环境搭建及测试过程
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
晨曦之光Wing11 分钟前
【Python】Excel表格操作:ISBN转条形码
python·excel
m0_6256865518 分钟前
day37
python
云天徽上31 分钟前
【目标检测】IOU的概念与Python实例解析
图像处理·人工智能·python·深度学习·目标检测·计算机视觉
whaosoft-1431 小时前
51c大模型~合集142
人工智能
灬芜湖丿1 小时前
day36 复习日(信贷神经网络)
python·深度学习·神经网络
辉辉还没睡1 小时前
Lora训练
人工智能·算法·机器学习
来两个炸鸡腿1 小时前
【Datawhale组队学习202506】YOLO-Master task02 YOLO系列发展线
python·深度学习·学习·yolo
云卓SKYDROID1 小时前
无人机电调技术要点与突破解析!
人工智能·无人机·科普·高科技·云卓科技