270 lines
7.1 KiB
Markdown
270 lines
7.1 KiB
Markdown
# Vertex AI Memory Bank 配置指南
|
||
|
||
## 🏛️ 稷下学宫记忆银行集成
|
||
|
||
本文档介绍如何为稷下学宫AI辩论系统配置和使用Vertex AI Memory Bank功能。
|
||
|
||
## 📋 前置要求
|
||
|
||
### 1. Google Cloud 项目设置
|
||
- 有效的 Google Cloud 项目
|
||
- 启用 Vertex AI API
|
||
- 配置适当的 IAM 权限
|
||
|
||
### 2. 必需的依赖
|
||
```bash
|
||
pip install google-cloud-aiplatform>=1.38.0
|
||
pip install google-adk # 或开发版本
|
||
```
|
||
|
||
### 3. 环境变量配置
|
||
在 Doppler 或本地环境中设置以下变量:
|
||
|
||
```bash
|
||
# 必需配置
|
||
GOOGLE_API_KEY=your_gemini_api_key
|
||
GOOGLE_CLOUD_PROJECT_ID=your-project-id
|
||
|
||
# 可选配置
|
||
GOOGLE_CLOUD_LOCATION=us-central1 # 默认区域
|
||
VERTEX_MEMORY_BANK_ENABLED=TRUE # 启用记忆银行
|
||
GOOGLE_SERVICE_ACCOUNT_KEY=path/to/service-account.json # 服务账号密钥
|
||
```
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. 验证配置
|
||
```bash
|
||
# 验证 Google ADK 配置
|
||
python config/settings.py
|
||
|
||
# 测试 Memory Bank 连接
|
||
python tests/test_vertex_memory_bank.py
|
||
```
|
||
|
||
### 2. 初始化八仙记忆银行
|
||
```python
|
||
from src.jixia.memory.vertex_memory_bank import initialize_baxian_memory_banks
|
||
|
||
# 初始化所有八仙的记忆银行
|
||
memory_bank = await initialize_baxian_memory_banks(
|
||
project_id="your-project-id",
|
||
location="us-central1"
|
||
)
|
||
```
|
||
|
||
### 3. 创建记忆增强智能体
|
||
```python
|
||
from src.jixia.agents.memory_enhanced_agent import create_memory_enhanced_council
|
||
|
||
# 创建记忆增强的八仙议会
|
||
council = await create_memory_enhanced_council()
|
||
|
||
# 进行记忆增强辩论
|
||
result = await council.conduct_memory_debate(
|
||
topic="NVIDIA股票投资分析",
|
||
participants=["tieguaili", "lvdongbin", "hexiangu"],
|
||
rounds=3
|
||
)
|
||
```
|
||
|
||
## 🎭 八仙记忆特性
|
||
|
||
每位仙人都有独特的记忆重点和学习模式:
|
||
|
||
### 铁拐李 (逆向投资大师)
|
||
- **记忆重点**: 市场异常、逆向案例、风险警示、反向策略
|
||
- **学习模式**: 关注市场共识的反面,记住历史上的逆向成功案例
|
||
|
||
### 吕洞宾 (理性分析者)
|
||
- **记忆重点**: 技术分析、数据洞察、逻辑推理、理性决策
|
||
- **学习模式**: 基于数据和逻辑的严密分析,记住成功的分析框架
|
||
|
||
### 何仙姑 (直觉洞察者)
|
||
- **记忆重点**: 市场情绪、直觉判断、情感因素、人性洞察
|
||
- **学习模式**: 关注市场情绪变化,记住情感驱动的市场事件
|
||
|
||
### 张果老 (历史智慧者)
|
||
- **记忆重点**: 历史案例、长期趋势、周期规律、经验教训
|
||
- **学习模式**: 从历史中学习,记住重要的历史模式和教训
|
||
|
||
### 汉钟离 (平衡协调者)
|
||
- **记忆重点**: 平衡策略、综合分析、协调方案、稳健建议
|
||
- **学习模式**: 寻求各方观点的平衡,记住成功的协调案例
|
||
|
||
### 蓝采和 (创新思维者)
|
||
- **记忆重点**: 创新机会、新兴趋势、潜力发现、灵活策略
|
||
- **学习模式**: 发现新兴机会,记住创新投资的成功案例
|
||
|
||
### 韩湘子 (艺术感知者)
|
||
- **记忆重点**: 美学趋势、创意洞察、感性分析、艺术视角
|
||
- **学习模式**: 从美学角度分析市场,记住艺术和创意相关的投资
|
||
|
||
### 曹国舅 (实务执行者)
|
||
- **记忆重点**: 执行策略、机构动向、实务操作、专业分析
|
||
- **学习模式**: 关注实际执行,记住机构操作和专业分析
|
||
|
||
## 🔧 高级配置
|
||
|
||
### 1. 自定义记忆类型
|
||
```python
|
||
# 支持的记忆类型
|
||
MEMORY_TYPES = [
|
||
"conversation", # 对话记忆
|
||
"preference", # 偏好记忆
|
||
"knowledge", # 知识记忆
|
||
"strategy" # 策略记忆
|
||
]
|
||
|
||
# 添加自定义记忆
|
||
await memory_bank.add_memory(
|
||
agent_name="tieguaili",
|
||
content="在熊市中,逆向投资策略往往更有效",
|
||
memory_type="strategy",
|
||
debate_topic="市场策略",
|
||
metadata={
|
||
"market_condition": "bear_market",
|
||
"confidence": 0.8,
|
||
"source": "historical_analysis"
|
||
}
|
||
)
|
||
```
|
||
|
||
### 2. 记忆搜索和过滤
|
||
```python
|
||
# 搜索特定类型的记忆
|
||
strategy_memories = await memory_bank.search_memories(
|
||
agent_name="tieguaili",
|
||
query="逆向投资",
|
||
memory_type="strategy",
|
||
limit=10
|
||
)
|
||
|
||
# 获取智能体的完整上下文
|
||
context = await memory_bank.get_agent_context(
|
||
agent_name="tieguaili",
|
||
debate_topic="NVIDIA投资分析"
|
||
)
|
||
```
|
||
|
||
### 3. 辩论会话保存
|
||
```python
|
||
# 自动保存辩论会话
|
||
await memory_bank.save_debate_session(
|
||
debate_topic="比特币投资价值",
|
||
participants=["tieguaili", "lvdongbin", "hexiangu"],
|
||
conversation_history=conversation_history,
|
||
outcomes={
|
||
"winner": "tieguaili",
|
||
"key_insights": ["逆向思维在加密货币投资中的重要性"],
|
||
"consensus": "需要更谨慎的风险管理"
|
||
}
|
||
)
|
||
```
|
||
|
||
## 📊 监控和管理
|
||
|
||
### 1. 记忆银行状态检查
|
||
```python
|
||
# 检查记忆银行状态
|
||
for agent_name, bank_name in memory_bank.memory_banks.items():
|
||
chinese_name = memory_bank.baxian_agents[agent_name]
|
||
print(f"{chinese_name}: {bank_name}")
|
||
```
|
||
|
||
### 2. 记忆使用统计
|
||
```python
|
||
# 获取记忆统计信息
|
||
stats = await memory_bank.get_memory_stats(agent_name="tieguaili")
|
||
print(f"总记忆数: {stats['total_memories']}")
|
||
print(f"对话记忆: {stats['conversation_count']}")
|
||
print(f"策略记忆: {stats['strategy_count']}")
|
||
```
|
||
|
||
### 3. 记忆清理和维护
|
||
```python
|
||
# 清理过期记忆(如果需要)
|
||
await memory_bank.cleanup_old_memories(
|
||
agent_name="tieguaili",
|
||
days_old=30,
|
||
memory_type="conversation"
|
||
)
|
||
```
|
||
|
||
## 🔒 安全和隐私
|
||
|
||
### 1. 数据加密
|
||
- 所有记忆数据在传输和存储时都会加密
|
||
- 使用 Google Cloud 的企业级安全措施
|
||
|
||
### 2. 访问控制
|
||
- 每个智能体只能访问自己的记忆银行
|
||
- 通过 IAM 控制项目级别的访问权限
|
||
|
||
### 3. 数据保留
|
||
- 可以配置记忆数据的保留期限
|
||
- 支持手动删除敏感记忆
|
||
|
||
## 🚨 故障排除
|
||
|
||
### 常见问题
|
||
|
||
#### 1. 项目ID未配置
|
||
```
|
||
❌ Google Cloud Project ID 未配置
|
||
```
|
||
**解决方案**: 设置 `GOOGLE_CLOUD_PROJECT_ID` 环境变量
|
||
|
||
#### 2. API权限不足
|
||
```
|
||
❌ 403 Forbidden: Vertex AI API access denied
|
||
```
|
||
**解决方案**:
|
||
- 在 Google Cloud Console 中启用 Vertex AI API
|
||
- 确保服务账号有适当的权限
|
||
|
||
#### 3. 记忆银行创建失败
|
||
```
|
||
❌ 创建记忆银行失败: Region not supported
|
||
```
|
||
**解决方案**:
|
||
- 检查 `GOOGLE_CLOUD_LOCATION` 设置
|
||
- 使用支持 Memory Bank 的区域(如 us-central1)
|
||
|
||
#### 4. 依赖包缺失
|
||
```
|
||
❌ Google Cloud AI Platform 未安装
|
||
```
|
||
**解决方案**:
|
||
```bash
|
||
pip install google-cloud-aiplatform>=1.38.0
|
||
```
|
||
|
||
### 调试模式
|
||
```python
|
||
# 启用详细日志
|
||
import logging
|
||
logging.basicConfig(level=logging.DEBUG)
|
||
|
||
# 测试连接
|
||
python tests/test_vertex_memory_bank.py
|
||
```
|
||
|
||
## 📚 参考资源
|
||
|
||
- [Vertex AI Memory Bank 官方文档](https://cloud.google.com/blog/products/ai-machine-learning/vertex-ai-memory-bank-in-public-preview)
|
||
- [Google ADK 文档](https://github.com/google/adk-python)
|
||
- [稷下学宫项目文档](../README.md)
|
||
|
||
## 🤝 贡献指南
|
||
|
||
如果你想为 Memory Bank 功能贡献代码:
|
||
|
||
1. 确保所有新功能都有对应的测试
|
||
2. 遵循现有的代码风格和注释规范
|
||
3. 更新相关文档
|
||
4. 提交 Pull Request 前运行完整的测试套件
|
||
|
||
---
|
||
|
||
**让AI辩论照亮投资智慧,记忆银行让智慧永续传承** 🏛️✨ |