如果您的人工智能代理能够识别自己的错误,从中学习,然后重试——无需人工干预,会怎样?欢迎来到自我纠正人工智能代理的世界。
大多数人工智能模型都会在一次尝试中生成输出。但自我纠正代理更进一步。他们可以实时识别何时发生错误、分析原因并应用修复。将其视为具有内置“试错”心态的人工智能。
在这个博客中,您将学到:
到最后,您将知道如何设计 AI 代理,不仅可以优雅地失败,而且可以在每次尝试中进行改进。
自我纠正代理是一个人工智能系统,可以识别自己的失败并尝试新的策略。如果最初的方法不起作用,代理会重新评估并尝试替代路径。
类比:
想象一下请厨师烤蛋糕,但他们第一次用了太多糖。标准的人工智能会不断犯同样的错误。但自我修正的人工智能会注意到错误,下次减少糖分,并进行调整,直到蛋糕味道完美。
大多数人工智能工具(如 ChatGPT)只能给你一个单一的响应。如果错误,您必须手动要求它“重试”。但自我纠正代理可以自主重试。
?️ 示例用例:
人工智能被要求编写一个计算斐波那契数的 Python 函数。
尝试 1: AI 编写一个缓慢的递归函数。
自我修正:它注意到递归太慢了。
尝试 2: AI 使用动态编程重写函数,使其速度更快。
我们如何让代理有足够的自我意识来认识到自己的错误?以下是三个主要技术:
?专业提示:
错误日志可以反馈到AI模型中,以提高未来的性能。
让我们使用 Python 和 FastAPI 构建一个自我纠正的 AI 代理。
我们想要一个可以生成 Python 函数的 AI 代理。如果函数运行失败或产生错误的输出,代理将自动自我纠正。
问题:编写一个计算第 10 个斐波那契数的斐波那契函数。
挑战:如果代理生成递归版本(速度很慢),它应该识别这一点并使用动态编程重写它。
安装必要的依赖项:
pip install openai fastapi uvicorn
代理的工作原理如下:
import openai import time import asyncio # ? Replace with your OpenAI API key openai.api_key = "your_openai_api_key_here" # ? Step 1: Ask the AI to generate a Fibonacci function async def generate_fibonacci_function(): prompt = "Write a Python function to calculate the 10th Fibonacci number." response = openai.ChatCompletion.create( model="gpt-4", messages=[{"role": "user", "content": prompt}] ) function_code = response['choices'][0]['message']['content'] return function_code # ? Step 2: Test the function to see if it works def test_fibonacci_function(function_code): try: exec(function_code) # Run the function in a safe execution environment result = eval("fibonacci(10)") # Call the function with n=10 if result == 55: # Correct Fibonacci value for n=10 return "success", result else: return "wrong_output", result except Exception as e: return "error", str(e) # ? Step 3: Self-Correct by asking for a new version of the function async def self_correct_function(): max_attempts = 3 for attempt in range(max_attempts): print(f"? Attempt {attempt + 1}") # Generate a new Fibonacci function function_code = await generate_fibonacci_function() print(f"Generated function:\n{function_code}\n") # Test the function to see if it works status, result = test_fibonacci_function(function_code) if status == "success": print(f"✅ Success! Fibonacci(10) = {result}") return elif status == "wrong_output": print(f"❌ Incorrect result: {result}. Asking AI to try a better method.") else: print(f"? Error: {result}. Asking AI to try again.") print("❌ Max attempts reached. Could not generate a correct function.") # ? Run the correction process asyncio.run(self_correct_function())
输出示例
pip install openai fastapi uvicorn
?专业提示:
使用反馈循环让代理从错误中学习。将日志反馈给代理以帮助其识别常见问题。
自我纠正代理在故障频繁且手动干预成本高昂的情况下非常有用。
Problem | Solution |
---|---|
Agent gets it wrong | Retry with a better approach |
API request fails | Retry with exponential backoff |
Code generation error | Use a smarter prompt |
您现在已经有了一个自我纠正代理的蓝图,它可以编写、测试和修复Python函数。以下是我们介绍的内容:
?挑战:
构建一个自我纠正代理,它不仅可以生成代码,还可以评估运行时性能。如果函数太慢,请重新编写函数进行优化。
想要了解有关构建响应式法学硕士的更多信息?查看我的换行课程:带有服务器发送事件的响应式 LLM 应用程序
我涵盖:
以上是自我纠正人工智能代理:如何构建能够从错误中学习的人工智能的详细内容。更多信息请关注PHP中文网其他相关文章!