命令行工具

命令说明

多样工具便捷使用

创建智能体

使用 veadk create 命令在当前目录中创建一个新的智能体项目脚手架。

veadk create [AGENT_NAME] [OPTIONS]

参数

  • AGENT_NAME: 要创建的智能体的名称。如果未提供,将会提示您输入。

选项

  • --ark-api-key:ARK API 密钥。如果未提供,将会提示您输入或稍后在 config.yaml 文件中配置。

执行 veadk create 命令后,它会:

  1. 提示您输入智能体名称(如果未作为参数提供)。
  2. 提示您输入 ARK API 密钥(如果未通过 --ark-api-key 提供),您可以选择立即输入或稍后在生成的 config.yaml 文件中手动配置。
  3. 在当前目录下创建一个以智能体名称命名的新目录。
  4. 在新目录中生成以下文件:
    • config.yaml: 包含模型配置和日志级别的配置文件。
    • {agent_name}/__init__.py: 包初始化文件。
    • {agent_name}/agent.py: 智能体的主要逻辑文件,包含一个基本的 Agent 定义。

如果目标目录已存在且不为空,它会提示您是否要覆盖它。

提示词优化

用来优化 Agent 的系统提示词(System prompt)。

veadk prompt

选项包括:

  • --path:指定要优化的 Agent 文件路径,默认值为当前目录下的 agent.py 文件。注意,必须将你定义的智能体作为全局变量导出
  • --feedback:指定优化后的提示词反馈,用于优化模型
  • --api-key:指定 AgentPilot 平台的 API Key,用于调用优化模型
  • --model-name:指定优化模型的名称,默认值为 doubao-1.5-pro-32k-250115

一键上云部署

可直接将本地项目部署到火山引擎 FaaS 平台上:

veadk deploy

选项包括:

  • --access-key:指定火山引擎的 Access Key,用于调用 FaaS 平台的 API
  • --secret-key:指定火山引擎的 Secret Key,用于调用 FaaS 平台的 API
  • --name:指定部署的应用名称,用于在 FaaS 平台上标识该部署
  • --path:指定项目路径,默认值为当前目录

本地调试

可以通过adk webveadk web来启动Web页面,运行智能体:

# basic usage:
adk web

# or 
veadk web

它们能够自动读取执行命令目录中的agent.py文件,并加载root_agent全局变量。

评测

通过使用 veadk eval 来进行智能体评测,相关参数如下:

--agent-dir
string
待评测的 Agent 目录。目录中需要符合 Google ADK 的项目结构,即需要具备一个导出 root_agent 的名为 agent.py 的文件。
--agent-a2a-url
string
待评测的云端 Agent 路径,要求云端 Agent 使用 A2A 协议进行部署。
--evalset-file
string
Google ADK 格式的评测集文件
--evaluator
string
评测器类别:adk 为 Google ADK 内置评测器,评测模型为自身;deepeval 为 DeepEval 评测器,评测模型可以通过 --judge-model-name 参数指定。
--judge-model-name
string
默认为 doubao-1-5-pro-256k-250115 - 评测模型,该参数在 --evaluator 值为 adk 时无效。
--volcengine-access-key
string
火山引擎 Access Key
--volcengine-secret-key
string
火山引擎 Secret Key

知识库操作

您可以通过 veadk kb add 命令来向您的知识库添加本地文件或者目录。例如,准备如下目录:

knowledges/id.txt
My id is 20250101.

之后,将 knowledges/id.txt 中的内容存入到 OpenSearch 知识库中:

# 知识库的相关配置将会从环境变量中读取
veadk kb add --backend opensearch --app_name=cmd_app --path=./knowledges

可使用如下代码测试:

import asyncio

from veadk import Agent, Runner
from veadk.knowledgebase import KnowledgeBase

app_name = "cmd_app"

knowledgebase = KnowledgeBase(backend="opensearch", app_name=app_name)

agent = Agent(knowledgebase=knowledgebase)

runner = Runner(agent=agent, app_name=app_name)

response = asyncio.run(
    runner.run(messages="Please help me to fetch my ID from my knowledgebase")
)

print(response) # Your ID is 20250101.

评测集上传

将评测集上传到 CozeLoop 平台:

# cozeloop-workspace-id, cozeloop-evalset-id, cozeloop-api-key可从从环境变量中读取
veadk uploadevalset --file <评测集JSON文件路> ---cozeloop-workspace-id <CozeLoop工作空间ID> --cozeloop-evalset-id <CozeLoop评测集ID> --cozeloop-api-key <CozeLoop API Key>

环境变量配置:

  • OBSERVABILITY_OPENTELEMETRY_COZELOOP_SERVICE_NAME: 工作空间ID
  • OBSERVABILITY_OPENTELEMETRY_COZELOOP_EVALSET_ID: 评测集ID
  • OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEY: API Key