VolcengineVolcengine ADK
社区支持

Langchain 社区支持

VeADK 在 veadk.community.langchain_ai 模块下提供了一系列与 Langchain / LangGraph 生态集成的组件,让您可以在 Langchain 应用中直接复用 VeADK 的模型、知识库与记忆能力。

模型

ArkChatModel 继承自 Langchain 的 ChatOpenAI,用于调用火山引擎方舟(Ark)平台上的模型。使用前请先配置环境变量:

export MODEL_AGENT_API_KEY="<你的方舟 API Key>"
from veadk.community.langchain_ai.models.ark_model import ArkChatModel

llm = ArkChatModel(model="deepseek-v3-1-terminus")

response = llm.invoke("你好,请介绍一下你自己。")
print(response.content)

ArkChatModel 兼容 Langchain ChatOpenAI 的全部接口,您可以像使用任意 Langchain 聊天模型一样在链(chain)、代理(agent)或图(graph)中使用它。

知识库

KnowledgeBase 提供基于向量检索的知识库能力。在 Langchain / LangGraph 中,可以通过 load_knowledgebase 工具将知识库的语义检索能力暴露给智能体。该工具会从运行时上下文(runtime.context.knowledgebase)读取知识库实例,因此你需要把配置好的 KnowledgeBase 通过 context 传入。

from dataclasses import dataclass

from langchain.agents import create_agent
from veadk.knowledgebase import KnowledgeBase
from veadk.community.langchain_ai.models.ark_model import ArkChatModel
from veadk.community.langchain_ai.tools.load_knowledgebase import load_knowledgebase

# 1. 配置知识库实例
knowledgebase = KnowledgeBase(
    name="preference",
    backend="viking",
    index="viking_demo_create_2",
)

# 2. 定义上下文 schema,把知识库传给工具
@dataclass
class Context:
    knowledgebase: KnowledgeBase

# 3. 构建 LangGraph 智能体,并把 load_knowledgebase 作为工具
agent = create_agent(
    model=ArkChatModel(model="deepseek-v3-1-terminus"),
    tools=[load_knowledgebase],
    context_schema=Context,
)

# 4. 调用时通过 context 注入知识库实例
result = agent.invoke(
    {"messages": [{"role": "user", "content": "我的偏好是什么?"}]},
    context=Context(knowledgebase=knowledgebase),
)
print(result["messages"][-1].content)

智能体在运行时会调用 load_knowledgebase(query),对 context 中的知识库执行语义检索并返回相关片段。

短期记忆

ShortTermMemory 提供会话级别(session-scoped)的短期记忆,用于在单次会话内保存对话上下文。

from veadk.memory.short_term_memory import ShortTermMemory

short_term_memory = ShortTermMemory(backend="sqlite")

短期记忆按会话隔离,适合在一次连续对话中保留上下文。会话结束后,这些数据不会跨会话保留。

长期记忆

长期记忆用于在不同会话之间持久化记忆。VeADK 通过 VikingMemoryStore 提供基于火山引擎 Viking 的长期记忆存储,并通过 load_memory 工具让智能体检索历史记忆。load_memory 会从运行时读取记忆存储(runtime.store)与用户标识(runtime.context.user_id),因此你需要把 VikingMemoryStore 作为 store 传入,并在 context 中提供 user_id。

from dataclasses import dataclass

from langchain.agents import create_agent
from veadk.community.langchain_ai.models.ark_model import ArkChatModel
from veadk.community.langchain_ai.tools.load_memory import load_memory
from veadk.community.langchain_ai.store.memory.viking_memory import VikingMemoryStore

# 1. 配置长期记忆存储
store = VikingMemoryStore(index="aiops")

# 2. 定义上下文 schema,提供 user_id
@dataclass
class Context:
    user_id: str

# 3. 构建 LangGraph 智能体,把 store 与 load_memory 工具接入
agent = create_agent(
    model=ArkChatModel(model="deepseek-v3-1-terminus"),
    tools=[load_memory],
    context_schema=Context,
    store=store,
)

# 4. 调用时通过 context 提供 user_id
result = agent.invoke(
    {"messages": [{"role": "user", "content": "我们上次聊到哪了?"}]},
    context=Context(user_id="user-123"),
)
print(result["messages"][-1].content)

智能体在运行时会调用 load_memory(query),从长期记忆存储中检索与当前问题相关的历史记忆,从而实现跨会话的记忆能力。

使用 VikingMemoryStore 前,请确保已正确配置火山引擎 Viking 相关的环境变量。

本页导航