Hi, I'm unable to get access to the API (javadoc) pages. Following the links results in "502 Bad Gateway". Can you please provide a link to the API (javadoc) documentation. Thanks. Kevin.
Hi, could you describe what your Problem with publicIFuture<map\<string, object="">> killComponent();</map\<string,> is? You can call it anytime. On 9/29/23 14:34, mrbrovki wrote: Hello, I want to ask if there is any way to kill an agent programmatically. I didn't understand how to use killAgent(), so I would be able to kill an agent even if it's active. Best Regards, Mahkam Killing Agents https://sourceforge.net/p/jadex/discussion/274111/thread/fdd3f7467f/?limit=25#53be Sent from sourceforge.net...
Hello, I want to ask if there is any way to kill an agent programmatically. I didn't understand how to use killAgent(), so I would be able to kill an agent even if it's active. Best Regards, Mahkam
Hello, I want to ask if there is any way to kill an agent programmatically. I didn't understand how to use killAgent(), so I would be able to kill an agent even if it's active. Best Regards, Mahkam
Hello, I want to ask if there is any way to kill an agent programmatically. I didn't understand how to use killAgent(), so I would be able to kill an agent even if it's active. Best Regards, Mahkam
Thanks Lars. Regards. Kevin.
Hi Kevin, that is just an info message. It means that a step is not executed due to a changed context. Nothing to worry about. Best, Lars
Hi, I'm receiving the following message ... [2023-08-01 21:17:34.933] [INFO ] DataCollectorAgent@SmartModelBase:DESKTOP-MUBA418_h1r jadex.bridge.componen t.impl.ExecutionComponentFeature execute <step invalid="" selectcandidatesaction(main.java.datacollection.datacol="" lectoragent$makeeventspersistent_#23="" main.java.datacollection.datacollectoragent$makeeventspersistent@2b9689e2)=""></step> The DataCollectorAgent does as the name suggests collecting data via associated goals (and plans) and making...
Hi, I'm receiving the following message ... [2023-08-01 21:17:34.933] [INFO ] DataCollectorAgent@SmartModelBase:DESKTOP-MUBA418_h1r jadex.bridge.componen t.impl.ExecutionComponentFeature execute <step invalid="" selectcandidatesaction(main.java.datacollection.datacol="" lectoragent$makeeventspersistent_#23="" main.java.datacollection.datacollectoragent$makeeventspersistent@2b9689e2)=""></step> The DataCollectorAgent does as the name suggests collecting data via associated goals (and plans) and making...
Hi, On reading the documentation, I thought a plan could be triggered by a change in belief. I am finding that this is not the case where a field is labelled as the belief. I am using the environment support components. The belief change originates as a consequence of property changes in a space object in the environment. I have used modified versions of the DefaultVisionGenerator and DefaultBDIPerceptProcessor available in the distribution (and referred to in the environment support documentation)....
I'm unable to complete the B1 tutorial for the BDIv3 tutorial due to a error around defining the AgentFactory for the agent. Here the the TranslationBDI.java file: package com.baseagent; import jadex.bdiv3.BDIAgentFactory; import jadex.bdiv3.annotation.Body; import jadex.bdiv3.annotation.Plan; import jadex.bdiv3.annotation.Plans; import jadex.bdiv3.features.IBDIAgentFeature; import jadex.micro.annotation.Agent; import jadex.micro.annotation.AgentBody; import jadex.micro.annotation.AgentFeature; import...
So I have used the following in the dependencies in my pom.xml file after looking at the Maven library: <dependency> <groupId>org.activecomponents.jadex</groupId> <artifactId>jadex-platform</artifactId> <version>3.0.117</version> </dependency> This seems to have resolved the issue for the time being.
I'm a bit new to Jadex, and I've been getting an issue when going through the beginning tutorials for bdiv3 agents. Below is my Main.java file for the b1 tutorial. The main issue I've been having surrounds the PlatformConfiguration object and constructor. package com.baseagent; import jadex.base.PlatformConfiguration; import jadex.base.Starter; public class Main { public static void main(String[] args) { PlatformConfiguration config = PlatformConfiguration.getDefaultNoGui(); config.addComponent("com.baseagent.TranslationBDI.class");...
I'm a bit new to Jadex, and I've been getting an issue when going through the beginning tutorials for bdiv3 agents. Below is my Main.java file for the b1 tutorial. The main issue I've been having surrounds the PlatformConfiguration object and constructor. ```package com.baseagent; import jadex.base.PlatformConfiguration; import jadex.base.Starter; public class Main { public static void main(String[] args) { PlatformConfiguration config = PlatformConfiguration.getDefaultNoGui(); config.addComponent("com.baseagent.TranslationBDI.class");...
I'm a bit new to Jadex, and I've been getting an issue when going through the beginning tutorials for bdiv3 agents. Below is my Main.java file for the b1 tutorial. The main issue I've been having surrounds the PlatformConfiguration object and constructor. `package com.baseagent; import jadex.base.PlatformConfiguration; import jadex.base.Starter; public class Main { public static void main(String[] args) { PlatformConfiguration config = PlatformConfiguration.getDefaultNoGui(); config.addComponent("com.baseagent.TranslationBDI.class");...
Hi, first of all, I'm wondering if your approach is really a good one. Wouldn't it be easier/more sensible if the agent either ignores further messages after the first one or return an error to the TestV3EnvironmentActionAgent1? If the service is removed, it may be difficult for the TestV3EnvironmentActionAgent1 to determine if the call did not succeed because the service was intentionally removed or e.g. connectivity was lost. Regardless, in the code you provided: IServiceIdentifier sid3 = ((IService)agent.getProvidedService(INotifyService1.class)).getServiceId();...
Hi Kai, i have tried to implement as you say using the addService and removeService for my BDI-Agent that functions similarly with the example ICHATService. Agent TestV3EnvironmentActionAgent1 ( coressponds to ChatD1Agent) send a message to Agent TestV3TrikeAgent1(coresspond to ChatBotF1Agent). After TestV3TrikeAgent1 receive that message, he should remove the service and not receive any new message from Agent TestV3EnvironmentActionAgent1. I implement the remove service like this with INotifyService1.class...
I found the problem for this. the Belief has to be not static then the goal creation condition works perfectly
I found the problem for this. the Belief has to be not static then the goal creation condition works perfectly
Hi this is the code that i used. SupportingAgent is equal Agent1 that contains theActiveAgentList. i implement the Service thats similar to the muster IChatService so other agents could write the text into the ActiveAgentList. I also used type List <string> for ActiveAgentList. i put on the debug and noticed that the goal will be triggered once in the begining but it doesnt really check the changes in the factadded i think </string>
Thank you, Lars! It is working now. Best regards
You need to use Void instead of void. Best, Lars On 24.02.2023 21:09, PAULO ROBERTO CORDOVA wrote: |@Agent(type=BDIAgentFactory.TYPE) public class TranslationBDIRecur { //Fields @AgentFeature protected IBDIAgentFeature bdiFeature; @AgentFeature protected IExecutionFeature execFeature; protected Map<string, string=""> wordtable; @Belief protected String eWord; @OnInit public void init() { this.wordtable = new HashMap<string, string="">(); this.wordtable.put("coffee", "Café"); this.wordtable.put("milk",...
Hi, could you please provide the complete agent code so that I can test it? What data type is AgentActiveList? The list implementation will be changed by Jadex in order to track to the changes automatically via different wrapper classes. So this works only, if the typical List/Set/Map interfaces are used. Best, Lars On 24.02.2023 17:30, Thu Pham Dieu Anh wrote: Hi i am creating an example that Agent 1 has a @Belief List <string> AgentActiveList. Agent2, Agent3, Agent 4 add their names into that list...
Hello, I'm trying to implement the D5 - Goal Recur example, which can be found in this link. However the eclipse is reporting the following syntax error: "insert Dimensions to complete ReferenceType". I wrote the code as it is in the example page. Someone could plese help me out? The aforementioned error is in the lines 63 and 64 in the funcion body(). package translate; import java.util.HashMap; import java.util.Map; import jadex.bdiv3.BDIAgentFactory; import jadex.bdiv3.annotation.Belief; import...
Hello, I'm trying to implement the D5 - Goal Recur example, which can be found in this link. However the eclipse is reporting the following syntax error: "insert Dimensions to complete ReferenceType". I wrote the code as it is in the example page. Someone could plese help me out? ***The aforementioned error is in the lines 63 and 64 in the funcion body(). * package translate; import java.util.HashMap; import java.util.Map; import jadex.bdiv3.BDIAgentFactory; import jadex.bdiv3.annotation.Belief;...
Hello, I'm trying to implement the D5 - Goal Recur example, which can be found in this link. However the eclipse is reporting the following syntax error: "insert Dimensions to complete ReferenceType". I wrote the code as it is in the example page. Someone could plese help me out? The aforementioned error is in the lines 63 and 64. package translate; import java.util.HashMap; import java.util.Map; import jadex.bdiv3.BDIAgentFactory; import jadex.bdiv3.annotation.Belief; import jadex.bdiv3.annotation.Goal;...
Hello, I'm trying to implement the D5 - Goal Recur example, which can be found in this link. However the eclipse is reporting the following syntax error: "insert Dimensions to complete ReferenceType". I wrote the code as it is in the example page. Someone could plese help me out? package translate; import java.util.HashMap; import java.util.Map; import jadex.bdiv3.BDIAgentFactory; import jadex.bdiv3.annotation.Belief; import jadex.bdiv3.annotation.Goal; import jadex.bdiv3.annotation.GoalCreationCondition;...
Thank you, Lars Braubach ! Now the code is executing correctly. I'm glat that you've learnd a new word in portugese (lol). Best regards
Hi i am creating an example that Agent 1 has a @Belief List <string> AgentActiveList. Agent2, Agent3, Agent 4 add their names into that list either directly or via the service ( i tried both). I want that if the AgentActiveList.size() == 3, then a goal with suitable plan will be triggered. this is something that i tried to do, that when the ActiveAgentList.size ==3, then a plan should be triggered and print out that list. I dispatch this code at the body of the Agent1. However the goal is created...
Hi, the problem is that you can't use both at the same time: @OnStart and @AgentBody. The former replaces the latter. Just replace @OnStart at your init method with @OnInit and it will translate cat to gato. (So I also learned something new ;-) Alternatively, you could just copy the init copy in the body and delete that method completely. Best regards, Lars On 16.02.2023 02:48, PAULO ROBERTO CORDOVA wrote: |@Agent(type=BDIAgentFactory.TYPE) public class TranslationBDI { //Fields @AgentFeature protected...
Hi! Sure, you can dynamically add and remove services at any time in the respective agent, e.g. inject internal access first: @Agent protected IInternalAccess agent; Then use one of the addService() or removeService() methods anywhere in the agent (instead of @ProvidedService): agent.addService("chatservices", new ChatServiceF1()); This also automatically updates the service registry infrastructure as needed in the background. However, given your description, I suspect there could be better solutions....
Hello, I'm trying to implement the example D1 - Using a Top-Level Goal, which can be found here . This example is not working as it should. The results are not prited out in the console. Could someone please help me find out what could be my mistake? package translate; import jadex.base.IPlatformConfiguration; import jadex.base.PlatformConfigurationHandler; import jadex.base.Starter;; public class Main { public static void main(String[] args) { IPlatformConfiguration config = PlatformConfigurationHandler.getDefaultNoGui();...
Hello, I'm trying to implement the example D1 - Using a Top-Level Goal, which can be found here . This example is not working as it should. Could someone please help me find out what could be my mistake? package translate; import jadex.base.IPlatformConfiguration; import jadex.base.PlatformConfigurationHandler; import jadex.base.Starter;; public class Main { public static void main(String[] args) { IPlatformConfiguration config = PlatformConfigurationHandler.getDefaultNoGui(); config.addComponent("translate.TranslationBDI.class");...
HI, currently as far as i know, with the implementation of IChatService in the begining before the agent was started, all of the Chatbotagents that implement the ChatF1Service will get the message. It would be able, for example,to add another ChatF2 service and the implementation of service changes dynamically depend on the scenario so that the Agents dont have to receive all the irrelevant messages as well as reduce the effort of the ChatAgent to only broadcast the message to the needed agent?
HI, currently as far as i know, with the implementation of IChatService in the begining before the agent was started, all of the Chatbotagents that implement the ChatF1Service will get the message. It would be able, for example,to add another ChatF2 service and the implementation of service changes dynamically depend on the scenario so that the Agents dont have to receive all the irrelevant messages as well as reduce the effort of the ChatAgent to only broadcast the message to the needed agent?
Hi there, how can I make a JadeX BDI Agent a subclass of an own created Interface (Using "implements") ? I want to typecast the BDI agent to the corresponding interface. Currently I get the following error. Is there any Java Class in JadeX that defines the BDI structure? I currently struggle understanding the Class BDIAgentFactory.java. Edit: I currently try to typecast a variable "agent" with the type "IInternalAccess" to an Interface, which is probably a false approach. Thank you very much! Error:...
Hi there, how can I make a JadeX BDI Agent a subclass of an own created Interface (Using "implements") ? I want to typecast the BDI agent to the corresponding interface. Currently I get the following error. Is there any Java Class in JadeX that defines the BDI structure? I currently struggle understanding the Class BDIAgentFactory.java. Edit: I currently try to typecast a variable "agent" with the type "IInternalAccess" to an Interface, which is probably false. Thank you very much! Error: Child terminated:...
Hi there, how can I make a JadeX BDI Agent a subclass of an own created Interface (Using "implements") ? I want to typecast the BDI agent to the corresponding interface. Currently I get the following error. Is there any Java Class in JadeX that defines the BDI structure? I currently struggle understanding the Class BDIAgentFactory.java. Thank you very much! Error: Child terminated: TrikeAgentMVP@TrikeWorld:LAPTOP-DP1J3729_irc Fatal error, component 'TrikeAgentMVP@TrikeWorld:LAPTOP-DP1J3729_irc' will...
Thank you Lars. It is running correctly now. Kind regards
Hi, please use @Agent(type=BDIAgentFactory.TYPE) to indicate that it is a BDI agent. Kind regards, Lars On 14.07.2022 01:08, PAULO ROBERTO CORDOVA wrote: Hi everybody! I'm starting to study Jadex and following a simple tutorial I came across an exception that I couldn't resolve by myself. The tutorial I'm working on is here https://download.actoron.com/docs/releases/latest/jadex-mkdocs/tutorials/bdiv3/03%20Using%20Plans/ and the exception is this: /No such feature: interface jadex.bdiv3.features.IBDIAgentFeature/...
Hi, I'm continually seeing a hard exception either in jadex.bridge or jadex.platform when attempting to shutdown my application. I've provided more details below. Any help or guidance appreciated. Thanks. Kevin. See below (lines 375-394 in the file termination_hard_exception.txt) [2022-07-14 13:11:50.089] [FINE ] main.java.Main main <terminating platform="" -="" no="" active="" application="" agents=""></terminating> [2022-07-14 13:11:50.190] [WARNING] jadex.platform.service.awareness.LocalNetworkAwarenessBaseAgent$Receiver...
Hi everybody! I'm starting to study Jadex and following a simple tutorial I came across an exception that I couldn't resolve by myself. The tutorial I'm working on is here and the exception is this: No such feature: interface jadex.bdiv3.features.IBDIAgentFeature I saw a similar problem in another topic and applied all the suggestions in my code. Unfortunately I had no success. So, I'm asking for any help so I can move on following the aforementioned tutorial. The Jadex version I'm using is 4.0.265....
Hi Marcel, you could do several things: a) let the agent itself implement the service b) let the service call a method on message arrival via IPojoComponentFeature and getPojoAgent() Kind regards Lars On 08.07.2022 18:06, Marcel wrote: Hi, I would like to access the content of the message that is sent by the ChatD1Agent.java from the tutorial. When accessing the result within resultAvailable i am only able to get the identifiers of the senders of the messages. I see that there is a method called...
Hi, I would like to access the content of the message that is sent by the ChatD1Agent.java from the tutorial. When accessing the result within resultAvailable i am only able to get the identifiers of the senders of the messages. I see that there is a method called message inside ChatServiceD1.java that prints the received messages. What do I have to change/add (and where) that I am able to access this text from the ChatD1Agent.java? This should be very easy but I can not find the solution. Thank...
Hi Kevin, this is just a logger info message. You can use @GoalResult on a field or method on a goal class. After goal is finished this field or method will be used to deliver the result to the caller. Alternatively, you can of course also just call goal.getBla() to access the method/field by yourself. SellGoal sell = new SellGoal(item, price); ItemInfo result = agent.getFeature(IBDIAgentFeature.class).dispatchTopLevelGoal(sell).get(); Kind regards, Lars On 27.06.2022 14:51, Kevin wrote: Hi, I'm...
Hi, I'm receiving messages of the form ... [2022-06-27 22:21:20.397] [INFO ] StarterAgent@SmartModelBase:ubuntu_bxa jadex.bdiv3.features.impl.BDILifecycleAgentFeature$StartBehavior$1 resultAvailable <goal succeeded:="" main.java.abms.control.starteragent$performsimstart@3d2db9b=""></goal> It occurs for goals with an @GoalCreationCondition annotation and are created via the deliberation process. How do I retrieve the result referred to in the above message? DO I need to? Messages of the above form...
Hi Lars, I used the workaround code. It seemed to work. I noticed you had a Thread.dumpstack() in the code you sent. So, I've attached the output. You mention the new API is needed for waitForBeliefChanged(). Is it available from the download pages? You say above regarding the warning messages I'm receiving ... Indicates a connection problem. My colleague Kai has added more detailed infos to the output so that we hopefully can understand that behavior better in future. Is that also in the new API...
Hi Kevin, it assumes the new API. You can also use the workaround code I sent you in a previous mail. Kind regards, Lars On 08.06.2022 09:49, Kevin wrote: Hi Lars, Thanks for your note. I've created java class files based on the code above but cannot compile it. I cannot find the method waitForBeliefChanged() in the API lib (Jadex v 4.0.264). Is it the method you meant? Or, am I looking in the wrong place? Regards. Kevin. waitForFactChanged method generating timeout exception https://sourceforge.net/p/jadex/discussion/274112/thread/eaf6e1fb40/?limit=25#e46c...
Hi Lars, Thanks for your note. I've created java class files based on the code above but cannot compile it. I cannot find the method waitForBeliefChanged() in the API lib (Jadex v 4.0.264). Is it the method you meant? Or, am I looking in the wrong place? Regards. Kevin.
Hi Kevin, On 03.06.2022 14:35, Kevin wrote: Hi Lars, Thanks for your help. I would not have found that solution. I'll use the workaround you sent. I guess a later release will incorporate the changes. The workaround works for the second sample (uses lambda expression) you sent through. The first sample still does not work. Should it? no, using two agents it cannot work this way. One would need to have a shared state for that. Also, I incorporated the workaround into my original code and that also...
Hi Lars, Thanks for your help. I would not have found that solution. I'll use the workaround you sent. I guess a later release will incorporate the changes. The workaround works for the second sample (uses lambda expression) you sent through. The first sample still does not work. Should it? Also, I incorporated the workaround into my original code and that also works. This works for a plan that is implemented as an internal method of an agent. But, it does not work when the waitForFactXYZ() is within...
Hi Kevin, found it. Problem is the difference between belief and fact change, i.e. belief change means the whole object is exchanged while a fact changed means that a property of a belief changed. Our systems uses different kinds of events for both and using a long implies you have to wait for belief change. This method is missing in RPlan (I have added it now) but you can use a workaround //plan.waitForBeliefChanged("mybel").get(); ((RPlan)plan).waitForFactX("mybel", new String[]{ChangeEvent.BELIEFCHANGED},...
Hi Lars, Thanks for your note. I tried implementing the two code components you sent through. No success I'm afraid. Neither ran to completion. The first (named 2307 by me) printed "waiting for notification" and then seemed to go no further. The second (named 2326 by me) printed "waiting for notification" and "notify using bean" and then seemed to go no further. In the attached zip file I have included - the output from each of the classes you sent, - the code sent encapsulated in a java with all...
Hi again, just modified it again and it seems not to trigger in this case, although I do not get an assertion err. I will further check this and report any findings. Kind regards Lars @Agent(type=BDIAgentFactory.TYPE) @Configurations({@Configuration(name="1"), @Configuration(name="2")}) public class BasicTypeConditionBDI { @Agent protected IInternalAccess agent; @Belief protected long mybel = 0; @OnStart public void body() { agent.waitForDelay(2000, ia -> { agent.getFeature(IBDIAgentFeature.class).adoptPlan("notify");...
Hi Kevin, I just changed the semiautomatic test to long and it runs without exception. Could you please check if this testcases raises the exception in your Jadex version? @Agent(type=BDIAgentFactory.TYPE) @Configurations({@Configuration(name="1"), @Configuration(name="2")}) public class BasicTypeConditionBDI { @Agent protected IInternalAccess agent; @Belief protected long mybel = 0; @OnStart public void body() { if("1".equals(agent.getConfiguration())) { agent.getFeature(IBDIAgentFeature.class).adoptPlan("wait");...
Hi Lars, Thanks for your help. I was doing some more work and added -ea for execution (enables assertions). An assertion error occurred as follows ... Exception in executable jadex.platform.service.clock.ContinuousClock$1@49d4fb3: java.lang.AssertionError at jadex.bdiv3.runtime.impl.RPlan$ResumeCommand.execute(RPlan.java:1810) at jadex.bdiv3.runtime.impl.RPlan$ResumeCommand.execute(RPlan.java:1771) at jadex.bdiv3.runtime.impl.RPlan$7.timeEventOccurred(RPlan.java:1538) at jadex.platform.service.clock.ContinuousClock$1.execute(ContinuousClock.java:385)...
Hi Kevin, On 01.06.2022 13:56, Kevin wrote: Using a belief that was a simple java data type, that is a long, using waitForFactChanged() resulted in the errors above. See wait() and notify() plans in the attached. I will check this by extending the testcase and report on that. In case there is a bug we should hopefully be able to fix this soon. Kind regards Lars
Hi Lars, A further update to yesterday's post above. For the case where the plan is a method within the agent java class: I have also tried using Map<> for a belief and found that waitForFactAdded() and waitForFactRemoved() work ok. I tried waitForFactChanged() with List<> and Map<> belief types and a timeout exception occurs. I tried a simple array, int [], with one element as a belief. In this case waitForFactChanged() worked. I have not tried the fact added or fact removed methods. Comparing,...
Hi Lars, Thanks for your note. I'm using the continuous clock. In main() where other start up things are done, I have set the clock to IClock.TYPE_CONTINUOUS. I'm not waiting outside the clock (I don't think I am). My belief variable, simClockTime, is just a type long that is set as desired using the getTime() method from ClockService. I was using this variable simply to try the waitForFactChanged() method. I have successfully used the waitForDelay() method. I wanted to be able to wait, within a...
Hi Lars, Thanks for your note. I'm using the continuous clock. In main() where other start up things are done, I have set the clock to IClock.TYPE_CONTINUOUS. I'm not waiting outside the clock (I don't think I am). My belief variable, simClockTime, is just a type long that is set as desired using the getTime() method from ClockService. I was using this variable simply to try the waitForFactChanged() method. I have successfully used the waitForDelay() method. I wanted to be able to wait, within a...
Hi Kevin, do you use an event-driven or time-driven simulation clock? If it is event-driven the time points occurring depend on the interactions with the clock, i.e. in that case the clock does not advance in regular steps but instead jumps to time points of interest. Waiting outside of the clock itself then can easily lead to missing expected time points raising timeout exceptions. Is there a special reason why you can't directly wait on the clock itself, e.g. using getAgent().getFeature(IExecutionFeature.class).waitForDelay(delay,...
Hi, I'm still interested in understanding how to use these methods. I have attempted to mimic the approach in ObjectConditionBDI.java in package jadex.bdiv3.testcases.semiautomatic which is recommended as an example in other posts. Consistent with the example above and others, the plan trying to execute the waitForXYZ in a plan body is a method in the actual agent. Not a plan body that is in a separate class. The relevant code in the attached source file is (a) method agentBody(), lines 300-301 (b)...
Hi, I'm still interested in understanding how to use these methods. I have attempted to mimic the approach in ObjectConditionBDI.java in package jadex.bdiv3.testcases.semiautomatic which is recommended as an example in other posts. Consistent with the example above and others, the plan trying to execute the waitForXYZ in a plan body is a method in the actual agent. Not a plan body that is in a separate class. The relevant code in the attached source file is (a) method agentBody(), lines 300-301 (b)...
Hi, I'm trying to shutdown Jadex after completion of an agent run. I'm able to kill the agents and (EnvSupport) space objects. Once that is done, I shutdown the platform (using an approach I've seen in the Forums) and get the following output (in part): ... [2022-05-11 23:36:12.748] [INFO ] Train_8@SmartModelBase:ubuntu_8zl jadex.bridge.service.types.cms.SComponentManagementService cleanup <terminated component:="" train_8@smartmodelbase:ubuntu_8zl=""> </terminated> [2022-05-11 23:36:12.918] [WARNING]...
Hi, I'm trying to shutdown Jadex after completion of an agent run. I'm able to kill the agents and (EnvSupport) space objects. Once that is done, I shutdown the platform (using an approach I've seen in the Forums) and get the following output (in part): ... [2022-05-11 23:36:12.748] [INFO ] Train_8@SmartModelBase:ubuntu_8zl jadex.bridge.service.types.cms.SComponentManagementService cleanup <terminated component:="" train_8@smartmodelbase:ubuntu_8zl=""> </terminated> [2022-05-11 23:36:12.918] [WARNING]...
Hi Marcel, we have experimented a lot how protocols such as contract-net can be used in an efficient and easy way, especially given that message based implementations are very error prone and cumbersome to use. As a result we came up with basically two solutions: a) using protocols in a goal based manner for bdi agents, i.e. the agents that use the capability and protocol have to handle certain goals and provide plans. b) later we found a way that is much more general and easier to use (not only...
Dear Jadex developers, I am trying to understand how to use the contractnet protocol in jadex. I found the Package jadex.bdi.planlib.protocols.contractnet at the Javadoc on activecomponents. But I don’t understand how and where to use all these classes and methods. Is there some easy to understand example implementation that shows how these can be used in practice? The only cnp related in jadex I have found was the booktrading example but it seems not to use the jadex.bdi.planlib.protocols.contractnet...
Thanks Lars. Regards. Kevin.
Hi Kevin, thank you for testing this version. The output only means that no plan order could be determined, i.e. if you have multiple plans for a goal. Order is determined using priority or if not used via occurrence in a file, i.e. the source code order. If plans are defined in own classes they do not have a natural order. This is just an info message. Kind regards Lars
Hi, I've tried the latest version. Some unexpected output ... lines of the form found no plan order for: someplanname ... for plans that exist. See the attached output file. The above message is found near the top and my guess would be it's happening as part of some startup process. I have not seen these messages in the earlier versions I've used. Application seems to run to completion without problem. Regards. Kevin.
Hi Lars, Happy to help. Regards. Kevin.
Hi Kevin, thanks to your output we could track the bug and fix ist. The failure was caused by the RelayTransportAgent and should in the newest version be gone. https://repo1.maven.org/maven2/org/activecomponents/jadex/jadex-applications-bdi/4.0.250/ Kind regards Lars On 17.10.2021 02:48, Kevin wrote: Hi Lars, Thanks for your note. Attached is the output generated with the debug features turned on. Regards. Kevin. Attachments: output-message-sending-internal-problem.txt https://sourceforge.net/p/jadex/discussion/274112/thread/4493d28ac2/2f4c/attachment/output-message-sending-internal-problem.txt...
Hi, we have changed the API a lot to make it easier to access functionalities from an agent (or other type of component), i.e. you can e.g. create a new component directly from the internal access interface (also external access interface). This means instead of searching the IComponentManagementService you can directly use the functionality on the agent. So IComponentManagementService does not exist any more the fleiweights are impl classes and should not be used on user level. As the BDI engine...
Hi Kevin, packages says: main.java which sounds wrong. Typically you have src/main/java and then followed by the package structure/name. If so, try using the folder names starting in the java folder to your file. If it is directly in main/java just delete the package statement. It uses the package name to locate other files as well. Kind regards Lars On 21.10.2021 14:11, Kevin wrote: Hi Lars, In the application xml file there is mention of the package name in the applicationtype section. Copied below....
Hi Lars, Where you say "verify that the package attribute in the application XML is correct", I can't as I'm unclear as to what the correct specification would be. I modelled my application xml on the equivalent files in the examples. The application has worked fine with the attached xml. All I did was move the xml and provide a different path as part of startup (as in my original post). In the application xml file there is mention of the package name in the applicationtype section. I assumed this...
Hi Lars, In the application xml file there is mention of the package name in the applicationtype section. Copied below. Full application xml attached. <applicationtype xmlns="http://www.activecomponents.org/jadex-application" xmlns:env="http://www.activecomponents.org/jadex-envspace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.activecomponents.org/jadex-application <a href=" http:="" www.activecomponents.org="" jadex-application-"="">http://www.activecomponents.org/jadex-application-${jadex_build_version}.xsd...
Hi Lars, In the application xml file there is mention of the package name in the applicationtype section. Copied below. Full application xml attached. <applicationtype xmlns="http://www.activecomponents.org/jadex-application" xmlns:env="http://www.activecomponents.org/jadex-envspace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.activecomponents.org/jadex-application <a href=" http:="" www.activecomponents.org="" jadex-application-"="">http://www.activecomponents.org/jadex-application-${jadex_build_version}.xsd...
Hi Lars, In the application xml file there is mention of the package name in the applicationtype section. Copied below. Full application xml attached. <applicationtype xmlns="http://www.activecomponents.org/jadex-application" xmlns:env="http://www.activecomponents.org/jadex-envspace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.activecomponents.org/jadex-application <a href=" http:="" www.activecomponents.org="" jadex-application-"="">http://www.activecomponents.org/jadex-application-${jadex_build_version}.xsd...
Hi, it is correct that Jadex uses the Java classpath to localte resources. As in Java source files it is important that you also state the correct package name in the XMLs. Reading errors could be caused when the packge attribute is unset or set to a wrong value. Could you verify that the package attribute in the application XML is correct? Kind regards Lars Am 20.10.2021 um 01:53 schrieb Kevin: Hi, I would like to be able execute my application with different models (that is, different application.xml...
Dear JadeX developers, I am trying to upgrade some legacy code of JadeX 2.3 to the version 4.0.247. Unfortunately, I can't find the following classes in the newer version: import jadex.bdi.runtime.IExternalCondition; import jadex.bridge.service.types.cms.IComponentManagementService; import jadex.bdi.runtime.PlanFailureException; import jadex.bdi.runtime.GoalFailureException; import jadex.bdi.runtime.impl.flyweights.GoalFlyweight; import jadex.bdi.runtime.impl.flyweights.InternalEventFlyweight; import...
Hi, I would like to be able execute my application with different models (that is, different application.xml files). To do so, I'd like to be able to load the application.xml from somewhere other than the "usual" location (as used in the example applications in the distribution). Ideally, I could place the application.xml in a folder with other input files for a particular run/experiment and have the location as a run time parameter to my main() which starts the platform and application. So, instead...
Hi Lars, Thanks for your note. Attached is the output generated with the debug features turned on. Regards. Kevin.
Hi, could you execute with debug futures turned on? PlatformConfiguration.getExtendedPlatformConfiguration().setDebugFutures(true) This will allow to see the situation that causes the duplicate result exception. Kind regards Lars
Hi, I have received what looks like an internal error related to message sending. My application looks as though it tuns to completion based on the output produced. But in the middle of my output there Jadex messages and stack traces. This output starts with the segment below. The full output is in the attached file. Any help or advice appreciated. What other information can I send that may help? I have made two additions since the last clean execution and the initial occurrence of the problem below....
Hi Lars, Thanks for your reply. I'm trying to build a very simple model to help me get some ideas clear and, importantly, develop my understanding of how jadex works before I start on a more complex model. I am using the jadex clock from the package jadex.bridge.service.types.clock (IClockService or IClock). At this stage of my thinking, I believe that I will want or need to be able to wait inside a plan for something particular to happen. By using a waitForXYZ method, the actual change result can...
Hi Kevin, could you please elaborate what you try to do here with the sim clock time. Do you use an extra simulation clock or is that related to the jadex simulation clock. We would try to model this with triggering a plan whenever a belief changes instead of waiting inside a plan (if there is no specific reason at least). Kind regards Lars
Hi, it depends on the Jadex version how exactly you have to do it. In each version we have a ping example packaged in the applications so that you can have a look there to get the correct code, e.g. in micro examples. Kind regards Lars
Hi, it depends on the Jadex version how exactly you have to do it. In each version we have a ping example packaged in the applications so that you can have a look there to get the correct code, e.g. in Kind regards Lars
Apologies. Missed a file.
I'm trying to use the waitForXYZ methods (package jadex.bdiv3.runtime, interface IPlan) to have a plan wait for a change in a belief. I'm getting a timeout exception. The agent (in its own class file) has a belief defined as follows with a method to set set the value and a getter for completeness. @Belief(updaterate = 1000) protected long simClockTime = setSimClockTime(clockService); private long setSimClockTime(IClockService cs) { if (cs == null) { return 0; } else { return cs.getTime(); } } public...
hi, can someone please help me with this!! am trying to make two agents ping each other from different platfroms, but for some reason i cant find the other agent. my code is as following, please if someone can give an example how to make this happen. AGENT1 @Agent @ComponentTypes({ @ComponentType(name="Agent1", clazz=Agent1.class) }) @Configurations({ @Configuration(name="Messaging", components={ @Component(type="Agent1", name="Agent1") }) }) public class Agent1 { @Agent / protected IInternalAccess...
Hi Kai, Thanks for taking the time to have a look. I appreciate that this is probably not your real job. I tried your suggestion and there was some, though not complete, success. See detailed notes in ReadMe2.txt in the attached package. In summary, an avatar was created but without any associated tasks. The getAvatar() method creates an avatar but with zombie=true (assuming I was looking in the right place in AbstractEnvironmentSpace.java). When I tried to add a task, there was an exception "Space...
Hi Kevin, sorry I was only able to have a cursory look at your sourced but apparently you are using the getAvatars()-Method to check if the avatar was created. Generally there are two ways how the environment auto-creates avatars: The environment notices the new component or the component accesses its avatar through the getAvatar() (singular, not getAvatars()) method. The environment ensures there is only one avatar created. There is a bit of asynchronous behavior between the environment and agent...
Hi Kai, Thanks for your note. The documentation link above is what I had read and was what I based my work on. I've attached a zip which contains a subset of my source that demonstrates the problem. There is a readme that provides a bit more information. I've also included sample application.xml files and associated output. It is all driven from the application.xml files when it comes to space object and agent generation. The source provided compiles and executes. There is no build script. I use...
Hi, your assumption is correct, in fact, this is the default so it ought to work: https://github.com/actoron/jadex/blob/96079a9f50f08f256bf22b136c70b12bb10eda6e/docs/guides/env/04%20Component%20Interaction.md Could you please provide a minimal example project so we can look into it? Kai
Hi, I cannot get avatar creation to be driven by the "component side". I'm using the application.xml to define this. I've run a series of experiments varying the settings of createavatar and createcomponent between true and false. I would like to have avatars created when agents are created which I assume requires createcomponent=false and createavatar=true. However, when I do this, avatars are not created when the agents are. Any advice appreciated. What test output and/or further information do...
Hi, I cannot get avatar creation to be driven by the "component side". I'm using the application.xml to define this. I've run a series of experiments varying the settings of createavatar and createcomponent between true and false. I would like to have avatars created when agents are created which I assume requires createcomponent=true and createavatar=false. However, when I do this, avatars are not created when the agents are. Any advice appreciated. What test output and/or further information do...
Solved.
Hi, I'm trying to use the @argument annotation to pass parameters to agents. I've copied the approach used in the 'booktrading" and "shop" bdiv3 examples. However, I'm getting a java exception loading the application.xml file ... [2021-08-16 22:43:05.618] [WARNING] broadcastawareness@Tower_t1v jadex.bridge.service.component.BasicServiceInvocationHandler createProvidedServiceProxy <pojo service="" should="" declare="" @service="" annotation:="" class="" jadex.platform.service.awareness.broadcastawarenessagent="">...
Hi again, I'm wondering if there is an error as well. When I display the ChangeInfo component of the ChangeEvent, I get ChangeInfo(value=8, old=null, info=null) But, based on jadex.rules.eca,ChangeInfo.java, I think value is supposed to be the new value and old the old value. In my case, value=4 and old=8. Regards. Kevin.