Agent Engine Fundamentals

Target Audience: Engineers & Architects Prerequisites: Familiarity with Google ADK, PostgreSQL, and Event Sourcing patterns.

This document serves as the "Deep Dive" companion to the Main Technical Report. While the report focuses on why we chose this architecture, this document explains how it works at a granular level.

#1. ADK 接口适配 (Interface Adaptation)

To achieve "De-Google" while remaining "Re-Google Compatible", we adhere strictly to the Google ADK (Agent Development Kit) interfaces. We separate Logic (ADK Runner) from Storage (PostgreSQL) using the Adapter Pattern.

#1.1 核心架构 (Architecture Layering)

#1.2 PostgreSQL 实现增强 (Enhancement Points)

ADK 默认的 InMemory 模式 MemoryBank 实现是不满足生存要求的,通过 PostgreSQL 实现可以强化这些生产所需的特性:

ADK Default / In-MemoryPostgreSQL 增强
Memory: Simple ListVector Search: 使用 PGVector 进行真实的语义与关键字等融合检索、记忆巩固、权重衰减的遗忘机制
Search: Naive FilteringIterative Scan: 使用 hnsw.iterative_scan 避免高过滤场景的 "Recall@0" 问题
Concurrency: NoneOptimistic Locking: 使用 version 字段的 CAS (Compare-And-Swap) 防止状态覆盖,实现高并发

#2. ADK Runner 驱动与交互

The interaction between the ADK Runner (the brain's executive function) and our PostgreSQL Services (the body) follows a strict event-driven loop.

#2.1 SessionService 关键行为 (P1)

BehaviorDescriptionImplementation Detail
State Commitstate_delta 仅在 Event 被 Runner 处理后才提交需在 append_event 中通过事务原子更新
Dirty Reads同一 Invocation 内可见未提交的 State 变更内存缓存 + 最终 PG 持久化
Event OrderingEvents 必须严格按序列号排序使用 BIGSERIAL 保证 IDs 自增顺序
Prefix Routing不同前缀路由到不同存储位置解析 state_delta 键前缀 (user: / app: / temp:) 后分发到对应表

#2.2 MemoryService 关键行为 (P2)

BehaviorDescriptionImplementation Detail
Session Ingestion将 Session Events 转化为可检索的 Memory调用 Phase 2 consolidation_worker 的 consolidate()
Semantic Search基于向量相似度检索相关记忆复用 Phase 3 的 hybrid_search()
User Isolation不同用户的 Memory 严格隔离WHERE user_id = $user_id

#3. 核心模块

以下是 Agent Engine Adaptation 核心模块说明与代码关联(实际代码:apps/cognizes/src/cognizes/adapters/postgres/apps/cognizes/src/cognizes/engine/)。

TagComponent NameFunctionCode Path
FeaturePostgresSessionServiceP1: 完全兼容 ADK BaseSessionService 接口的 PostgreSQL 适配器apps/cognizes/src/cognizes/adapters/postgres/session_service.py
PostgresMemoryServiceP2: 完全兼容 ADK BaseMemoryService 接口的 PostgreSQL 适配器,提供记忆巩固等能力apps/cognizes/src/cognizes/adapters/postgres/memory_service.py
KnowledgeServiceP3: RAG Pipeline 与 Hybrid Search 封装 (位于 engine/perception/)apps/cognizes/src/cognizes/engine/perception/rag_pipeline.py
ToolRegistryP4: 数据库驱动的动态工具注册表,支持 OpenAPI Schema 动态加载与热更新apps/cognizes/src/cognizes/adapters/postgres/tool_registry.py
TracingP4: OpenTelemetry 双路导出集成 ,支持 Langfuse + PostgreSQLapps/cognizes/src/cognizes/adapters/postgres/tracing.py
AgentExecutorP4: 与 ADK Runner 协同,Python 驱动的 Agent 执行器,管理 Thought -> Action -> Observation 循环apps/cognizes/src/cognizes/engine/mind/agent_executor.py
TestSessionServiceTestPostgresSessionService 单元测试,覆盖 ADK BaseSessionService 接口所有方法apps/cognizes/tests/unittests/engine/mind/test_session_service.py
ADKLlmAgentTestADK Runner 集成示例,验证 PostgresSessionService 与 Google ADK LlmAgent + Runner 的完整协同apps/cognizes/tests/integration/engine/mind/test_adk_llmagent.py
ADKIntegrationTest验证 adk-postgres 与 Google ADK LlmAgent 的完整集成apps/cognizes/tests/integration/engine/mind/test_adk_integration.py
E2ETestE2E 集成测试 - 完整对话流程,验证 Session -> Agent -> Tool -> Memory 全链路apps/cognizes/tests/integration/engine/mind/test_e2e.py

#4. Table Schema

以下是 Agent Engine Adaptation 底层存储所需 Table 的架构设计,以及其如何实现可观测性的相关说明。

Table 职责 (Responsibilities):

表名职责对标概念生命周期
tools工具注册表 (动态加载)ADK Function Registry持久化
tool_executions工具执行记录 (审计追踪)Tool Call Audit Log按策略归档
tracesOpenTelemetry Trace 存储Langfuse/OTLP按策略清理
sandbox_executions沙箱执行记录Code Interpreter Log按策略清理

#5. 附录:Vertex AI Agent Engine 定价参考

: 以下为 Google Vertex AI Agent Engine 的云端托管定价(截至 2025 年),本项目采用自托管 PostgreSQL,不适用此定价。

  • SessionStore: $0.25/1000 events;
  • MemoryBank.MemoriesStoredPerMonth: $0.25/1000 memories;
  • MemoryBank.MemoriesRetrieved: $0.25/1000 memories;