diff --git a/research/agentgis-agent-integration-roadmap.md b/research/agentgis-agent-integration-roadmap.md
new file mode 100644
index 0000000..1452680
--- /dev/null
+++ b/research/agentgis-agent-integration-roadmap.md
@@ -0,0 +1,916 @@
+# ðïž AgentGIS Cloud Platform â Agent éæå±æ¶æè§åäžè¿ä»£è·¯çº¿
+
+> **çŒå¶**: Huawei | **æ¥æ**: 2026-07-21
+> **åºäº**: CARTO for Agents æ¶æç ç©¶ + AgentGIS å¹³å°ç°ç¶
+> **å®äœ**: å¹³å°äžäžé¶æ®µæ¶æå级çå³çåè
+
+---
+
+## ç®åœ
+
+1. [ç°ç¶å¿«ç
§](#äžç°ç¶å¿«ç
§)
+2. [ç®æ æ¶æèåŸ](#äºç®æ æ¶æèåŸ)
+3. [å·®è·åæ](#äžå·®è·åæ)
+4. [è¿ä»£è·¯çº¿](#åè¿ä»£è·¯çº¿)
+5. [Phase 1 诊讟ïŒSkill ç®åœ + CLI æ©å±](#äºphase-1-诊讟skill-ç®åœ--cli-æ©å±)
+6. [Phase 2 诊讟ïŒMCP Server](#å
phase-2-诊讟mcp-server)
+7. [Phase 3 诊讟ïŒSuite as Tool](#äžphase-3-诊讟suite-as-tool)
+8. [Phase 4 屿ïŒè¯ä¹æš¡åäž Agent èªåšå](#å
«phase-4-屿è¯ä¹æš¡åäž-agent-èªåšå)
+9. [éåœ](#ä¹éåœ)
+
+---
+
+## äžãç°ç¶å¿«ç
§
+
+### 1.1 æä»¬æä»ä¹
+
+```
+çšæ· / AI Agent
+ â
+ âââ mk_ API Key â suites.mercator.cn REST API â åœåäž»èŠ Agent æ¥å
¥æ¹åŒ
+ â
+ âââ agc CLIïŒä»
run + config ååœä»€ïŒ
+ â
+ âââ agc run
--suite-id --input k=v
+ âââ agc config set/get/list
+ âââ agc config set api-key
+```
+
+**平尿 žå¿ïŒ**
+
+| ç»ä»¶ | ç¶æ | 诎æ |
+|------|------|------|
+| `auth-center` | â
è¿è¡äž | è®€è¯ + API Key + OIDC + OAuth2/OIDC æå¡ç«¯ |
+| `suite-market` | â
è¿è¡äž | å¥ä»¶ CRUDãååžãåè§æ£æµãæçŽ¢ |
+| `discussions` | â
è¿è¡äž | 瀟åºè®šè®ºãæ
éèªåšæ¥å |
+| `gis-actions` (`agc`) | â
è¿è¡äž | CLI æ¬å°æ§è¡åšïŒåœååªæ `run` å `config` |
+| `Agent Profiles` | â
è¿è¡äž | SuiteHub/agent-profiles ä»åºïŒå€è§è²è®€ç¥æä»¶ |
+| åè§æ£æµ | â
æ | `POST /api/v1/compliance/check` |
+| åæ°æ ¡éª | â
æ | `POST /api/v1/parameters/validate` |
+
+### 1.2 æä»¬çŒºä»ä¹
+
+| èœå | ç¶æ | å·®è· |
+|------|------|------|
+| **CLI å
šå¹³å°èŠç** | â ä»
`run` + `config` | æ æçŽ¢ãæ è®€è¯ç®¡çãæ æ°æ®æäœãæ æ¥çå¥åº·ç¶æ |
+| **CLI JSON èŸåº** | â | åœåèŸåºæ¯èªç±ææ¬ïŒAgent æ æ³å¯é è§£æ |
+| **Agent Skill ç®åœ** | â æ | Agent Profiles æ¯éæè®€ç¥æä»¶ïŒäžæ¯å¯å 蜜ç playbook |
+| **MCP Server** | â æ | Agent æ¥å
¥é¢çªïŒåªæ REST API |
+| **Workflow as Tool** | â æ | å¥ä»¶ = æµçšïŒäœäžå¯è¢« Agent çŽæ¥è°çš |
+| **è¯ä¹æš¡å** | â æ | Agent äžçè§£æ°æ®å«ä¹ïŒäŸèµäººå¡«åæ° |
+| **Agent 审计远螪** | â æ | æ æ³è¿œèžª"åªäžª Agent åäºä»ä¹æäœ" |
+
+---
+
+## äºãç®æ æ¶æèåŸ
+
+### 2.1 äž€å±æ¶æ â å屿¶æ
+
+```
+ åœåïŒäž€å±ïŒ ç®æ ïŒåå±ïŒ
+
+ Agent ââRESTâââ suite-market Agent ââMCPâââ MCP Server
+ â
+ CLI âââ Platform ToolsïŒå
眮ïŒ
+ â âââ Interactive ToolsïŒæªæ¥ïŒ
+ â âââ Suite ToolsïŒåšææ³šåïŒ
+ agc âââ æ¬å°æ§è¡
+ Agent Skill ç®åœ
+ â
+ Utility â Platform â Use-case
+ â
+ agc CLIïŒæ©å±ïŒ
+ â
+ suite-market REST APIïŒäžåïŒ
+
+```
+
+### 2.2 ç®æ æ¶ææ»åŸ
+
+```
+ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
+â Agent éæå±ïŒæ°å»º/æ©å±ïŒ â
+ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
+â â
+â âââââââââââââââââââââââââââââââââââââââââââ ââââââââââââââââââââââââââ â
+â â MCP ServerïŒæ°å»ºïŒ â â Agent SkillsïŒæ°å»ºïŒ â â
+â â agentgis-mcp-server:8100 â â â â
+â â â â Use-case Tier â â
+â â Platform ToolsïŒå
眮ïŒïŒ â â ââ åŽæ åæ â â
+â â ââ list_suites â â ââ POI å å â â
+â â ââ inspect_suite â â ââ çç¹åæ â â
+â â ââ run_suite â â ââ æ°æ®èŽšéæ¥å â â
+â â ââ run_suite_async â â ââ arcgis-è¿ç§»ïŒè¿æïŒ â â
+â â ââ get_run_status â â â äŸèµ â â
+â â ââ get_run_results â â Platform Tier â â
+â â ââ check_compliance â â ââ å¥ä»¶æçŽ¢äžè¿è¡ â â
+â â ââ search_data â â ââ åè§æ£æµæµçš â â
+â â ââ get_org_stats â â ââ æ°æ®å¯Œå
¥å¯Œåº â â
+â â â â ââ å¹³å°å¥åº·æ£æ¥ â â
+â â Suite ToolsïŒåšææ³šåïŒïŒ â â â äŸèµ â â
+â â æ¯äžªæ 记䞺 mcp_enabled=True çå¥ä»¶ â â Utility Tier â â
+â â èªåšæ³šå䞺äžäžª tool â â ââ å®è£
äžè®€è¯ â â
+â â â â ââ agc åºç¡åœä»€ â â
+â â 讀è¯ïŒAPI Key / OAuthïŒæªæ¥ïŒ â â ââ Docker æ§è¡æš¡å â â
+â âââââââââââââââââââââââââââââââââââââââââââ â ââ Gitea å
äžèœœ â â
+â ââââââââââââââââââââââââââ â
+â â
+â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
+â â agc CLIïŒæ©å±ïŒ 人类 + Agent éçš â â
+â â agc auth login|token|logout â â
+â â agc suite search|inspect|run|list-status â â
+â â agc data import|export|list â â
+â â agc compliance check â â
+â â agc org stats â â
+â â agc mcp start|stop|status â æ°å¢ïŒMCP æ¬å°ä»£ç â â
+â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
+â â
+ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
+ â
+ âŒ
+ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
+â 平尿å¡å±ïŒç°æïŒå°å¹
ä¿®æ¹ïŒ â
+ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
+â â
+â suite-marketïŒ+ mcp_enabled åæ®µ + 审计 APIïŒ â
+â auth-centerïŒ+ M2M OAuth æ¯æïŒè¿æïŒ â
+â discussionsïŒ+ Agent æäœå®¡è®¡è¯é¢ïŒ â
+â â
+ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
+ â
+ âŒ
+ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
+â æ¬å°æ§è¡å±ïŒäžåïŒ â
+ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
+â â
+â agc run â äžèœœ â è§£å â ææåºæ§è¡ â ç»æä¿çæ¬å° â
+â â
+ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
+```
+
+### 2.3 Agent äº€äºæµçšïŒç®æ æïŒ
+
+```
+åºæ¯ AïŒäººç±»åšç»ç«¯çš
+ çšæ· â agc suite search --keyword åŽæ â JSON ç»æ
+
+åºæ¯ BïŒClaude Code éè¿ CLI æäœ
+ Claude Code â shell: agc suite search --keyword åŽæ --format json
+ â è§£æ JSON â å³å®è°çšåªäžªå¥ä»¶
+ â shell: agc suite run --suite-id geofence --input center=POINT(116 40)
+
+åºæ¯ CïŒChatGPT éè¿ MCP æäœ
+ ChatGPT â MCP list_suites(keyword="åŽæ ")
+ â MCP run_suite(suite_id="geofence", inputs={"center": "POINT(116 40)"})
+ â MCP Server â è°çš suite-market API â è§Šå agc runïŒæ¬å°æè¿åæ§è¡æä»€ïŒ
+
+åºæ¯ DïŒèªç Agent éè¿ Skill Playbook æäœ
+ Agent æ¶å°è¯·æ±ïŒ{"type": "geofence", "params": {...}}
+ â å¹é
trigger å
³é®è¯ â å 蜜 geofence-analysis skill
+ â æ skill steps æ§è¡ïŒagc suite search â agc suite run â agc suite list-status
+```
+
+---
+
+## äžãå·®è·åæ
+
+### 3.1 èœå对ç
§ç©éµ
+
+| èœå | CARTO | AgentGIS ç°ç¶ | å·®è·ç级 | åèå®ç° |
+|------|-------|--------------|---------|---------|
+| **CLI å®è£
** | `npm install -g @carto/carto-cli` | `pip install gis-actions` | çæ | æ éæ¹åš |
+| **CLI åœä»€èŠç** | 30+ ååœä»€ïŒauth/credentials/maps/workflows/import/export/orgïŒ | 2 ååœä»€ïŒrun/configïŒ | ðŽ äž¥é | [Phase 1](#äºphase-1-诊讟skill-ç®åœ--cli-æ©å±) |
+| **CLI JSON èŸåº** | é»è®€ JSON | ææ¬æ ŒåŒïŒéè§£æ | ð¡ äžç | `--format json` å
šå±åæ° |
+| **CLI 讀è¯éæ** | `carto auth login` OAuth 亀äºåŒ | `agc config set api-key` æåšé
| ð¡ äžç | `agc auth login` + OAuth 讟å€ç æµ |
+| **Agent Skills** | äžå± 15+ skillïŒGitHub å
¬åŒä»åº | æ | ðŽ äž¥é | [Phase 1](#äºphase-1-诊讟skill-ç®åœ--cli-æ©å±) |
+| **MCP Server** | æç®¡åŒïŒOAuth/Token è®€è¯ | æ | ðŽ äž¥é | [Phase 2](#å
phase-2-诊讟mcp-server) |
+| **Workflow as Tool** | äžé® MCP publish | æ | ðŽ äž¥é | [Phase 3](#äžphase-3-诊讟suite-as-tool) |
+| **å¹³å°å·¥å
·ïŒå
眮ïŒ** | list_connections, browse_tables, describe_table... | æ | ðŽ äž¥é | Phase 2 å
眮 |
+| **亀äºåŒå°åŸ** | view_mapïŒMCP Apps å
èæž²æïŒ | äžéèŠ | äžéçš | æ 计å |
+| **è¯ä¹æš¡å** | Apache Ossie + CARTO ç©ºéŽæ©å± | æ | ð¡ äžç | Phase 4 |
+| **Agent 审计** | CARTO AI Analytics 颿¿ | æ | ð¡ äžç | Phase 3+ |
+| **è¿ç§»å·¥å
·** | carto-arcgis-migration | æ | ð¢ äœ | æé |
+| **In-product Agent** | Builder å
åµè倩 | æäžèè | äžéçš | æé€ |
+
+### 3.2 ææ¯åºè¯äŒ°
+
+| é¡¹ç® | 圱å | 建议 |
+|------|------|------|
+| `agc` æ ç»äžèŸåºæ ŒåŒ | Agent æ æ³å¯é è§£æ | å å
šå± `--format json|text` |
+| suite-market æ MCP çžå
³ API | æ æ³æ³šååæ¥è¯¢ mcp_enabled å¥ä»¶ | å端å åæ®µ + API |
+| æ Agent æäœå®¡è®¡ | æ æ³è¿œèžªè°åäºä»ä¹ | PostgreSQL + Redis åå®¡è®¡æµ |
+| æ é犻ç MCP Server å®¹åš | éèŠæ°å®¹åš | Docker + NPM å代 |
+| Agent Profiles æ¯éææä»¶ | äžèœçšåºåå 蜜 | ç¬ç«åº skills ç®åœç»æ |
+
+---
+
+## åãè¿ä»£è·¯çº¿
+
+### æ»è§
+
+```
+ Phase 1 Phase 2 Phase 3 Phase 4
+ 2026-07-21 2026-08-01 2026-09-01 2026-Q4
+ âââââââââ âââââââââ âââââââââ ââââââââ
+
+ ââââââââââââââââ ââââââââââââââââ ââââââââââââââââ ââââââââââââââââ
+ â Skill ç®åœ â â MCP Server â â Suite as Tool â â è¯ä¹æš¡å â
+ â CLI æ©å± â âââ⺠â (åºç¡ç) â âââ⺠â (åšææ³šå) â âââ⺠â Agent èªå³ â
+ â 审计åç¹ â â Claude å¯¹æ¥ â â AI Analytics â â ç + äŒå â
+ ââââââââââââââââ ââââââââââââââââ ââââââââââââââââ ââââââââââââââââ
+ â
+ 2-3 åš 3-4 åš 3-4 åš è¿ææç»
+```
+
+### Phase 1ïŒå°åºïŒ2026-07-21 èµ·ïŒé¢è®¡ 2-3 åšïŒ
+
+**ç®æ ïŒè®© AI çŒç Agent èœæ£ç¡®æäœ AgentGIS å¹³å°**
+
+| å·¥äœé¡¹ | 亀ä»ç© | èŽèŽ£äºº |
+|--------|--------|--------|
+| **1a. 讟计 Skill ç®åœç»æ** | `agent-skills/` ç®åœ + ä»åº | HuaweiïŒåŒ IssueïŒ |
+| **1b. çŒå Utility SkillïŒ3 䞪ïŒ** | install-auth.md, basic-commands.md, execution-model.md | HuaweiïŒåŒ IssueïŒ |
+| **1c. çŒå Platform SkillïŒ2 䞪ïŒ** | suite-search-run.md, compliance-check.md | HuaweiïŒåŒ IssueïŒ |
+| **1d. çŒå Use-case SkillïŒ1 䞪ïŒ** | geofence-analysis.md | HuaweiïŒåŒ IssueïŒ |
+| **1e. æ©å± `agc` CLI** | æ·»å auth/search/list-status/stats ååœä»€ + `--format json` | AdminïŒçŒç ïŒ |
+| **1f. 审计åç¹** | `suite-market` å端添å `agent_action` 审计衚 | AdminïŒçŒç ïŒ |
+
+**éªæ¶æ åïŒ**
+- â
Claude Code éè¿ skill åŒå¯ŒïŒèœçš `agc` CLI 宿"æçŽ¢å¥ä»¶âæ¥ç诊æ
âè¿è¡"
+- â
`agc suite search --format json` è¿åå¯è§£æ JSON
+- â
ææ Agent æäœåå
¥å®¡è®¡æ¥å¿
+
+### Phase 2ïŒæ ååè®®æ¥å
¥ïŒ2026-08-01 èµ·ïŒé¢è®¡ 3-4 åšïŒ
+
+**ç®æ ïŒè®©ä»»æ MCP å
Œå®¹ç AI 客æ·ç«¯èœçŽæ¥è°çš AgentGIS å¹³å°**
+
+| å·¥äœé¡¹ | 亀ä»ç© | èŽèŽ£äºº |
+|--------|--------|--------|
+| **2a. æå»º MCP Server 容åš** | Docker éå + NPM å代 (mcp.mercator.cn) | HuaweiïŒè¿ç»ŽïŒ |
+| **2b. å®ç°æ žå¿ Platform Tools** | list_suites, inspect_suite, run_suite, run_suite_async, get_run_status, get_run_results, check_compliance | AdminïŒçŒç ïŒ |
+| **2c. API Key 讀è¯éæ** | MCP Server éªè¯ `mk_` åçŒ API Key | AdminïŒçŒç ïŒ |
+| **2d. å¯¹æ¥ Claude Desktop æµè¯** | é
眮 MCP Server URLïŒç«¯å°ç«¯éªè¯ | HuaweiïŒæµè¯ïŒ |
+| **2e. å¯¹æ¥ ChatGPT æµè¯** | ChatGPT èªå®ä¹ MCP æµè¯ | HuaweiïŒæµè¯ïŒ |
+| **2f. çŒå MCP äœ¿çšææ¡£** | åŒåè
æå + çšæ·æå | HuaweiïŒææ¡£ïŒ |
+
+**éªæ¶æ åïŒ**
+- â
ChatGPT çŽæ¥èå€©ïŒæçŽ¢å¥ä»¶âæ¥ç诊æ
âè¿è¡âæ¥ç¶æâè·åç»æ
+- â
Claude Desktop åæ ·å¯çš
+- â
è®€è¯æ£ç¡®ïŒéæ³ API Key 被æç»
+- â
`mcp.mercator.cn` çš³å®è¿è¡
+
+### Phase 3ïŒåšæå¥ä»¶å·¥å
·ïŒ2026-09-01 èµ·ïŒé¢è®¡ 3-4 åšïŒ
+
+**ç®æ ïŒç»åè§æ£æµçå¥ä»¶èªåšåäžºå¯ MCP è°çšçå·¥å
·**
+
+| å·¥äœé¡¹ | 亀ä»ç© | èŽèŽ£äºº |
+|--------|--------|--------|
+| **3a. suite-market å¢å mcp_enabled åæ®µ** | æš¡åè¿ç§» + API æŽæ° + å端 UI | AdminïŒçŒç ïŒ |
+| **3b. åè§éè¿åèªåšæ è®°** | åè§æ£æµæµçšæ«å°Ÿå¢å èªåšæ è®°é»èŸ | AdminïŒçŒç ïŒ |
+| **3c. MCP Server åšææ³šå** | MCP Server 读åå¯è°çšå¥ä»¶å衚ïŒèªåšæ³šå
¥ tools | AdminïŒçŒç ïŒ |
+| **3d. åŒæ¥æ§è¡æ¯æåŒºå** | æ§è¡ç¶æåè° / 蜮询 + è¶
æ¶æºå¶ | AdminïŒçŒç ïŒ |
+| **3e. AI Analytics 颿¿** | å®¡è®¡æ°æ® â å¯è§å颿¿ïŒæäœæè¡ãæå/倱莥çïŒ | AdminïŒçŒç ïŒ |
+| **3f. å®å Use-case Skill ç®åœ** | åå 3 䞪 Use-case skill | HuaweiïŒææ¡£ïŒ |
+
+**éªæ¶æ åïŒ**
+- â
ååžäžäžªåè§å¥ä»¶ â èªåšåš MCP Server äžåºç°äžºå¯è°çš tool
+- â
Agent çŽæ¥è° `run_geofence_analysis(inputs={...})` â æ§è¡ â è¿åç»æ
+- â
管çåçå° Agent æäœç»è®¡é¢æ¿
+- â
Skill ç®åœèŸŸå° 5+ 䞪 Use-case skill
+
+### Phase 4ïŒæºèœ Agent å±ïŒ2026-Q4ïŒè¿æïŒ
+
+**ç®æ ïŒAgent èœçè§£æ°æ®å«ä¹ïŒèªåšéæ©å¹¶å¡«å
åæ°æ§è¡å¥ä»¶**
+
+| å·¥äœé¡¹ | 诎æ |
+|--------|------|
+| 4a. **è¯ä¹æš¡å讟计** | åºäº Apache Ossie æ åïŒå®ä¹æ°æ®éãåæ®µãå
³ç³»ãææ |
+| 4b. **è¯ä¹æš¡åååš** | suite-market æ©å±ïŒæ¯æå¥ä»¶å
³èè¯ä¹æš¡å |
+| 4c. **Agent èªå³ç** | Agent æ ¹æ®çšæ·èªç¶è¯èšæè¿° + è¯ä¹æš¡åïŒèªåšå¹é
å¥ä»¶å¹¶å¡«å
åæ° |
+| 4d. **M2M OAuth** | 䞺埮æå¡åèªåšå Agent æäŸæºåšéŽè®€è¯ |
+| 4e. **è¿ç§»å·¥å
·ïŒæéïŒ** | åŠåºç°è¿ç§»éæ±ïŒå®ç° agentgis-arcgis-migration skill |
+
+---
+
+## äºãPhase 1 诊讟ïŒSkill ç®åœ + CLI æ©å±
+
+### 5.1 Skill ç®åœç»æ
+
+**ä»åºäœçœ®ïŒ** `SuiteHub/agent-profiles`ïŒå·²æä»åºïŒæ°å¢ `agent-skills/` ç®åœïŒ
+
+```
+SuiteHub/agent-profiles/agent-skills/
+â
+âââ catalog.json â æèœæž
åïŒäŸ Agent çšåºåå 蜜ïŒ
+âââ ARCHITECTURE.md â æ¶æè¯Žæ + å 蜜è§å
+â
+âââ utility/
+â âââ install-and-auth.md â å®è£
agc + é
眮 API Key
+â âââ basic-commands.md â agc åºç¡åœä»€åè
+â âââ execution-model.md â Docker é犻æ§è¡æš¡å诎æ
+â âââ gitea-packages.md â Gitea Packages äžèœœæš¡åŒ
+â
+âââ platform/
+â âââ suite-search-and-run.md â æçŽ¢å¥ä»¶ + æ¥ç诊æ
+ è¿è¡
+â âââ compliance-check.md â åè§æ£æµæµçš
+â âââ data-import-export.md â æ°æ®å¯Œå
¥å¯ŒåºïŒé
å CLIïŒ
+â âââ platform-health.md â å¹³å°å¥åº·æ£æ¥
+â
+âââ use-case/
+ âââ geofence-analysis.md â å°çåŽæ åæ
+ âââ poi-overlay-analysis.md â POI å å åæïŒPhase 3+ïŒ
+ âââ spatial-statistics.md â 空éŽç»è®¡ïŒPhase 3+ïŒ
+ âââ data-quality-report.md â æ°æ®èŽšéæ¥åïŒPhase 3+ïŒ
+```
+
+### 5.2 Skill æä»¶æš¡æ¿
+
+æ¯äžª `.md` æä»¶éµåŸªç»äžæ ŒåŒïŒAgent å¯çšåºåè§£æïŒ
+
+```markdown
+# Skill: <åç§°>
+
+> å±çº§: utility | platform | use-case
+> è§Šåè¯: keyword1, keyword2, keyword3
+> äŸèµ: [utility/install-and-auth, ...]
+
+## éçšåºæ¯
+
+ïŒçšèªç¶è¯èšæè¿°ä»ä¹æ
åµäž Agent åºè¯¥å 蜜è¿äžª skillïŒ
+
+## å眮æ¡ä»¶
+
+ïŒéèŠåšå 蜜è¿äžª skill ä¹åå·²æ»¡è¶³çæ¡ä»¶ïŒ
+
+## æ¥éª€
+
+### æ¥éª€ 1ïŒxxxx
+
+```bash
+agc --format json
+```
+
+èŸåºç€ºäŸïŒ
+```json
+{...}
+```
+
+è§£ææåŒïŒAgent åºè¯¥å
³æ³šåªäžªå段ãåŠäœå€æäžäžæ¥...
+
+### æ¥éª€ 2ïŒxxxx
+
+...
+
+## 宿Žç€ºäŸ
+
+äžäžªç«¯å°ç«¯çå¯¹è¯æèæ¬ç€ºäŸ
+
+## åžžè§é误
+
+ïŒAgent å¯èœéå°çé误åå€çæ¹æ³ïŒ
+```
+
+### 5.3 Skill å 蜜è§åïŒ`catalog.json`ïŒ
+
+```json
+{
+ "version": "1.0",
+ "skills": [
+ {
+ "id": "install-and-auth",
+ "tier": "utility",
+ "triggers": ["install", "setup", "auth", "api key", "login"],
+ "dependencies": [],
+ "file": "utility/install-and-auth.md"
+ },
+ {
+ "id": "basic-commands",
+ "tier": "utility",
+ "triggers": ["agc", "cli", "command"],
+ "dependencies": ["install-and-auth"],
+ "file": "utility/basic-commands.md"
+ },
+ {
+ "id": "suite-search-and-run",
+ "tier": "platform",
+ "triggers": ["search suite", "run suite", "execute", "find suite"],
+ "dependencies": ["install-and-auth", "basic-commands"],
+ "file": "platform/suite-search-and-run.md"
+ },
+ {
+ "id": "geofence-analysis",
+ "tier": "use-case",
+ "triggers": ["geofence", "fence", "buffer", "åŽæ ", "çŒå²åº"],
+ "dependencies": ["suite-search-and-run", "execution-model"],
+ "file": "use-case/geofence-analysis.md"
+ }
+ ]
+}
+```
+
+**Agent å 蜜é»èŸïŒ**
+1. è§£æçšæ·è¯·æ± â æåå
³é®è¯
+2. å¹é
`catalog.json` äž skills[].triggers â æ¶éå¹é
ç skill ID
+3. å»éãæ tier æåºïŒutility â platform â use-caseïŒ
+4. éåœå 蜜 dependencies
+5. æå 蜜顺åºè¯»åææ `.md` æä»¶æ³šå
¥ Agent äžäžæ
+
+### 5.4 `agc` CLI æ©å±è®Ÿè®¡
+
+**æ°å¢ååœä»€ïŒ**
+
+```
+agc
+âââ auth
+â âââ login # OAuth 讟å€ç æµïŒè¿æïŒ
+â âââ token set # åœå config set api-key çæ¹ç
+â âââ token show # æŸç€ºåœå API KeyïŒæ©ç ïŒ
+â âââ token test # æµè¯ API Key æææ§
+â
+âââ suite
+â âââ search # æçŽ¢å¥ä»¶ïŒå°è£
GET /api/v1/suites/searchïŒ
+â âââ inspect # æ¥çå¥ä»¶è¯Šæ
+â âââ run --input k=v # åœå run ç粟ç®ç
+â âââ list-status # æ¥çå岿§è¡ç¶æïŒæ°å¢åèœïŒ
+â
+âââ data
+â âââ list # ååºå·²è¿æ¥çæ°æ®æºïŒè¿æïŒ
+â âââ import # 富å
¥æ°æ®ïŒè¿æïŒ
+â âââ export # 富åºç»æïŒè¿æïŒ
+â
+âââ compliance
+â âââ check # è§Šååè§æ£æµ
+â
+âââ org
+â âââ stats # ç»ç»ç»è®¡
+â
+âââ mcp
+â âââ start # å¯åšæ¬å° MCP 代çïŒè¿æïŒ
+â âââ status # æ¥ç MCP è¿æ¥ç¶æ
+â
+âââ config (ç°æ)
+ âââ set
+ âââ get
+ âââ list
+```
+
+**å
šå±æ å¿ïŒ**
+- `--format json|text` â æ§å¶èŸåºæ ŒåŒãé»è®€ `text`ïŒäººç±»å奜ïŒïŒ`json`ïŒAgent å奜ïŒ
+- `--quiet` â åªèŸåºç»ææ°æ®ïŒæ banner/æç€ºä¿¡æ¯
+- `--timeout ` â æ§è¡è¶
æ¶
+
+**JSON èŸåºæ ŒåŒçºŠå®ïŒ**
+
+ææè¿å JSON çååœä»€éµåŸªç»äž schemaïŒ
+
+```json
+{
+ "status": "ok" | "error",
+ "data": { ... },
+ "error": { "code": "ERROR_CODE", "message": "Human readable" }
+}
+```
+
+### 5.5 审计åç¹è®Ÿè®¡
+
+**æ°è¡š `agent_action_log`ïŒ`suite_market_db`ïŒïŒ**
+
+```sql
+CREATE TABLE agent_action_log (
+ id BIGSERIAL PRIMARY KEY,
+ api_key_id VARCHAR(64) NOT NULL, -- åªäžª API Key æ§è¡çæäœ
+ agent_name VARCHAR(128) DEFAULT '', -- Agent æ è¯ïŒåŠ "claude-code"ïŒ
+ action VARCHAR(64) NOT NULL, -- æäœç±»å
+ target_type VARCHAR(32), -- æäœå¯¹è±¡ç±»åïŒsuite/data/...ïŒ
+ target_id VARCHAR(128), -- æäœå¯¹è±¡ ID
+ request JSONB, -- 请æ±åæ°
+ response_summary VARCHAR(256), -- ååºæèŠ
+ status VARCHAR(16) DEFAULT 'success', -- success/failure
+ duration_ms INTEGER, -- èæ¶
+ ip_address INET,
+ created_at TIMESTAMP DEFAULT NOW()
+);
+
+CREATE INDEX idx_agent_action_log_api_key ON agent_action_log(api_key_id);
+CREATE INDEX idx_agent_action_log_created ON agent_action_log(created_at);
+```
+
+**ééç¹ïŒ**
+- ææ REST API å
¥å£ïŒéè¿ FastAPI middlewareïŒ
+- `agc` CLI ææååœä»€ïŒéè¿è¯·æ±å€Ž `X-Agent-Name`ïŒ
+- æªæ¥ MCP Server ææè°çš
+
+---
+
+## å
ãPhase 2 诊讟ïŒMCP Server
+
+### 6.1 æ¶æ
+
+```
+Claude.ai / ChatGPT / èªç Agent
+ â
+ â MCP Protocol (SSE / Streamable HTTP)
+ âŒ
+ââââââââââââââââââââââââââââââââââââââââ
+â agentgis-mcp-server:8100 â
+â â
+â Python (FastAPI) + mcp-python-sdk â
+â â
+â Auth Middleware: éªè¯ mk_ API Key â
+â â
+â ââââââââââââââââââââââââââââââââââ â
+â â Tool Registry â â
+â â âââ Built-in Tools (éæ) â â
+â â â âââ list_suites â â
+â â â âââ inspect_suite â â
+â â â âââ run_suite â â
+â â â âââ run_suite_async â â
+â â â âââ get_run_status â â
+â â â âââ get_run_results â â
+â â â âââ check_compliance â â
+â â â âââ search_data â â
+â â â âââ get_org_stats â â
+â â âââ Suite Tools (åšæ) â â
+â â âââ Phase 3 å¯çš â â
+â ââââââââââââââââââââââââââââââââââ â
+â â
+â Backend Calls: â
+â âââ suites.mercator.cn REST API â
+â âââ auth.mercator.cn éªè¯ API Key â
+ââââââââââââââââââââââââââââââââââââââââ
+ â
+ âŒ
+ Nginx Proxy Manager
+ mcp.mercator.cn â agentgis-mcp-server:8100
+```
+
+### 6.2 æ žå¿ Tool å®ä¹
+
+æ¯äžª tool çš JSON Schema å®ä¹åæ°åè¿åïŒ
+
+#### `list_suites`
+
+```json
+{
+ "name": "list_suites",
+ "description": "æçŽ¢å¯çšå¥ä»¶ãä»å
³é®è¯æçŽ¢ææåç±»æµè§ææå·²ååžå¥ä»¶ã",
+ "inputSchema": {
+ "type": "object",
+ "properties": {
+ "keyword": { "type": "string", "description": "æçŽ¢å
³é®è¯ïŒæ¯ææš¡ç³å¹é
" },
+ "category": { "type": "string", "description": "åç±»è¿æ»€" },
+ "page": { "type": "integer", "description": "页ç ïŒé»è®€ 1" },
+ "page_size": { "type": "integer", "description": "æ¯é¡µæ°éïŒé»è®€ 10" }
+ }
+ }
+}
+```
+
+#### `inspect_suite`
+
+```json
+{
+ "name": "inspect_suite",
+ "description": "æ¥çå¥ä»¶ç诊ç»ä¿¡æ¯ïŒå
æ¬åæ°è¯Žæãçæ¬åå²ã䜿çšè¯ŽæãAgent åšå³å®è¿è¡ååºè¯¥å
inspectã",
+ "inputSchema": {
+ "type": "object",
+ "properties": {
+ "suite_id": { "type": "string", "description": "å¥ä»¶ ID" },
+ "version": { "type": "string", "description": "å¯éïŒæå®çæ¬" }
+ },
+ "required": ["suite_id"]
+ }
+}
+```
+
+#### `run_suite`
+
+```json
+{
+ "name": "run_suite",
+ "description": "è¿è¡å¥ä»¶ãåæ°å¿
é¡»å¹é
inspect_suite è¿åç parameter_schemaã忥æ§è¡ïŒçåŸ
ç»æè¿åã",
+ "inputSchema": {
+ "type": "object",
+ "properties": {
+ "suite_id": { "type": "string", "description": "å¥ä»¶ ID" },
+ "version": { "type": "string", "description": "å¯éïŒæå®çæ¬" },
+ "inputs": {
+ "type": "object",
+ "description": "åæ°é®åŒå¯¹ïŒæ ŒåŒç±å¥ä»¶ç parameter_schema å®ä¹",
+ "additionalProperties": { "type": "string" }
+ }
+ },
+ "required": ["suite_id", "inputs"]
+ }
+}
+```
+
+#### `run_suite_async`
+
+äž `run_suite` çžååæ°ïŒäœç«å³è¿å `run_id`ïŒAgent çš `get_run_status` / `get_run_results` 蜮询ã
+
+#### `check_compliance`
+
+```json
+{
+ "name": "check_compliance",
+ "description": "对å¥ä»¶çèæ¬å
容觊ååè§æ£æµãè¿ååè§è¯ååæ£æµæ¥åã",
+ "inputSchema": {
+ "type": "object",
+ "properties": {
+ "suite_id": { "type": "string", "description": "å¥ä»¶ ID" },
+ "version": { "type": "string", "description": "å¯éïŒæå®çæ¬" }
+ },
+ "required": ["suite_id"]
+ }
+}
+```
+
+### 6.3 讀è¯å®ç°
+
+```
+Client Request Header:
+ Authorization: Bearer mk_8e8oJPtslcrwWMdbveIYF6JTj2DdVWmip1YuXDywQsY
+
+MCP Server:
+ 1. æå Bearer Token
+ 2. è° auth.mercator.cn/api/v1/apikeys/verify
+ POST { "api_key": "mk_..." }
+ â { "valid": true, "user_id": "...", "scopes": ["suite:read", "suite:run"] }
+ 3. çŒåéªè¯ç»æïŒ5 åé TTLïŒRedisïŒ
+ 4. åš tool æ§è¡æ¶æ£æ¥ scope æ¯åŠå¹é
+```
+
+### 6.4 éšçœ²é
眮
+
+```dockerfile
+# Dockerfile
+FROM python:3.11-slim
+
+WORKDIR /app
+COPY requirements.txt .
+RUN pip install -r requirements.txt
+
+COPY src/ ./src/
+ENV PYTHONPATH=/app/src
+
+EXPOSE 8100
+CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8100"]
+```
+
+```yaml
+# docker-compose æ°å¢æå¡
+agentgis-mcp-server:
+ build: ./agentgis-mcp-server
+ container_name: agentgis-mcp-server
+ networks:
+ - mercator-net
+ environment:
+ - SUITE_MARKET_URL=http://suite-market-backend:8001
+ - AUTH_CENTER_URL=http://auth-center-backend:8000
+ - REDIS_URL=redis://mercator-redis:6379/1
+ - MCP_SERVER_PORT=8100
+ - LOG_LEVEL=info
+ restart: unless-stopped
+```
+
+```
+NPM é
眮ïŒ
+ Domain: mcp.mercator.cn
+ Forward: http://agentgis-mcp-server:8100
+ SSL: Let's Encrypt
+ WebSocket Support: â
OnïŒMCP éèŠ SSEïŒ
+```
+
+### 6.5 æµè¯æž
å
+
+| æµè¯é¡¹ | æ¹æ³ | 颿 |
+|--------|------|------|
+| API Key æ£ç¡® | curl -H "Authorization: Bearer mk_..." | è¿åæ£åžžç»æ |
+| API Key é误 | curl -H "Authorization: Bearer mk_wrong" | 401 Unauthorized |
+| API Key è¿æ | 䜿çšå·²è¿æ Key | 401 |
+| æ API Key | curl æ Authorization | 401 |
+| MCP Inspector è¿æ¥ | npm install -g @modelcontextprotocol/inspector | ååºç tools æ£ç¡® |
+| Claude Desktop è¿æ¥ | claude_desktop_config.json é
眮 | å·¥å
·æ£åžžè°çš |
+| run_suite 忥 | çå¥ä»¶ | çåŸ
宿åè¿åç»æ |
+| run_suite_async | é¿å¥ä»¶ | ç«å³è¿å run_idïŒèœ®è¯¢è·åç»æ |
+| å¹¶åè°çš | åæ¶ 5 äžªè¯·æ± | å请æ±ç¬ç«å€ç |
+
+---
+
+## äžãPhase 3 诊讟ïŒSuite as Tool
+
+### 7.1 æ°æ®åºæš¡ååæŽ
+
+`suite_suites` 衚æ°å¢å段ïŒ
+
+```python
+# suite_market æš¡å
+class Suite(Base):
+ __tablename__ = "suite_suites"
+
+ # ç°æåæ®µ...
+ id: str
+ name: str
+ # ...
+
+ # Phase 3 æ°å¢
+ mcp_enabled: bool = False # æ¯åŠå¯äœäžº MCP Tool è°çš
+ mcp_tool_name: str | None = None # èªå®ä¹ tool åïŒé»è®€çš suite_id
+ mcp_description: str | None = None # èªå®ä¹ tool æè¿°ïŒé»è®€çš suite description
+ mcp_approved_at: datetime | None # æ¹åæ¶éŽ
+ mcp_approved_by: str | None # æ¹å人
+ mcp_call_count: int = 0 # 环计 MCP è°ç𿬡æ°
+```
+
+### 7.2 ååžæµçšåæŽ
+
+```
+åŒåè
æå
workflow.yaml + scripts/ â .tar.gz
+ â POST /publish/uploadïŒé API Key + Gitea TokenïŒ
+ â åè§æ£æµ
+ â åæ°æ ¡éª
+ â äžäŒ èæ¬å
å° Gitea Packages
+ â åå
¥ suite_suites
+ â [æ°å¢] åŠæåè§éè¿ â mcp_enabled = True
+ â [æ°å¢] MCP Server éæ°å 蜜 tool å衚
+```
+
+### 7.3 MCP Server åšææ³šåé»èŸ
+
+```python
+# mcp-server å¯åšæ¶ + 宿¶å·æ°ïŒæ¯ 5 åéïŒ
+async def refresh_suite_tools():
+ """ä» suite-market æåææ mcp_enabled=True çå¥ä»¶ïŒæ³šå䞺 tool"""
+ async with httpx.AsyncClient() as client:
+ resp = await client.get(
+ f"{SUITE_MARKET_URL}/api/v1/suites",
+ params={"mcp_enabled": True},
+ headers={"Authorization": f"Bearer {INTERNAL_TOKEN}"}
+ )
+ suites = resp.json()
+
+ # æž
空æ§ç suite tools
+ suite_tools.clear()
+
+ for suite in suites:
+ # çæ tool schema
+ tool_def = {
+ "name": suite.get("mcp_tool_name") or slugify(suite["id"]),
+ "description": suite.get("mcp_description") or suite.get("description", ""),
+ "inputSchema": {
+ "type": "object",
+ "properties": {},
+ "required": []
+ }
+ }
+
+ # ä» parameter_schema 蜬æ¢åæ°å®ä¹
+ for param in suite.get("parameter_schema", []):
+ tool_def["inputSchema"]["properties"][param["name"]] = {
+ "type": param.get("json_type", "string"),
+ "description": param.get("description", "")
+ }
+ if param.get("required"):
+ tool_def["inputSchema"]["required"].append(param["name"])
+
+ suite_tools[suite["id"]] = tool_def
+```
+
+### 7.4 AI Analytics 颿¿
+
+**æ°æ®æºïŒ** `agent_action_log` 衚
+
+**颿¿å
容ïŒå¯ä»¥çšç®å K/V å±ç€ºæéå GrafanaïŒïŒ**
+
+| ææ | SQL |
+|------|-----|
+| 仿¥æŽ»è· Agent æ° | `SELECT COUNT(DISTINCT api_key_id) FROM agent_action_log WHERE created_at > today()` |
+| æäœ Top 5 | `SELECT action, COUNT(*) FROM agent_action_log GROUP BY action ORDER BY 2 DESC LIMIT 5` |
+| æå/倱莥ç | `SELECT status, COUNT(*) FROM agent_action_log GROUP BY status` |
+| ææŽ»è·å¥ä»¶ Top 5 | `SELECT target_id, COUNT(*) FROM agent_action_log WHERE target_type='suite' GROUP BY target_id` |
+| æäœè¶å¿ïŒæè¿ 7 å€©ïŒ | `SELECT DATE(created_at), COUNT(*) FROM agent_action_log WHERE created_at > 7days GROUP BY 1` |
+
+**å端éæïŒ** suite-market å端 Settings â AI Analytics 页
+
+---
+
+## å
«ãPhase 4 屿ïŒè¯ä¹æš¡åäž Agent èªåšå
+
+> è¿éšåæ¯è¿ææ¹åïŒååšè¿éäœäžºææ¯åšå€ïŒäžçº³å
¥è¿æè¿ä»£ã
+
+### 8.1 è¯ä¹æš¡åéé
+
+åºäº Apache Ossie æ©å±ç©ºéŽè¯ä¹ïŒ
+
+```yaml
+version: "0.1.1"
+semantic_model:
+ - name: "åå°å©çšåæå¥ä»¶"
+ description: "åºäºé¥æåœ±åçåå°å©çšåç±»äžåæ"
+ datasets:
+ - name: "land_use_parcels"
+ fields:
+ - name: "geom"
+ description: "å°å蟹çïŒPolygon, EPSG:4326ïŒ"
+ custom_extensions:
+ - vendor_name: AgentGIS
+ data: '{"spatial_data": {"type": "polygon", "srid": 4326}}'
+ - name: "land_type"
+ description: "åå°å©çšç±»åçŒç "
+ - name: "area_sqkm"
+ description: "é¢ç§¯ïŒå¹³æ¹å
¬éïŒ"
+ metrics:
+ - name: "åç±»åå æ¯"
+ expression: "COUNT(*) * 1.0 / SUM(COUNT(*)) OVER()"
+```
+
+### 8.2 Agent èªå³çæµçš
+
+```
+çšæ·èŸå
¥ïŒ "åž®æåæå京äºç¯å
çåäžçšå°ååž"
+ â
+ âââ (Phase 4) Agent 读åè¯ä¹æš¡å â å¹é
å° land_use_parcels
+ âââ (Phase 4) Agent èªåšéæ©"åŽæ + åç±»ç»è®¡"å¥ä»¶ç»å
+ âââ (Phase 4) èªåšå¡«å
åæ°ïŒcenter=å京åžäžå¿, radius=äºç¯ååŸ
+ â
+ âââ (Phase 3) MCP Server â run_suite("geofence-analysis", inputs={...})
+ â
+ âââ (Phase 2) æ§è¡ â è¿åç»æ â Agent 解读èŸåº
+```
+
+---
+
+## ä¹ãéåœ
+
+### A. å·¥äœéäŒ°ç®æ±æ»
+
+| Phase | å·¥äœé¡¹ | ç±»å | 䌰计人倩 | äŒå
|
+|-------|--------|------|---------|------|
+| P1 | Skill ç®åœç»ææå»º | ææ¡£ | 0.5 | ðŽ |
+| P1 | Utility Skill à 3 | ææ¡£ | 1 | ðŽ |
+| P1 | Platform Skill à 2 | ææ¡£ | 1 | ðŽ |
+| P1 | Use-case Skill à 1 | ææ¡£ | 1 | ðŽ |
+| P1 | CLI æ©å±ïŒauth/suite/search/statsïŒ | çŒç | 3 | ðŽ |
+| P1 | CLI JSON èŸåºæ ŒåŒå | çŒç | 1 | ðŽ |
+| P1 | 审计衚 + middleware | çŒç | 2 | ð¡ |
+| **P1 å°è®¡** | | | **9.5** | |
+| P2 | MCP Server å®¹åšæå»º + éšçœ² | è¿ç»Ž | 1 | ðŽ |
+| P2 | 5 äžªæ žå¿ tool å®ç° | çŒç | 4 | ðŽ |
+| P2 | API Key 讀è¯äžéŽä»¶ | çŒç | 1 | ðŽ |
+| P2 | æµè¯å¯¹æ¥ + è°è¯ | æµè¯ | 2 | ðŽ |
+| P2 | MCP äœ¿çšææ¡£ | ææ¡£ | 1 | ð¡ |
+| **P2 å°è®¡** | | | **9** | |
+| P3 | suite-market æš¡ååæŽ | çŒç | 1 | ðŽ |
+| P3 | ååžæµçšä¿®æ¹ | çŒç | 2 | ðŽ |
+| P3 | MCP åšææ³šå | çŒç | 2 | ðŽ |
+| P3 | åŒæ¥æ§è¡å¢åŒº | çŒç | 2 | ð¡ |
+| P3 | Analytics 颿¿å端 | çŒç | 3 | ð¡ |
+| P3 | Use-case Skill à 3 | ææ¡£ | 2 | ð¡ |
+| **P3 å°è®¡** | | | **12** | |
+
+**æ»è®¡ïŒçºŠ 30 人倩**ïŒå 3 äžªé¶æ®µæ§è¡ïŒ
+
+### B. Issue å建暡æ¿
+
+Boss æ¹ååïŒæä»¥äžæš¡æ¿åŒ IssueïŒ
+
+```markdown
+## æ é¢
+[Agentéæ] Phase X: <å·¥äœé¡¹åç§°>
+
+## èæ¯
+ïŒäžºä»ä¹åãåèäº CARTO for Agents çä»ä¹è®Ÿè®¡ïŒ
+
+## éæ±æè¿°
+ïŒå
·äœåä»ä¹ïŒéªæ¶æ¡ä»¶ïŒ
+
+## ææ¯åè
+- æ¶æææ¡£: research/carto-for-agents-architecture-notes.md
+- çžå
³ API: ïŒåŠæïŒ
+- éèŠä¿®æ¹çä»åº: suite-market / gis-actions / agent-profiles
+
+## éªæ¶æ¡ä»¶
+- [ ] æ¡ä»¶ 1
+- [ ] æ¡ä»¶ 2
+
+## ææŽŸ
+@Admin
+```
+
+### C. å³çè®°åœ
+
+| å³ç | éæ© | çç± |
+|------|------|------|
+| MCP åè®®çæ¬ | 2025-06-18ïŒææ°çš³å®çïŒ | 客æ·ç«¯æ¯ææå¹¿ |
+| MCP Server è¯èš | Python (FastAPI) | äžç°æææ¯æ äžèŽïŒmcp-python-sdk æç |
+| MCP äŒ èŸæ¹åŒ | SSEïŒServer-Sent EventsïŒ | å
Œå®¹æ§æå¥œïŒNPM æ¯æ WebSocket |
+| Agent Skill æ ŒåŒ | Markdown + JSON catalog | 人类å¯è¯»ïŒAgent å¯è§£æïŒæ éæ°å·¥å
· |
+| CLI JSON èŸåº | å
šå± --format åæ° | äžåœ±åç°æ text èŸåºå
Œå®¹æ§ |
+| 审计ååš | PostgreSQLïŒsuite_market_dbïŒ | äžç°ææ°æ®åºäžèŽïŒé¿å
åŒå
¥æ°ååš |
+| 容åšçœç» | å å
¥ç°æ mercator-net | ç»äžçœç»ç®¡ç |
+
+---
+
+*ææ¡£çæ¬: v1.0*
+*äžæ¬¡è¯å®¡: Phase 1 宿å*