Daili Code:开源 AI Agent CLI 工具的全方位指南

引言

在当今数字化的时代,人工智能技术正以前所未有的速度发展,各种基于大语言模型(LLM)的工具层出不穷。其中,Daili Code 作为一个与多种大语言模型兼容的开源 AI Agent CLI 工具,正逐渐崭露头角。它是 Gemini ClI 的 Fork 版本,能够连接到各种工具,理解代码并加速工作流程。那么,Daili Code 究竟有哪些特点和优势?如何使用它?接下来,我们将为你详细介绍。

一、Daili Code 简介

1.1 工具概述

Daili Code 截图

Daili Code 是一个连接到您的工具、理解您的代码并加速您工作流程的命令行 AI 工具。它的独特之处在于它是一个 Fork 版本,源自 Gemini ClI。它支持多种 LLM 提供商,包括 Gemini、OpenAI 以及任何遵循 OpenAI API 格式的自定义 LLM API。这意味着用户可以根据自己的需求和偏好选择不同的大语言模型来完成各种任务。

1.2 主要功能

使用 Daili Code,您可以实现以下几个方面的功能:

  • 代码库操作:利用先进的 LLM 能力查询和编辑大型代码库,并且支持大上下文窗口。这对于处理复杂的代码项目非常有帮助,您可以更高效地查找和修改代码。
  • 多模态应用生成:借助其多模态能力,您可以从 PDF 或草图生成新应用。这大大简化了应用开发的流程,为开发者提供了更多的可能性。
  • 自动化任务处理:可以自动化操作任务,如查询 Pull Request 或处理复杂的 rebase 操作。这不仅节省了时间,还减少了人为错误的可能性。
  • 新功能连接:通过使用工具和 MCP 服务器连接新功能,让您的工作流程更加灵活和强大。
  • 灵活配置:通过简单的环境变量配置,您可以使用自己首选的 LLM 提供商,并且可以在不改变工作流程的情况下无缝切换不同的 LLM 提供商。

二、多种模型测试结果

2.1 测试维度

本方案对多种不同提供商、模型以及本地部署的模型进行了多个维度的测试,包括是否具备思考过程、能否完成简单任务、是否具备工具调用能力、是否具备 MCP 调用能力、是否具备复杂任务能力、是否具备多模态能力以及是否可以统计 Token。

2.2 测试结果表格

模型 思考过程 简单任务 工具调用 MCP 调用 复杂任务 多模态 Token 统计
【Google】Gemini – 2.5 – pro
【OpenRouter】Claude Sonnet 4
【OpenRouter】Gpt – 4.1
【OpenRouter】Grok – 4
【Volcengine】Doubao – Seed – 1.6
【Bailian】Qwen3 – Plus
【Moonshot】kimi – k2
【Volcengine】DeepSeek – R1
【Siliconflow】DeepSeek – R1
【Volcengine】Doubao – 1.5 – Pro ⚠️
【Volcengine】DeepSeek – V3 ⚠️
【Bailian】Qwen3 – 235b – a22b ⚠️
【vLLM】Qwen2.5 – 7B – Instruct ⚠️
【vLLM】DeepSeek – R1 – 32B ⚠️
【Ollama】Qwen2.5 – 7B – Instruct ⚠️

从这个表格中,我们可以清晰地看到不同模型在各个维度上的表现。例如,【Google】Gemini – 2.5 – pro 在所有测试维度上都表现出色,而一些模型在多模态能力上存在不足。这可以帮助用户根据自己的具体需求选择合适的模型。

三、快速开始使用 Daili Code

3.1 前提条件

在使用 Daili Code 之前,您需要确保安装了 Node.js 20 版本 或更高版本。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它可以让 JavaScript 在服务器端运行。安装 Node.js 可以为 Daili Code 的运行提供必要的环境支持。

3.2 运行 CLI 的两种方式

3.2.1 使用 npx 命令

在您的终端中执行以下命令:

npx daili-code

npx 是一个 npm 附带的工具,它可以让您在不全局安装包的情况下运行包中的命令。使用 npx daili-code 命令,您可以直接运行 Daili Code,而无需提前安装它。

3.2.2 全局安装并运行

或者使用以下命令安装:

npm install -g daili-code
dlc

