PandaAI投研Skills 构建思路文档
设计理念
1. 零代码部署
PandaAI投研Skills采用Kiro原生Steering机制实现,无需编写额外的后端代码或部署服务。整个Skills以一个Markdown文件的形式存在,通过Kiro的Steering功能自动加载和解析。
设计优势:
- 部署简单:只需将Steering文件放入指定目录
- 维护方便:直接编辑Markdown文件即可更新Skills
- 版本控制:可与项目代码一起进行Git版本管理
2. 知识同步
通过Kiro的文件引用语法 #[[file:]],Skills可以直接引用外部文档作为知识库。当官方文档更新时,Skills自动获取最新内容,无需手动同步。
引用机制:
#[[file:PandaAI 因子编写与函数参考手册.md]]
#[[file:PandaAI工作流-数据API说明.md]]
3. 即时可用
用户无需安装额外插件或配置复杂环境,只需在聊天中使用 #PandaAI 标签即可激活Skills,立即获得投研辅助能力。
4. 可扩展性
Steering文件采用模块化设计,每个功能模块独立成章,便于后续添加新功能或修改现有功能。
Steering文件结构设计
整体架构
pandaai-research.md
├── Front Matter(元数据配置)
├── 平台简介
├── 知识库引用
├── 交互规则
│ ├── 请求类型识别规则
│ ├── 上下文理解规则
│ └── 响应格式规则
├── 因子编写模块
│ ├── 公式模式知识库
│ ├── 公式代码模板
│ ├── Python模式知识库
│ └── Python代码模板
├── 数据查询模块
│ ├── 数据API知识库
│ └── 数据查询代码模板
├── 技术指标模块
│ ├── 技术指标知识库
│ └── 技术指标代码模板
├── 因子分析模块
│ ├── 因子分析知识库
│ └── 因子分析代码模板
├── 股票筛选模块
│ ├── 筛选条件知识库
│ └── 筛选代码模板
└── 代码库集成模块
├── 集成知识库
└── 集成代码模板
Front Matter配置
---
inclusion: manual
---
配置说明:
inclusion: manual:设置为手动激活模式,用户需要使用#PandaAI标签显式激活- 可选值:
always:始终加载(默认)manual:手动激活fileMatch:文件匹配时激活
模块设计原则
1. 知识库模块
每个知识库模块包含:
- 概念定义:清晰的术语解释
- 参数说明:函数/API的参数表格
- 使用场景:何时使用该功能
- 注意事项:常见陷阱和最佳实践
2. 代码模板模块
每个代码模板包含:
- 模板结构:可复用的代码框架
- 参数占位符:明确标注需要替换的部分
- 完整示例:可直接运行的示例代码
- 注释说明:关键步骤的解释
3. 交互规则模块
交互规则定义了AI如何理解和响应用户请求:
- 识别关键词:触发特定功能的关键词列表
- 识别模式:用户请求的常见模式
- 响应策略:针对不同请求的响应方式
- 格式规范:输出内容的格式要求
与PandaAI平台的集成方式
1. 代码库集成
Skills与panda_factor代码库的集成通过以下方式实现:
Factor基类集成:
from panda_factor.generate.factor_base import Factor
class CustomFactor(Factor):
def calculate(self, factors):
# 因子计算逻辑
pass
FactorUtils工具类集成:
from panda_factor.generate.factor_utils import FactorUtils
# 使用静态方法
result = FactorUtils.RANK(series)
因子分析集成:
from panda_factor.analysis.factor import factor
from panda_factor.analysis.factor_analysis import factor_analysis
2. 数据API集成
Skills生成的数据查询代码直接调用panda_data模块:
import panda_data
panda_data.init()
df = panda_data.get_market_data(...)
3. 文档同步
通过文件引用保持与官方文档同步:
- 因子编写规范来自
PandaAI 因子编写与函数参考手册.md - 数据API说明来自
PandaAI工作流-数据API说明.md
如何扩展和定制Skills
1. 添加新的知识模块
在Steering文件中添加新的章节:
## 新功能模块
### 新功能知识库
[添加概念定义、参数说明等]
### 新功能代码模板
[添加代码模板和示例]
2. 扩展交互规则
在交互规则部分添加新的识别模式:
#### 新功能请求识别
**识别关键词:**
- 关键词1、关键词2、关键词3
**识别模式:**
1. 用户请求模式1 → 响应策略1
2. 用户请求模式2 → 响应策略2
**响应策略:**
- 策略说明
3. 添加新的代码模板
在对应模块中添加新的模板:
#### 新模板名称
```python
# 模板代码
from xxx import yyy
class NewTemplate:
def method(self):
pass
使用说明:
- 说明1
- 说明2
### 4. 引用新的外部文档
在知识库引用部分添加新的文件引用:
```markdown
## 知识库引用
#[[file:PandaAI 因子编写与函数参考手册.md]]
#[[file:PandaAI工作流-数据API说明.md]]
#[[file:新文档.md]]
5. 定制响应格式
修改响应格式规则部分:
### 响应格式规则
#### 自定义输出格式
```markdown
# 输出格式模板
**标题**:[内容]
**说明**:[内容]
**代码**:
[代码内容]
最佳实践
1. 保持模块独立性
每个功能模块应该相对独立,避免过多的交叉引用,便于单独维护和更新。
2. 提供完整示例
代码模板应该是可以直接运行的完整代码,而不是片段,减少用户的理解成本。
3. 明确参数说明
所有函数和API的参数都应该有清晰的说明,包括类型、是否必填、默认值和取值范围。
4. 保持文档同步
定期检查引用的外部文档是否有更新,确保Skills提供的信息是最新的。
5. 测试验证
添加新功能后,应该进行测试验证,确保生成的代码可以正常运行。
技术细节
Steering文件加载机制
- Kiro启动时扫描
.kiro/steering/目录 - 解析每个Steering文件的Front Matter
- 根据
inclusion配置决定加载时机 - 解析
#[[file:]]引用,加载外部文档内容 - 将Steering内容注入到AI上下文中
文件引用解析
#[[file:path]] 语法的解析规则:
- 路径相对于项目根目录
- 支持Markdown文件
- 引用的文件内容会被完整加载到上下文中
手动激活机制
当 inclusion: manual 时:
- 用户需要在聊天中使用
#文件名标签 - Kiro识别标签后加载对应的Steering文件
- Steering内容在当前会话中生效