gpt4 book ai didi

artificial-intelligence - 无法向另一个 Jason 代理发送操作

转载 作者:行者123 更新时间:2023-12-04 08:43:30 26 4
gpt4 key购买 nike

我正在使用 Jason 语言在两个代理之间进行通信。但是我无法使用发送操作,它给出了一个错误。

这是我的两个经纪人,

代理 1 :-

// Agent Agent1 in project factorial3.mas2j

/* Initial goals */
!start.

/* Plans */

+!start : true
<- .print("starting..");
!query_factorial(2).

+!query_factorial(X) : true <-
.send(agent2,tell,giveme(X)).

/*+fact(X,Y) : true <-
.print("factorial ", X, " is ", Y, " thank you expert").*/

代理 2:-
// Agent agent2 in project IdEx.mas2j

/* Initial beliefs and rules */

/* Initial goals */

!begin.

/* Plans */

+!begin : true
<- .print("expert starting.......");
!giveme(X).

+!giveme(X):true
<- !fact(X,Y);
.print("Factorial of ", X, " is ", Y).
//.send(agent1,achive,fact(X,Y)).

+!fact(X,1) : X == 0.

+!fact(X,Y) : X > 0
<- !fact(X-1,Y1);
Y = Y1 * X.

因此,当我尝试在 agent1 中调用发送操作时出现错误,而 agent2 给出了接收错误。

更新

我收到此错误,
[agent2] *** Error adding var into renamed vars. var=X, value=(_229-1).
java.lang.ClassCastException: jason.asSyntax.ArithExpr cannot be cast to jason.asSyntax.VarTerm
at jason.asSemantics.TransitionSystem.prepareBodyForEvent(TransitionSystem.java:877)
at jason.asSemantics.TransitionSystem.applyExecInt(TransitionSystem.java:728)
at jason.asSemantics.TransitionSystem.applySemanticRule(TransitionSystem.java:222)
at jason.asSemantics.TransitionSystem.reasoningCycle(TransitionSystem.java:1429)
at jason.infra.centralised.CentralisedAgArch.run(CentralisedAgArch.java:205)
at java.lang.Thread.run(Thread.java:745)

最佳答案

如果您想请求代理执行计划(在代理 1 的情况下,当您说“+!query_factorial(X)...”时),它应该是一个实现消息。取消注释“计划”“+fact(X,Y) : true <- .print(“factorial”, X, “is “, Y, “谢谢专家”)。”你应该使用运算符“!”一开始就制定计划。所以,如果我理解你的测试项目的总体思路,它可以重写如下:

代理1代码:

!start.

+!start : true
<- .print("starting..");
!query_factorial(2).

+!query_factorial(X) : true <-
.send(agent2,achieve,giveme(X)).

代理2代码:
+!giveme(X):true
<- !fact(X,Y);
.print("Factorial of ", X, " is ", Y).

+!fact(X,1) : X == 0.

+!fact(X,Y) : X > 0
<- !fact(X-1,Y1);
Y = Y1 * X.

你可以看到,我没有使用你原始代码的“开始计划”,因为 Agent1 正在做这项工作,在被问到时让 Agent2 工作。

关于artificial-intelligence - 无法向另一个 Jason 代理发送操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32600368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com