npm install -g daili-code 命令会将 Daili Code 全局安装到您的系统中。安装完成后,您可以使用 dlc 命令来启动 Daili Code。

四、自定义 LLM 配置

4.1 支持自定义 LLM 的原因

Daili Code 命令行工具支持连接到任何兼容 OpenAI 的 LLM API。这是因为不同的用户可能有不同的需求和偏好,有些用户可能更喜欢使用特定的 LLM 提供商或模型。通过支持自定义 LLM 配置,用户可以根据自己的需求选择最合适的 LLM。

4.2 配置环境变量

您可以使用以下环境变量配置首选的 LLM:

# 启用自定义 LLM 支持
export USE_CUSTOM_LLM=true
export CUSTOM_LLM_API_KEY="your-api-key"     # 你的 LLM 提供商 API 密钥
export CUSTOM_LLM_ENDPOINT="https://api.your-llm-provider.com/v1"  # API 端点
export CUSTOM_LLM_MODEL_NAME="your-model-name"  # 模型名称

# 可选参数
export CUSTOM_LLM_TEMPERATURE=0.7  # 温度参数(默认值:0)
export CUSTOM_LLM_MAX_TOKENS=8192  # 最大令牌数(默认值:8192)
export CUSTOM_LLM_TOP_P=1          # Top P 参数(默认值:1)
  • USE_CUSTOM_LLM=true:启用自定义 LLM 支持。
  • CUSTOM_LLM_API_KEY:您的 LLM 提供商的 API 密钥,用于身份验证。
  • CUSTOM_LLM_ENDPOINT:API 端点,指定了与 LLM 提供商通信的地址。
  • CUSTOM_LLM_MODEL_NAME:您要使用的模型名称。

可选参数:

  • CUSTOM_LLM_TEMPERATURE:温度参数,控制生成文本的随机性。值越高,生成的文本越随机;值越低,生成的文本越确定。
  • CUSTOM_LLM_MAX_TOKENS:最大令牌数,限制生成文本的长度。
  • CUSTOM_LLM_TOP_P:Top P 参数,用于控制生成文本的多样性。

当这些变量设置后,Daili Code 命令行工具将使用您的自定义 LLM,而非默认的 Gemini 模型。

五、Daili Code 的使用示例

5.1 从新目录开始项目

cd new-project/
dlc
> 帮我写一个 Discord 机器人,它能使用我将要提供的 FAQ.md 文件来回答问题

首先,使用 cd new-project/ 命令进入一个新的项目目录。然后,使用 dlc 命令启动 Daili Code。在 Daili Code 的交互界面中,输入 帮我写一个 Discord 机器人,它能使用我将要提供的 FAQ.md 文件来回答问题,Daili Code 会根据您选择的 LLM 生成相应的代码。

5.2 处理已有项目

git clone https://github.com/nearmetips/DailiCode.git
cd daili-code
dlc
> 给我总结一下昨天所有的变更内容

使用 git clone https://github.com/nearmetips/DailiCode.git 命令克隆一个已有的项目到本地。然后,使用 cd daili-code 命令进入项目目录。接着,使用 dlc 命令启动 Daili Code。在交互界面中,输入 给我总结一下昨天所有的变更内容,Daili Code 会分析代码库并给出相应的总结。

六、在代码中运行 Daili Code

6.1 引入并使用 Daili Code

import { ElcAgent } from 'daili-code';
const agent = new ElcAgent({
  model: 'custom-llm-model-name',
  apiKey: 'custom-llm-api-key',
  endpoint: 'custom-llm-endpoint',
  extension: {
    mcpServers: {
      chart: {
        command: 'npx',
        args: ['-y', '@antv/mcp-server-chart'],
        trust: false
      }
    },
    excludeTools: ['run_shell_command']
  }
});
const result = await agent.run('请帮我生成一个销售数据的柱状图');
console.log(result);

在 JavaScript 代码中,您可以通过 NPM 引入 Daili Code 并使用。首先,使用 import { ElcAgent } from 'daili-code' 引入 ElcAgent 类。然后,创建一个 ElcAgent 实例,配置模型、API 密钥、端点等信息。接着,调用 agent.run 方法并传入要执行的任务,如 请帮我生成一个销售数据的柱状图。最后,使用 console.log(result) 输出结果。

6.2 API 调用详细文档

