fp-agent 0.1.1.dev0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
fp/main.py
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""fp - 顶层路由入口"""
|
|
2
|
+
|
|
3
|
+
import argparse
|
|
4
|
+
import asyncio
|
|
5
|
+
import sys
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def main():
|
|
9
|
+
parser = argparse.ArgumentParser("fp")
|
|
10
|
+
parser.add_argument(
|
|
11
|
+
"--mode",
|
|
12
|
+
"-m",
|
|
13
|
+
choices=["cli", "webui", "acp"],
|
|
14
|
+
default="cli",
|
|
15
|
+
help="启动模式(默认 cli)",
|
|
16
|
+
)
|
|
17
|
+
parser.add_argument("--model", help="指定模型")
|
|
18
|
+
parser.add_argument("--session", help="指定会话 ID")
|
|
19
|
+
|
|
20
|
+
args, rest = parser.parse_known_args()
|
|
21
|
+
|
|
22
|
+
if args.mode == "cli":
|
|
23
|
+
from fp_cli import run
|
|
24
|
+
|
|
25
|
+
asyncio.run(run())
|
|
26
|
+
|
|
27
|
+
elif args.mode == "webui":
|
|
28
|
+
try:
|
|
29
|
+
from fp_webui import run as run_webui
|
|
30
|
+
except ImportError:
|
|
31
|
+
print("请安装: pip install fp[webui]")
|
|
32
|
+
sys.exit(1)
|
|
33
|
+
run_webui()
|
|
34
|
+
|
|
35
|
+
elif args.mode == "acp":
|
|
36
|
+
try:
|
|
37
|
+
from fp_acp import run as run_acp
|
|
38
|
+
except ImportError:
|
|
39
|
+
print("请安装: pip install fp[acp]")
|
|
40
|
+
sys.exit(1)
|
|
41
|
+
run_acp()
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
if __name__ == "__main__":
|
|
45
|
+
main()
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: fp-agent
|
|
3
|
+
Version: 0.1.1.dev0
|
|
4
|
+
Summary: 五块卵石 - 基于生命周期钩子的插件化 Agent 框架
|
|
5
|
+
Author: zpb
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/zpb911km/fp-agent
|
|
8
|
+
Project-URL: Repository, https://github.com/zpb911km/fp-agent
|
|
9
|
+
Project-URL: Documentation, https://github.com/zpb911km/fp-agent/tree/main/docs
|
|
10
|
+
Keywords: agent,llm,lifecycle,plugin,ai
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
17
|
+
Requires-Python: >=3.11
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
Requires-Dist: fp-core>=0.0.0
|
|
20
|
+
Requires-Dist: fp-cli>=0.0.0
|
|
21
|
+
Provides-Extra: webui
|
|
22
|
+
Requires-Dist: fp-webui>=0.0.0; extra == "webui"
|
|
23
|
+
Provides-Extra: acp
|
|
24
|
+
Requires-Dist: fp-acp>=0.0.0; extra == "acp"
|
|
25
|
+
Provides-Extra: all
|
|
26
|
+
Requires-Dist: fp-agent[acp,webui]; extra == "all"
|
|
27
|
+
|
|
28
|
+
# Five Pebbles(五块卵石)
|
|
29
|
+
|
|
30
|
+
[](https://pypi.org/project/fp/)
|
|
31
|
+
[](https://pypi.org/project/fp/)
|
|
32
|
+
[](LICENSE)
|
|
33
|
+
|
|
34
|
+
## 简介
|
|
35
|
+
|
|
36
|
+
**五块卵石(Five Pebbles)** 是一个基于生命周期钩子的插件化 Agent 框架。它提供了灵活、可扩展的方式来构建和运行 AI Agent,支持终端 REPL、Web 界面和远程协议调用等多种交互方式。
|
|
37
|
+
|
|
38
|
+
> 灵感来源于《Rain World》中的迭代器「五块卵石」—— 冷静、理性、追求优雅的解决方案。
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 特性
|
|
43
|
+
|
|
44
|
+
- 🤖 **强大的 Agent 引擎** — 基于生命周期钩子,在 Agent 运行的各个阶段注入自定义逻辑
|
|
45
|
+
- 🔌 **插件化架构** — 通过插件动态扩展工具、命令和行为,无需修改核心代码
|
|
46
|
+
- 🖥️ **终端 REPL** — 交互式命令行界面,语法高亮、自动补全、流式输出
|
|
47
|
+
- 🌐 **Web 界面** — 浏览器端图形界面,开箱即用
|
|
48
|
+
- 🔗 **ACP 协议** — JSON-RPC 2.0 远程调用,轻松集成 IDE、CI/CD、其他 Agent
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 快速安装
|
|
53
|
+
|
|
54
|
+
### 基本安装(核心 + CLI)
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
pip install fp-agent
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
安装后即可使用终端 REPL:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
fp
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 安装所有组件
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pip install fp-agent[all]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 选择性安装
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# 核心 + Web 界面
|
|
76
|
+
pip install fp-agent[webui]
|
|
77
|
+
|
|
78
|
+
# 核心 + ACP 协议
|
|
79
|
+
pip install fp-agent[acp]
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
要求 Python >= 3.11。
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 快速使用
|
|
87
|
+
|
|
88
|
+
### 终端 REPL(默认)
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
fp
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
进入交互式对话:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
>> 请用 Python 写一个斐波那契数列生成器
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Web 界面
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
pip install fp-agent[webui]
|
|
104
|
+
fp --webui
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
浏览器访问 `http://localhost:7860`。
|
|
108
|
+
|
|
109
|
+
### ACP 远程调用
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
pip install fp-agent[acp]
|
|
113
|
+
fp --acp
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
然后通过 JSON-RPC 调用:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
curl http://localhost:9090 \
|
|
120
|
+
-H "Content-Type: application/json" \
|
|
121
|
+
-d '{"jsonrpc":"2.0","id":1,"method":"chat","params":{"message":"你好"}}'
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 配置
|
|
127
|
+
|
|
128
|
+
### 命令行选项
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
fp [OPTIONS]
|
|
132
|
+
|
|
133
|
+
选项:
|
|
134
|
+
--config FILE 指定配置文件路径
|
|
135
|
+
--webui 启动 Web 界面模式
|
|
136
|
+
--acp 启动 ACP Server 模式
|
|
137
|
+
--model NAME 指定 LLM 模型名称
|
|
138
|
+
--host HOST 监听地址(默认 127.0.0.1)
|
|
139
|
+
--port PORT 监听端口
|
|
140
|
+
--debug 启用调试模式
|
|
141
|
+
--quiet 静默模式
|
|
142
|
+
--version 显示版本信息
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 配置文件
|
|
146
|
+
|
|
147
|
+
默认读取 `~/.config/fp/config.yaml`:
|
|
148
|
+
|
|
149
|
+
```yaml
|
|
150
|
+
llm:
|
|
151
|
+
provider: openai
|
|
152
|
+
model: gpt-4o
|
|
153
|
+
temperature: 0.7
|
|
154
|
+
api_key: ${OPENAI_API_KEY}
|
|
155
|
+
|
|
156
|
+
session:
|
|
157
|
+
storage: file
|
|
158
|
+
path: ~/.local/share/fp/sessions
|
|
159
|
+
|
|
160
|
+
plugins:
|
|
161
|
+
- my_plugin
|
|
162
|
+
|
|
163
|
+
cli:
|
|
164
|
+
theme: dark
|
|
165
|
+
stream: true
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 项目结构
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
fp # 主包(用户入口)
|
|
174
|
+
├── fp-core # 核心引擎(Agent 逻辑、LLM 交互、插件系统)
|
|
175
|
+
├── fp-cli # 终端 REPL 界面
|
|
176
|
+
├── fp-webui # Web 界面
|
|
177
|
+
└── fp-acp # ACP 通信协议(JSON-RPC 2.0)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 文档
|
|
183
|
+
|
|
184
|
+
- [快速开始](https://github.com/zpb911km/fp-agent/blob/main/docs/guide/快速开始.md)
|
|
185
|
+
- [配置指南](https://github.com/zpb911km/fp-agent/blob/main/docs/guide/配置指南.md)
|
|
186
|
+
- [插件开发](https://github.com/zpb911km/fp-agent/blob/main/docs/guide/插件系统.md)
|
|
187
|
+
- [ACP 协议规范](https://github.com/zpb911km/fp-agent/blob/main/packages/fp-acp/README.md)
|
|
188
|
+
- [命令参考](https://github.com/zpb911km/fp-agent/blob/main/docs/guide/命令参考.md)
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 依赖
|
|
193
|
+
|
|
194
|
+
| 依赖 | 版本 | 说明 |
|
|
195
|
+
|------|------|------|
|
|
196
|
+
| `fp-core` | >= 0.1.0 | Agent 核心引擎(必装) |
|
|
197
|
+
| `fp-cli` | >= 0.1.0 | 终端 REPL(必装) |
|
|
198
|
+
| `fp-webui` | >= 0.1.0 | Web 界面(可选) |
|
|
199
|
+
| `fp-acp` | >= 0.1.0 | ACP 协议(可选) |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 许可
|
|
204
|
+
|
|
205
|
+
MIT © zpb
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
fp/main.py,sha256=8esIFit9ROHUYrjMi9TfW8L-jciJoE_Iiwu6nmvQoWc,1022
|
|
2
|
+
fp_agent-0.1.1.dev0.dist-info/METADATA,sha256=sQsS98vXDa-jJbLJAM_Yk7DB0MTwuXrSi1dN2OJWpVU,4968
|
|
3
|
+
fp_agent-0.1.1.dev0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
4
|
+
fp_agent-0.1.1.dev0.dist-info/entry_points.txt,sha256=a2v-vHY7Gw1mHLxPcBEBa3icWh0v-k-qzVikefKCDxs,36
|
|
5
|
+
fp_agent-0.1.1.dev0.dist-info/top_level.txt,sha256=g-z5MsFlTTr3vlcDjrUHvHF1RkZ7clIWGumsKFrxDBQ,3
|
|
6
|
+
fp_agent-0.1.1.dev0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
fp
|