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
+ [![PyPI](https://img.shields.io/pypi/v/fp)](https://pypi.org/project/fp/)
31
+ [![Python](https://img.shields.io/pypi/pyversions/fp)](https://pypi.org/project/fp/)
32
+ [![License](https://img.shields.io/pypi/l/fp)](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,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ fp = fp.main:main
@@ -0,0 +1 @@
1
+ fp