查看 API 调用详细文档:Programmatic API。这个文档会提供更详细的关于如何在代码中使用 Daili Code 的信息,包括各种参数的含义和使用方法。

七、后续步骤和故障排除

7.1 后续步骤

  • 贡献代码或从源码构建:了解如何贡献代码或从源码构建。如果您对 Daili Code 的开发感兴趣,您可以阅读这个文档,学习如何参与到项目的开发中。
  • 探索 CLI 命令:探索可用的**CLI 命令**。这些命令可以帮助您更高效地使用 Daili Code,完成各种任务。
  • 查看故障排除指南:如果遇到任何问题,请查看**故障排除指南**。这个指南会提供一些常见问题的解决方案,帮助您快速解决遇到的问题。
  • 参阅完整文档:如需更全面的文档,请参阅完整文档。完整文档会包含 Daili Code 的所有功能和使用方法的详细介绍。
  • 获取热门任务灵感:查看一些热门任务获取更多灵感。这些热门任务展示了 Daili Code 在不同场景下的应用,您可以从中获取一些使用的灵感。

7.2 故障排除

如果遇到问题,请查看故障排除指南。这个指南会针对不同的问题提供相应的解决方案,帮助您顺利使用 Daili Code。

八、热门任务示例

8.1 探索新代码库

首先进入一个已有的或新克隆的仓库,然后运行 dlc

> 描述这个系统架构的主要组成部分。
> 有哪些安全机制在运行?

在探索新代码库时,您可以使用这些命令让 Daili Code 帮助您了解代码库的系统架构和安全机制。

8.2 处理现有代码

> 为 GitHub 第 123 号 issue 实现初稿。
> 帮我把这个代码库迁移到最新版本的 Java。先制定一个计划。

当处理现有代码时,您可以使用这些命令让 Daili Code 帮助您解决具体的代码问题,如实现 issue 的初稿或制定代码库迁移计划。

8.3 自动化工作流

使用 MCP 服务器将本地系统工具与企业协作套件集成。

> 制作一个幻灯片,展示过去 7 天的 git 历史,按功能和团队成员分组。
> 制作一个全屏网页应用,用于墙上显示器,展示我们互动最多的 GitHub 问题。

通过自动化工作流,您可以使用 Daili Code 完成一些复杂的任务,如制作幻灯片或网页应用。

8.4 与系统交互

> 将此目录中的所有图像转换为 png 格式,并根据 exif 数据中的日期重命名。
> 按支出月份整理我的 PDF 发票。

这些命令展示了如何使用 Daili Code 与系统进行交互,完成文件格式转换和文件整理等任务。

九、项目背景

本项目基于 https://github.com/ConardLi/easy-llm-cli 和 https://github.com/google-gemini/gemini-cli。这意味着 Daili Code 继承了这些项目的优点,并且在此基础上进行了改进和扩展,为用户提供了更强大和灵活的功能。

十、FAQ

10.1 Daili Code 需要安装什么前提软件?

Daili Code 需要安装 Node.js 20 版本 或更高版本。

10.2 如何运行 Daili Code 的 CLI?

有两种方式:一是使用 npx daili-code 命令直接运行;二是使用 npm install -g daili-code 全局安装后,使用 dlc 命令运行。

10.3 可以自定义 LLM 配置吗?

可以。您可以通过设置环境变量来配置首选的 LLM,包括 API 密钥、端点、模型名称等信息。

10.4 如何在代码中使用 Daili Code?

在 JavaScript 代码中,通过 import { ElcAgent } from 'daili-code' 引入 ElcAgent 类,创建实例并配置相关信息,然后调用 agent.run 方法执行任务。

10.5 如果使用过程中遇到问题怎么办?

可以查看故障排除指南,其中会提供一些常见问题的解决方案。

总结

Daili Code 作为一个开源的 AI Agent CLI 工具,具有丰富的功能和灵活的配置选项。它支持多种大语言模型,能够帮助用户高效地处理代码库、生成应用、自动化任务等。通过本文的介绍,相信您对 Daili Code 有了更深入的了解,并且可以根据自己的需求开始使用它。无论是初学者还是有经验的开发者,Daili Code 都能为您的工作带来便利和效率的提升。希望您在使用过程中能够充分发挥它的优势,创造出更多有价值的成果。