目标
实现一个能够落地的 Agent 框架,让 Office 变成无人区,从而 LLM 通过信息化系统走进企业,为企业降本增效。
不过这里还是要说一下,因为 LLM 现在的自由度还是有限,而且调用想 chatGPT 这样 LLM 还存在消耗 token 成本的问题。所以应用场景还是受到一定局限性,这里先从可以应用的场景让 LLM 的 Agent 切入业务,完成一些特定任务。所以首先落地领域可能是熟悉编程领域,从写一个小的不依赖任何库小项目到可以完成大型的项目,这些看似简单,其实要让 Agent 可以自主地去完成相对复杂的任务还是有很长路要走。
今天我们就开始参考 AutoGen 来一步一步设计我们 Agent
视频内容概要
在视频里主要做了几件事,首先是读懂 AutoGen 的源码,按照 AutoGen 框架逐步搭建起一个基础 aGent 框架,开发过程是测试驱动开发。首先去实现
code_utils.py 这个模块,其中包括获取文本
infer_lang推理代码的语言content_str从单个 LLM 或者多个 LLM 返回内容中获取文本execute_code从文本中抽取代码
花絮
def infer_lang(code):
"""infer the language for the code.
TODO: make it robust.
看到 TODO 就比较兴奋,是不是可以尝试在这里让 infer_lang 支持更多的语言
# TODO: In the future move, to better support https://spec.commonmark.org/0.30/#fenced-code-blocks
# perhaps by using a full Markdown parser.
def execute_code(
code: Optional[str] = None,
timeout: Optional[int] = None,
filename: Optional[str] = None,
work_dir: Optional[str] = None,
use_docker: Optional[Union[List[str], str, bool]] = None,
lang: Optional[str] = "python",
) -> Tuple[int, str, str]:
"""Execute code in a docker container.
This function is not tested on MacOS.
看到 This function is not tested on MacOS 看到这句话突然想到一个好方法,就是将方法提取出来,回去在我的 Mac 跑一个测试。