浏览全部文档 · 28/37

功能简介

AppBase 可以把 LLM Gateway、Knowledge Base、Memory、Moderation、Functions、Realtime 与 Project 权限组合成 Agent 应用后端。应用负责定义 Agent 状态、Tool、Run、重试和编排;平台提供受控模型入口、知识检索、长期记忆、内容安全、计算和数据边界。

当前支持范围

  • Agent 后端组合能力(APPBASE_ENHANCED):可组合 Models、Knowledge Base、Memory、Moderation、Functions 与项目权限,作为 Agent 应用的后端基础设施;这不是统一 Agent 生命周期运行时。

适用场景

  • 构建带来源的 RAG 助手。
  • 让长期任务读取受用户范围约束的 Memory。
  • 在模型输入、输出或业务写入链路增加 Moderation 与审计。

前置条件

  • Project 已配置所需 Provider、Knowledge Base、Memory Binding 和 Function。
  • 服务端为每个组件使用最小 Scope。
  • 应用已定义明确的超时、幂等、失败降级与人工复核策略。

Console 操作路径

Console 中分别进入 LLM Gateway、Knowledge Base、Memory、Moderation 与 Functions 配置组件。当前没有统一的 Agent 实例、Run 或 Tool 控制台。

SDK 示例

SDK · TypeScript
import { Client as WebClient, LlmGateway } from 'appbase-web-sdk';
import { Client as ConsoleClient } from 'appbase-console-sdk';
import { KnowledgeBaseSdk } from '<CONSOLE_SOURCE>/lib/sdk/knowledge-base';

const webClient = new WebClient()
  .setEndpoint('https://<APPBASE_HOST>/v1')
  .setProject('<PROJECT_ID>')
  .setJWT('<USER_JWT>');
const consoleClient = new ConsoleClient()
  .setEndpoint('https://<APPBASE_HOST>/v1')
  .setProject('<PROJECT_ID>')
  .setKey('<API_KEY>');
const knowledge = new KnowledgeBaseSdk(consoleClient);
const gateway = new LlmGateway(webClient);

const context = await knowledge.search('<KNOWLEDGE_BASE_ID>', {
  query: 'Explain project isolation',
  searchMode: 'hybrid',
  limit: 5
});

const answer = await gateway.createChatCompletion({
  model: '<MODEL_ID>',
  messages: [{
    role: 'user',
    content: JSON.stringify({ question: 'Explain project isolation', context: context.results })
  }],
  maxTokens: 512
});
void answer;

REST 示例

REST · Bash
# 先检索 Knowledge Base,再把经过权限过滤的结果交给 LLM Gateway。
curl 'https://<APPBASE_HOST>/v1/knowledgebases/<KNOWLEDGE_BASE_ID>/search' \
  -X POST \
  -H 'X-Appwrite-Project: <PROJECT_ID>' \
  -H 'X-Appwrite-Key: <API_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{"query":"Explain project isolation","searchMode":"hybrid","limit":5}'

权限模型

每个组件独立校验 Project、Scope 与资源权限。Agent 服务端不能用一个无限权限 Key 替代用户授权;需要代表用户时使用短期 JWT 或服务端明确的授权映射。

常见错误

现象处理建议
模型可用但知识检索失败分别处理组件错误,不能把空上下文伪装成权威答案。
Memory 越权风险在服务端固定 userId/scope,不接受客户端任意覆盖。
Provider 超时设置总预算与超时,按请求幂等性决定重试。
审核失败采用安全失败或人工复核,不绕过 Moderation。

当前限制

  • 没有统一 Agent Runtime、Agent 实例、Run、Tool 或多 Agent 调度 API。
  • 没有模型训练、权重托管或推理集群生命周期管理。
  • 应用仍需自己实现提示词、状态机、Tool 安全和结果评估。

Appwrite 兼容说明

Appwrite 文档只提供产品分类参考;本页的 Agent 组合是 AppBase 源码能力的独立架构说明。

AppBase 增强说明

AppBase 的差异是把模型、知识、记忆、审核和函数放在统一 Project/Scope/Permission 边界内供应用组合。

发布状态和验证 Commit

origin/main 已核验。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353

权威来源文件列表

  • origin-main:src/Appwrite/Platform/Modules/Functions/
  • origin-main:src/Appwrite/Platform/Modules/KnowledgeBases/
  • origin-main:src/Appwrite/Platform/Modules/LLMGateway/
  • origin-main:src/Appwrite/Platform/Modules/Memory/
  • origin-main:src/Appwrite/Platform/Modules/Moderation/

Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs/tooling/ai。上游页面不是 AppBase 实现证据。

继续阅读