@ agentskit/聊天时
简介 : major-package
框架中性应用程序定义,用于编译到 AgentsKit 配置 。 拥有键入的路由,政策组成,组件表,会话元数据,确定答案适配器,和语义回落信封,而上游控制器则保留生命周期,内存,工具执行.
协议,服务器,devtools,以及所有7个框架渲染器船作为子路径输出:
import { decodeTurnEvent } from '@agentskit/chat/protocol'
import { createChatHandler } from '@agentskit/chat/server'
import { createTraceCapture } from '@agentskit/chat/devtools'
import { AgentChat } from '@agentskit/chat/react'
它们仍然是孤立的私有工作空间模块,用于所有权和测试,而npm消费者只安装 @agentskit/chat。在单独的折旧阶段之前,原有的独立包名称仍然可用.
可操作选择的使用 createActionConfirmation授权验证 犬科确认 批准 拒绝 以及执行给特工Kit.
已核实的证据
| 表面 | 证据 |
|---|---|
| 标准组件 | catalog.generated.md |
| 决定平面 | ADR-0024 (英语) |
| 上游收养 | 上游矩阵 |
defineChat 保护上游 ChatConfig;它不会创建另一个运行时间.
npm install @agentskit/chat @agentskit/core
快开始
import { defineChat } from '@agentskit/chat'
import type { AdapterFactory } from '@agentskit/core'
export const createSupportChat = (adapter: AdapterFactory) => defineChat({
id: 'support',
chat: { adapter },
})
使用 resumeChatSession(definition, { sessionId, storage }) 用于交叉客户端元数据,并将返回的会话传递给任何渲染器。 自定义 UI 流经 defineComponentManifest 财务报告和审定财务报表 resolveComponentFrame。 。 。 .
flowchart LR
C["@agentskit/chat"] --> P["/protocol"]
C --> S["/server"]
C --> D["/devtools"]
C --> R["seven renderer subpaths"]
成熟性和相容性
发表于 0.7.0 与 @agentskit/core ^1.15.0, (中文(简体) ), @agentskit/memory ^0.12.0, (中文(简体) ), @agentskit/statechart ^0.3.2,以及 @agentskit/eval ^0.7.0。见 稳定。 。 。 .
- 节点.js 22+
- 类型脚本严格模式
捐款
软件包所有权 : packages/chat后续 捐款额 和编辑前查询 doc-bridge.
标记 : agentskit-chat, (中文(简体) ), chat-definitions, (中文(简体) ), deterministic-answers, (中文(简体) ), typescript
探员 Kit 生态系统
建造在 探员Kit组合 书记官处, (中文(简体) ), 游戏本,以及 多克桥。 。 。 .
可选 PostgreSQL 会话信封
安装 drizzle-orm 和主机中的 PostgreSQL 驱动程序,然后导入可选子路径 :
import { drizzle } from 'drizzle-orm/node-postgres'
import { chatSessionDDL, createDrizzleSessionStorage } from '@agentskit/chat/drizzle-pg'
// pool is the host-owned pg Pool (Node) or connected request Client (Workers).
// Apply chatSessionDDL once in a migration, never on every production request.
const storage = createDrizzleSessionStorage(drizzle(pool), authenticatedTenantId)
适配器存储应用程序信封,而不是消息. 继续使用上游 ChatMemory 为犬科历史; 一个 Drizzle Chat Memory 后端正在上游等待. save 返回丢失的光标 CAS 的虚假值; 恢复会话中的持久性将转换为 SessionConflictError,处理器保存 HTTP 409 SESSION_CONFLICT。密钥和每个读取/更新/删除都包括信任的租户身份证。 供应租户的身份来自认证, 从来没有从一个不信任的事件.
关于工人的连接 pg.Client 每个请求(生产中的Hyperdrive连接字符串),并调用 client.end() 内 waitUntil 在消耗/关闭聊天流后。 在节点再使用时 pg.Pool 并在服务器关闭时关闭 。 适配器没有导入尼昂或Cloudflare专用API. 在 SQL 发送前检查中止; 飞行中的 SQL 不取消 .
同一子路径为以后的请求中决定的确认提供耐用储存。 应用 chatDecisionDDL 在迁移中,把商店交给管理者 decisions 选项 :
import { createDrizzleDecisionStore } from '@agentskit/chat/drizzle-pg'
const decisions = createDrizzleDecisionStore(drizzle(pool), authenticatedTenantId, sessionId)
它执行上游 ToolDecisionStore: 每个确认所需的工具呼叫一行, 和一个条件 UPDATE 作为债权,因此同时批准的执行工具一次。 见 服务器。 。 。 .
可选 RLS 深度辩护( 配置租户背景- 本地交易) set_config 使用非所有者角色而不使用BYPASSRLS:
ALTER TABLE agentskit_chat_sessions ENABLE ROW LEVEL SECURITY;
ALTER TABLE agentskit_chat_sessions FORCE ROW LEVEL SECURITY;
CREATE POLICY chat_tenant ON agentskit_chat_sessions
USING (tenant_id = current_setting('app.tenant_id', true))
WITH CHECK (tenant_id = current_setting('app.tenant_id', true));
见 可重复使用的本地合同 用于Postgres 16和wrangler验证. RLS是可选的,不由该套房行使.