Skip to main content

Agent

Agent(model)实战

AgentFlow

AgentLighting

Agent(WorkFlow)相关理论+实战

https://qiankunli.github.io/2018/09/04/technology_manage.html

从头实现一个基于LLM的Agent是一个系统工程,对一个初学者来说要学习的太多,本文结合个人思考从学术研究到常见框架进行总结。

https://github.com/KelvinQiu802/llm-mcp-rag

流式输出:GitHub - ZejunCao/bilibili_code: bilibili视频讲解所使用的课件代码记录

gaoshine:MCP实战笔记

初学者网站:

GitHub - datawhalechina/self-llm: 《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程

Qwen Agent | 将思考「工具化」提升规划能力

0. Motivation

搭建可自我修正、持续优化的Agent系统。

可能的关键点:

1.上下文动态调整机制

Context决定了LLM在各个场景中的实际表现。上下文包含:User Query、History Messages、Prompt、Search Results、Tool Call Results等等。尽管LLM的Attention与自回归生成可以改变context,但实践证明这种机制还不足够,现有LLM依然需要精细context设置才能更好完成任务。分治、专注:相比使用单个复杂Prompt,将复杂任务拆解为简单子任务,并为每个子任务设置独立的Prompt更容易优化,取得更好的整体效果。多尺度上下文:将Context中的冗余信息进行压缩或扩充。

2.反思与适应机制

1.大模型常见工具、平台

分布式训练框架:Accelerate(初始化)、DeepSpeed、MegaTron-LM、Colossal-AI、FairScale

推理框架:vLLM、LMDeploy、TensorRT-LLM、TGI、DeepSpeed-IF3

分布式任务调度框架:Ray

LLM微调框架:OpenRLHF、LLaMA Factory、VeRL

GPT给出的VeRL与其他模块的关系
数据 → SFT → Reward Model → Preference Data → PPO / DPO / IPO → 微调完成
↑ ↑ ↑ ↓
DeepSpeed Accelerate Ray Tune (可选) 模型 API 暴露,供 LangChain 调用

应用开发框架:LangChain、pydantic_ai Web UI:Gradio、Streamlit、FastAPI、Flask

2.相关概念

Agent = LLM + Planning + Memory + Tools + Action

这里头LLM当然是核心,其推理、规划等能力都要出色,也可以使用多个LLM来联合完成任务。Planning是

2.1.Agent System

王宁:站在NLP巨人模型的肩膀才是多模态的未来?

大模型没那么大:ACL 2025 | 大模型提示词不是「随便写」!这篇文章告诉你:每句话都在重塑 AI 的「思考路径」

Prompt Engineering Guide

LLM基座的选择很重要,因为有的模型推理能力不足,或者缺乏具备创造/调用工具的能力,难以支持复杂的Agent任务。除了基座选择以外,Prompt也是重要的一环,是让Agent实现自主的关键。具体来说,Prompt可以同时起到角色定位、陈述性和流程性等记忆(用户喜好、工具定义、可行的工具流程)、思维能力增强(CoT能力、反思能力、抽象思维、发散思维、归纳思维、思维结构塑造)和内外部感知(工具、环境的感知)等作用,优化速度很快而且成本很低。因此Prompt微调相比参数微调对Agent更为重要,更适合测试时适应,而且给用户的反馈是最直接的。参数微调则更适合在获得大量数据后将知识内化。CoT实际上也可以看做一种自己Prompt自己的过程【论文】,有序化搜索空间,提升泛化能力,因此理论上来说存在不需要任何System Prompt的Agent。【想法:Prompt太多了也不好,每次推理速度很慢,如何实现Prompt的内化?可以将Prompt LLM的能力蒸馏到w/o Prompt LLM中,通过对比两个模型的性能来实现自我学习。或者自己将Prompt进行总结,对比总结前后的性能来有效提升LLM能力】

Prompt也会起到负面作用,比如我在设计Agent的时候,一开始就只设定了其智能助理的身份,结果LLM就丧失了利用自身知识的对话能力。比如,询问我设计的Agent某个动漫每一集的内容,它无法回答出来,而在无Prompt的情况下就可以很好的回答问题。最后,我在Prompt中引入了一个知识库的身份,引导其可以利用自身知识来回答问题,才部分解决了这一问题。还有比如Prompt如果包含不合理的工作流,也会让LLM效果更差。

2.2.Memory:RAG、记忆系统

阿里云开发者:RAG 2.0 深入解读

看完Cursor记忆功能提示词后,我发现了AI智能体记忆设计的秘诀

首次全面复盘AI Agents记忆系统:3大类,6种操作!

2.3.Tools:Function Call、Model Context Protocol (MCP)

不理不理:Qwen Function Calling 的对话模板及训练方法总结

MCP、function calling 这两者有什么区别?与AI Agent 是什么关系?

