MCPcopy Create free account
hub / github.com/astercloud/aster / Execute

Method Execute

pkg/middleware/reasoning.go:216–246  ·  view source on GitHub ↗

Execute 执行工具

(ctx context.Context, input map[string]any, tc *tools.ToolContext)

Source from the content-addressed store, hash-verified

214
215// Execute 执行工具
216func (rt *ReasoningTool) Execute(ctx context.Context, input map[string]any, tc *tools.ToolContext) (any, error) {
217 query, ok := input["query"].(string)
218 if !ok || query == "" {
219 return map[string]any{
220 "ok": false,
221 "error": "query is required",
222 }, nil
223 }
224
225 // 执行推理
226 chain, err := rt.engine.Reason(ctx, query, "")
227 if err != nil {
228 return map[string]any{
229 "ok": false,
230 "error": fmt.Sprintf("reasoning failed: %v", err),
231 }, nil
232 }
233
234 // 生成摘要
235 summary := chain.Summary()
236
237 return map[string]any{
238 "ok": true,
239 "output": summary,
240 "metadata": map[string]any{
241 "chain_id": chain.ID,
242 "step_count": len(chain.Steps),
243 "status": chain.Status,
244 },
245 }, nil
246}
247
248// Prompt 返回工具提示
249func (rt *ReasoningTool) Prompt() string {

Callers

nothing calls this directly

Calls 2

ReasonMethod · 0.65
SummaryMethod · 0.45

Tested by

no test coverage detected