AgentKit Knowledge 快速开始指南
Agentkit Knowledge 提供主流的知识库的一键配置导入能力,实现在 AgentKit 平台轻松关联知识库,并提供统一的知识库接口与框架对接,提升 Agent 使用不同知识库的便利性。
使用示例
步骤如下
- 创建知识库资源
- 将模版文件添加到知识库
- 从知识库中检索记忆记录
创建知识库
通过火山引擎控制台,为智能体创建知识库VikingDB-Knowledge,并添加下面内容作为qa.md到知识库customer_support中。
md
# 智能客服知识库
## 1. 公司简介
VE 科技是一家专注于智能客服与知识管理的高科技公司。我们的核心产品是 **智能客服系统**,通过自然语言处理与知识库检索,为企业客户提供高效、智能的自动化客服解决方案。
## 2. 产品功能说明
- **自动问答**:基于知识库,快速响应常见问题。
- **多渠道接入**:支持网页、App、微信、飞书等渠道。
- **智能推荐**:根据上下文推荐相关答案。
- **数据分析**:提供用户问题统计与客服绩效报告。
- **自助知识库管理**:支持非技术人员快速编辑知识内容。
---
## 3. 常见问题 (FAQ)
### Q1: 智能客服系统支持哪些语言?
A1: 目前支持 **中文** 和 **英文**,后续将逐步增加日语、韩语等多语言支持。
### Q2: 系统可以接入现有的 CRM 吗?
A2: 可以。我们的系统支持通过 API 与主流 CRM 系统(如 Salesforce、Zoho、金蝶)进行无缝集成。
### Q3: 如果机器人无法回答用户问题,会怎么办?
A3: 系统会自动将问题转接至人工客服,并在后台记录该问题,方便管理员补充到知识库。
### Q4: 知识库内容多久更新一次?
## A4: 知识库支持 **实时更新**,管理员提交后即可立即生效。
## 4. 联系我们
- 官网:[https://www.example.com](https://www.example.com)
- 客服邮箱:support@ve
- 服务热线:400-123-4567导入知识库
通过火山引擎控制台,为智能体导入知识库Agentkit-Knowledge
获取记忆资源的连接信息
在记忆详情-集成代码页面,获取连接信息。
- 对于 VikingDB Knowledge 类型的记忆资源,您可以看到类似如下的环境变量:
bash
export DATABASE_VIKING_COLLECTION=customer_support
export DATABASE_VIKING_PROJECT=default
export DATABASE_VIKING_REGION=cn-beijing构建一个带知识库能力的智能体
VeADK是一个开源的智能体开发框架,提供了智能体的开发、运行、调试等功能,由火山引擎团队维护。
以下示例展示了如何使用 VeADK 构建一个带知识库能力的智能体,知识库后端采用 VikingDB Knowledge。智能体可以根据用户输入的问题,使用知识库来回答用户的问题。
您无需从 0-1 构建 veadk 项目,推荐使用 agentkit-cli,从 Basic Agent App 模版来创建项目(模板使用 VeADK 框架)。在模版创建完成后,你需要做以下修改:
- 为 Agent 添加
Knowledgebase - 配置上个章节获取的环境变量到
agentkit.yaml
最终,您的代码文件应该如下:
python
'''
**simple agent demo app**
Before running, the user must set the following environment variables; otherwise, runtime exceptions will inevitably occur:
- MODEL_AGENT_NAME # model id in Volcano Engine Ark platform
- MODEL_AGENT_API_KEY # model api key in Volcano Engine Ark platform
MODEL_AGENT_NAME and MODEL_AGENT_API_KEY are used to access the model service of the Volcano Engine Ark platform.
'''
import logging
import os
from veadk import Agent, Runner
from veadk.knowledgebase import KnowledgeBase
from agentkit.apps import AgentkitSimpleApp
logger = logging.getLogger(__name__)
collection_name = os.getenv("DATABASE_VIKING_COLLECTION")
if not collection_name:
raise ValueError("DATABASE_VIKING_COLLECTION environment variable is not set")
model_name = "doubao-seed-1-6-250615"
app = AgentkitSimpleApp()
knowledgebase = KnowledgeBase(backend="viking", index=collection_name)
agent = Agent(
instruction="Answer customer's questions according to your knowledgebase.",
model_name=model_name,
knowledgebase=knowledgebase
)
runner = Runner(agent=agent)
@app.entrypoint
async def run(payload: dict, headers: dict) -> str:
prompt = payload["prompt"]
user_id = headers["user_id"]
session_id = headers["session_id"]
logger.info(
f"Running agent with prompt: {prompt}, user_id: {user_id}, session_id: {session_id}"
)
response = await runner.run(messages=prompt, user_id=user_id, session_id=session_id)
logger.info(f"Run response: {response}")
return response
@app.ping
def ping() -> str:
return "pong!"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)环境配置
请为您的 agentkit.yaml 文件添加如下配置
launch_types:
cloud:
runtime_envs:
DATABASE_VIKING_COLLECTION: <your viking collection name>启动服务
运行 agentkit launch。构建好 Runtime 链接信息将被自动保存在 agentkit.yaml 文件中。
如何发起调用
执行如下发起调用
agentkit invoke "你们有什么产品?"您将看到 Agent 成功读取到知识库中的信息,并将qa.md中的信息重新组织语言后回答您。
