“龙虾”的爆火,是因为其功能的强大,可以做很多事情。究其根本,调用的还是底层的ai大语言模型。“龙虾”本身就是一个超级的Agent,这个agent只不过功能更强大而已,封装了一个友好的web页面。
有很多人在“养虾”,花钱安装花钱卸载“龙虾”。最近,小编有时间就研究如何免费的实现一个“龙虾”,于是就用python手搓了一个“龙虾”。
小编测试了两个功能:一个是人工对话,另外一个是对本地的所有py文件打包成一个压缩包文件。它都可以执行的很完美。
当然它也可以帮你下载视频等网络文件。
好了,废话不多说了,直接上干货。
新建文件:agent_skill.py
from openrouter import OpenRouter
import os
import time
import random
with OpenRouter(
api_key=os.getenv("OPENROUTER_API_KEY")
) as client:
agentmd = open("Agent.md", "r").read()
skillmd = open("SKILL.md", "r").read()
# messages = []
messages = [
{"role":"system", "content": agentmd + skillmd}
]
while True:
user_input = input("\n【你】")
messages.append({"role":"user","content":user_input})
print("\n------Agent循环开始---------")
while True:
# 添加延迟
time.sleep(random.uniform(1, 3)) # 等待1-3秒
response = client.chat.send(
model="openrouter/free",# 示例免费模型
messages = messages
)
reply = response.choices[0].message.content
print(f"【AI】{reply}")
messages.append({"role":"assistant","content":reply})
if reply.strip().startswith('完成:'):
print("\n------Agent循环结束---------")
print(f"【AI】{reply.strip().split('完成:')[1].strip()}")
break
text = reply.strip().split("命令:")
command = text[1].strip()
command_result = os.popen(command).read()
content = f"执行完毕 {command_result}"
print(f"【Agent】{content}")
messages.append({"role":"user","content":content})
运行效果如下:
后续可以添加一个web对话的页面,这个功能还在开发中。如果小伙伴想要完整源码,可以关注微信公众号,回复“手搓龙虾”,进行下载。

全部评论