将 eet 密码学工具封装为 OpenClaw Skill:从需求分析到落地的完整实践

实战案例:eet 是一个功能强大的密码学命令行工具,本文展示如何将它变成 Agent 可以智能使用的 Skill,包括触发机制设计、渐进式内容组织、批量处理脚本开发、用户体验优化等核心实践

2026-03-07 09:00 CST  · 4543 words  · 10 min

Career Journey

Who Am I Yang X. CHEN Cryptography engineer at a cloud vendor, working in the industry since 2015. Domain Focus Cryptography Classical algorithms, cloud KMS, key management AI Agent Security Credential management, authorization models Post-Quantum Cryptography ML-KEM/ML-DSA, migration strategies Education Dalian Maritime University, Class of 2015 Major: Electronic Technology and Science Career Path Landun Information Technology (Guangzhou) 2015 - 2017 | VPN Device R&D 1 2 3 4 5 Network Protocol Stack ├── Linux Kernel: Netfilter, iptables, Connection Tracking ├── Routing: OSPF, BGP, Static Routing ├── User-space: DPDK └── VPN: SSLVPN, IPSECVPN (IKE, AH/ESP) Key Work: ...

2026-03-04 00:00 UTC  · 412 words  · 1 min

FastAPI后台开发基础(8):Cookie的使用

示例代码 服务器向客户端写入Cookie数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 @app.get("/async_set_cookie") async def set_cookie_to_client(response: Response): """ 将 cookie 写入到本地文件: test_cookies curl -c test_cookies -X 'GET' \ 'http://127.0.0.1:18081/async_set_cookie' \ -H 'accept: application/json' cat test_cookies # Netscape HTTP Cookie File # https://curl.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk. 127.0.0.1 FALSE / FALSE 0 test_cookie_user_id test_cookie_user_value """ response.set_cookie(key = 'test_cookie_user_id', value = 'test_cookie_user_value') return {"set_cookie": datetime.datetime.now().isoformat(sep = ' ')} 向客户端设置一个名为 test_cookie_user_id 的 cookie,并返回当前的时间戳。 ...

2026-01-19 17:08 CST  · 1347 words  · 3 min

FastAPI后台开发基础(7):常见字段类型

常见类型示例 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 from __future__ import annotations import random import string from datetime import date, datetime, time, timedelta from typing import Annotated from uuid import UUID import uvicorn from fastapi import Body, FastAPI from pydantic import BaseModel, EmailStr, HttpUrl app = FastAPI() class MyDataTypes(BaseModel): name: str = ''.join(random.choices(['Alice', 'Bob', 'Charil'], k = 1)) age: int = random.randint(18, 80) price: float = random.randint(100, 1000) / random.randint(1, 100) / 1.0 is_active: bool = False url: HttpUrl = HttpUrl('https:' + '//' + ''.join(random.choices(string.ascii_lowercase + string.digits, k = 16)) + '.com') email: EmailStr = 'test@example.com' unique_id: UUID = UUID('00000000-0000-0000-0000-000000000000') start_datetime: datetime = datetime.now() date_value: date = date.today() process_after: timedelta = timedelta(days = random.randint(1, 10), hours = random.randint(1, 24), minutes = random.randint(1, 59), seconds = random.randint(1, 59)) repeat_at: time = time(hour = random.randint(1, 23), minute = random.randint(1, 59), second = random.randint(1, 59)) @app.post("/async") async def async_root(data: Annotated[MyDataTypes, Body(description = '常用的类型', examples = [ MyDataTypes().model_dump() ])]): print('unique_id:', data.unique_id) print('start_datetime:', data.start_datetime) print('date_value:', data.date_value) print('process_after:', data.process_after) print('repeat_at:', data.repeat_at) return {"message": "Hello World", "data": data} if __name__ == '__main__': uvicorn.run(app, host = '127.0.0.1', port = 18081) 说明 在 FastAPI 中,使用 Pydantic 模型来定义和验证数据是一种常见的做法。 ...

2026-01-19 17:05 CST  · 916 words  · 2 min

FastAPI后台开发基础(6):Body参数的几种用法

使用多个Model作为Body参数 Model参数定义: 1 2 3 4 5 6 7 8 9 10 class Item(BaseModel): name: str description: str | None = None price: float tax: float | None = None class User(BaseModel): username: str full_name: str | None = None 接受多个 Model 作为 Body 参数的接口定义: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 @app.put("/items/{item_id}") async def update_item(item_id: int, item: Item, user: User): """ curl -X 'PUT' \ 'http://127.0.0.1:18081/items/12345' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "item": { "name": "nn", "description": "dd", "price": 1, "tax": 2 }, "user": { "username": "uu", "full_name": "ff" } }' """ results = {"item_id": item_id, "item": item, "user": user} return results ...

2026-01-19 15:39 CST  · 770 words  · 2 min
文章 Posts 分类 Categories 标签 Tags