文章总结: 本文是Agent开发系列的首篇,重点讲解如何利用Python实现与AI大模型的基本对话功能。文章通过配置yaml文件管理API密钥与模型参数,借助requests库向DeepSeek的OpenAI兼容接口发送POST请求,并解析返回的JSON数据提取回复内容。作者提供了包含异常处理的完整命令行对话代码,适合零基础读者快速上手。此外,文章还预告了后续关于持续对话、FunctionCall、MCP协议、多智能体团队及插件加载机制等进阶主题,为构建复杂Agent系统提供了清晰的学习路线图。 综合评分: 73 文章分类: 安全开发,AI安全
Agent开发(一)-基本对话
原创
BlackFace BlackFace
GG学安全
2026年8月17日 00:55 重庆
在小说阅读器读本章
去阅读
从今天开始,我会陆续讲解Agent开发,让大家了解如何从零开发一个agent,了解agent如何实现,他的机制,目前已经写了以下文章:
Agent开发(一)-基本对话Agent开发(二)-持续性对话Agent开发(三)-给agent加上函数Agent开发(四)-给agent加上双手-function call机制Agent开发(五)-给agent加上技能-skill机制Agent开发(六)-给agent接上外部工具-MCP协议Agent开发(七)-前六章口水话总结
后续会继续发下去:
Agent开发(八)-agent teams的实现Agent开发(九)-会话保存&续聊Agent开发(十)-claudecode的CLAUDE.md实现Agent开发(十一)-上下文管理Agent开发(十二)-前十一章口水话总结Agent开发(十三)-插件加载机制-先让插件跑起来Agent开发(十四)-插件加载机制-服务容器Agent开发(十五)-插件加载机制-依赖排序Agent开发(十六)-插件加载机制-生命周期Agent开发(十六)-插件加载机制-热重载与拼接Agent开发(十七)-插件加载机制-写一个Web插件Agent开发(十八)-总结
我们要做的第一件事:让程序能跟 AI 说话。AI 不生活在你的电脑里,它在很远的地方——你的程序发一个”请求”过去,AI 回一个”响应”,你拆开读。这个”发请求拿响应”的接口,就叫 **API**。
第一步:配置 AI(config.yaml)
先写一个配置文件,告诉程序”找谁说话、用什么身份、用哪个模型”:
# config.yaml 文件api_key: sk-你的keybase_url: https://api.deepseek.commodel: deepseek-chat
| | | | — | — | | 配置 | 意思 | | api_key | 你的”身份证”,AI 认这个 | | base_url | AI 的”地址” | | model | 用哪个模型(deepseek-chat 是通用对话模型) | | | |
用 yaml 库读取配置文件:
import yamlconfig = yaml.safe_load(open("config.yaml", encoding="utf-8"))# config 变成一个字典:# config["base_url"] = "https://api.deepseek.com"# config["api_key"] = "sk-你的key"# config["model"] = "deepseek-chat"
第二步:发请求,问 AI 一句话
DeepSeek 的对话接口长这样(openai 兼容格式):
POST /chat/completionsHost: base_urlAuthorization: Bearer 你的api keyContent-Type: application/json
{ "model": "deepseek-chat", "messages": [ {"role": "user", "content": "你好"} ]}
用 requests 库发这个请求。requests.post 的三个参数,正好对应”寄信的三部分”:
import requests
response = requests.post( config["base_url"] + "/chat/completions", # ① 地址(寄给谁) headers={ # ② 身份(你是谁) "Authorization": f"Bearer {config['api_key']}", "Content-Type": "application/json" }, json={ # ③ 信的内容(说什么) "model": config["model"], "messages": [{"role": "user", "content": "你好"}] })
json= 是 requests 的便捷写法:它自动把 Python 字典变成 JSON 字符串发出去,不用你手动转。
第三步:拆开 AI 的回信
AI 回的信是 JSON 格式,response.json() 把它解析成 Python 字典。要拿到 AI 说的话,按这个路径一层层取:
response.json() └── ["choices"] # 候选回答列表(一般只有一个) └── [0] # 取第一个回答 └── ["message"] # 回答这条消息 └── ["content"] # 回答的文本内容
reply = response.json()["choices"][0]["message"]["content"]print(reply)
完整代码(chat.py)
# chat.pyimport requestsimport yaml
config = yaml.safe_load(open("config.yaml", encoding="utf-8"))
while True: user_input = input(">>> ").strip() # 读你输入的话 if user_input.lower() in ["quit", "exit"]: # 输入 quit / exit 就退出 break
try: response = requests.post( config["base_url"] + "/chat/completions", headers={ "Authorization": f"Bearer {config['api_key']}", "Content-Type": "application/json" }, json={ "model": config["model"], "messages": [{"role": "user", "content": user_input}] } ) reply = response.json()["choices"][0]["message"]["content"] print(reply) except Exception as e: print(f"Error: {e}")
运行 python chat.py,输入”你好”——**你的第一个能对话的程序完成了。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:GG学安全 BlackFace BlackFace《Agent开发(一)-基本对话》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论