python实现agent
·
python实现agent
import json
import re
from openai import OpenAI
import os
# 使用说明:请到deeseek官网注册deepseekv4的apikey
API_KEY = ""
client = OpenAI(
api_key=API_KEY,
base_url="https://api.deepseek.com")
# 工具列表
# ===================================
def react_agent(goal, max_steps=5):
"""最简单的ReAct Agent实现"""
# 系统提示:定义工具和ReAct格式
system_prompt = """你是AI助手,使用ReAct模式解决问题。用最少的步骤解决,不需要检查
可用工具: windows10系统的命令行
输出格式: json格式,如下,其中最终答案字段只在你确定的情况下使用
思考: 你的推理过程
行动: windows10系统的命令行
观察: 等待工具返回结果
最终答案: 你的最终回答
"""
messages = [{"role": "system", "content": system_prompt}]
messages.append({"role": "user", "content": f"目标: {goal}"})
for step in range(max_steps):
print("这在调用模型,请稍等")
# 调用LLM
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=messages,
temperature=0.7
)
print("模型调用结束")
output_str = response.choices[0].message.content
print(f"\n第{step+1}步:\n{output_str}")
output = json.loads(output_str)
print(output.get("思考",""))
print(output.get("行动",""))
print(output.get("观察",""))
#print(output["最终答案"])
try:
print("行动===========")
print(output["行动"])
import subprocess
result = subprocess.run(output["行动"], shell=True)
observation = result.stdout
except:
print("执行任务失败")
if "最终答案" in output.keys():
print(output["最终答案"])
return output
print("添加观察结果到对话",observation)
print(str(output_str))
# 添加观察结果到对话
messages.append({"role": "assistant", "content": str(output["思考"])})
messages.append({"role": "user", "content": str(observation)})
return "达到最大步数,任务未完成"
# 使用示例
if __name__ == "__main__":
pp = "计算3+3,并写入文件名为hello.txt"
pp = "复制hello.txt文件,新的文件命名为aaa.txt"
pp = "写一份南京旅游的攻略,30字,并保存到旅游.txt中"
result = react_agent(pp)
print(f"\n最终结果:\n{result}")
更多推荐


所有评论(0)