Skip to content

Repository files navigation

科创金融研究 Agent

基于 Pi Agent 架构的科创板金融研究工具集。

项目概述

本项目提供科创板(STAR Market)上市公司的智能研究工具,支持:

  • 公司基本信息查询
  • 实时股票行情分析
  • PDF 研报解析

双版本实现

本项目提供 TypeScriptPython 两个版本,满足不同使用场景:

版本 目录 适用场景 数据来源
TypeScript packages/finance-tools/ Pi Agent 集成 模拟数据
Python python-tools/ 独立使用 / akshare akshare 真实数据

文件结构

pi-finance-agent/
├── README.md                       # 本文件
├── IMPLEMENTATION.md               # 详细实现文档
│
├── packages/                       # TypeScript 版本
│   └── finance-tools/
│       ├── src/
│       │   ├── kcb-company.ts     # ⭐ 科创板公司查询
│       │   ├── stock-price.ts     # ⭐ 股票价格查询
│       │   ├── pdf-report.ts      # ⭐ PDF研报读取
│       │   └── index.ts           # 工具导出
│       ├── package.json
│       └── tsconfig.json
│
├── python-tools/                   # Python 版本
│   ├── finance_tools/
│   │   ├── kcb_company_tool.py    # ⭐ 科创板公司查询
│   │   └── tool_registry.py       # 工具注册表
│   ├── examples/
│   │   └── example_kcb_tool.py    # 使用示例
│   ├── config/
│   │   └── settings.py            # 配置文件
│   ├── main.py                    # 交互式主程序
│   └── requirements.txt           # 依赖列表
│
└── examples/                       # TypeScript 示例
    ├── finance-agent.ts           # Agent 集成示例
    └── tool-standalone.ts         # 独立使用示例

TypeScript 版本

适用于与 Pi Agent 集成使用。

安装

cd packages/finance-tools
npm install
npm run build

使用

import { Agent } from "@mariozechner/pi-agent-core";
import { financeTools } from "@mariozechner/pi-finance-tools";

const agent = new Agent({
  initialState: {
    systemPrompt: "你是一个科创板研究专家...",
    tools: financeTools,
  }
});

await agent.prompt("请分析中芯国际的基本情况");

Python 版本

适用于独立使用,基于 akshare 获取真实数据。

安装

cd python-tools
pip install -r requirements.txt

使用方式 1: 直接调用

from finance_tools.kcb_company_tool import get_kcb_company_info

result = get_kcb_company_info("中芯国际")
print(result)

使用方式 2: 交互式程序

cd python-tools
python main.py

# 然后输入命令:
# query 中芯国际    - 查询公司
# search 半导体     - 搜索公司
# demo              - 运行演示

使用方式 3: Pi Agent 集成

from finance_tools.tool_registry import create_finance_tool_registry

registry = create_finance_tool_registry()
schemas = registry.get_schemas()  # 获取 Pi Agent Tool Schema
result = await registry.execute("get_kcb_company_info", company_name="中芯国际")

工具列表

1. get_kcb_company_info

获取科创板公司基本信息。

参数:

  • company_name (str): 公司名称或代码

返回:

  • 公司全称、行业、上市日期
  • 市值、股本信息
  • 公司简介、经营范围
  • 联系方式

2. get_stock_price

获取股票实时行情。

参数:

  • stock_code (str): 股票代码

返回:

  • 当前价格、涨跌幅
  • 成交量、成交额
  • 市盈率、市净率

3. read_financial_report_pdf

读取 PDF 研报。

参数:

  • pdf_path (str): PDF 文件路径
  • max_pages (int, optional): 最大页数

返回:

  • 研报文本内容
  • 提取的关键信息(评级、目标价等)

数据来源

  • TypeScript 版本: 使用模拟数据(便于演示和测试)
  • Python 版本: 使用 akshare 库获取真实 A 股数据

扩展开发

添加新工具(TypeScript)

// packages/finance-tools/src/new-tool.ts
export function createNewTool(): AgentTool<...> {
  return {
    name: "new_tool",
    label: "新工具",
    description: "工具描述...",
    parameters: newToolSchema,
    execute: async (...) => { ... }
  };
}

// 添加到 index.ts
export const financeTools = [
  ...existingTools,
  createNewTool(),
];

添加新工具(Python)

# python-tools/finance_tools/new_tool.py
def new_tool(param: str) -> Dict:
    # 实现工具逻辑
    return {...}

# 添加到 tool_registry.py
registry.register(
    name="new_tool",
    handler=new_tool,
    schema={...}
)

许可证

MIT

相关项目

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages