guantao 2 часов назад
Родитель
Сommit
39bc2bde7c
1 измененных файлов с 42 добавлено и 26 удалено
  1. 42 26
      README.md

+ 42 - 26
README.md

@@ -78,8 +78,12 @@ async def check_inventory(product_id: str, warehouse: str = "default") -> ToolRe
     "parameters": {
       "type": "object",
       "properties": {
-        "product_id": {"type": "string", "description": "产品唯一标识符"},
-        "warehouse": {"type": "string", "description": "仓库编码,默认为主仓库", "default": "default"}
+        "product_id": { "type": "string", "description": "产品唯一标识符" },
+        "warehouse": {
+          "type": "string",
+          "description": "仓库编码,默认为主仓库",
+          "default": "default"
+        }
       },
       "required": ["product_id"]
     }
@@ -111,6 +115,7 @@ description: 领域专属知识
 ---
 
 ## Guidelines
+
 - 规则 1
 - 规则 2
 ```
@@ -132,6 +137,7 @@ runner = AgentRunner(
 ### 核心流程
 
 **1. 提取(Extract)**
+
 - **触发时机**:
   - 压缩时提取:消息量超阈值触发压缩时,在 Level 1 过滤前用完整 history 反思
   - 完成时提取:Agent 运行完成后(不代表任务完成,可能中途退出等待人工评估)
@@ -139,6 +145,7 @@ runner = AgentRunner(
 - **自定义 Prompt**:可通过配置自定义反思 prompt,空则使用默认(见 `agent/core/prompts/knowledge.py`)
 
 **2. 存储(Store)**
+
 - **存储位置**:KnowHub 服务(默认 `http://localhost:8765`)
 - **知识结构**:
   - `title`: 知识标题
@@ -154,6 +161,7 @@ runner = AgentRunner(
   - 支持代码片段、API 凭证、cookies 等多种资源类型
 
 **3. 注入(Inject)**
+
 - **触发时机**:Agent 切换当前工作的 Goal 时自动触发
 - **检索策略**:基于 Goal 描述和上下文,从知识库检索相关知识
 - **注入方式**:将检索到的知识注入到 Agent 的上下文中
@@ -193,6 +201,7 @@ run_config = RunConfig(
 ```
 
 **参数注入规则**(通过框架 `inject_params` 机制实现,详见 `agent/docs/tools.md`):
+
 - `owner`:隐藏参数,LLM 不可见,框架自动注入(`mode: default`)
 - `tags`:LLM 可追加新 key,框架默认 key 不可被覆盖(`mode: merge`)
 - `scopes`:LLM 可追加,与框架默认值合并去重(`mode: merge`)
@@ -237,12 +246,15 @@ RunConfig(
     knowledge=KnowledgeConfig(),  # 知识管理配置
 )
 ```
+
     system_prompt=None,       # None=从 skills 自动构建
     agent_type="default",     # 预设类型:default / explore / analyst
     trace_id=None,            # 续跑/回溯时传入已有 trace ID
     after_sequence=None,      # 从哪条消息后续跑(message sequence)
+
 )
-```
+
+````
 
 ## LLM Providers
 
@@ -256,7 +268,7 @@ llm = create_openrouter_llm_call(model="anthropic/claude-sonnet-4.5")
 
 # Google Gemini
 llm = create_gemini_llm_call(model="gemini-2.5-flash")
-```
+````
 
 自定义 provider 只需实现签名:
 
@@ -279,15 +291,15 @@ async def my_llm_call(messages, model, tools, temperature, **kwargs) -> dict:
 python api_server.py
 ```
 
-| 方法 | 路径 | 说明 |
-|------|------|------|
-| GET | `/api/traces` | 列出 Traces |
-| GET | `/api/traces/{id}` | Trace 详情 |
-| GET | `/api/traces/{id}/messages` | 消息列表 |
-| POST | `/api/traces` | 新建并执行 |
-| POST | `/api/traces/{id}/run` | 续跑/回溯 |
-| POST | `/api/traces/{id}/stop` | 停止 |
-| WS | `/api/traces/{id}/watch` | 实时事件 |
+| 方法 | 路径                        | 说明        |
+| ---- | --------------------------- | ----------- |
+| GET  | `/api/traces`               | 列出 Traces |
+| GET  | `/api/traces/{id}`          | Trace 详情  |
+| GET  | `/api/traces/{id}/messages` | 消息列表    |
+| POST | `/api/traces`               | 新建并执行  |
+| POST | `/api/traces/{id}/run`      | 续跑/回溯   |
+| POST | `/api/traces/{id}/stop`     | 停止        |
+| WS   | `/api/traces/{id}/watch`    | 实时事件    |
 
 需在 `api_server.py` 中配置 Runner 才能启用 POST 端点。
 
@@ -304,8 +316,6 @@ agent/
 
 详细架构文档:[docs/README.md](./docs/README.md)
 
-
-
 ## 交互式 CLI(Interactive CLI)
 
 框架提供交互式控制器,支持实时监控、手动干预和经验总结。
@@ -338,10 +348,10 @@ async for item in runner.run(messages=messages, config=config):
 
 在执行过程中,可以通过命令行实时控制:
 
-| 按键 | 动作 | 说明 |
-| --- | --- | --- |
+| 按键          | 动作         | 说明                              |
+| ------------- | ------------ | --------------------------------- |
 | `p` / `pause` | **暂停执行** | 立即挂起 Agent 循环,进入交互菜单 |
-| `q` / `quit` | **停止执行** | 安全停止并保存当前的执行状态 |
+| `q` / `quit`  | **停止执行** | 安全停止并保存当前的执行状态      |
 
 ### 交互菜单功能
 
@@ -401,6 +411,7 @@ async for item in runner.run(messages=messages, config=RUN_CONFIG):
 ```
 
 **配置说明**:
+
 - 直接使用框架的 `RunConfig` 和 `KnowledgeConfig`,不需要自定义配置类
 - 基础设施配置(skills_dir, trace_store_path 等)用简单变量定义
 - 使用 `agent.utils.setup_logging()` 配置日志
@@ -409,19 +420,24 @@ async for item in runner.run(messages=messages, config=RUN_CONFIG):
 
 框架在运行期间会生成唯一的 `trace_id`。
 
-* **本地日志**:所有的执行细节、工具调用和 Goal 状态均持久化在 `.trace/` 目录下。
-* **Web 可视化**:
+- **本地日志**:所有的执行细节、工具调用和 Goal 状态均持久化在 `.trace/` 目录下。
+- **Web 可视化**:
+
 1. 启动服务器:`python api_server.py`
 2. 启动前端:
+
 ```
   cd frontend/react-template
   yarn
   yarn dev
 ```
-2. 访问控制台:`http://localhost:3000`
-3. 在前端界面中切换任务,即直观追踪 Agent 的思考链路。
+
+3. 访问控制台:`http://localhost:3000`
+4. 在前端界面中切换任务,即直观追踪 Agent 的思考链路。
+5. 因为该可视化读取的是根目录下的.trace文件,建议运行项目时,可以在根目录下用命令行运行`python examples/[project_name]/run.py`,使运行得到的trace存放在根目录
 
 ### 提示:目前前端可视化只供观看本地运行过的trace结果,新任务运行等功能正在开发中,运行可在命令行中执行
+
 ### 绿色节点为整体的goal(目标),蓝色节点为子goal(目标),灰色节点为基础信息节点。点击蓝色边/绿色边会折叠节点,点击节点会在右侧显示详情。
 
 ---
@@ -448,12 +464,12 @@ examples/[your_example]/
 
 针对 Clash Verge / TUN 模式等网络环境,本项目已内置代理自动避让逻辑:
 
-* **代理优化**:通过 `no_proxy` 配置防止 `httpx` 错误引导流量。
-* **Browser 模式**:支持 `cloud` (远程) 和 `local` (本地) 模式切换。
+- **代理优化**:通过 `no_proxy` 配置防止 `httpx` 错误引导流量。
+- **Browser 模式**:支持 `cloud` (远程) 和 `local` (本地) 模式切换。
 
 ## 运行结果存储
 
 运行过程中,会自动存储以下内容:
 
-* **运行轨迹**:根目录下 `.trace/` 文件夹下的实际运行路径结果
-* **知识库**:KnowHub 服务中保存的知识条目(通过 API 访问)
+- **运行轨迹**:根目录下 `.trace/` 文件夹下的实际运行路径结果
+- **知识库**:KnowHub 服务中保存的知识条目(通过 API 访问)