agents
agents 建立一個可以呼叫工具的 Agent。Agent 只能使用你明確提供的工具。
建立 Agent
import akasha
agent = akasha.agents(
model="gemini:gemini-2.5-flash",
tools=[],
skills=None,
stream=False,
)
常用建立參數:
| 參數 | 意義 |
|---|---|
tools |
Agent 可以呼叫的工具或工具清單。 |
skills |
擴充 Agent 的 Skill 路徑或 Skill 物件。 |
model |
Provider 與模型別名。 |
max_round |
Agent 與工具互動的最大輪數。 |
max_past_observation |
Agent 保留的先前觀察數量。 |
stream |
是否回傳串流事件而非單一結果。 |
thinking |
是否啟用 Provider 支援的推理內容。 |
max_resource_bytes |
Skill 工具可以讀取的資源大小限制。 |
呼叫 Agent
answer = agent("請解釋什麼時候適合使用工具呼叫 Agent。")
print(answer)
非串流呼叫會回傳完整回答;非同步版本是:
answer = await agent.acall("請非同步執行這個任務。")
使用 stream=True 時,呼叫會產生事件字典。請參考 串流事件。
Tool 與 Skill 輸入
請只傳入明確且經過驗證的 Tool:
def add_numbers(a: int, b: int) -> int:
"""Add two integers."""
return a + b
tool = akasha.create_tool(
"Add two integers.",
add_numbers,
tool_name="add_numbers",
)
agent = akasha.agents(model="gemini:gemini-2.5-flash", tools=[tool])
透過 skills 傳入 Skill 目錄:
agent = akasha.agents(
model="gemini:gemini-2.5-flash",
skills=["./hello-skill"],
)
該目錄必須包含 SKILL.md。完整的從零開始範例請閱讀Tool 與 Skill。
MCP 工具
使用 MultiServerMCPClient 探索 MCP 工具,正規化後傳給 tools:
discovered = await client.get_tools()
tools = akasha.normalize_mcp_tools(discovered)
agent = akasha.agents(model="openai:gpt-4o-mini", tools=tools)
Server 啟動、傳輸方式與安全注意事項請參考 MCP。
Warning
Tool 是應用程式能力。請驗證輸入,並限制檔案、網路與憑證的存取範圍。