Skip to content

Commit a1322d2

Browse files
qingyun-wuekzhusonichi
authored
context to kwargs (#2064)
* context to kwargs * add tag * add test * text to kwargs --------- Co-authored-by: Eric Zhu <[email protected]> Co-authored-by: Chi Wang <[email protected]>
1 parent af9b300 commit a1322d2

File tree

4 files changed

+31
-27
lines changed

4 files changed

+31
-27
lines changed

autogen/agentchat/chat.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def __find_async_chat_order(chat_ids: Set[int], prerequisites: List[Prerequisite
102102
return chat_order
103103

104104

105-
def __post_carryover_processing(chat_info: Dict[str, Any]):
105+
def __post_carryover_processing(chat_info: Dict[str, Any]) -> None:
106106
if "message" not in chat_info:
107107
warnings.warn(
108108
"message is not provided in a chat_queue entry. input() will be called to get the initial message.",
@@ -125,11 +125,14 @@ def __post_carryover_processing(chat_info: Dict[str, Any]):
125125
print(colored("\n" + "*" * 80, "blue"), flush=True, sep="")
126126
print(
127127
colored(
128-
"Starting a new chat....\n\nMessage:\n" + print_message + "\n\nCarryover: \n" + print_carryover,
128+
"Starting a new chat....",
129129
"blue",
130130
),
131131
flush=True,
132132
)
133+
if chat_info.get("verbose", False):
134+
print(colored("Message:\n" + print_message, "blue"), flush=True)
135+
print(colored("Carryover:\n" + print_carryover, "blue"), flush=True)
133136
print(colored("\n" + "*" * 80, "blue"), flush=True, sep="")
134137

135138

autogen/agentchat/conversable_agent.py

+23-24
Original file line numberDiff line numberDiff line change
@@ -868,7 +868,7 @@ def initiate_chat(
868868
summary_method: Optional[Union[str, Callable]] = DEFAULT_SUMMARY_METHOD,
869869
summary_args: Optional[dict] = {},
870870
message: Optional[Union[Dict, str, Callable]] = None,
871-
**context,
871+
**kwargs,
872872
) -> ChatResult:
873873
"""Initiate a chat with the recipient agent.
874874
@@ -944,19 +944,19 @@ def my_message(sender: ConversableAgent, recipient: ConversableAgent, context: d
944944
final_msg["context"] = {"prefix": "Today I feel"}
945945
return final_msg
946946
```
947-
**context: any context information. It has the following reserved fields:
947+
**kwargs: any additional information. It has the following reserved fields:
948948
- "carryover": a string or a list of string to specify the carryover information to be passed to this chat.
949949
If provided, we will combine this carryover (by attaching a "context: " string and the carryover content after the message content) with the "message" content when generating the initial chat
950950
message in `generate_init_message`.
951+
- "verbose": a boolean to specify whether to print the message and carryover in a chat. Default is False.
951952
952953
Raises:
953954
RuntimeError: if any async reply functions are registered and not ignored in sync chat.
954955
955956
Returns:
956957
ChatResult: an ChatResult object.
957958
"""
958-
_chat_info = context.copy()
959-
_chat_info["recipient"] = recipient
959+
_chat_info = locals().copy()
960960
_chat_info["sender"] = self
961961
consolidate_chat_info(_chat_info, uniform_sender=self)
962962
for agent in [self, recipient]:
@@ -968,9 +968,9 @@ def my_message(sender: ConversableAgent, recipient: ConversableAgent, context: d
968968
for _ in range(max_turns):
969969
if _ == 0:
970970
if isinstance(message, Callable):
971-
msg2send = message(_chat_info["sender"], _chat_info["recipient"], context)
971+
msg2send = message(_chat_info["sender"], _chat_info["recipient"], kwargs)
972972
else:
973-
msg2send = self.generate_init_message(message, **context)
973+
msg2send = self.generate_init_message(message, **kwargs)
974974
else:
975975
msg2send = self.generate_reply(messages=self.chat_messages[recipient], sender=recipient)
976976
if msg2send is None:
@@ -979,9 +979,9 @@ def my_message(sender: ConversableAgent, recipient: ConversableAgent, context: d
979979
else:
980980
self._prepare_chat(recipient, clear_history)
981981
if isinstance(message, Callable):
982-
msg2send = message(_chat_info["sender"], _chat_info["recipient"], context)
982+
msg2send = message(_chat_info["sender"], _chat_info["recipient"], kwargs)
983983
else:
984-
msg2send = self.generate_init_message(message, **context)
984+
msg2send = self.generate_init_message(message, **kwargs)
985985
self.send(msg2send, recipient, silent=silent)
986986
summary = self._summarize_chat(
987987
summary_method,
@@ -1010,7 +1010,7 @@ async def a_initiate_chat(
10101010
summary_method: Optional[Union[str, Callable]] = DEFAULT_SUMMARY_METHOD,
10111011
summary_args: Optional[dict] = {},
10121012
message: Optional[Union[str, Callable]] = None,
1013-
**context,
1013+
**kwargs,
10141014
) -> ChatResult:
10151015
"""(async) Initiate a chat with the recipient agent.
10161016
@@ -1023,8 +1023,7 @@ async def a_initiate_chat(
10231023
Returns:
10241024
ChatResult: an ChatResult object.
10251025
"""
1026-
_chat_info = context.copy()
1027-
_chat_info["recipient"] = recipient
1026+
_chat_info = locals().copy()
10281027
_chat_info["sender"] = self
10291028
consolidate_chat_info(_chat_info, uniform_sender=self)
10301029
for agent in [self, recipient]:
@@ -1035,9 +1034,9 @@ async def a_initiate_chat(
10351034
for _ in range(max_turns):
10361035
if _ == 0:
10371036
if isinstance(message, Callable):
1038-
msg2send = message(_chat_info["sender"], _chat_info["recipient"], context)
1037+
msg2send = message(_chat_info["sender"], _chat_info["recipient"], kwargs)
10391038
else:
1040-
msg2send = await self.a_generate_init_message(message, **context)
1039+
msg2send = await self.a_generate_init_message(message, **kwargs)
10411040
else:
10421041
msg2send = await self.a_generate_reply(messages=self.chat_messages[recipient], sender=recipient)
10431042
if msg2send is None:
@@ -1046,9 +1045,9 @@ async def a_initiate_chat(
10461045
else:
10471046
self._prepare_chat(recipient, clear_history)
10481047
if isinstance(message, Callable):
1049-
msg2send = message(_chat_info["sender"], _chat_info["recipient"], context)
1048+
msg2send = message(_chat_info["sender"], _chat_info["recipient"], kwargs)
10501049
else:
1051-
msg2send = await self.a_generate_init_message(message, **context)
1050+
msg2send = await self.a_generate_init_message(message, **kwargs)
10521051
await self.a_send(msg2send, recipient, silent=silent)
10531052
summary = self._summarize_chat(
10541053
summary_method,
@@ -2217,13 +2216,13 @@ async def a_execute_function(self, func_call):
22172216
"content": str(content),
22182217
}
22192218

2220-
def generate_init_message(self, message: Union[Dict, str, None], **context) -> Union[str, Dict]:
2219+
def generate_init_message(self, message: Union[Dict, str, None], **kwargs) -> Union[str, Dict]:
22212220
"""Generate the initial message for the agent.
22222221
If message is None, input() will be called to get the initial message.
22232222
22242223
Args:
22252224
message (str or None): the message to be processed.
2226-
**context: any context information. It has the following reserved fields:
2225+
**kwargs: any additional information. It has the following reserved fields:
22272226
"carryover": a string or a list of string to specify the carryover information to be passed to this chat. It can be a string or a list of string.
22282227
If provided, we will combine this carryover with the "message" content when generating the initial chat
22292228
message.
@@ -2233,17 +2232,17 @@ def generate_init_message(self, message: Union[Dict, str, None], **context) -> U
22332232
if message is None:
22342233
message = self.get_human_input(">")
22352234
if isinstance(message, str):
2236-
return self._process_carryover(message, context)
2235+
return self._process_carryover(message, kwargs)
22372236
elif isinstance(message, dict):
22382237
message = message.copy()
22392238
# TODO: Do we need to do the following?
22402239
# if message.get("content") is None:
22412240
# message["content"] = self.get_human_input(">")
2242-
message["content"] = self._process_carryover(message.get("content", ""), context)
2241+
message["content"] = self._process_carryover(message.get("content", ""), kwargs)
22432242
return message
22442243

2245-
def _process_carryover(self, message: str, context: dict) -> str:
2246-
carryover = context.get("carryover")
2244+
def _process_carryover(self, message: str, kwargs: dict) -> str:
2245+
carryover = kwargs.get("carryover")
22472246
if carryover:
22482247
# if carryover is string
22492248
if isinstance(carryover, str):
@@ -2256,7 +2255,7 @@ def _process_carryover(self, message: str, context: dict) -> str:
22562255
)
22572256
return message
22582257

2259-
async def a_generate_init_message(self, message: Union[Dict, str, None], **context) -> Union[str, Dict]:
2258+
async def a_generate_init_message(self, message: Union[Dict, str, None], **kwargs) -> Union[str, Dict]:
22602259
"""Generate the initial message for the agent.
22612260
If message is None, input() will be called to get the initial message.
22622261
@@ -2269,10 +2268,10 @@ async def a_generate_init_message(self, message: Union[Dict, str, None], **conte
22692268
if message is None:
22702269
message = await self.a_get_human_input(">")
22712270
if isinstance(message, str):
2272-
return self._process_carryover(message, context)
2271+
return self._process_carryover(message, kwargs)
22732272
elif isinstance(message, dict):
22742273
message = message.copy()
2275-
message["content"] = self._process_carryover(message["content"], context)
2274+
message["content"] = self._process_carryover(message["content"], kwargs)
22762275
return message
22772276

22782277
def register_function(self, function_map: Dict[str, Union[Callable, None]]):

notebook/agentchat_nested_sequential_chats.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -811,7 +811,7 @@
811811
"front_matter": {
812812
"description": "Solve complex tasks with one or more sequence chats nested as inner monologue.",
813813
"tags": [
814-
"nested chat"
814+
"nested chat", "sequential chat"
815815
]
816816
},
817817
"kernelspec": {

test/agentchat/test_chats.py

+2
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ def my_summary_method(recipient, sender, summary_args):
232232
"message": financial_tasks[0],
233233
"silent": False,
234234
"summary_method": my_summary_method,
235+
"verbose": True,
235236
"max_turns": 1,
236237
},
237238
{
@@ -240,6 +241,7 @@ def my_summary_method(recipient, sender, summary_args):
240241
"silent": False,
241242
"max_turns": 1,
242243
"summary_method": "reflection_with_llm",
244+
"verbose": True,
243245
},
244246
{
245247
"recipient": financial_assistant_1,

0 commit comments

Comments
 (0)