Agent Skills
› wukongrobot/wukongbot
› local-places
local-places
GitHub通过本地Google Places API代理搜索附近地点,支持位置解析、多条件筛选及详情查询,引导用户完成从模糊定位到精准推荐的交互流程。
触发场景
查找附近的餐厅或咖啡馆
根据偏好筛选地点
安装
npx skills add wukongrobot/wukongbot --skill local-places -g -y
SKILL.md
Frontmatter
{
"name": "local-places",
"homepage": "https:\/\/github.com\/Hyaxia\/local_places",
"metadata": {
"moltbot": {
"emoji": "📍",
"requires": {
"env": [
"GOOGLE_PLACES_API_KEY"
],
"bins": [
"uv"
]
},
"primaryEnv": "GOOGLE_PLACES_API_KEY"
}
},
"description": "Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost."
}
📍 Local Places
Find places, Go fast
Search for nearby places using a local Google Places API proxy. Two-step flow: resolve location first, then search.
Setup
cd {baseDir}
echo "GOOGLE_PLACES_API_KEY=your-key" > .env
uv venv && uv pip install -e ".[dev]"
uv run --env-file .env uvicorn local_places.main:app --host 127.0.0.1 --port 8000
Requires GOOGLE_PLACES_API_KEY in .env or environment.
Quick Start
-
Check server:
curl http://127.0.0.1:8000/ping -
Resolve location:
curl -X POST http://127.0.0.1:8000/locations/resolve \
-H "Content-Type: application/json" \
-d '{"location_text": "Soho, London", "limit": 5}'
- Search places:
curl -X POST http://127.0.0.1:8000/places/search \
-H "Content-Type: application/json" \
-d '{
"query": "coffee shop",
"location_bias": {"lat": 51.5137, "lng": -0.1366, "radius_m": 1000},
"filters": {"open_now": true, "min_rating": 4.0},
"limit": 10
}'
- Get details:
curl http://127.0.0.1:8000/places/{place_id}
Conversation Flow
- If user says "near me" or gives vague location → resolve it first
- If multiple results → show numbered list, ask user to pick
- Ask for preferences: type, open now, rating, price level
- Search with
location_biasfrom chosen location - Present results with name, rating, address, open status
- Offer to fetch details or refine search
Filter Constraints
filters.types: exactly ONE type (e.g., "restaurant", "cafe", "gym")filters.price_levels: integers 0-4 (0=free, 4=very expensive)filters.min_rating: 0-5 in 0.5 incrementsfilters.open_now: booleanlimit: 1-20 for search, 1-10 for resolvelocation_bias.radius_m: must be > 0
Response Format
{
"results": [
{
"place_id": "ChIJ...",
"name": "Coffee Shop",
"address": "123 Main St",
"location": {"lat": 51.5, "lng": -0.1},
"rating": 4.6,
"price_level": 2,
"types": ["cafe", "food"],
"open_now": true
}
],
"next_page_token": "..."
}
Use next_page_token as page_token in next request for more results.
版本历史
- 2a72816 当前 2026-08-20 10:14


