{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/dialogue-action-tokens-steering-language","title":"Dialogue Action Tokens: Steering Language Models in Goal-Directed Dialogue with a Multi-Turn Planner","arxiv_id":"2406.11978","date":"2024-06-17","proceeding":null,"authors":["Kenneth Li","Yiming Wang","Fernanda Viégas","Martin Wattenberg"],"abstract":"We present an approach called Dialogue Action Tokens (DAT) that adapts language model agents to plan goal-directed dialogues. The core idea is to treat each utterance as an action, thereby converting dialogues into games where existing approaches such as reinforcement learning can be applied. Specifically, we freeze a pretrained language model and train a small planner model that predicts a continuous action vector, used for controlled generation in each round. This design avoids the problem of language degradation under reward optimization. When evaluated on the Sotopia platform for social simulations, the DAT-steered LLaMA model surpasses GPT-4's performance. We also apply DAT to steer an attacker language model in a novel multi-turn red-teaming setting, revealing a potential new attack surface.","url_abs":"https://arxiv.org/abs/2406.11978v1","url_pdf":"https://arxiv.org/pdf/2406.11978v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"dialogue-action-tokens-steering-language","repo_url":"https://github.com/likenneth/dialogue_action_token","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"language-modeling","task_name":"Language Modeling"},{"task_slug":"language-modelling","task_name":"Language Modelling"},{"task_slug":"red-teaming","task_name":"Red Teaming"}],"methods":[{"method_slug":"llama","method_name":"LLaMA"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2406.11978","atlas_url":"https://app.syntology.ai/?focus=2406.11978","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.11978"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/likenneth/dialogue_action_token","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":7,"unverified":1},"by_repo_kind":{"official":{"samples":8,"ran":7,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"ca55c2bc3a455a58","entry":"eval_actor","repo":"likenneth/dialogue_action_token","repo_kind":"official","path":"dat/pre_bc.py","file_url":"https://github.com/likenneth/dialogue_action_token/blob/HEAD/dat/pre_bc.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ca55c2bc3a455a58"}},{"code_sha256_prefix":"ff5a465969609b7b","entry":"extract_leading_int","repo":"likenneth/dialogue_action_token","repo_kind":"official","path":"envs/redteam_env.py","file_url":"https://github.com/likenneth/dialogue_action_token/blob/HEAD/envs/redteam_env.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ff5a465969609b7b"}},{"code_sha256_prefix":"f90433d593217a49","entry":"format_docstring","repo":"likenneth/dialogue_action_token","repo_kind":"official","path":"envs/sotopia_utils/utils.py","file_url":"https://github.com/likenneth/dialogue_action_token/blob/HEAD/envs/sotopia_utils/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f90433d593217a49"}},{"code_sha256_prefix":"aae3c57500fd1a36","entry":"get_bio","repo":"likenneth/dialogue_action_token","repo_kind":"official","path":"envs/sotopia_utils/utils.py","file_url":"https://github.com/likenneth/dialogue_action_token/blob/HEAD/envs/sotopia_utils/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aae3c57500fd1a36"}},{"code_sha256_prefix":"38d71c4ed76282b3","entry":"load_pickle","repo":"likenneth/dialogue_action_token","repo_kind":"official","path":"dat/td3.py","file_url":"https://github.com/likenneth/dialogue_action_token/blob/HEAD/dat/td3.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"38d71c4ed76282b3"}},{"code_sha256_prefix":"73e2c40bff6225ae","entry":"preprocess_function","repo":"likenneth/dialogue_action_token","repo_kind":"official","path":"dat/utils.py","file_url":"https://github.com/likenneth/dialogue_action_token/blob/HEAD/dat/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"73e2c40bff6225ae"}},{"code_sha256_prefix":"db147f8b7e6fcb02","entry":"preprocess_no_padding","repo":"likenneth/dialogue_action_token","repo_kind":"official","path":"dat/utils.py","file_url":"https://github.com/likenneth/dialogue_action_token/blob/HEAD/dat/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"db147f8b7e6fcb02"}},{"code_sha256_prefix":"3e6d732bbfaddc55","entry":"load_data","repo":"likenneth/dialogue_action_token","repo_kind":"official","path":"dat/bc.py","file_url":"https://github.com/likenneth/dialogue_action_token/blob/HEAD/dat/bc.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3e6d732bbfaddc55"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}