战士金:大模型工具调用(function call)原理及实现

MCP的Github链接:

https://github.com/modelcontextprotocol/python-sdk

@mcp.tools的实现

https://github.com/modelcontextprotocol/python-sdk/blob/d55cb2bf4eac4c2686183bc5ab654dac8058c0f0/src/mcp/server/fastmcp/tools/base.py#L20

LastWhisper:MCP (Model Context Protocol),一篇就够了。

https://github.com/liaokongVFX/MCP-Chinese-Getting-Started-Guide?tab=readme-ov-file

MCP的Prompt(未确认)

 Tool: {self.name}
Description: {self.description}
Arguments:
{chr(10).join(args_desc)}

2.4.Planning:WorkFlow、Chain of Thought (CoT)

简单来讲,就是通过将问题进行分解并依次求解,来提升复杂问题的处理能力,例如做数学题、编写代码。CoT的发展历程为IO (Input-Output) -> CoT -> ToT (Tree of Thought)。实现方式包括:

Prompt

3.相关研究

3.1.Agent的仿生启发

吕阿华:【AI Agent研究综述】《基础智能体的进展与挑战:从脑启发智能到进化、协作和安全系统》(全文)

3.2.Agent综述

LinguaMind:万字长文!何谓Agent,为何Agent?

3.3.Agent前沿

自动驾驶之心:思维链再进化!极简推理范式Chain of Draft:推理token爆砍80%~

机器之心:OTC‑PO重磅发布 | 揭开 o3 神秘面纱,让 Agent 少用工具、多动脑子!

黄浴:RoboOS:跨具身和多智体协作的分层具身框架

3.3. Agent项目与系统

https://github.com/Fosowl/agenticSeek

如何快速理解已有Github项目,并用于自己的项目中?

Claude code的逆向工程:

https://github.com/shareAI-lab/analysis_claude_code

4.实战

4.1. Prompt设计心得

Prompt一方面给予了模型引导,另一方面也会限制模型能力

4.1.常见格式

模型训练-sharegpt,保存为jsonl:

  {
"conversations": [
{
"from": "human",
"value": "人类指令"
},
{
"from": "function_call",
"value": "工具参数"
},
{
"from": "observation",
"value": "工具结果"
},
{
"from": "gpt",
"value": "模型回答"
}
],
"system": "系统提示词(选填)",
"tools": "工具描述(选填)"
}
]

conversations是一个列表,每个元素包含一个from和一个value,分别代表发言的角色以及内容。conversations中奇数列为外部环境反馈(human、observation),偶数列为Agent的Action(gpt、funciton_call)。system和tools是其他参数。

sharegpt还可以设置偏好数据集,其中conversations为多轮对话(奇数个,需要模型输出回答)。chosen和rejected则为正负样本对。

[
{
"conversations": [
{
"from": "human",
"value": "人类指令"
},
{
"from": "gpt",
"value": "模型回答"
},
{
"from": "human",
"value": "人类指令"
}
],
"chosen": {
"from": "gpt",
"value": "优质回答"
},
"rejected": {
"from": "gpt",
"value": "劣质回答"
}
}
]

模型训练-alpaca,保存为jsonl或者json:

{
"instruction": "Describe the benefits of exercise.",
"input": "",
"output": "Exercise improves mental and physical health..."
}

LLaMA 2 / ChatLLaMA 格式(Meta 官方推荐)

huggingface 上 llama 2 chat 格式是多轮 messages 模式:

{
"conversations": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What's the weather like?"},
{"role": "assistant", "content": "It's sunny and warm."}
]
}

Vicuna(基于 LLaMA + ShareGPT)

Vicuna 用的是 ShareGPT 格式,类似 messages 列表。

{
"conversations": [
{"from": "human", "value": "Tell me a joke."},
{"from": "gpt", "value": "Why did the chicken cross the road? To get to the other side!"}
]
}

Baichuan / Qwen / ChatGLM 格式

一般也采用 messages 数组结构,但 role 命名不同。

{
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What's AI?"},
{"role": "assistant", "content": "AI stands for Artificial Intelligence..."}
]
}

4.1.基础Agent实现

无涯:基于本地知识的问答机器人langchain-ChatGLM

RedHerring:手搓一个最小的 Agent 系统 — Tiny Agent

wx1997:AI Agent系列二:Agent基础技术篇(ReACT、ReST、AgentTuning、Reflexion)

摇一摇:我也复刻了一个 Manus,带高仿 WebUI 和沙盒

4.1.结合模型训练的Agent

4.2.

NLP奇幻之旅:vLLM入门(一)初始vLLM

4.3

字节跳动开源了 Deep Research 项目 DeerFlow,这将如何影响开源社区和技术发展?

SkyRL:首个现实环境、长周期LLM Agent的端到端RL流水线框架